xref: /netbsd-src/external/bsd/ntp/dist/include/ntp_select.h (revision b1c86f5f087524e68db12794ee9c3e3da1ab17a0)
1 /*	$NetBSD: ntp_select.h,v 1.1.1.1 2009/12/13 16:54:53 kardel Exp $	*/
2 
3 /*
4  * Not all machines define FD_SET in sys/types.h
5  */
6 #ifndef NTP_SELECT_H
7 #define NTP_SELECT_H
8 
9 /* Was: (defined(RS6000)||defined(SYS_PTX))&&!defined(_BSD) */
10 /* Could say: !defined(FD_SET) && defined(HAVE_SYS_SELECT_H) */
11 #if defined(HAVE_SYS_SELECT_H) && !defined(_BSD)
12 #ifndef SYS_VXWORKS
13 #include <sys/select.h>
14 #else
15 #include <sockLib.h>
16 extern int  select (int width, fd_set *pReadFds, fd_set *pWriteFds,
17 		    fd_set *pExceptFds, struct timeval *pTimeOut);
18 
19 #endif
20 #endif
21 
22 #if !defined(FD_SET)
23 #define NFDBITS         32
24 #define FD_SETSIZE      32
25 #define FD_SET(n, p)    ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
26 #define FD_CLR(n, p)    ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
27 #define FD_ISSET(n, p)  ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
28 #define FD_ZERO(p)      memset((char *)(p), 0, sizeof(*(p)))
29 #endif
30 
31 #if defined(VMS)
32 typedef struct {
33     unsigned int fds_bits[1];
34 } fd_set;
35 #endif
36 
37 #ifdef SYS_WINNT
38 /* ports/winnt/libntp/setpriority.c */
39 extern	void	InitSockets(void);
40 #endif
41 
42 #endif	/* NTP_SELECT_H */
43