home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lansystk.zip / INCLUDE / MPTN / SYS / SELECT.H < prev    next >
C/C++ Source or Header  |  1998-05-08  |  1KB  |  35 lines

  1. #ifndef __SELECT_32H
  2. #define __SELECT_32H
  3.  
  4. #define NBBY    8               /* number of bits in a byte */
  5. #ifndef FD_SETSIZE
  6. #define FD_SETSIZE      2048
  7. #endif
  8.  
  9. typedef unsigned int    fd_mask;
  10. #define NFDBITS (sizeof(fd_mask) * NBBY)        /* bits per mask */
  11. #ifndef howmany
  12. #define howmany(x, y)   (((x)+((y)-1))/(y))
  13. #endif
  14.  
  15. typedef struct fd_set {
  16.         fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
  17. } fd_set;
  18.  
  19.  
  20. #define FD_SET(n, p)    ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
  21. #define FD_CLR(n, p)    ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
  22. #define FD_ISSET(n, p)  ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
  23. #define FD_ZERO(p)      bzero((char *)(p), sizeof(*(p)))
  24.  
  25. #ifdef BSD_SELECT
  26. #define select(a,b,c,d,e) bsdselect(a,b,c,d,e)
  27. int _System bsdselect(int,
  28.                        struct fd_set *,
  29.                        struct fd_set *,
  30.                        struct fd_set *,
  31.                        struct timeval *);
  32. #endif
  33.  
  34. #endif /* __SELECT_32H */
  35.