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