2 * Acess2 Dynamic Linker
3 * - By John Hodge (thePowersGang)
6 * - fd_set structure used by select()
8 #ifndef _ACESS__FD_SET_H_
9 #define _ACESS__FD_SET_H_
11 #define FD_SETSIZE 128
13 typedef unsigned short fd_set_ent_t;
16 * \brief fd_set for select()
20 fd_set_ent_t flags[FD_SETSIZE/16];
24 static inline void FD_ZERO(fd_set *fdsetp)
26 int i = FD_SETSIZE/16;
30 static inline void FD_CLR(int fd, fd_set *fdsetp)
32 if(fd < 0 || fd > FD_SETSIZE) return;
33 fdsetp->flags[fd/16] &= (fd_set_ent_t) ((~1 << (fd%16))) & 0xFFFF;
35 static inline void FD_SET(int fd, fd_set *fdsetp)
37 if(fd < 0 || fd > FD_SETSIZE) return;
38 fdsetp->flags[fd/16] |= (fd_set_ent_t) (1 << (fd%16));
40 static inline int FD_ISSET(int fd, fd_set *fdsetp)
42 if(fd < 0 || fd > FD_SETSIZE) return 0;
43 return !!( fdsetp->flags[fd/16] & (1<<(fd%16)) );