+} PACKED tFInfo;
+
+/**
+ * \brief fd_set for select()
+ */
+typedef struct
+{
+ //! Bitmap of set file descriptors
+ Uint16 flags[MAX_FILE_DESCS/16];
+} fd_set;
+
+/**
+ * \brief Clear a descriptor flag in a fd_set
+ * \param fd File descriptor to clear
+ * \param fdsetp Set to modify
+ */
+#define FD_CLR(fd, fdsetp) ((fdsetp)->flags[(fd)/16]&=~(1<<((fd)%16)))
+/**
+ * \brief Set a descriptor flag in a fd_set
+ * \param fd File descriptor to set
+ * \param fdsetp Set to modify
+ */
+#define FD_SET(fd, fdsetp) ((fdsetp)->flags[(fd)/16]|=~(1<<((fd)%16)))
+/**
+ * \brief Test a descriptor flag in a fd_set
+ * \param fd File descriptor to test
+ * \param fdsetp Set to modify
+ */
+#define FD_ISSET(fd, fdsetp) ((fdsetp)->flags[(fd)/16]&(1<<((fd)%16)))