syscalls.master revision 1.81
1	$NetBSD: syscalls.master,v 1.81 2023/07/28 19:01:11 christos Exp $  
2
3;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
4
5; Derived from NetBSD's sys/compat/linux/arch/i386/syscalls.master
6; sys/compat/linux/arch/m68k/syscalls.master
7; and from Linux's arch/ppc/kernel/misc.S
8;
9; We have problems for a few syscalls, specially:
10; 142 ppc_select -> sys_new_select -> sys_select (Conflicts with 82 ???).
11;
12; Expect problems with the following, which have an architecture dependent
13; implementation in Linux/powerpc:
14; 29  pause
15; 42  pipe      tested. no problem.
16; 59  olduname
17; 101 ioperm
18; 109 uname
19; 117 ipc
20;
21; Most of syscalls after 182 that were introduced in Linux-2.4 are UNIMPL.
22;
23; The following are UNIMPL here. The Linux kernel implements them but just logs
24; a kernel error and returns -ENOSYS.
25; 110 iopl
26; 113 vm86
27; 123 modify_ldt
28; 198 sys_pciconfig_read
29; 199 sys_pciconfig_write
30; 200 sys_pciconfig_iobase
31;
32; Emmanuel Dreyfus <p99dreyf@criens.u-psud.fr>
33
34; NetBSD powerpc COMPAT_LINUX system call name/number "master" file.
35; (See syscalls.conf to see what it is processed into.)
36;
37; Fields: number type [type-dependent ...]
38;	number	system call number, must be in order
39;	type	one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
40;		the compatibility options defined in syscalls.conf.
41;
42; types:
43;	STD	always included
44;	OBSOL	obsolete, not included in system
45;	UNIMPL	unimplemented, not included in system
46;	NODEF	included, but don't define the syscall number
47;	NOARGS	included, but don't define the syscall args structure
48;	INDIR	included, but don't define the syscall args structure
49;		and allow it to be "really" varargs.
50;
51; The compat options are defined in the syscalls.conf file, and the
52; compat option name is prefixed to the syscall name.  Other than
53; that, they're like NODEF (for 'compat' options), or STD (for
54; 'libcompat' options).
55;
56; The type-dependent arguments are as follows:
57; For STD, NODEF, NOARGS, and compat syscalls:
58;	{ pseudo-proto } [alias]
59; For other syscalls:
60;	[comment]
61;
62; #ifdef's, etc. may be included, and are copied to the output files.
63; #include's are copied to the syscall names and switch definition files only.
64
65#include <sys/param.h>
66#include <sys/poll.h>
67#include <sys/systm.h>
68#include <sys/signal.h>
69#include <sys/mount.h>
70#include <sys/syscallargs.h>
71
72#include <compat/linux/common/linux_types.h>
73#include <compat/linux/common/linux_signal.h>
74#include <compat/linux/common/linux_siginfo.h>
75#include <compat/linux/common/linux_machdep.h>
76#include <compat/linux/common/linux_mmap.h>
77
78#include <compat/linux/linux_syscallargs.h>
79
80%%
81
820	NOARGS		{ int|linux_sys||nosys(void); } syscall
831	STD		{ int|linux_sys||exit(int rval); }
842	NOARGS		{ int|sys||fork(void); }
853	NOARGS		{ ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
864	NOARGS		{ ssize_t|sys||write(int fd, const void *buf, \
87			    size_t nbyte); }
885	STD		{ int|linux_sys||open(const char *path, int flags, \
89			    linux_umode_t mode); }
906	NOARGS		{ int|sys||close(int fd); }
917	STD		{ int|linux_sys||waitpid(int pid, int *status, \
92			    int options);}
938	STD		{ int|linux_sys||creat(const char *path, linux_umode_t mode); }
949	NOARGS		{ int|sys||link(const char *path, const char *link); }
9510	STD		{ int|linux_sys||unlink(const char *path); }
9611	NOARGS		{ int|sys||execve(const char *path, char **argp, \
97			    char **envp); }
9812	NOARGS		{ int|sys||chdir(const char *path); }
9913	STD		{ int|linux_sys||time(linux_time_t *t); }
10014	STD		{ int|linux_sys||mknod(const char *path, linux_umode_t mode, \
101			    unsigned dev); }
10215	NOARGS		{ int|sys||chmod(const char *path, int mode); }
10316	NOARGS		{ int|sys||__posix_lchown(const char *path, uid_t uid, \
104			    gid_t gid); }
10517	OBSOL		break
10618	OBSOL		ostat
10719	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
108			    int whence); }
10920	NOARGS 		{ pid_t|sys||getpid(void); }
11021	UNIMPL		mount
11122	OBSOL		umount
11223	NOARGS		{ int|sys||setuid(uid_t uid); }
11324	NOARGS		{ uid_t|sys||getuid(void); }
11425	STD		{ int|linux_sys||stime(linux_time_t *t); }
11526	STD		{ int|linux_sys||ptrace(int request, int pid, \
116			    long addr, long data); }
11727	STD		{ int|linux_sys||alarm(unsigned int secs); }
11828	OBSOL		ofstat
11929	STD		{ int|linux_sys||pause(void); }
12030	STD		{ int|linux_sys||utime(const char *path, \
121			    struct linux_utimbuf *times); }
12231	OBSOL		stty
12332	OBSOL		gtty
12433	NOARGS		{ int|sys||access(const char *path, int flags); }
12534	STD		{ int|linux_sys||nice(int incr); }
12635	OBSOL		ftime
12736	NOARGS		{ int|sys||sync(void); }
12837	STD		{ int|linux_sys||kill(int pid, int signum); }
12938	NOARGS		{ int|sys||__posix_rename(const char *from, \
130			    const char *to); }
13139	NOARGS		{ int|sys||mkdir(const char *path, linux_umode_t mode); }
13240	NOARGS		{ int|sys||rmdir(const char *path); }
13341	NOARGS		{ int|sys||dup(int fd); }
13442	STD		{ int|linux_sys||pipe(int *pfds); }
13543	STD		{ int|linux_sys||times(struct times *tms); }
13644	OBSOL		prof
13745	STD		{ int|linux_sys||brk(char *nsize); }
13846	NOARGS		{ int|sys||setgid(gid_t gid); }
13947	NOARGS		{ gid_t|sys||getgid(void); }
14048	STD		{ int|linux_sys||signal(int signum, \
141			    linux_handler_t handler); }
14249	NOARGS		{ uid_t|sys||geteuid(void); }
14350	NOARGS		{ gid_t|sys||getegid(void); }
14451	NOARGS		{ int|sys||acct(char *path); }
14552	UNIMPL		umount
14653	OBSOL		lock
14754	STD		{ int|linux_sys||ioctl(int fd, u_long com, \
148			    void *data); }
14955	STD		{ int|linux_sys||fcntl(int fd, int cmd, void *arg); }
15056	OBSOL		mpx
15157	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
15258	OBSOL		ulimit
15359 	STD		{ int|linux_sys||olduname(struct linux_old_utsname \
154			   *up); }
15560	NOARGS		{ int|sys||umask(int newmask); }
15661	NOARGS		{ int|sys||chroot(char *path); }
15762	UNIMPL		ustat
15863	NOARGS		{ int|sys||dup2(int from, int to); }
15964	NOARGS		{ pid_t|sys||getppid(void); }
16065	NOARGS		{ int|sys||getpgrp(void); }
16166	NOARGS		{ int|sys||setsid(void); }
16267	STD		{ int|linux_sys||sigaction(int signum, \
163			    const struct linux_old_sigaction *nsa, \
164			    struct linux_old_sigaction *osa); }
16568	STD		{ int|linux_sys||siggetmask(void); }
16669	STD		{ int|linux_sys||sigsetmask(linux_old_sigset_t mask); }
16770	NOARGS		{ int|sys||setreuid(uid_t ruid, uid_t euid); }
16871	NOARGS		{ int|sys||setregid(gid_t rgid, gid_t egid); }
16972	STD		{ int|linux_sys||sigsuspend(void *restart, \
170			    int oldmask, int mask); }
17173	STD		{ int|linux_sys||sigpending(linux_old_sigset_t *set); }
17274	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
173			    u_int len);}
17475	STD		{ int|linux_sys||setrlimit(u_int which, \
175			    struct orlimit *rlp); }
17676	STD		{ int|linux_sys||getrlimit(u_int which, \
177			    struct orlimit *rlp); }
17877	NOARGS		{ int|compat_50_sys||getrusage(int who, \
179			    struct rusage50 *rusage); }
18078	STD		{ int|linux_sys||gettimeofday(struct timeval50 *tp, \
181			    struct timezone *tzp); }
18279	STD		{ int|linux_sys||settimeofday(struct timeval50 *tp, \
183			    struct timezone *tzp); }
18480	NOARGS		{ int|sys||getgroups(int gidsetsize, gid_t *gidset); }
18581	NOARGS		{ int|sys||setgroups(int gidsetsize, gid_t *gidset); }
18682	STD		{ int|linux_sys||select(int nfds, fd_set* readfds, \
187					fd_set* writefds, fd_set* exceptfds, \
188					struct timeval50 *timeout); }
18983	NOARGS		{ int|sys||symlink(const char *path, const char *to); }
19084	NOARGS		{ int|compat_43_sys||lstat(const char *path, \
191			    struct stat43 *up); } oolstat
19285	NOARGS		{ ssize_t|sys||readlink(const char *path, char *buf, \
193			    int count); }
194#ifdef EXEC_AOUT
19586	STD		{ int|linux_sys||uselib(const char *path); }
196#else
19786	UNIMPL		sys_uselib
198#endif
19987	STD		{ int|linux_sys||swapon(char *name); }
20088	STD		{ int|linux_sys||reboot(int magic1, int magic2, \
201			    int cmd, void *arg); }
20289	STD		{ int|linux_sys||readdir(int fd, void *dent, \
203			    unsigned int count); }
20490	NOARGS		{ int|linux_sys||mmap(unsigned long addr, size_t len, \
205			    int prot, int flags, int fd, linux_off_t offset); }
20691	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
20792	NOARGS		{ int|compat_43_sys||truncate(const char *path, \
208			    long length); }
20993	NOARGS		{ int|compat_43_sys||ftruncate(int fd, long length); }
21094	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
21195	NOARGS		{ int|sys||__posix_fchown(int fd, uid_t uid, \
212			    gid_t gid); }
21396	STD		{ int|linux_sys||getpriority(int which, int who); }
21497	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
21598	NOARGS		{ int|sys||profil(void *samples, u_int size, \
216			    u_int offset, u_int scale); }
21799	STD		{ int|linux_sys||statfs(const char *path, \
218			    struct linux_statfs *sp); }
219100	STD		{ int|linux_sys||fstatfs(int fd, \
220			    struct linux_statfs *sp); }
221101	UNIMPL		ioperm
222102	STD		{ int|linux_sys||socketcall(int what, void *args); }
223103	UNIMPL		syslog
224104	NOARGS		{ int|compat_50_sys||setitimer(int which, \
225			    struct itimerval50 *itv, \
226			    struct itimerval50 *oitv); }
227105	NOARGS		{ int|compat_50_sys||getitimer(int which, \
228			    struct itimerval50 *itv); }
229106	STD		{ int|linux_sys||stat(const char *path, \
230			    struct linux_stat *sp); }
231107	STD		{ int|linux_sys||lstat(const char *path, \
232			    struct linux_stat *sp); }
233108	STD		{ int|linux_sys||fstat(int fd, struct linux_stat *sp); }
234109	STD		{ int|linux_sys||uname(struct linux_utsname *up); }
235110	UNIMPL		iopl
236111	UNIMPL		vhangup
237112	UNIMPL		idle
238113	UNIMPL		vm86old
239114	STD		{ int|linux_sys||wait4(int pid, int *status, \
240			    int options, struct rusage50 *rusage); }
241115	STD		{ int|linux_sys||swapoff(const char *path); }
242116	STD		{ int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
243117	STD		{ int|linux_sys||ipc(int what, int a1, int a2, int a3, \
244			    void *ptr); }
245118	NOARGS		{ int|sys||fsync(int fd); }
246119	STD		{ int|linux_sys||sigreturn(struct linux_sigcontext *scp); }
247120	STD		{ int|linux_sys||clone(int flags, void *stack, \
248			    void *parent_tidptr, void *tls, void *child_tidptr); }
249121	STD		{ int|linux_sys||setdomainname(char *domainname, \
250			    int len); }
251122	STD		{ int|linux_sys||new_uname(struct linux_utsname *up); }
252123	UNIMPL		modify_ldt
253124	UNIMPL		adjtimex
254125	STD		{ int|linux_sys||mprotect(const void *start, \
255			    unsigned long len, int prot); }
256126	STD		{ int|linux_sys||sigprocmask(int how, \
257			    const linux_old_sigset_t *set, \
258			    linux_old_sigset_t *oset); }
259127	UNIMPL		create_module
260128	UNIMPL		init_module
261129	UNIMPL		delete_module
262130	UNIMPL		get_kernel_syms
263131	UNIMPL		quotactl
264132	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
265133	NOARGS		{ int|sys||fchdir(int fd); }
266134	UNIMPL		bdflush
267135	UNIMPL		sysfs
268136	STD		{ int|linux_sys||personality(unsigned long per); }
269137	UNIMPL		afs_syscall
270138	STD		{ int|linux_sys||setfsuid(uid_t uid); }
271139	STD		{ int|linux_sys||setfsgid(gid_t gid); }
272140	STD		{ int|linux_sys||llseek(int fd, u_int32_t ohigh, \
273			    u_int32_t olow, void *res, int whence); }
274141	STD		{ int|linux_sys||getdents(int fd, \
275			    struct linux_dirent *dent, unsigned int count); }
276142	STD		{ int|linux_sys||new_select(int nfds, fd_set *readfds, \
277			    fd_set *writefds, fd_set *exceptfds, \
278			    struct timeval50 *timeout); }
279143	NOARGS		{ int|sys||flock(int fd, int how); }
280144	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
281145	NOARGS		{ ssize_t|sys||readv(int fd, \
282			    const struct iovec *iovp, int iovcnt); }
283146	NOARGS		{ ssize_t|sys||writev(int fd, \
284			    const struct iovec *iovp, int iovcnt); }
285147	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
286148	STD		{ int|linux_sys||fdatasync(int fd); }
287149	STD		{ int|linux_sys||__sysctl(struct linux___sysctl *lsp); }
288150	NOARGS		{ int|sys||mlock(void *addr, size_t len); }
289151	NOARGS		{ int|sys||munlock(void *addr, size_t len); }
290152	NOARGS		{ int|sys||mlockall(int flags); }
291153	NOARGS		{ int|sys||munlockall(void); }
292154	STD		{ int|linux_sys||sched_setparam(pid_t pid, \
293			    const struct linux_sched_param *sp); }
294155	STD		{ int|linux_sys||sched_getparam(pid_t pid, \
295			    struct linux_sched_param *sp); }
296156	STD		{ int|linux_sys||sched_setscheduler(pid_t pid, \
297			    int policy, const struct linux_sched_param *sp); }
298157	STD		{ int|linux_sys||sched_getscheduler(pid_t pid); }
299158	STD		{ int|linux_sys||sched_yield(void); }
300159	STD		{ int|linux_sys||sched_get_priority_max(int policy); }
301160	STD		{ int|linux_sys||sched_get_priority_min(int policy); }
302161	UNIMPL		sched_rr_get_interval
303162	STD		{ int|linux_sys||nanosleep( \
304			    const struct linux_timespec *rqtp, \
305			    struct linux_timespec *rmtp); }
306163	STD		{ void *|linux_sys||mremap(void *old_address, \
307			    size_t old_size, size_t new_size, u_long flags); }
308164	STD		{ int|linux_sys||setresuid(uid_t ruid, uid_t euid, \
309			    uid_t suid); }
310165	STD		{ int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \
311			    uid_t *suid); }
312166	UNIMPL		query_module
313167	NOARGS		{ int|sys||poll(struct pollfd *fds, u_int nfds, \
314			    int timeout); }
315168	UNIMPL		nfsservctl
316169	STD		{ int|linux_sys||setresgid(gid_t rgid, gid_t egid, \
317			    gid_t sgid); }
318170	STD		{ int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \
319			    gid_t *sgid); }
320171	UNIMPL		prctl
321172	STD		{ int|linux_sys||rt_sigreturn( \
322			    struct linux_rt_sigframe *sfp); }
323173	STD		{ int|linux_sys||rt_sigaction(int signum, \
324			    const struct linux_sigaction *nsa, \
325			    struct linux_sigaction *osa, \
326			    size_t sigsetsize); }
327174	STD		{ int|linux_sys||rt_sigprocmask(int how, \
328			    const linux_sigset_t *set, \
329			    linux_sigset_t *oset, \
330			    size_t sigsetsize); }
331175	STD		{ int|linux_sys||rt_sigpending( \
332			    linux_sigset_t *set, \
333			    size_t sigsetsize); }
334176	STD		{ int|linux_sys||rt_sigtimedwait( \
335			    const linux_sigset_t *set, \
336			    linux_siginfo_t *info, \
337			    const struct linux_timespec *timeout); }
338177	STD		{ int|linux_sys||rt_queueinfo(int pid, int signum, \
339			    linux_siginfo_t *uinfo); }
340178	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
341			    size_t sigsetsize); }
342179	STD		{ int|linux_sys||pread(int fd, char *buf, \
343			    size_t nbyte, off_t offset); }
344180	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
345			    size_t nbyte, off_t offset); }
346181	NOARGS		{ int|sys||__posix_chown(const char *path, uid_t uid, \
347			    gid_t gid); }
348182	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
349183	UNIMPL		capget
350184	UNIMPL		capset
351185	STD		{ int|linux_sys||sigaltstack( \
352			    const struct linux_sigaltstack *ss, \
353			    struct linux_sigaltstack *oss); }
354186	UNIMPL		sendfile
355187	UNIMPL		getpmsg
356188	UNIMPL		putpmsg
357189	NOARGS		{ int|sys|14|vfork(void); }
358190	STD		{ int|linux_sys||ugetrlimit(int which, \
359			    struct rlimit *rlp); }
360191	UNIMPL		/* unused */
361#define linux_sys_mmap2_args linux_sys_mmap_args
362192	NOARGS		{ linux_off_t|linux_sys||mmap2(unsigned long addr, \
363			    size_t len, int prot, int flags, int fd, \
364			    linux_off_t offset); }
365193	STD		{ int|linux_sys||truncate64(const char *path, \
366			    off_t length); }
367194	STD		{ int|linux_sys||ftruncate64(unsigned int fd, \
368			    off_t length); }
369195	STD		{ int|linux_sys||stat64(const char *path, \
370			    struct linux_stat64 *sp); }
371196	STD		{ int|linux_sys||lstat64(const char *path, \
372			    struct linux_stat64 *sp); }
373197	STD		{ int|linux_sys||fstat64(int fd, \
374			    struct linux_stat64 *sp); }
375198	UNIMPL		sys_pciconfig_read
376199	UNIMPL		sys_pciconfig_write
377200	UNIMPL		sys_pciconfig_iobase
378201	UNIMPL		/* Unused (MacOnLinux project) */
379202	STD		{ int|linux_sys||getdents64(int fd, \
380			    struct linux_dirent64 *dent, unsigned int count); }
381203	UNIMPL		pivot_root
382204	STD		{ int|linux_sys||fcntl64(int fd, int cmd, void *arg); }
383205	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
384206	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
385207	NOARGS		{ pid_t|linux_sys||gettid(void); }
386208	STD		{ int|linux_sys||tkill(int tid, int sig); }
387209	STD		{ int|linux_sys||setxattr(char *path, char *name, \
388			    void *value, size_t size, int flags); }
389210	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
390			    void *value, size_t size, int flags); }
391211	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
392			    void *value, size_t size, int flags); }
393212	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
394			    void *value, size_t size); }
395213	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
396			    void *value, size_t size); }
397214	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
398			    void *value, size_t size); }
399215	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
400			    size_t size); }
401216	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
402			    size_t size); }
403217	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
404			    size_t size); }
405218	STD		{ int|linux_sys||removexattr(char *path, char *name); }
406219	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
407220	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
408221	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
409			    const struct linux_timespec *timeout, int *uaddr2, \
410			    int val3); }
411222	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
412			    unsigned int len, unsigned long *mask); }
413223	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
414			    unsigned int len, unsigned long *mask); }
415224	UNIMPL		/* unused */
416225	UNIMPL		tuxcall
417226	UNIMPL		sendfile64
418227	UNIMPL		io_setup
419228	UNIMPL		io_destroy
420229	UNIMPL		io_getevents
421230	UNIMPL		io_submit
422231	UNIMPL		io_cancel
423232	STD		{ int|linux_sys||set_tid_address(int *tid); }
424233	STD		{ int|linux_sys||fadvise64(int fd, off_t offset, \
425			    size_t len, int advice); }
426234	STD		{ int|linux_sys||exit_group(int error_code); }
427235	UNIMPL		lookup_dcookie
428236	STD		{ int|linux_sys||epoll_create(int size); }
429237	STD		{ int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
430			    struct linux_epoll_event *event); }
431238	STD		{ int|linux_sys||epoll_wait(int epfd, \
432			    struct linux_epoll_event *events, int maxevents, \
433			    int timeout); }
434239	UNIMPL		remap_file_pages
435240	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
436			    struct linux_sigevent *evp, timer_t *timerid); }
437241	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
438			    int flags, const struct linux_itimerspec *tim, \
439			    struct linux_itimerspec *otim); }
440242	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
441			    struct linux_itimerspec *tim); }
442243	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
443244	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
444245	STD		{ int|linux_sys||clock_settime(clockid_t which, \
445			    struct linux_timespec *tp); }
446246	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
447			    struct linux_timespec *tp); }
448247	STD		{ int|linux_sys||clock_getres(clockid_t which, \
449			    struct linux_timespec *tp); }
450248	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
451			    int flags, struct linux_timespec *rqtp, \
452			    struct linux_timespec *rmtp); }
453249	UNIMPL		swapcontext
454250	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
455251	NOARGS		{ int|compat_50_sys||utimes(const char *path, \
456			    const struct timeval50 *tptr); }
457252	STD		{ int|linux_sys||statfs64(const char *path, \
458			    size_t sz, struct linux_statfs64 *sp); }
459253	STD		{ int|linux_sys||fstatfs64(int fd, \
460			    size_t sz, struct linux_statfs64 *sp); }
461254	STD		{ int|linux_sys||fadvise64_64(int fd, off_t offset, \
462			    off_t len, int advice); }
463255	UNIMPL		rtas
464256	UNIMPL		/* reserved for sys_debug_setcontext */
465257	UNIMPL		/* reserved for vserver */
466258	UNIMPL		/* reserved for new sys_remap_file_pages */
467259	UNIMPL		/* reserved for new sys_mbind */
468260	UNIMPL		/* reserved for new sys_get_mempolicy */
469261	UNIMPL		/* reserved for new sys_set_mempolicy */
470262	UNIMPL		mq_open
471263	UNIMPL		mq_unlink
472264	UNIMPL		mq_timedsend
473265	UNIMPL		mq_timedreceive
474266	UNIMPL		mq_notify
475267	UNIMPL		mq_getsetattr
476268	UNIMPL		kexec_load
477269	UNIMPL		add_key
478270	UNIMPL		request_key
479271	UNIMPL		keyctl
480272	UNIMPL		waitid
481273	UNIMPL		ioprio_set
482274	UNIMPL		ioprio_get
483275	UNIMPL		inotify_init
484276	UNIMPL		inotify_add_watch
485277	UNIMPL		inotify_rm_watch
486278	UNIMPL		spu_run
487279	UNIMPL		spu_create
488280	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
489			   fd_set *writefds, fd_set *exceptfds, \
490			   struct linux_timespec *timeout, \
491			   linux_sized_sigset_t *ss); }
492281	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
493			    struct linux_timespec *timeout, \
494			    linux_sigset_t *sigset); }
495282	UNIMPL		unshare
496283	UNIMPL		splice
497284	UNIMPL		tee
498285	UNIMPL		vmsplice
499286	STD		{ int|linux_sys||openat(int fd, const char *path, \
500			    int flags, ... linux_umode_t mode); }
501287	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
502			    linux_umode_t mode); }
503288	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
504			    linux_umode_t mode, unsigned dev); }
505289	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
506			    uid_t owner, gid_t group, int flag); }
507290	UNIMPL		futimesat
508291	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
509			    struct linux_stat64 *sp, int flag); }
510292	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
511			    int flag); }
512293	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
513			    int tofd, const char *to); }
514294	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
515			    int fd2, const char *name2, int flags); }
516295	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
517			    const char *path2); }
518296	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
519			    char *buf, size_t bufsize); }
520297	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
521			    linux_umode_t mode); }
522298	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
523			    int amode); }
524			;
525			; The NetBSD native robust list calls have different
526			; argument names / types, but they are ABI-compatible
527			; with Linux.
528			;
529299	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
530			    size_t len); }
531300	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
532			    void **headp, size_t *lenp); }
533301	UNIMPL		move_pages
534302	UNIMPL		getcpu
535303	STD		{ int|linux_sys||epoll_pwait(int epfd, \
536			    struct linux_epoll_event *events, int maxevents, \
537			    int timeout, const linux_sigset_t *sigmask); }
538304	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
539			    struct linux_timespec *times, int flag); }
540305	UNIMPL		signalfd
541306	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
542			    int flags); }
543307	STD		{ int|linux_sys||eventfd(unsigned int initval); }
544308	UNIMPL		sync_file_range2
545309	STD		{ int|linux_sys||fallocate(int fd, int mode, \
546			    off_t offset, off_t len); }
547310	UNIMPL		subpage_prot
548311	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
549			    const struct linux_itimerspec *tim, \
550			    struct linux_itimerspec *otim); }
551312	STD		{ int|linux_sys||timerfd_gettime(int fd, \
552			    struct linux_itimerspec *tim); }
553313	UNIMPL		signalfd4
554314	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
555			    int flags); }
556315	STD		{ int|linux_sys||epoll_create1(int flags); }
557316	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
558317	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
559318	UNIMPL		inotify_init1
560319	UNIMPL		perf_event_open
561320	STD		{ int|linux_sys||preadv(int fd, \
562			    const struct iovec *iovp, int iovcnt, \
563			    unsigned long off_lo, unsigned long off_hi); }
564321	STD		{ int|linux_sys||pwritev(int fd, \
565			    const struct iovcnt *iovp, int iovcnt, \
566			    unsigned long off_lo, unsigned long off_hi); }
567322	UNIMPL		rt_tgsigqueueinfo
568323	UNIMPL		fanotify_init
569324	UNIMPL		fanotify_mark
570325	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
571			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
572326	UNIMPL		socket
573327	UNIMPL		bind
574328	UNIMPL		connect
575329	UNIMPL		listen
576330	UNIMPL		accept
577331	UNIMPL		getsockname
578332	UNIMPL		getpeername
579333	UNIMPL		socketpair
580334	UNIMPL		send
581335	UNIMPL		sendto
582336	UNIMPL		recv
583337	UNIMPL		recvfrom
584338	UNIMPL		shutdown
585339	UNIMPL		setsockopt
586340	UNIMPL		getsockopt
587341	UNIMPL		sendmsg
588342	UNIMPL		recvmsg
589343	STD		{ int|linux_sys||recvmmsg(int s, \
590			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
591			    unsigned int flags, struct timespec *timeout); }
592344	STD		{ int|linux_sys||accept4(int s, \
593			    struct osockaddr *name, \
594			    int *anamelen, int flags); }
595345	UNIMPL		name_to_handle_at
596346	UNIMPL		open_by_handle_at
597347	UNIMPL		clock_adjtime
598348	UNIMPL		syncfs
599349	STD		{ int|linux_sys||sendmmsg(int s, \
600			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
601			    unsigned int flags); }
602350	UNIMPL		setns
603351	UNIMPL		process_vm_readv
604352	UNIMPL		process_vm_writev
605353	UNIMPL		finit_module
606354	UNIMPL		kcmp
607355	UNIMPL		sched_setattr
608356	UNIMPL		sched_getattr
609357	UNIMPL		renameat2
610358	UNIMPL		seccomp
611359	NOARGS		{ ssize_t|sys||getrandom(void *buf, size_t buflen, \
612			    unsigned int flags); }
613360	UNIMPL		memfd_create
614361	UNIMPL		bpf
615362	UNIMPL		execveat
616363	UNIMPL		switch_endian
617364	UNIMPL		userfaultfd
618365	UNIMPL		membarrier
619366	UNIMPL
620367	UNIMPL
621368	UNIMPL
622369	UNIMPL
623370	UNIMPL
624371	UNIMPL
625372	UNIMPL
626373	UNIMPL
627374	UNIMPL
628375	UNIMPL
629376	UNIMPL
630377	UNIMPL
631378	UNIMPL		mlock2
632379	UNIMPL		copy_file_range
633380	UNIMPL		preadv2
634381	UNIMPL		pwritev2
635382	UNIMPL		kexec_file_load
636383	UNIMPL
637384	UNIMPL
638385	UNIMPL
639386	UNIMPL
640387	UNIMPL
641388	UNIMPL
642389	UNIMPL
643390	UNIMPL
644391	UNIMPL
645392	UNIMPL
646393	UNIMPL
647394	UNIMPL
648395	UNIMPL
649396	UNIMPL
650397	UNIMPL
651398	UNIMPL
652399	UNIMPL
653400	UNIMPL
654401	UNIMPL
655402	UNIMPL
656403	UNIMPL
657404	UNIMPL
658405	UNIMPL
659406	UNIMPL
660407	UNIMPL
661408	UNIMPL
662409	UNIMPL
663410	UNIMPL
664411	UNIMPL
665412	UNIMPL
666413	UNIMPL
667414	UNIMPL
668415	UNIMPL
669416	UNIMPL
670417	UNIMPL
671418	UNIMPL
672419	UNIMPL
673420	UNIMPL
674421	UNIMPL
675422	UNIMPL
676423	UNIMPL
677424	UNIMPL
678425	UNIMPL
679426	UNIMPL
680427	UNIMPL
681428	UNIMPL
682429	UNIMPL
683430	UNIMPL
684431	UNIMPL
685432	UNIMPL
686433	UNIMPL
687434	UNIMPL
688435	UNIMPL
689436	UNIMPL
690437	UNIMPL
691438	UNIMPL
692439	UNIMPL
693440	UNIMPL
694441	STD		{ int|linux_sys||epoll_pwait2(int epfd, \
695			    struct linux_epoll_event *events, int maxevents, \
696			    const struct linux_timespec *timeout, \
697			    const linux_sigset_t *sigmask); }
698