xref: /freebsd/contrib/ntp/include/ntp_select.h (revision 416ba5c74546f32a993436a99516d35008e9f384)
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