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