home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / header45.zip / stack16 / sys / select.h < prev    next >
Text File  |  1999-05-11  |  1KB  |  50 lines

  1. #ifndef __SELECT_32H
  2. #define __SELECT_32H
  3.  
  4. /*
  5. ** Check for BORLAND Compiler
  6. */
  7. #ifdef __BORLANDC__       /* DRC01 - BORLAND */
  8. #ifndef _System           /* DRC01 */
  9. #define _System _syscall  /* DRC01 - redefine _System to _syscall */
  10. #endif                    /* DRC01 */
  11. #endif                    /* DRC01 */
  12.  
  13. #ifdef __HIGHC__          /* DRC02 - changed _System */
  14. #define _System           /* DRC02 */
  15. #endif                    /* DRC02 */
  16.  
  17.  
  18. #define NBBY    8               /* number of bits in a byte */
  19. #ifndef FD_SETSIZE
  20. #define FD_SETSIZE      2048
  21. #endif
  22.  
  23. typedef unsigned int    fd_mask;
  24. #define NFDBITS (sizeof(fd_mask) * NBBY)        /* bits per mask */
  25. #ifndef howmany
  26. #define howmany(x, y)   (((x)+((y)-1))/(y))
  27. #endif
  28.  
  29. typedef struct fd_set {
  30.         fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
  31. } fd_set;
  32.  
  33.  
  34. #define FD_SET(n, p)    ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
  35. #define FD_CLR(n, p)    ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
  36. #define FD_ISSET(n, p)  ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
  37. #define FD_ZERO(p)      bzero((char *)(p), sizeof(*(p)))
  38.  
  39. #ifdef BSD_SELECT
  40. #define select(a,b,c,d,e) bsdselect(a,b,c,d,e)
  41. int _System bsdselect(int,
  42.                        struct fd_set *,
  43.                        struct fd_set *,
  44.                        struct fd_set *,
  45.                        struct timeval *);
  46. #endif
  47.  
  48. #endif /* __SELECT_32H */
  49.  
  50.