13e12c5d1SDavid du Colombier #ifndef __SELECT_H 23e12c5d1SDavid du Colombier #define __SELECT_H 3*219b2ee8SDavid du Colombier #ifndef _BSD_EXTENSION 43e12c5d1SDavid du Colombier This header file is an extension to ANSI/POSIX 53e12c5d1SDavid du Colombier #endif 63e12c5d1SDavid du Colombier #pragma lib "/$M/lib/ape/libap.a" 73e12c5d1SDavid du Colombier 8*219b2ee8SDavid du Colombier #ifndef _FD_SET_T 9*219b2ee8SDavid du Colombier #define _FD_SET_T 103e12c5d1SDavid du Colombier /* BSD select, and adjunct types and macros */ 113e12c5d1SDavid du Colombier 123e12c5d1SDavid du Colombier /* assume 96 fds is sufficient for fdset size */ 133e12c5d1SDavid du Colombier 143e12c5d1SDavid du Colombier typedef struct fd_set { 153e12c5d1SDavid du Colombier long fds_bits[3]; 163e12c5d1SDavid du Colombier } fd_set; 173e12c5d1SDavid du Colombier 183e12c5d1SDavid du Colombier #define FD_SET(n,p) ((p)->fds_bits[(n)>>5] |= (1 << ((n) &0x1f))) 193e12c5d1SDavid du Colombier #define FD_CLR(n,p) ((p)->fds_bits[(n)>>5] &= ~(1 << ((n) &0x1f))) 203e12c5d1SDavid du Colombier #define FD_ISSET(n,p) ((p)->fds_bits[(n)>>5] & (1 << ((n) &0x1f))) 213e12c5d1SDavid du Colombier #define FD_ZERO(p) ((p)->fds_bits[0] =0, (p)->fds_bits[1] =0, (p)->fds_bits[2] =0) 22*219b2ee8SDavid du Colombier #endif 233e12c5d1SDavid du Colombier 243e12c5d1SDavid du Colombier #ifdef __cplusplus 253e12c5d1SDavid du Colombier extern "C" { 263e12c5d1SDavid du Colombier #endif 273e12c5d1SDavid du Colombier 283e12c5d1SDavid du Colombier extern int select(int, fd_set*, fd_set*, fd_set*, struct timeval *); 293e12c5d1SDavid du Colombier 303e12c5d1SDavid du Colombier #ifdef __cplusplus 313e12c5d1SDavid du Colombier } 323e12c5d1SDavid du Colombier #endif 333e12c5d1SDavid du Colombier 343e12c5d1SDavid du Colombier #endif 35