154359Sroberto/* 254359Sroberto * Not all machines define FD_SET in sys/types.h 354359Sroberto */ 4285612Sdelphij#ifndef NTP_SELECT_H 5285612Sdelphij#define NTP_SELECT_H /* note: tested by include/l_stdlib.h */ 654359Sroberto 754359Sroberto/* Was: (defined(RS6000)||defined(SYS_PTX))&&!defined(_BSD) */ 854359Sroberto/* Could say: !defined(FD_SET) && defined(HAVE_SYS_SELECT_H) */ 9285612Sdelphij/* except FD_SET can legitimately be a typedef... */ 1054359Sroberto#if defined(HAVE_SYS_SELECT_H) && !defined(_BSD) 11285612Sdelphij# ifndef SYS_VXWORKS 12285612Sdelphij# include <sys/select.h> 13285612Sdelphij# else 14285612Sdelphij# include <sockLib.h> 15285612Sdelphijextern int select(int width, fd_set *pReadFds, fd_set *pWriteFds, 16285612Sdelphij fd_set *pExceptFds, struct timeval *pTimeOut); 17285612Sdelphij# endif 1854359Sroberto#endif 1954359Sroberto 20285612Sdelphij#if !defined(FD_SET) 21285612Sdelphij# define NFDBITS 32 22285612Sdelphij# define FD_SETSIZE 32 23285612Sdelphij# define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) 24285612Sdelphij# define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) 25285612Sdelphij# define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) 26285612Sdelphij# define FD_ZERO(p) memset((p), 0, sizeof(*(p))) 2754359Sroberto#endif 2854359Sroberto 2954359Sroberto#if defined(VMS) 3054359Srobertotypedef struct { 31285612Sdelphij unsigned int fds_bits[1]; 3254359Sroberto} fd_set; 3354359Sroberto#endif 3454359Sroberto 35285612Sdelphij#endif /* NTP_SELECT_H */ 36