/* $NetBSD: ntp_select.h,v 1.5 2020/05/25 20:47:20 christos Exp $ */ /* * Not all machines define FD_SET in sys/types.h */ #ifndef NTP_SELECT_H #define NTP_SELECT_H /* note: tested by include/l_stdlib.h */ /* Was: (defined(RS6000)||defined(SYS_PTX))&&!defined(_BSD) */ /* Could say: !defined(FD_SET) && defined(HAVE_SYS_SELECT_H) */ /* except FD_SET can legitimately be a typedef... */ #if defined(HAVE_SYS_SELECT_H) && !defined(_BSD) # ifndef SYS_VXWORKS # include <sys/select.h> # else # include <sockLib.h> extern int select(int width, fd_set *pReadFds, fd_set *pWriteFds, fd_set *pExceptFds, struct timeval *pTimeOut); # endif #endif #if !defined(FD_SET) # define NFDBITS 32 # define FD_SETSIZE 32 # define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) # define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) # define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) # define FD_ZERO(p) memset((p), 0, sizeof(*(p))) #endif #if defined(VMS) typedef struct { unsigned int fds_bits[1]; } fd_set; #endif #endif /* NTP_SELECT_H */ |