mq_notify: rework to fix use-after-close/double-close bugs
[musl] / include / sys / select.h
index dd4176d..b3bab1d 100644 (file)
@@ -4,11 +4,7 @@
 extern "C" {
 #endif
 
-#if __STDC_VERSION__ >= 199901L
-#define __restrict restrict
-#elif !defined(__GNUC__)
-#define __restrict
-#endif
+#include <features.h>
 
 #define __NEED_size_t
 #define __NEED_time_t
@@ -23,8 +19,7 @@ extern "C" {
 
 typedef unsigned long fd_mask;
 
-typedef struct
-{
+typedef struct {
        unsigned long fds_bits[FD_SETSIZE / 8 / sizeof(long)];
 } fd_set;
 
@@ -36,6 +31,14 @@ typedef struct
 int select (int, fd_set *__restrict, fd_set *__restrict, fd_set *__restrict, struct timeval *__restrict);
 int pselect (int, fd_set *__restrict, fd_set *__restrict, fd_set *__restrict, const struct timespec *__restrict, const sigset_t *__restrict);
 
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+#define NFDBITS (8*(int)sizeof(long))
+#endif
+
+#if _REDIR_TIME64
+__REDIR(select, __select_time64);
+__REDIR(pselect, __pselect_time64);
+#endif
 
 #ifdef __cplusplus
 }