summaryrefslogtreecommitdiff
path: root/lib/libc/select
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/select')
-rw-r--r--lib/libc/select/pselect.c11
-rw-r--r--lib/libc/select/select.c9
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/libc/select/pselect.c b/lib/libc/select/pselect.c
new file mode 100644
index 00000000..75d31d87
--- /dev/null
+++ b/lib/libc/select/pselect.c
@@ -0,0 +1,11 @@
+#include <sys/select.h>
+#include <stdint.h>
+#include <syscall.h>
+
+int pselect(int nfds, fd_set *restrict readfds, fd_set *restrict writefds,
+ fd_set *restrict errorfds, const struct timespec *restrict timeout,
+ const sigset_t *restrict sigmask)
+{
+ return syscall(pselect6, nfds, readfds, writefds, errorfds, timeout,
+ ((syscall_arg_t[]){ (uintptr_t)sigmask, 8 }));
+}
diff --git a/lib/libc/select/select.c b/lib/libc/select/select.c
new file mode 100644
index 00000000..4e9f2f99
--- /dev/null
+++ b/lib/libc/select/select.c
@@ -0,0 +1,9 @@
+#include <sys/select.h>
+#include <syscall.h>
+
+int select(int nfds, fd_set *restrict readfds, fd_set *restrict writefds,
+ fd_set *restrict errorfds, struct timeval *restrict timeout)
+{
+ return syscall(pselect6, nfds, readfds, writefds, errorfds, timeout,
+ ((syscall_arg_t[]){ 0, 8 }));
+}