/contrib/ntp/include/ntp_select.h

https://bitbucket.org/freebsd/freebsd-head/ · C++ Header · 35 lines · 25 code · 5 blank · 5 comment · 2 complexity · a777e83a01032eb5e21bd37d56f439d5 MD5 · raw file

  1. /*
  2. * Not all machines define FD_SET in sys/types.h
  3. */
  4. #ifndef _ntp_select_h
  5. #define _ntp_select_h
  6. /* Was: (defined(RS6000)||defined(SYS_PTX))&&!defined(_BSD) */
  7. /* Could say: !defined(FD_SET) && defined(HAVE_SYS_SELECT_H) */
  8. #if defined(HAVE_SYS_SELECT_H) && !defined(_BSD)
  9. #ifndef SYS_VXWORKS
  10. #include <sys/select.h>
  11. #else
  12. #include <sockLib.h>
  13. extern int select P((int width, fd_set *pReadFds, fd_set *pWriteFds,
  14. fd_set *pExceptFds, struct timeval *pTimeOut));
  15. #endif
  16. #endif
  17. #if !defined(FD_SET) && !defined(SYS_WINNT)
  18. #define NFDBITS 32
  19. #define FD_SETSIZE 32
  20. #define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
  21. #define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
  22. #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
  23. #define FD_ZERO(p) memset((char *)(p), 0, sizeof(*(p)))
  24. #endif
  25. #if defined(VMS)
  26. typedef struct {
  27. unsigned int fds_bits[1];
  28. } fd_set;
  29. #endif
  30. #endif /* _ntp_select_h */