Usermode implementation of select()
[tpg/acess2.git] / Usermode / include / sys / types.h
index 2fad39f..92e2791 100644 (file)
@@ -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;

UCC git Repository :: git.ucc.asn.au