syscalls.master revision 1.85
1	$NetBSD: syscalls.master,v 1.85 2024/06/29 13:46:10 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#include <compat/linux/common/linux_sched.h>
78
79#include <compat/linux/linux_syscallargs.h>
80
81%%
82
830	NOARGS		{ int|linux_sys||nosys(void); } syscall
841	STD		{ int|linux_sys||exit(int rval); }
852	NOARGS		{ int|sys||fork(void); }
863	NOARGS		{ ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
874	NOARGS		{ ssize_t|sys||write(int fd, const void *buf, \
88			    size_t nbyte); }
895	STD		{ int|linux_sys||open(const char *path, int flags, \
90			    linux_umode_t mode); }
916	NOARGS		{ int|sys||close(int fd); }
927	STD		{ int|linux_sys||waitpid(int pid, int *status, \
93			    int options);}
948	STD		{ int|linux_sys||creat(const char *path, linux_umode_t mode); }
959	NOARGS		{ int|sys||link(const char *path, const char *link); }
9610	STD		{ int|linux_sys||unlink(const char *path); }
9711	NOARGS		{ int|sys||execve(const char *path, char **argp, \
98			    char **envp); }
9912	NOARGS		{ int|sys||chdir(const char *path); }
10013	STD		{ int|linux_sys||time(linux_time_t *t); }
10114	STD		{ int|linux_sys||mknod(const char *path, linux_umode_t mode, \
102			    unsigned dev); }
10315	NOARGS		{ int|sys||chmod(const char *path, int mode); }
10416	NOARGS		{ int|sys||__posix_lchown(const char *path, uid_t uid, \
105			    gid_t gid); }
10617	OBSOL		break
10718	OBSOL		ostat
10819	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
109			    int whence); }
11020	NOARGS 		{ pid_t|sys||getpid(void); }
11121	UNIMPL		mount
11222	OBSOL		umount
11323	NOARGS		{ int|sys||setuid(uid_t uid); }
11424	NOARGS		{ uid_t|sys||getuid(void); }
11525	STD		{ int|linux_sys||stime(linux_time_t *t); }
11626	STD		{ int|linux_sys||ptrace(int request, int pid, \
117			    long addr, long data); }
11827	STD		{ int|linux_sys||alarm(unsigned int secs); }
11928	OBSOL		ofstat
12029	STD		{ int|linux_sys||pause(void); }
12130	STD		{ int|linux_sys||utime(const char *path, \
122			    struct linux_utimbuf *times); }
12331	OBSOL		stty
12432	OBSOL		gtty
12533	NOARGS		{ int|sys||access(const char *path, int flags); }
12634	STD		{ int|linux_sys||nice(int incr); }
12735	OBSOL		ftime
12836	NOARGS		{ int|sys||sync(void); }
12937	STD		{ int|linux_sys||kill(int pid, int signum); }
13038	NOARGS		{ int|sys||__posix_rename(const char *from, \
131			    const char *to); }
13239	NOARGS		{ int|sys||mkdir(const char *path, linux_umode_t mode); }
13340	NOARGS		{ int|sys||rmdir(const char *path); }
13441	NOARGS		{ int|sys||dup(int fd); }
13542	STD		{ int|linux_sys||pipe(int *pfds); }
13643	STD		{ int|linux_sys||times(struct times *tms); }
13744	OBSOL		prof
13845	STD		{ int|linux_sys||brk(char *nsize); }
13946	NOARGS		{ int|sys||setgid(gid_t gid); }
14047	NOARGS		{ gid_t|sys||getgid(void); }
14148	STD		{ int|linux_sys||signal(int signum, \
142			    linux_handler_t handler); }
14349	NOARGS		{ uid_t|sys||geteuid(void); }
14450	NOARGS		{ gid_t|sys||getegid(void); }
14551	NOARGS		{ int|sys||acct(char *path); }
14652	UNIMPL		umount
14753	OBSOL		lock
14854	STD		{ int|linux_sys||ioctl(int fd, u_long com, \
149			    void *data); }
15055	STD		{ int|linux_sys||fcntl(int fd, int cmd, void *arg); }
15156	OBSOL		mpx
15257	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
15358	OBSOL		ulimit
15459	STD		{ int|linux_sys||olduname(struct linux_old_utsname \
155			   *up); }
15660	NOARGS		{ int|sys||umask(int newmask); }
15761	NOARGS		{ int|sys||chroot(char *path); }
15862	UNIMPL		ustat
15963	NOARGS		{ int|sys||dup2(int from, int to); }
16064	NOARGS		{ pid_t|sys||getppid(void); }
16165	NOARGS		{ int|sys||getpgrp(void); }
16266	NOARGS		{ int|sys||setsid(void); }
16367	STD		{ int|linux_sys||sigaction(int signum, \
164			    const struct linux_old_sigaction *nsa, \
165			    struct linux_old_sigaction *osa); }
16668	STD		{ int|linux_sys||siggetmask(void); }
16769	STD		{ int|linux_sys||sigsetmask(linux_old_sigset_t mask); }
16870	NOARGS		{ int|sys||setreuid(uid_t ruid, uid_t euid); }
16971	NOARGS		{ int|sys||setregid(gid_t rgid, gid_t egid); }
17072	STD		{ int|linux_sys||sigsuspend(void *restart, \
171			    int oldmask, int mask); }
17273	STD		{ int|linux_sys||sigpending(linux_old_sigset_t *set); }
17374	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
174			    u_int len);}
17575	STD		{ int|linux_sys||setrlimit(u_int which, \
176			    struct orlimit *rlp); }
17776	STD		{ int|linux_sys||getrlimit(u_int which, \
178			    struct orlimit *rlp); }
17977	NOARGS		{ int|compat_50_sys||getrusage(int who, \
180			    struct rusage50 *rusage); }
18178	STD		{ int|linux_sys||gettimeofday(struct timeval50 *tp, \
182			    struct timezone *tzp); }
18379	STD		{ int|linux_sys||settimeofday(struct timeval50 *tp, \
184			    struct timezone *tzp); }
18580	NOARGS		{ int|sys||getgroups(int gidsetsize, gid_t *gidset); }
18681	NOARGS		{ int|sys||setgroups(int gidsetsize, gid_t *gidset); }
18782	STD		{ int|linux_sys||select(int nfds, fd_set* readfds, \
188					fd_set* writefds, fd_set* exceptfds, \
189					struct timeval50 *timeout); }
19083	NOARGS		{ int|sys||symlink(const char *path, const char *to); }
19184	NOARGS		{ int|compat_43_sys||lstat(const char *path, \
192			    struct stat43 *up); } oolstat
19385	NOARGS		{ ssize_t|sys||readlink(const char *path, char *buf, \
194			    int count); }
195#ifdef EXEC_AOUT
19686	STD		{ int|linux_sys||uselib(const char *path); }
197#else
19886	UNIMPL		sys_uselib
199#endif
20087	STD		{ int|linux_sys||swapon(char *name); }
20188	STD		{ int|linux_sys||reboot(int magic1, int magic2, \
202			    int cmd, void *arg); }
20389	STD		{ int|linux_sys||readdir(int fd, void *dent, \
204			    unsigned int count); }
20590	NOARGS		{ int|linux_sys||mmap(unsigned long addr, size_t len, \
206			    int prot, int flags, int fd, linux_off_t offset); }
20791	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
20892	NOARGS		{ int|compat_43_sys||truncate(const char *path, \
209			    long length); }
21093	NOARGS		{ int|compat_43_sys||ftruncate(int fd, long length); }
21194	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
21295	NOARGS		{ int|sys||__posix_fchown(int fd, uid_t uid, \
213			    gid_t gid); }
21496	STD		{ int|linux_sys||getpriority(int which, int who); }
21597	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
21698	NOARGS		{ int|sys||profil(void *samples, u_int size, \
217			    u_int offset, u_int scale); }
21899	STD		{ int|linux_sys||statfs(const char *path, \
219			    struct linux_statfs *sp); }
220100	STD		{ int|linux_sys||fstatfs(int fd, \
221			    struct linux_statfs *sp); }
222101	UNIMPL		ioperm
223102	STD		{ int|linux_sys||socketcall(int what, void *args); }
224103	UNIMPL		syslog
225104	NOARGS		{ int|compat_50_sys||setitimer(int which, \
226			    struct itimerval50 *itv, \
227			    struct itimerval50 *oitv); }
228105	NOARGS		{ int|compat_50_sys||getitimer(int which, \
229			    struct itimerval50 *itv); }
230106	STD		{ int|linux_sys||stat(const char *path, \
231			    struct linux_stat *sp); }
232107	STD		{ int|linux_sys||lstat(const char *path, \
233			    struct linux_stat *sp); }
234108	STD		{ int|linux_sys||fstat(int fd, struct linux_stat *sp); }
235109	STD		{ int|linux_sys||uname(struct linux_utsname *up); }
236110	UNIMPL		iopl
237111	UNIMPL		vhangup
238112	UNIMPL		idle
239113	UNIMPL		vm86old
240114	STD		{ int|linux_sys||wait4(int pid, int *status, \
241			    int options, struct rusage50 *rusage); }
242115	STD		{ int|linux_sys||swapoff(const char *path); }
243116	STD		{ int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
244117	STD		{ int|linux_sys||ipc(int what, int a1, int a2, int a3, \
245			    void *ptr); }
246118	NOARGS		{ int|sys||fsync(int fd); }
247119	STD		{ int|linux_sys||sigreturn(struct linux_sigcontext *scp); }
248120	STD		{ int|linux_sys||clone(int flags, void *stack, \
249			    void *parent_tidptr, void *tls, void *child_tidptr); }
250121	STD		{ int|linux_sys||setdomainname(char *domainname, \
251			    int len); }
252122	STD		{ int|linux_sys||new_uname(struct linux_utsname *up); }
253123	UNIMPL		modify_ldt
254124	UNIMPL		adjtimex
255125	STD		{ int|linux_sys||mprotect(const void *start, \
256			    unsigned long len, int prot); }
257126	STD		{ int|linux_sys||sigprocmask(int how, \
258			    const linux_old_sigset_t *set, \
259			    linux_old_sigset_t *oset); }
260127	UNIMPL		create_module
261128	UNIMPL		init_module
262129	UNIMPL		delete_module
263130	UNIMPL		get_kernel_syms
264131	UNIMPL		quotactl
265132	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
266133	NOARGS		{ int|sys||fchdir(int fd); }
267134	UNIMPL		bdflush
268135	UNIMPL		sysfs
269136	STD		{ int|linux_sys||personality(unsigned long per); }
270137	UNIMPL		afs_syscall
271138	STD		{ int|linux_sys||setfsuid(uid_t uid); }
272139	STD		{ int|linux_sys||setfsgid(gid_t gid); }
273140	STD		{ int|linux_sys||llseek(int fd, u_int32_t ohigh, \
274			    u_int32_t olow, void *res, int whence); }
275141	STD		{ int|linux_sys||getdents(int fd, \
276			    struct linux_dirent *dent, unsigned int count); }
277142	STD		{ int|linux_sys||new_select(int nfds, fd_set *readfds, \
278			    fd_set *writefds, fd_set *exceptfds, \
279			    struct timeval50 *timeout); }
280143	NOARGS		{ int|sys||flock(int fd, int how); }
281144	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
282145	NOARGS		{ ssize_t|sys||readv(int fd, \
283			    const struct iovec *iovp, int iovcnt); }
284146	NOARGS		{ ssize_t|sys||writev(int fd, \
285			    const struct iovec *iovp, int iovcnt); }
286147	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
287148	STD		{ int|linux_sys||fdatasync(int fd); }
288149	STD		{ int|linux_sys||__sysctl(struct linux___sysctl *lsp); }
289150	NOARGS		{ int|sys||mlock(void *addr, size_t len); }
290151	NOARGS		{ int|sys||munlock(void *addr, size_t len); }
291152	NOARGS		{ int|sys||mlockall(int flags); }
292153	NOARGS		{ int|sys||munlockall(void); }
293154	STD		{ int|linux_sys||sched_setparam(pid_t pid, \
294			    const struct linux_sched_param *sp); }
295155	STD		{ int|linux_sys||sched_getparam(pid_t pid, \
296			    struct linux_sched_param *sp); }
297156	STD		{ int|linux_sys||sched_setscheduler(pid_t pid, \
298			    int policy, const struct linux_sched_param *sp); }
299157	STD		{ int|linux_sys||sched_getscheduler(pid_t pid); }
300158	STD		{ int|linux_sys||sched_yield(void); }
301159	STD		{ int|linux_sys||sched_get_priority_max(int policy); }
302160	STD		{ int|linux_sys||sched_get_priority_min(int policy); }
303161	UNIMPL		sched_rr_get_interval
304162	STD		{ int|linux_sys||nanosleep( \
305			    const struct linux_timespec *rqtp, \
306			    struct linux_timespec *rmtp); }
307163	STD		{ void *|linux_sys||mremap(void *old_address, \
308			    size_t old_size, size_t new_size, u_long flags); }
309164	STD		{ int|linux_sys||setresuid(uid_t ruid, uid_t euid, \
310			    uid_t suid); }
311165	STD		{ int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \
312			    uid_t *suid); }
313166	UNIMPL		query_module
314167	NOARGS		{ int|sys||poll(struct pollfd *fds, u_int nfds, \
315			    int timeout); }
316168	UNIMPL		nfsservctl
317169	STD		{ int|linux_sys||setresgid(gid_t rgid, gid_t egid, \
318			    gid_t sgid); }
319170	STD		{ int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \
320			    gid_t *sgid); }
321171	UNIMPL		prctl
322172	STD		{ int|linux_sys||rt_sigreturn( \
323			    struct linux_rt_sigframe *sfp); }
324173	STD		{ int|linux_sys||rt_sigaction(int signum, \
325			    const struct linux_sigaction *nsa, \
326			    struct linux_sigaction *osa, \
327			    size_t sigsetsize); }
328174	STD		{ int|linux_sys||rt_sigprocmask(int how, \
329			    const linux_sigset_t *set, \
330			    linux_sigset_t *oset, \
331			    size_t sigsetsize); }
332175	STD		{ int|linux_sys||rt_sigpending( \
333			    linux_sigset_t *set, \
334			    size_t sigsetsize); }
335176	STD		{ int|linux_sys||rt_sigtimedwait( \
336			    const linux_sigset_t *set, \
337			    linux_siginfo_t *info, \
338			    const struct linux_timespec *timeout); }
339177	STD		{ int|linux_sys||rt_queueinfo(int pid, int signum, \
340			    linux_siginfo_t *uinfo); }
341178	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
342			    size_t sigsetsize); }
343179	STD		{ int|linux_sys||pread(int fd, char *buf, \
344			    size_t nbyte, off_t offset); }
345180	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
346			    size_t nbyte, off_t offset); }
347181	NOARGS		{ int|sys||__posix_chown(const char *path, uid_t uid, \
348			    gid_t gid); }
349182	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
350183	UNIMPL		capget
351184	UNIMPL		capset
352185	STD		{ int|linux_sys||sigaltstack( \
353			    const struct linux_sigaltstack *ss, \
354			    struct linux_sigaltstack *oss); }
355186	UNIMPL		sendfile
356187	UNIMPL		getpmsg
357188	UNIMPL		putpmsg
358189	NOARGS		{ int|sys|14|vfork(void); }
359190	STD		{ int|linux_sys||ugetrlimit(int which, \
360			    struct rlimit *rlp); }
361191	STD		{ ssize_t|linux_sys||readahead(int fd, off_t offset, \
362			    size_t count); }
363#define linux_sys_mmap2_args linux_sys_mmap_args
364192	NOARGS		{ linux_off_t|linux_sys||mmap2(unsigned long addr, \
365			    size_t len, int prot, int flags, int fd, \
366			    linux_off_t offset); }
367193	STD		{ int|linux_sys||truncate64(const char *path, \
368			    off_t length); }
369194	STD		{ int|linux_sys||ftruncate64(unsigned int fd, \
370			    off_t length); }
371195	STD		{ int|linux_sys||stat64(const char *path, \
372			    struct linux_stat64 *sp); }
373196	STD		{ int|linux_sys||lstat64(const char *path, \
374			    struct linux_stat64 *sp); }
375197	STD		{ int|linux_sys||fstat64(int fd, \
376			    struct linux_stat64 *sp); }
377198	UNIMPL		sys_pciconfig_read
378199	UNIMPL		sys_pciconfig_write
379200	UNIMPL		sys_pciconfig_iobase
380201	UNIMPL		/* Unused (MacOnLinux project) */
381202	STD		{ int|linux_sys||getdents64(int fd, \
382			    struct linux_dirent64 *dent, unsigned int count); }
383203	UNIMPL		pivot_root
384204	STD		{ int|linux_sys||fcntl64(int fd, int cmd, void *arg); }
385205	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
386206	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
387207	NOARGS		{ pid_t|linux_sys||gettid(void); }
388208	STD		{ int|linux_sys||tkill(int tid, int sig); }
389209	STD		{ int|linux_sys||setxattr(char *path, char *name, \
390			    void *value, size_t size, int flags); }
391210	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
392			    void *value, size_t size, int flags); }
393211	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
394			    void *value, size_t size, int flags); }
395212	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
396			    void *value, size_t size); }
397213	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
398			    void *value, size_t size); }
399214	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
400			    void *value, size_t size); }
401215	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
402			    size_t size); }
403216	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
404			    size_t size); }
405217	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
406			    size_t size); }
407218	STD		{ int|linux_sys||removexattr(char *path, char *name); }
408219	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
409220	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
410221	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
411			    const struct linux_timespec *timeout, int *uaddr2, \
412			    int val3); }
413222	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
414			    unsigned int len, unsigned long *mask); }
415223	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
416			    unsigned int len, unsigned long *mask); }
417224	UNIMPL		/* unused */
418225	UNIMPL		tuxcall
419226	UNIMPL		sendfile64
420227	UNIMPL		io_setup
421228	UNIMPL		io_destroy
422229	UNIMPL		io_getevents
423230	UNIMPL		io_submit
424231	UNIMPL		io_cancel
425232	STD		{ int|linux_sys||set_tid_address(int *tid); }
426233	STD		{ int|linux_sys||fadvise64(int fd, off_t offset, \
427			    size_t len, int advice); }
428234	STD		{ int|linux_sys||exit_group(int error_code); }
429235	UNIMPL		lookup_dcookie
430236	STD		{ int|linux_sys||epoll_create(int size); }
431237	STD		{ int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
432			    struct linux_epoll_event *event); }
433238	STD		{ int|linux_sys||epoll_wait(int epfd, \
434			    struct linux_epoll_event *events, int maxevents, \
435			    int timeout); }
436239	UNIMPL		remap_file_pages
437240	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
438			    struct linux_sigevent *evp, timer_t *timerid); }
439241	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
440			    int flags, const struct linux_itimerspec *tim, \
441			    struct linux_itimerspec *otim); }
442242	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
443			    struct linux_itimerspec *tim); }
444243	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
445244	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
446245	STD		{ int|linux_sys||clock_settime(clockid_t which, \
447			    struct linux_timespec *tp); }
448246	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
449			    struct linux_timespec *tp); }
450247	STD		{ int|linux_sys||clock_getres(clockid_t which, \
451			    struct linux_timespec *tp); }
452248	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
453			    int flags, struct linux_timespec *rqtp, \
454			    struct linux_timespec *rmtp); }
455249	UNIMPL		swapcontext
456250	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
457251	NOARGS		{ int|compat_50_sys||utimes(const char *path, \
458			    const struct timeval50 *tptr); }
459252	STD		{ int|linux_sys||statfs64(const char *path, \
460			    size_t sz, struct linux_statfs64 *sp); }
461253	STD		{ int|linux_sys||fstatfs64(int fd, \
462			    size_t sz, struct linux_statfs64 *sp); }
463254	STD		{ int|linux_sys||fadvise64_64(int fd, off_t offset, \
464			    off_t len, int advice); }
465255	UNIMPL		rtas
466256	UNIMPL		/* reserved for sys_debug_setcontext */
467257	UNIMPL		/* reserved for vserver */
468258	UNIMPL		/* reserved for new sys_remap_file_pages */
469259	UNIMPL		/* reserved for new sys_mbind */
470260	UNIMPL		/* reserved for new sys_get_mempolicy */
471261	UNIMPL		/* reserved for new sys_set_mempolicy */
472262	UNIMPL		mq_open
473263	UNIMPL		mq_unlink
474264	UNIMPL		mq_timedsend
475265	UNIMPL		mq_timedreceive
476266	UNIMPL		mq_notify
477267	UNIMPL		mq_getsetattr
478268	UNIMPL		kexec_load
479269	UNIMPL		add_key
480270	UNIMPL		request_key
481271	UNIMPL		keyctl
482272	STD		{ int|linux_sys||waitid(int idtype, id_t id, \
483			    linux_siginfo_t *infop, int options, \
484			    struct rusage50 *rusage); }
485273	UNIMPL		ioprio_set
486274	UNIMPL		ioprio_get
487275	STD		{ int|linux_sys||inotify_init(void); }
488276	STD		{ int|linux_sys||inotify_add_watch(int fd, \
489			    const char *pathname, uint32_t mask); }
490277	STD		{ int|linux_sys||inotify_rm_watch(int fd, int wd); }
491278	UNIMPL		spu_run
492279	UNIMPL		spu_create
493280	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
494			   fd_set *writefds, fd_set *exceptfds, \
495			   struct linux_timespec *timeout, \
496			   linux_sized_sigset_t *ss); }
497281	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
498			    struct linux_timespec *timeout, \
499			    linux_sigset_t *sigset); }
500282	UNIMPL		unshare
501283	UNIMPL		splice
502284	UNIMPL		tee
503285	UNIMPL		vmsplice
504286	STD		{ int|linux_sys||openat(int fd, const char *path, \
505			    int flags, ... linux_umode_t mode); }
506287	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
507			    linux_umode_t mode); }
508288	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
509			    linux_umode_t mode, unsigned dev); }
510289	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
511			    uid_t owner, gid_t group, int flag); }
512290	UNIMPL		futimesat
513291	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
514			    struct linux_stat64 *sp, int flag); }
515292	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
516			    int flag); }
517293	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
518			    int tofd, const char *to); }
519294	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
520			    int fd2, const char *name2, int flags); }
521295	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
522			    const char *path2); }
523296	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
524			    char *buf, size_t bufsize); }
525297	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
526			    linux_umode_t mode); }
527298	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
528			    int amode); }
529			;
530			; The NetBSD native robust list calls have different
531			; argument names / types, but they are ABI-compatible
532			; with Linux.
533			;
534299	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
535			    size_t len); }
536300	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
537			    void **headp, size_t *lenp); }
538301	UNIMPL		move_pages
539302	STD		{ int|linux_sys||getcpu(unsigned int *cpu, \
540			    unsigned int *node, \
541			    struct linux_getcpu_cache *tcache); }
542303	STD		{ int|linux_sys||epoll_pwait(int epfd, \
543			    struct linux_epoll_event *events, int maxevents, \
544			    int timeout, const linux_sigset_t *sigmask); }
545304	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
546			    struct linux_timespec *times, int flag); }
547305	UNIMPL		signalfd
548306	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
549			    int flags); }
550307	STD		{ int|linux_sys||eventfd(unsigned int initval); }
551308	UNIMPL		sync_file_range2
552309	STD		{ int|linux_sys||fallocate(int fd, int mode, \
553			    off_t offset, off_t len); }
554310	UNIMPL		subpage_prot
555311	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
556			    const struct linux_itimerspec *tim, \
557			    struct linux_itimerspec *otim); }
558312	STD		{ int|linux_sys||timerfd_gettime(int fd, \
559			    struct linux_itimerspec *tim); }
560313	UNIMPL		signalfd4
561314	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
562			    int flags); }
563315	STD		{ int|linux_sys||epoll_create1(int flags); }
564316	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
565317	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
566318	STD		{ int|linux_sys||inotify_init1(int flags); }
567319	UNIMPL		perf_event_open
568320	STD		{ int|linux_sys||preadv(int fd, \
569			    const struct iovec *iovp, int iovcnt, \
570			    unsigned long off_lo, unsigned long off_hi); }
571321	STD		{ int|linux_sys||pwritev(int fd, \
572			    const struct iovcnt *iovp, int iovcnt, \
573			    unsigned long off_lo, unsigned long off_hi); }
574322	UNIMPL		rt_tgsigqueueinfo
575323	UNIMPL		fanotify_init
576324	UNIMPL		fanotify_mark
577325	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
578			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
579326	UNIMPL		socket
580327	UNIMPL		bind
581328	UNIMPL		connect
582329	UNIMPL		listen
583330	UNIMPL		accept
584331	UNIMPL		getsockname
585332	UNIMPL		getpeername
586333	UNIMPL		socketpair
587334	UNIMPL		send
588335	UNIMPL		sendto
589336	UNIMPL		recv
590337	UNIMPL		recvfrom
591338	UNIMPL		shutdown
592339	UNIMPL		setsockopt
593340	UNIMPL		getsockopt
594341	UNIMPL		sendmsg
595342	UNIMPL		recvmsg
596343	STD		{ int|linux_sys||recvmmsg(int s, \
597			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
598			    unsigned int flags, struct timespec *timeout); }
599344	STD		{ int|linux_sys||accept4(int s, \
600			    struct osockaddr *name, \
601			    int *anamelen, int flags); }
602345	UNIMPL		name_to_handle_at
603346	UNIMPL		open_by_handle_at
604347	UNIMPL		clock_adjtime
605348	UNIMPL		syncfs
606349	STD		{ int|linux_sys||sendmmsg(int s, \
607			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
608			    unsigned int flags); }
609350	UNIMPL		setns
610351	UNIMPL		process_vm_readv
611352	UNIMPL		process_vm_writev
612353	UNIMPL		finit_module
613354	UNIMPL		kcmp
614355	UNIMPL		sched_setattr
615356	UNIMPL		sched_getattr
616357	UNIMPL		renameat2
617358	UNIMPL		seccomp
618359	NOARGS		{ ssize_t|sys||getrandom(void *buf, size_t buflen, \
619			    unsigned int flags); }
620360	UNIMPL		memfd_create
621361	UNIMPL		bpf
622362	UNIMPL		execveat
623363	UNIMPL		switch_endian
624364	UNIMPL		userfaultfd
625365	UNIMPL		membarrier
626366	UNIMPL
627367	UNIMPL
628368	UNIMPL
629369	UNIMPL
630370	UNIMPL
631371	UNIMPL
632372	UNIMPL
633373	UNIMPL
634374	UNIMPL
635375	UNIMPL
636376	UNIMPL
637377	UNIMPL
638378	UNIMPL		mlock2
639379	UNIMPL		copy_file_range
640380	UNIMPL		preadv2
641381	UNIMPL		pwritev2
642382	UNIMPL		kexec_file_load
643383	STD		{ int|linux_sys||statx(int fd, const char *path, \
644			    int flag, unsigned int mask, \
645			    struct linux_statx *sp); }
646384	UNIMPL
647385	UNIMPL
648386	UNIMPL
649387	UNIMPL
650388	UNIMPL
651389	UNIMPL
652390	UNIMPL
653391	UNIMPL
654392	UNIMPL
655393	UNIMPL
656394	UNIMPL
657395	UNIMPL
658396	UNIMPL
659397	UNIMPL
660398	UNIMPL
661399	UNIMPL
662400	UNIMPL
663401	UNIMPL
664402	UNIMPL
665403	UNIMPL
666404	UNIMPL
667405	UNIMPL
668406	UNIMPL
669407	UNIMPL
670408	UNIMPL
671409	UNIMPL
672410	UNIMPL
673411	UNIMPL
674412	UNIMPL
675413	UNIMPL
676414	UNIMPL
677415	UNIMPL
678416	UNIMPL
679417	UNIMPL
680418	UNIMPL
681419	UNIMPL
682420	UNIMPL
683421	UNIMPL
684422	UNIMPL
685423	UNIMPL
686424	UNIMPL
687425	UNIMPL
688426	UNIMPL
689427	UNIMPL
690428	UNIMPL
691429	UNIMPL
692430	UNIMPL
693431	UNIMPL
694432	UNIMPL
695433	UNIMPL
696434	UNIMPL
697435	UNIMPL
698436	STD		{ int|linux_sys||close_range(unsigned int first, \
699			    unsigned int last, unsigned int flags); }
700437	UNIMPL
701438	UNIMPL
702439	STD		{ int|linux_sys||faccessat2(int fd, const char *path, \
703			    int amode, int flags); }
704440	UNIMPL
705441	STD		{ int|linux_sys||epoll_pwait2(int epfd, \
706			    struct linux_epoll_event *events, int maxevents, \
707			    const struct linux_timespec *timeout, \
708			    const linux_sigset_t *sigmask); }
709