13 lines
515 B
C
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
|