]> git.sur5r.net Git - openldap/blob - libraries/vms/ucx_select.h
Import some lint removal
[openldap] / libraries / vms / ucx_select.h
1 /*
2  * Select uses bit masks of file descriptors in longs.  These macros
3  * manipulate such bit fields.
4  *
5  * FD_SETSIZE is the number file descriptors select() is able to
6  * deal with.  For DEC TCP/IP on VMS this is currently 32.
7  */
8 #define FD_SETSIZE      32
9 #define NBBY    8               /* number of bits in a byte */
10
11 typedef long    fd_mask;
12 #define NFDBITS (sizeof(fd_mask) * NBBY)        /* bits per mask */
13
14 #ifndef howmany
15 #define howmany(x, y)   (((x)+((y)-1))/(y))
16 #endif
17
18 typedef struct fd_set {
19         fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
20 } fd_set;
21
22 #define FD_SET(n, p)    ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
23 #define FD_CLR(n, p)    ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
24 #define FD_ISSET(n, p)  ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
25 #define FD_ZERO(p)      memset((char *)(p), 0, sizeof(*(p)))
26
27 #define getdtablesize() FD_SETSIZE
28