X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2Finclude%2Fsys%2Ftypes.h;h=92e279177714e16b8986f898bc3b4e6ae819169d;hb=2c1df972d9b8d2ccbffbc672d985bf8bda72f7ab;hp=2fad39fc38459216454542a7c66c6c50d9d0f8e4;hpb=22621d0f86a4b3ca5038e470f105d941fbbd7c62;p=tpg%2Facess2.git diff --git a/Usermode/include/sys/types.h b/Usermode/include/sys/types.h index 2fad39fc..92e27917 100644 --- a/Usermode/include/sys/types.h +++ b/Usermode/include/sys/types.h @@ -27,6 +27,20 @@ typedef struct { #define S_IFSOCK 0140000 /* socket */ #define S_IFIFO 0010000 /* fifo */ +#define FD_SETSIZE 128 + +/** + * \brief fd_set for select() + */ +typedef struct +{ + uint16_t flags[FD_SETSIZE/16]; +} fd_set; + +static inline void FD_ZERO(fd_set *fdsetp) {int i=FD_SETSIZE/16;while(i--)fdsetp->flags[i]=0; } +static inline void FD_CLR(int fd, fd_set *fdsetp) { fdsetp->flags[fd/16]&=~(1<<(fd%16)); } +static inline void FD_SET(int fd, fd_set *fdsetp) { fdsetp->flags[fd/16]|=1<<(fd%16); } +static inline int FD_ISSET(int fd, fd_set *fdsetp) { return fdsetp->flags[fd/16]&(1<<(fd%16)); } typedef uint32_t pid_t; typedef uint32_t tid_t;