diff options
Diffstat (limited to 'libc/include/sys/select.h')
-rw-r--r-- | libc/include/sys/select.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libc/include/sys/select.h b/libc/include/sys/select.h index 32c1206..0c4a823 100644 --- a/libc/include/sys/select.h +++ b/libc/include/sys/select.h @@ -29,11 +29,10 @@ #ifndef _SYS_SELECT_H_ #define _SYS_SELECT_H_ +#include <linux/time.h> +#include <signal.h> #include <sys/cdefs.h> -#include <sys/time.h> #include <sys/types.h> -#include <signal.h> -#include <string.h> __BEGIN_DECLS @@ -49,7 +48,14 @@ typedef struct { #define __FDMASK(fd) (1UL << ((fd) % NFDBITS)) #define __FDS_BITS(set) (((fd_set*)(set))->fds_bits) -#define FD_ZERO(set) (memset(set, 0, sizeof(*(fd_set*)(set)))) +/* Inline loop so we don't have to declare memset. */ +#define FD_ZERO(set) \ + do { \ + size_t __i; \ + for (__i = 0; __i < __FDSET_LONGS; ++__i) { \ + (set)->fds_bits[__i] = 0; \ + } \ + } while (0) extern void __FD_CLR_chk(int, fd_set*, size_t); extern void __FD_SET_chk(int, fd_set*, size_t); |