Files

13 lines
515 B
C

#ifndef _YGGDRASIL_SYS_SELECT_H
#define _YGGDRASIL_SYS_SELECT_H 1
#define __FD_INDEX(fd) ((fd) / sizeof(uint64_t))
#define __FD_BIT(fd) ((fd) % sizeof(uint64_t))
#define FD_CLR(fd, set) ((set)->bits[__FD_INDEX(fd)] &= ~(1 << __FD_BIT(fd)))
#define FD_ISSET(fd, set) (((set)->bits[__FD_INDEX(fd)] & (1 << __FD_BIT(fd))) != 0)
#define FD_SET(fd, set) ((set)->bits[__FD_INDEX(fd)] |= (1 << __FD_BIT(fd)))
#define FD_ZERO(set) ((void) memset((set)->bits, 0, sizeof((set)->bits)))
#endif