Fri Jul 28 19:01:11 2023 UTC ()
add epoll syscalls
(christos)
diff -r1.5 -r1.6 src/sys/compat/linux/arch/aarch64/syscalls.master
diff -r1.3 -r1.4 src/sys/compat/linux/arch/alpha/syscalls.conf
diff -r1.102 -r1.103 src/sys/compat/linux/arch/alpha/syscalls.master
diff -r1.75 -r1.76 src/sys/compat/linux/arch/arm/syscalls.master
diff -r1.130 -r1.131 src/sys/compat/linux/arch/i386/syscalls.master
diff -r1.101 -r1.102 src/sys/compat/linux/arch/m68k/syscalls.master
diff -r1.74 -r1.75 src/sys/compat/linux/arch/mips/syscalls.master
diff -r1.80 -r1.81 src/sys/compat/linux/arch/powerpc/syscalls.master
--- src/sys/compat/linux/arch/aarch64/syscalls.master 2023/07/10 21:08:26 1.5
+++ src/sys/compat/linux/arch/aarch64/syscalls.master 2023/07/28 19:01:10 1.6
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.5 2023/07/10 21:08:26 christos Exp $
+ $NetBSD: syscalls.master,v 1.6 2023/07/28 19:01:10 christos Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@@ -97,9 +97,12 @@
18 UNIMPL lookup_dcookie
19 STD { int|linux_sys||eventfd2(unsigned int initval, \
int flags); }
-20 UNIMPL epoll_create1
-21 UNIMPL epoll_ctl
-22 UNIMPL epoll_pwait
+20 STD { int|linux_sys||epoll_create1(int flags); }
+21 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
+ struct linux_epoll_event *event); }
+22 STD { int|linux_sys||epoll_pwait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout, const linux_sigset_t *sigmask); }
23 NOARGS { int|sys||dup(int fd); }
24 STD { int|linux_sys||dup3(int from, int to, int flags); }
25 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); }
@@ -679,3 +682,7 @@
; we want a "nosys" syscall, we'll just add an extra entry for it.
440 STD { int|linux_sys||nosys(void); }
+441 STD { int|linux_sys||epoll_pwait2(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ const struct linux_timespec *timeout, \
+ const linux_sigset_t *sigmask); }
--- src/sys/compat/linux/arch/alpha/syscalls.conf 2001/03/30 18:31:28 1.3
+++ src/sys/compat/linux/arch/alpha/syscalls.conf 2023/07/28 19:01:11 1.4
@@ -1,4 +1,4 @@
-# $NetBSD: syscalls.conf,v 1.3 2001/03/30 18:31:28 jdolecek Exp $
+# $NetBSD: syscalls.conf,v 1.4 2023/07/28 19:01:11 christos Exp $
sysnames="linux_syscalls.c"
sysnumhdr="linux_syscall.h"
@@ -10,6 +10,6 @@
switchname="linux_sysent"
namesname="linux_syscallnames"
constprefix="LINUX_SYS_"
-nsysent=512
+nsysent=1024
sys_nosys="linux_sys_nosys"
--- src/sys/compat/linux/arch/alpha/syscalls.master 2021/12/02 04:29:47 1.102
+++ src/sys/compat/linux/arch/alpha/syscalls.master 2023/07/28 19:01:11 1.103
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.102 2021/12/02 04:29:47 ryo Exp $
+ $NetBSD: syscalls.master,v 1.103 2023/07/28 19:01:11 christos Exp $
;
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@@ -655,9 +655,12 @@
404 UNIMPL /* unused */
405 STD { int|linux_sys||exit_group(int error_code); }
406 UNIMPL lookup_dcookie
-407 UNIMPL sys_epoll_create
-408 UNIMPL sys_epoll_ctl
-409 UNIMPL sys_epoll_wait
+407 STD { int|linux_sys||epoll_create(int size); }
+408 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
+ struct linux_epoll_event *event); }
+409 STD { int|linux_sys||epoll_wait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout); }
410 UNIMPL remap_file_pages
411 STD { int|linux_sys||set_tid_address(int *tid); }
412 UNIMPL restart_syscall
@@ -759,7 +762,9 @@
471 UNIMPL vmsplice
472 UNIMPL move_pages
473 UNIMPL getcpu
-474 UNIMPL epoll_wait
+474 STD { int|linux_sys||epoll_pwait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout, const linux_sigset_t *sigmask); }
475 STD { int|linux_sys||utimensat(int fd, const char *path, \
struct linux_timespec *times, int flag); }
476 UNIMPL signalfd
@@ -780,7 +785,7 @@
484 UNIMPL signalfd4
485 STD { int|linux_sys||eventfd2(unsigned int initval, \
int flags); }
-486 UNIMPL epoll_create1
+486 STD { int|linux_sys||epoll_create1(int flags); }
487 STD { int|linux_sys||dup3(int from, int to, int flags); }
488 STD { int|linux_sys||pipe2(int *pfds, int flags); }
489 UNIMPL inotify_init1
@@ -814,3 +819,47 @@
508 UNIMPL sched_setattr
509 UNIMPL sched_getattr
510 UNIMPL renameat2
+511 UNIMPL
+512 UNIMPL
+513 UNIMPL
+514 UNIMPL
+515 UNIMPL
+516 UNIMPL
+517 UNIMPL
+518 UNIMPL
+519 UNIMPL
+520 UNIMPL
+521 UNIMPL
+522 UNIMPL
+523 UNIMPL
+524 UNIMPL
+525 UNIMPL
+526 UNIMPL
+527 UNIMPL
+528 UNIMPL
+529 UNIMPL
+530 UNIMPL
+531 UNIMPL
+532 UNIMPL
+533 UNIMPL
+534 UNIMPL
+535 UNIMPL
+536 UNIMPL
+537 UNIMPL
+538 UNIMPL
+539 UNIMPL
+540 UNIMPL
+541 UNIMPL
+542 UNIMPL
+543 UNIMPL
+544 UNIMPL
+545 UNIMPL
+546 UNIMPL
+547 UNIMPL
+548 UNIMPL
+549 UNIMPL
+550 UNIMPL
+551 STD { int|linux_sys||epoll_pwait2(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ const struct linux_timespec *timeout, \
+ const linux_sigset_t *sigmask); }
--- src/sys/compat/linux/arch/arm/syscalls.master 2021/12/02 04:29:48 1.75
+++ src/sys/compat/linux/arch/arm/syscalls.master 2023/07/28 19:01:11 1.76
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.75 2021/12/02 04:29:48 ryo Exp $
+ $NetBSD: syscalls.master,v 1.76 2023/07/28 19:01:11 christos Exp $
; Derived from sys/compat/linux/arch/*/syscalls.master
; and from Linux 2.4.12 arch/arm/kernel/calls.S
@@ -424,9 +424,12 @@
247 UNIMPL io_cancel
248 STD { int|linux_sys||exit_group(int error_code); }
249 UNIMPL lookup_dcookie
-250 UNIMPL epoll_create
-251 UNIMPL epoll_ctl
-252 UNIMPL epoll_wait
+250 STD { int|linux_sys||epoll_create(int size); }
+251 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
+ struct linux_epoll_event *event); }
+252 STD { int|linux_sys||epoll_wait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout); }
253 UNIMPL remap_file_pages
254 UNIMPL set_thread_area
255 UNIMPL get_thread_area
@@ -557,7 +560,9 @@
343 UNIMPL vmsplice
344 UNIMPL move_pages
345 UNIMPL getcpu
-346 UNIMPL epoll_wait
+346 STD { int|linux_sys||epoll_pwait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout, const linux_sigset_t *sigmask); }
347 UNIMPL kexec_load
348 STD { int|linux_sys||utimensat(int fd, const char *path, \
struct linux_timespec *times, int flag); }
@@ -575,7 +580,7 @@
355 UNIMPL signalfd4
356 STD { int|linux_sys||eventfd2(unsigned int initval, \
int flags); }
-357 UNIMPL epoll_create1
+357 STD { int|linux_sys||epoll_create1(int flags); }
358 STD { int|linux_sys||dup3(int from, int to, int flags); }
359 STD { int|linux_sys||pipe2(int *pfds, int flags); }
360 UNIMPL inotify_init1
@@ -632,3 +637,58 @@
387 UNIMPL usr26
388 UNIMPL usr32
389 STD { int|linux_sys||set_tls(void *tls); }
+390 UNIMPL
+391 UNIMPL
+392 UNIMPL
+393 UNIMPL
+394 UNIMPL
+395 UNIMPL
+396 UNIMPL
+397 UNIMPL
+398 UNIMPL
+399 UNIMPL
+400 UNIMPL
+401 UNIMPL
+402 UNIMPL
+403 UNIMPL
+404 UNIMPL
+405 UNIMPL
+406 UNIMPL
+407 UNIMPL
+408 UNIMPL
+409 UNIMPL
+410 UNIMPL
+411 UNIMPL
+412 UNIMPL
+413 UNIMPL
+414 UNIMPL
+415 UNIMPL
+416 UNIMPL
+417 UNIMPL
+418 UNIMPL
+419 UNIMPL
+420 UNIMPL
+421 UNIMPL
+422 UNIMPL
+423 UNIMPL
+424 UNIMPL
+425 UNIMPL
+426 UNIMPL
+427 UNIMPL
+428 UNIMPL
+429 UNIMPL
+430 UNIMPL
+431 UNIMPL
+432 UNIMPL
+433 UNIMPL
+434 UNIMPL
+435 UNIMPL
+436 UNIMPL
+437 UNIMPL
+438 UNIMPL
+439 UNIMPL
+440 UNIMPL
+441 STD { int|linux_sys||epoll_pwait2(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ const struct linux_timespec *timeout, \
+ const linux_sigset_t *sigmask); }
--- src/sys/compat/linux/arch/i386/syscalls.master 2023/07/10 13:05:27 1.130
+++ src/sys/compat/linux/arch/i386/syscalls.master 2023/07/28 19:01:11 1.131
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.130 2023/07/10 13:05:27 christos Exp $
+ $NetBSD: syscalls.master,v 1.131 2023/07/28 19:01:11 christos Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@@ -428,9 +428,12 @@
251 UNIMPL /* unused */
252 STD { int|linux_sys||exit_group(int error_code); }
253 UNIMPL lookup_dcookie
-254 UNIMPL epoll_create
-255 UNIMPL epoll_ctl
-256 UNIMPL epoll_wait
+254 STD { int|linux_sys||epoll_create(int size); }
+255 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
+ struct linux_epoll_event *event); }
+256 STD { int|linux_sys||epoll_wait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout); }
257 UNIMPL remap_file_pages
258 STD { int|linux_sys||set_tid_address(int *tid); }
259 STD { int|linux_sys||timer_create(clockid_t clockid, \
@@ -525,7 +528,9 @@
316 UNIMPL vmsplice
317 UNIMPL move_pages
318 UNIMPL getcpu
-319 UNIMPL epoll_wait
+319 STD { int|linux_sys||epoll_pwait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout, const linux_sigset_t *sigmask); }
320 STD { int|linux_sys||utimensat(int fd, const char *path, \
struct linux_timespec *times, int flag); }
321 UNIMPL signalfd
@@ -542,7 +547,7 @@
327 UNIMPL signalfd4
328 STD { int|linux_sys||eventfd2(unsigned int initval, \
int flags); }
-329 UNIMPL epoll_create1
+329 STD { int|linux_sys||epoll_create1(int flags); }
330 STD { int|linux_sys||dup3(int from, int to, int flags); }
331 STD { int|linux_sys||pipe2( int *pfds, int flags); }
332 UNIMPL inotify_init1
@@ -661,3 +666,7 @@
438 UNIMPL pidfd_getfd
439 UNIMPL faccessat2
440 UNIMPL process_madvise
+441 STD { int|linux_sys||epoll_pwait2(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ const struct linux_timespec *timeout, \
+ const linux_sigset_t *sigmask); }
--- src/sys/compat/linux/arch/m68k/syscalls.master 2021/12/02 04:29:48 1.101
+++ src/sys/compat/linux/arch/m68k/syscalls.master 2023/07/28 19:01:11 1.102
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.101 2021/12/02 04:29:48 ryo Exp $
+ $NetBSD: syscalls.master,v 1.102 2023/07/28 19:01:11 christos Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@@ -438,9 +438,12 @@
size_t len, int advice); }
247 UNIMPL exit_group
248 UNIMPL lookup_dcookie
-249 UNIMPL epoll_create
-250 UNIMPL epoll_ctl
-251 UNIMPL epoll_wait
+249 STD { int|linux_sys||epoll_create(int size); }
+250 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
+ struct linux_epoll_event *event); }
+251 STD { int|linux_sys||epoll_wait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout); }
252 UNIMPL remap_file_pages
253 STD { int|linux_sys||set_tid_address(int *tid); }
254 STD { int|linux_sys||timer_create(clockid_t clockid, \
@@ -543,7 +546,9 @@
unsigned int len, unsigned long *mask); }
313 UNIMPL kexec_load
314 UNIMPL getcpu
-315 UNIMPL epoll_wait
+315 STD { int|linux_sys||epoll_pwait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout, const linux_sigset_t *sigmask); }
316 STD { int|linux_sys||utimensat(int fd, const char *path, \
struct linux_timespec *times, int flag); }
317 UNIMPL signalfd
@@ -560,7 +565,7 @@
323 UNIMPL signalfd4
324 STD { int|linux_sys||eventfd2(unsigned int initval, \
int flags); }
-325 UNIMPL epoll_create1
+325 STD { int|linux_sys||epoll_create1(int flags); }
326 STD { int|linux_sys||dup3(int from, int to, int flags); }
327 STD { int|linux_sys||pipe2(int *pfds, int flags); }
328 UNIMPL inotify_init1
@@ -626,3 +631,69 @@
376 UNIMPL copy_file_range
377 UNIMPL preadv2
378 UNIMPL pwritev2
+379 UNIMPL
+380 UNIMPL
+381 UNIMPL
+382 UNIMPL
+383 UNIMPL
+384 UNIMPL
+385 UNIMPL
+386 UNIMPL
+387 UNIMPL
+388 UNIMPL
+389 UNIMPL
+390 UNIMPL
+391 UNIMPL
+392 UNIMPL
+393 UNIMPL
+394 UNIMPL
+395 UNIMPL
+396 UNIMPL
+397 UNIMPL
+398 UNIMPL
+399 UNIMPL
+400 UNIMPL
+401 UNIMPL
+402 UNIMPL
+403 UNIMPL
+404 UNIMPL
+405 UNIMPL
+406 UNIMPL
+407 UNIMPL
+408 UNIMPL
+409 UNIMPL
+410 UNIMPL
+411 UNIMPL
+412 UNIMPL
+413 UNIMPL
+414 UNIMPL
+415 UNIMPL
+416 UNIMPL
+417 UNIMPL
+418 UNIMPL
+419 UNIMPL
+420 UNIMPL
+421 UNIMPL
+422 UNIMPL
+423 UNIMPL
+424 UNIMPL
+425 UNIMPL
+426 UNIMPL
+427 UNIMPL
+428 UNIMPL
+429 UNIMPL
+430 UNIMPL
+431 UNIMPL
+432 UNIMPL
+433 UNIMPL
+434 UNIMPL
+435 UNIMPL
+436 UNIMPL
+437 UNIMPL
+438 UNIMPL
+439 UNIMPL
+440 UNIMPL
+441 STD { int|linux_sys||epoll_pwait2(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ const struct linux_timespec *timeout, \
+ const linux_sigset_t *sigmask); }
--- src/sys/compat/linux/arch/mips/syscalls.master 2021/12/02 04:29:48 1.74
+++ src/sys/compat/linux/arch/mips/syscalls.master 2023/07/28 19:01:11 1.75
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.74 2021/12/02 04:29:48 ryo Exp $
+ $NetBSD: syscalls.master,v 1.75 2023/07/28 19:01:11 christos Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@@ -427,9 +427,12 @@
245 UNIMPL io_cancel
246 STD { int|linux_sys||exit_group(int error_code); }
247 UNIMPL lookup_dcookie
-248 UNIMPL epoll_create
-249 UNIMPL epoll_ctl
-250 UNIMPL epoll_wait
+248 STD { int|linux_sys||epoll_create(int size); }
+249 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
+ struct linux_epoll_event *event); }
+250 STD { int|linux_sys||epoll_wait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout); }
251 UNIMPL remap_file_pages
252 STD { int|linux_sys||set_tid_address(int *tid); }
253 UNIMPL restart_syscall
@@ -529,7 +532,9 @@
void **headp, size_t *lenp); }
311 UNIMPL kexec_load
312 UNIMPL getcpu
-313 UNIMPL epoll_pwait
+313 STD { int|linux_sys||epoll_pwait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout, const linux_sigset_t *sigmask); }
314 UNIMPL ioprio_set
315 UNIMPL ioprio_get
316 STD { int|linux_sys||utimensat(int fd, const char *path, \
@@ -549,7 +554,7 @@
324 UNIMPL signalfd4
325 STD { int|linux_sys||eventfd2(unsigned int initval, \
int flags); }
-326 UNIMPL epoll_create1
+326 STD { int|linux_sys||epoll_create1(int flags); }
327 STD { int|linux_sys||dup3(int from, int to, int flags); }
328 STD { int|linux_sys||pipe2(int *pfds, int flags); }
329 UNIMPL inotify_init1
@@ -602,4 +607,81 @@
364 UNIMPL pkey_mprotect
365 UNIMPL pkey_alloc
366 UNIMPL pkey_free
-
+367 UNIMPL
+368 UNIMPL
+369 UNIMPL
+370 UNIMPL
+371 UNIMPL
+372 UNIMPL
+373 UNIMPL
+374 UNIMPL
+375 UNIMPL
+376 UNIMPL
+377 UNIMPL
+378 UNIMPL
+379 UNIMPL
+380 UNIMPL
+381 UNIMPL
+382 UNIMPL
+383 UNIMPL
+384 UNIMPL
+385 UNIMPL
+386 UNIMPL
+387 UNIMPL
+388 UNIMPL
+389 UNIMPL
+390 UNIMPL
+391 UNIMPL
+392 UNIMPL
+393 UNIMPL
+394 UNIMPL
+395 UNIMPL
+396 UNIMPL
+397 UNIMPL
+398 UNIMPL
+399 UNIMPL
+400 UNIMPL
+401 UNIMPL
+402 UNIMPL
+403 UNIMPL
+404 UNIMPL
+405 UNIMPL
+406 UNIMPL
+407 UNIMPL
+408 UNIMPL
+409 UNIMPL
+410 UNIMPL
+411 UNIMPL
+412 UNIMPL
+413 UNIMPL
+414 UNIMPL
+415 UNIMPL
+416 UNIMPL
+417 UNIMPL
+418 UNIMPL
+419 UNIMPL
+420 UNIMPL
+421 UNIMPL
+422 UNIMPL
+423 UNIMPL
+424 UNIMPL
+425 UNIMPL
+426 UNIMPL
+427 UNIMPL
+428 UNIMPL
+429 UNIMPL
+430 UNIMPL
+431 UNIMPL
+432 UNIMPL
+433 UNIMPL
+434 UNIMPL
+435 UNIMPL
+436 UNIMPL
+437 UNIMPL
+438 UNIMPL
+439 UNIMPL
+440 UNIMPL
+441 STD { int|linux_sys||epoll_pwait2(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ const struct linux_timespec *timeout, \
+ const linux_sigset_t *sigmask); }
--- src/sys/compat/linux/arch/powerpc/syscalls.master 2021/12/02 04:29:48 1.80
+++ src/sys/compat/linux/arch/powerpc/syscalls.master 2023/07/28 19:01:11 1.81
@@ -1,4 +1,4 @@
- $NetBSD: syscalls.master,v 1.80 2021/12/02 04:29:48 ryo Exp $
+ $NetBSD: syscalls.master,v 1.81 2023/07/28 19:01:11 christos Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@@ -425,9 +425,12 @@
size_t len, int advice); }
234 STD { int|linux_sys||exit_group(int error_code); }
235 UNIMPL lookup_dcookie
-236 UNIMPL epoll_create
-237 UNIMPL epoll_ctl
-238 UNIMPL epoll_wait
+236 STD { int|linux_sys||epoll_create(int size); }
+237 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
+ struct linux_epoll_event *event); }
+238 STD { int|linux_sys||epoll_wait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout); }
239 UNIMPL remap_file_pages
240 STD { int|linux_sys||timer_create(clockid_t clockid, \
struct linux_sigevent *evp, timer_t *timerid); }
@@ -529,7 +532,9 @@
void **headp, size_t *lenp); }
301 UNIMPL move_pages
302 UNIMPL getcpu
-303 UNIMPL epoll_wait
+303 STD { int|linux_sys||epoll_pwait(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ int timeout, const linux_sigset_t *sigmask); }
304 STD { int|linux_sys||utimensat(int fd, const char *path, \
struct linux_timespec *times, int flag); }
305 UNIMPL signalfd
@@ -548,7 +553,7 @@
313 UNIMPL signalfd4
314 STD { int|linux_sys||eventfd2(unsigned int initval, \
int flags); }
-315 UNIMPL epoll_create1
+315 STD { int|linux_sys||epoll_create1(int flags); }
316 STD { int|linux_sys||dup3(int from, int to, int flags); }
317 STD { int|linux_sys||pipe2(int *pfds, int flags); }
318 UNIMPL inotify_init1
@@ -628,3 +633,65 @@
380 UNIMPL preadv2
381 UNIMPL pwritev2
382 UNIMPL kexec_file_load
+383 UNIMPL
+384 UNIMPL
+385 UNIMPL
+386 UNIMPL
+387 UNIMPL
+388 UNIMPL
+389 UNIMPL
+390 UNIMPL
+391 UNIMPL
+392 UNIMPL
+393 UNIMPL
+394 UNIMPL
+395 UNIMPL
+396 UNIMPL
+397 UNIMPL
+398 UNIMPL
+399 UNIMPL
+400 UNIMPL
+401 UNIMPL
+402 UNIMPL
+403 UNIMPL
+404 UNIMPL
+405 UNIMPL
+406 UNIMPL
+407 UNIMPL
+408 UNIMPL
+409 UNIMPL
+410 UNIMPL
+411 UNIMPL
+412 UNIMPL
+413 UNIMPL
+414 UNIMPL
+415 UNIMPL
+416 UNIMPL
+417 UNIMPL
+418 UNIMPL
+419 UNIMPL
+420 UNIMPL
+421 UNIMPL
+422 UNIMPL
+423 UNIMPL
+424 UNIMPL
+425 UNIMPL
+426 UNIMPL
+427 UNIMPL
+428 UNIMPL
+429 UNIMPL
+430 UNIMPL
+431 UNIMPL
+432 UNIMPL
+433 UNIMPL
+434 UNIMPL
+435 UNIMPL
+436 UNIMPL
+437 UNIMPL
+438 UNIMPL
+439 UNIMPL
+440 UNIMPL
+441 STD { int|linux_sys||epoll_pwait2(int epfd, \
+ struct linux_epoll_event *events, int maxevents, \
+ const struct linux_timespec *timeout, \
+ const linux_sigset_t *sigmask); }