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

cvs diff -r1.5 -r1.6 src/sys/compat/linux/arch/aarch64/syscalls.master (expand / switch to context diff)
--- 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); }

cvs diff -r1.3 -r1.4 src/sys/compat/linux/arch/alpha/syscalls.conf (expand / switch to context diff)
--- 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"

cvs diff -r1.102 -r1.103 src/sys/compat/linux/arch/alpha/syscalls.master (expand / switch to context diff)
--- 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); }

cvs diff -r1.75 -r1.76 src/sys/compat/linux/arch/arm/syscalls.master (expand / switch to context diff)
--- 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); }

cvs diff -r1.130 -r1.131 src/sys/compat/linux/arch/i386/syscalls.master (expand / switch to context diff)
--- 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); }

cvs diff -r1.101 -r1.102 src/sys/compat/linux/arch/m68k/syscalls.master (expand / switch to context diff)
--- 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); }

cvs diff -r1.74 -r1.75 src/sys/compat/linux/arch/mips/syscalls.master (expand / switch to context diff)
--- 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); }

cvs diff -r1.80 -r1.81 src/sys/compat/linux/arch/powerpc/syscalls.master (expand / switch to context diff)
--- 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); }