summaryrefslogtreecommitdiff
path: root/include/bits/select.h
diff options
context:
space:
mode:
authorKacper <kacper@mail.openlinux.dev>2025-12-09 19:20:15 +0100
committerKacper <kacper@mail.openlinux.dev>2025-12-09 19:20:15 +0100
commit885f5974cdf65b59415837ae97f5a14ef1350670 (patch)
tree66ac13de29c7f4932c5fcae11773df574e4e256a /include/bits/select.h
parent8f9e448b2ef6db7cd905540c21f3c5b190e7a1e7 (diff)
feat: add gzip and new headers
Diffstat (limited to 'include/bits/select.h')
-rw-r--r--include/bits/select.h27
1 files changed, 12 insertions, 15 deletions
diff --git a/include/bits/select.h b/include/bits/select.h
index f1f952ab..f5b63ccc 100644
--- a/include/bits/select.h
+++ b/include/bits/select.h
@@ -3,28 +3,25 @@
#ifndef __BITS_SELECT_H_
#error "Internal header — include the public API header instead."
+#else
+#undef __BITS_SELECT_H_
#endif
#define FD_SETSIZE 1024
-#define FD_ZERO(set) \
- do { \
- for (size_t i = 0; \
- i < sizeof((set)->fds_bits) / sizeof(fd_mask); i++) \
- (set)->fds_bits[i] = 0; \
- } while (0)
+#define FD_ZERO(set) __builtin_memset((set), 0, sizeof(*(set)))
-#define FD_SET(fd, set) \
- ((set)->fds_bits[(fd) / (8 * sizeof(fd_mask))] |= \
- (1UL << ((fd) % (8 * sizeof(fd_mask)))))
+#define FD_SET(fd, set) \
+ ((set)->fds_bits[(fd) / (8 * sizeof(unsigned long))] |= \
+ 1UL << ((fd) % (8 * sizeof(unsigned long))))
-#define FD_CLR(fd, set) \
- ((set)->fds_bits[(fd) / (8 * sizeof(fd_mask))] &= \
- ~(1UL << ((fd) % (8 * sizeof(fd_mask)))))
+#define FD_CLR(fd, set) \
+ ((set)->fds_bits[(fd) / (8 * sizeof(unsigned long))] &= \
+ ~(1UL << ((fd) % (8 * sizeof(unsigned long)))))
-#define FD_ISSET(fd, set) \
- (((set)->fds_bits[(fd) / (8 * sizeof(fd_mask))] & \
- (1UL << ((fd) % (8 * sizeof(fd_mask))))) != 0)
+#define FD_ISSET(fd, set) \
+ ((set)->fds_bits[(fd) / (8 * sizeof(unsigned long))] & \
+ (1UL << ((fd) % (8 * sizeof(unsigned long)))))
typedef __INT64_TYPE__ time_t;
typedef __INT64_TYPE__ suseconds_t;