syscalls.master revision 1.89
1	$NetBSD: syscalls.master,v 1.89 2025/11/10 15:34:03 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_mqueue.h>
78#include <compat/linux/common/linux_sched.h>
79
80#include <compat/linux/linux_syscallargs.h>
81
82%%
83
840	NOARGS		{ int|linux_sys||nosys(void); } syscall
851	STD		{ int|linux_sys||exit(int rval); }
862	NOARGS		{ int|sys||fork(void); }
873	NOARGS		{ ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
884	NOARGS		{ ssize_t|sys||write(int fd, const void *buf, \
89			    size_t nbyte); }
905	STD		{ int|linux_sys||open(const char *path, int flags, \
91			    linux_umode_t mode); }
926	NOARGS		{ int|sys||close(int fd); }
937	STD		{ int|linux_sys||waitpid(int pid, int *status, \
94			    int options);}
958	STD		{ int|linux_sys||creat(const char *path, linux_umode_t mode); }
969	NOARGS		{ int|sys||link(const char *path, const char *link); }
9710	STD		{ int|linux_sys||unlink(const char *path); }
9811	NOARGS		{ int|sys||execve(const char *path, char **argp, \
99			    char **envp); }
10012	NOARGS		{ int|sys||chdir(const char *path); }
10113	STD		{ int|linux_sys||time(linux_time_t *t); }
10214	STD		{ int|linux_sys||mknod(const char *path, linux_umode_t mode, \
103			    unsigned dev); }
10415	NOARGS		{ int|sys||chmod(const char *path, int mode); }
10516	NOARGS		{ int|sys||__posix_lchown(const char *path, uid_t uid, \
106			    gid_t gid); }
10717	OBSOL		break
10818	OBSOL		ostat
10919	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
110			    int whence); }
11120	NOARGS 		{ pid_t|sys||getpid(void); }
11221	UNIMPL		mount
11322	OBSOL		umount
11423	NOARGS		{ int|sys||setuid(uid_t uid); }
11524	NOARGS		{ uid_t|sys||getuid(void); }
11625	STD		{ int|linux_sys||stime(linux_time_t *t); }
11726	STD		{ int|linux_sys||ptrace(int request, int pid, \
118			    long addr, long data); }
11927	STD		{ int|linux_sys||alarm(unsigned int secs); }
12028	OBSOL		ofstat
12129	STD		{ int|linux_sys||pause(void); }
12230	STD		{ int|linux_sys||utime(const char *path, \
123			    struct linux_utimbuf *times); }
12431	OBSOL		stty
12532	OBSOL		gtty
12633	NOARGS		{ int|sys||access(const char *path, int flags); }
12734	STD		{ int|linux_sys||nice(int incr); }
12835	OBSOL		ftime
12936	NOARGS		{ int|sys||sync(void); }
13037	STD		{ int|linux_sys||kill(int pid, int signum); }
13138	NOARGS		{ int|sys||__posix_rename(const char *from, \
132			    const char *to); }
13339	NOARGS		{ int|sys||mkdir(const char *path, linux_umode_t mode); }
13440	NOARGS		{ int|sys||rmdir(const char *path); }
13541	NOARGS		{ int|sys||dup(int fd); }
13642	STD		{ int|linux_sys||pipe(int *pfds); }
13743	STD		{ int|linux_sys||times(struct times *tms); }
13844	OBSOL		prof
13945	STD		{ int|linux_sys||brk(char *nsize); }
14046	NOARGS		{ int|sys||setgid(gid_t gid); }
14147	NOARGS		{ gid_t|sys||getgid(void); }
14248	STD		{ int|linux_sys||signal(int signum, \
143			    linux_handler_t handler); }
14449	NOARGS		{ uid_t|sys||geteuid(void); }
14550	NOARGS		{ gid_t|sys||getegid(void); }
14651	NOARGS		{ int|sys||acct(char *path); }
14752	UNIMPL		umount
14853	OBSOL		lock
14954	STD		{ int|linux_sys||ioctl(int fd, u_long com, \
150			    void *data); }
15155	STD		{ int|linux_sys||fcntl(int fd, int cmd, void *arg); }
15256	OBSOL		mpx
15357	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
15458	OBSOL		ulimit
15559	STD		{ int|linux_sys||olduname(struct linux_old_utsname \
156			   *up); }
15760	NOARGS		{ int|sys||umask(int newmask); }
15861	NOARGS		{ int|sys||chroot(char *path); }
15962	UNIMPL		ustat
16063	NOARGS		{ int|sys||dup2(int from, int to); }
16164	NOARGS		{ pid_t|sys||getppid(void); }
16265	NOARGS		{ int|sys||getpgrp(void); }
16366	NOARGS		{ int|sys||setsid(void); }
16467	STD		{ int|linux_sys||sigaction(int signum, \
165			    const struct linux_old_sigaction *nsa, \
166			    struct linux_old_sigaction *osa); }
16768	STD		{ int|linux_sys||siggetmask(void); }
16869	STD		{ int|linux_sys||sigsetmask(linux_old_sigset_t mask); }
16970	NOARGS		{ int|sys||setreuid(uid_t ruid, uid_t euid); }
17071	NOARGS		{ int|sys||setregid(gid_t rgid, gid_t egid); }
17172	STD		{ int|linux_sys||sigsuspend(void *restart, \
172			    int oldmask, int mask); }
17373	STD		{ int|linux_sys||sigpending(linux_old_sigset_t *set); }
17474	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
175			    u_int len);}
17675	STD		{ int|linux_sys||setrlimit(u_int which, \
177			    struct orlimit *rlp); }
17876	STD		{ int|linux_sys||getrlimit(u_int which, \
179			    struct orlimit *rlp); }
18077	NOARGS		{ int|compat_50_sys||getrusage(int who, \
181			    struct rusage50 *rusage); }
18278	STD		{ int|linux_sys||gettimeofday(struct timeval50 *tp, \
183			    struct timezone *tzp); }
18479	STD		{ int|linux_sys||settimeofday(struct timeval50 *tp, \
185			    struct timezone *tzp); }
18680	NOARGS		{ int|sys||getgroups(int gidsetsize, gid_t *gidset); }
18781	NOARGS		{ int|sys||setgroups(int gidsetsize, gid_t *gidset); }
18882	STD		{ int|linux_sys||select(int nfds, fd_set* readfds, \
189					fd_set* writefds, fd_set* exceptfds, \
190					struct timeval50 *timeout); }
19183	NOARGS		{ int|sys||symlink(const char *path, const char *to); }
19284	NOARGS		{ int|compat_43_sys||lstat(const char *path, \
193			    struct stat43 *up); } oolstat
19485	NOARGS		{ ssize_t|sys||readlink(const char *path, char *buf, \
195			    int count); }
196#ifdef EXEC_AOUT
19786	STD		{ int|linux_sys||uselib(const char *path); }
198#else
19986	UNIMPL		sys_uselib
200#endif
20187	STD		{ int|linux_sys||swapon(char *name); }
20288	STD		{ int|linux_sys||reboot(int magic1, int magic2, \
203			    int cmd, void *arg); }
20489	STD		{ int|linux_sys||readdir(int fd, void *dent, \
205			    unsigned int count); }
20690	NOARGS		{ int|linux_sys||mmap(unsigned long addr, size_t len, \
207			    int prot, int flags, int fd, linux_off_t offset); }
20891	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
20992	NOARGS		{ int|compat_43_sys||truncate(const char *path, \
210			    long length); }
21193	NOARGS		{ int|compat_43_sys||ftruncate(int fd, long length); }
21294	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
21395	NOARGS		{ int|sys||__posix_fchown(int fd, uid_t uid, \
214			    gid_t gid); }
21596	STD		{ int|linux_sys||getpriority(int which, int who); }
21697	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
21798	NOARGS		{ int|sys||profil(void *samples, u_int size, \
218			    u_int offset, u_int scale); }
21999	STD		{ int|linux_sys||statfs(const char *path, \
220			    struct linux_statfs *sp); }
221100	STD		{ int|linux_sys||fstatfs(int fd, \
222			    struct linux_statfs *sp); }
223101	UNIMPL		ioperm
224102	STD		{ int|linux_sys||socketcall(int what, void *args); }
225103	UNIMPL		syslog
226104	NOARGS		{ int|compat_50_sys||setitimer(int which, \
227			    struct itimerval50 *itv, \
228			    struct itimerval50 *oitv); }
229105	NOARGS		{ int|compat_50_sys||getitimer(int which, \
230			    struct itimerval50 *itv); }
231106	STD		{ int|linux_sys||stat(const char *path, \
232			    struct linux_stat *sp); }
233107	STD		{ int|linux_sys||lstat(const char *path, \
234			    struct linux_stat *sp); }
235108	STD		{ int|linux_sys||fstat(int fd, struct linux_stat *sp); }
236109	STD		{ int|linux_sys||uname(struct linux_utsname *up); }
237110	UNIMPL		iopl
238111	UNIMPL		vhangup
239112	UNIMPL		idle
240113	UNIMPL		vm86old
241114	STD		{ int|linux_sys||wait4(int pid, int *status, \
242			    int options, struct rusage50 *rusage); }
243115	STD		{ int|linux_sys||swapoff(const char *path); }
244116	STD		{ int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
245117	STD		{ int|linux_sys||ipc(int what, int a1, int a2, int a3, \
246			    void *ptr); }
247118	NOARGS		{ int|sys||fsync(int fd); }
248119	STD		{ int|linux_sys||sigreturn(struct linux_sigcontext *scp); }
249120	STD		{ int|linux_sys||clone(int flags, void *stack, \
250			    void *parent_tidptr, void *tls, void *child_tidptr); }
251121	STD		{ int|linux_sys||setdomainname(char *domainname, \
252			    int len); }
253122	STD		{ int|linux_sys||new_uname(struct linux_utsname *up); }
254123	UNIMPL		modify_ldt
255124	UNIMPL		adjtimex
256125	STD		{ int|linux_sys||mprotect(const void *start, \
257			    unsigned long len, int prot); }
258126	STD		{ int|linux_sys||sigprocmask(int how, \
259			    const linux_old_sigset_t *set, \
260			    linux_old_sigset_t *oset); }
261127	UNIMPL		create_module
262128	UNIMPL		init_module
263129	UNIMPL		delete_module
264130	UNIMPL		get_kernel_syms
265131	UNIMPL		quotactl
266132	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
267133	NOARGS		{ int|sys||fchdir(int fd); }
268134	UNIMPL		bdflush
269135	UNIMPL		sysfs
270136	STD		{ int|linux_sys||personality(unsigned long per); }
271137	UNIMPL		afs_syscall
272138	STD		{ int|linux_sys||setfsuid(uid_t uid); }
273139	STD		{ int|linux_sys||setfsgid(gid_t gid); }
274140	STD		{ int|linux_sys||llseek(int fd, u_int32_t ohigh, \
275			    u_int32_t olow, void *res, int whence); }
276141	STD		{ int|linux_sys||getdents(int fd, \
277			    struct linux_dirent *dent, unsigned int count); }
278142	STD		{ int|linux_sys||new_select(int nfds, fd_set *readfds, \
279			    fd_set *writefds, fd_set *exceptfds, \
280			    struct timeval50 *timeout); }
281143	NOARGS		{ int|sys||flock(int fd, int how); }
282144	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
283145	NOARGS		{ ssize_t|sys||readv(int fd, \
284			    const struct iovec *iovp, int iovcnt); }
285146	NOARGS		{ ssize_t|sys||writev(int fd, \
286			    const struct iovec *iovp, int iovcnt); }
287147	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
288148	STD		{ int|linux_sys||fdatasync(int fd); }
289149	STD		{ int|linux_sys||__sysctl(struct linux___sysctl *lsp); }
290150	NOARGS		{ int|sys||mlock(void *addr, size_t len); }
291151	NOARGS		{ int|sys||munlock(void *addr, size_t len); }
292152	NOARGS		{ int|sys||mlockall(int flags); }
293153	NOARGS		{ int|sys||munlockall(void); }
294154	STD		{ int|linux_sys||sched_setparam(pid_t pid, \
295			    const struct linux_sched_param *sp); }
296155	STD		{ int|linux_sys||sched_getparam(pid_t pid, \
297			    struct linux_sched_param *sp); }
298156	STD		{ int|linux_sys||sched_setscheduler(pid_t pid, \
299			    int policy, const struct linux_sched_param *sp); }
300157	STD		{ int|linux_sys||sched_getscheduler(pid_t pid); }
301158	STD		{ int|linux_sys||sched_yield(void); }
302159	STD		{ int|linux_sys||sched_get_priority_max(int policy); }
303160	STD		{ int|linux_sys||sched_get_priority_min(int policy); }
304161	UNIMPL		sched_rr_get_interval
305162	STD		{ int|linux_sys||nanosleep( \
306			    const struct linux_timespec *rqtp, \
307			    struct linux_timespec *rmtp); }
308163	STD		{ void *|linux_sys||mremap(void *old_address, \
309			    size_t old_size, size_t new_size, u_long flags); }
310164	STD		{ int|linux_sys||setresuid(uid_t ruid, uid_t euid, \
311			    uid_t suid); }
312165	STD		{ int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \
313			    uid_t *suid); }
314166	UNIMPL		query_module
315167	NOARGS		{ int|sys||poll(struct pollfd *fds, u_int nfds, \
316			    int timeout); }
317168	UNIMPL		nfsservctl
318169	STD		{ int|linux_sys||setresgid(gid_t rgid, gid_t egid, \
319			    gid_t sgid); }
320170	STD		{ int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \
321			    gid_t *sgid); }
322171	INDIR		{ int|linux_sys||__prctl(int code, \
323                                  ... void * args[SYS_MAXSYSARGS]); }
324172	STD		{ int|linux_sys||rt_sigreturn( \
325			    struct linux_rt_sigframe *sfp); }
326173	STD		{ int|linux_sys||rt_sigaction(int signum, \
327			    const struct linux_sigaction *nsa, \
328			    struct linux_sigaction *osa, \
329			    size_t sigsetsize); }
330174	STD		{ int|linux_sys||rt_sigprocmask(int how, \
331			    const linux_sigset_t *set, \
332			    linux_sigset_t *oset, \
333			    size_t sigsetsize); }
334175	STD		{ int|linux_sys||rt_sigpending( \
335			    linux_sigset_t *set, \
336			    size_t sigsetsize); }
337176	STD		{ int|linux_sys||rt_sigtimedwait( \
338			    const linux_sigset_t *set, \
339			    linux_siginfo_t *info, \
340			    const struct linux_timespec *timeout); }
341177	STD		{ int|linux_sys||rt_queueinfo(int pid, int signum, \
342			    linux_siginfo_t *uinfo); }
343178	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
344			    size_t sigsetsize); }
345179	STD		{ int|linux_sys||pread(int fd, char *buf, \
346			    size_t nbyte, off_t offset); }
347180	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
348			    size_t nbyte, off_t offset); }
349181	NOARGS		{ int|sys||__posix_chown(const char *path, uid_t uid, \
350			    gid_t gid); }
351182	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
352183	UNIMPL		capget
353184	UNIMPL		capset
354185	STD		{ int|linux_sys||sigaltstack( \
355			    const struct linux_sigaltstack *ss, \
356			    struct linux_sigaltstack *oss); }
357186	UNIMPL		sendfile
358187	UNIMPL		getpmsg
359188	UNIMPL		putpmsg
360189	NOARGS		{ int|sys|14|vfork(void); }
361190	STD		{ int|linux_sys||ugetrlimit(int which, \
362			    struct rlimit *rlp); }
363191	STD		{ ssize_t|linux_sys||readahead(int fd, off_t offset, \
364			    size_t count); }
365#define linux_sys_mmap2_args linux_sys_mmap_args
366192	NOARGS		{ linux_off_t|linux_sys||mmap2(unsigned long addr, \
367			    size_t len, int prot, int flags, int fd, \
368			    linux_off_t offset); }
369193	STD		{ int|linux_sys||truncate64(const char *path, \
370			    off_t length); }
371194	STD		{ int|linux_sys||ftruncate64(unsigned int fd, \
372			    off_t length); }
373195	STD		{ int|linux_sys||stat64(const char *path, \
374			    struct linux_stat64 *sp); }
375196	STD		{ int|linux_sys||lstat64(const char *path, \
376			    struct linux_stat64 *sp); }
377197	STD		{ int|linux_sys||fstat64(int fd, \
378			    struct linux_stat64 *sp); }
379198	UNIMPL		sys_pciconfig_read
380199	UNIMPL		sys_pciconfig_write
381200	UNIMPL		sys_pciconfig_iobase
382201	UNIMPL		/* Unused (MacOnLinux project) */
383202	STD		{ int|linux_sys||getdents64(int fd, \
384			    struct linux_dirent64 *dent, unsigned int count); }
385203	UNIMPL		pivot_root
386204	STD		{ int|linux_sys||fcntl64(int fd, int cmd, void *arg); }
387205	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
388206	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
389207	NOARGS		{ pid_t|linux_sys||gettid(void); }
390208	STD		{ int|linux_sys||tkill(int tid, int sig); }
391209	STD		{ int|linux_sys||setxattr(char *path, char *name, \
392			    void *value, size_t size, int flags); }
393210	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
394			    void *value, size_t size, int flags); }
395211	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
396			    void *value, size_t size, int flags); }
397212	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
398			    void *value, size_t size); }
399213	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
400			    void *value, size_t size); }
401214	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
402			    void *value, size_t size); }
403215	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
404			    size_t size); }
405216	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
406			    size_t size); }
407217	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
408			    size_t size); }
409218	STD		{ int|linux_sys||removexattr(char *path, char *name); }
410219	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
411220	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
412221	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
413			    const struct linux_timespec *timeout, int *uaddr2, \
414			    int val3); }
415222	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
416			    unsigned int len, unsigned long *mask); }
417223	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
418			    unsigned int len, unsigned long *mask); }
419224	UNIMPL		/* unused */
420225	UNIMPL		tuxcall
421226	UNIMPL		sendfile64
422227	UNIMPL		io_setup
423228	UNIMPL		io_destroy
424229	UNIMPL		io_getevents
425230	UNIMPL		io_submit
426231	UNIMPL		io_cancel
427232	STD		{ int|linux_sys||set_tid_address(int *tid); }
428233	STD		{ int|linux_sys||fadvise64(int fd, off_t offset, \
429			    size_t len, int advice); }
430234	STD		{ int|linux_sys||exit_group(int error_code); }
431235	UNIMPL		lookup_dcookie
432236	STD		{ int|linux_sys||epoll_create(int size); }
433237	STD		{ int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
434			    struct linux_epoll_event *event); }
435238	STD		{ int|linux_sys||epoll_wait(int epfd, \
436			    struct linux_epoll_event *events, int maxevents, \
437			    int timeout); }
438239	UNIMPL		remap_file_pages
439240	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
440			    struct linux_sigevent *evp, timer_t *timerid); }
441241	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
442			    int flags, const struct linux_itimerspec *tim, \
443			    struct linux_itimerspec *otim); }
444242	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
445			    struct linux_itimerspec *tim); }
446243	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
447244	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
448245	STD		{ int|linux_sys||clock_settime(clockid_t which, \
449			    struct linux_timespec *tp); }
450246	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
451			    struct linux_timespec *tp); }
452247	STD		{ int|linux_sys||clock_getres(clockid_t which, \
453			    struct linux_timespec *tp); }
454248	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
455			    int flags, struct linux_timespec *rqtp, \
456			    struct linux_timespec *rmtp); }
457249	UNIMPL		swapcontext
458250	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
459251	NOARGS		{ int|compat_50_sys||utimes(const char *path, \
460			    const struct timeval50 *tptr); }
461252	STD		{ int|linux_sys||statfs64(const char *path, \
462			    size_t sz, struct linux_statfs64 *sp); }
463253	STD		{ int|linux_sys||fstatfs64(int fd, \
464			    size_t sz, struct linux_statfs64 *sp); }
465254	STD		{ int|linux_sys||fadvise64_64(int fd, off_t offset, \
466			    off_t len, int advice); }
467255	UNIMPL		rtas
468256	UNIMPL		/* reserved for sys_debug_setcontext */
469257	UNIMPL		/* reserved for vserver */
470258	UNIMPL		/* reserved for new sys_remap_file_pages */
471259	UNIMPL		/* reserved for new sys_mbind */
472260	UNIMPL		/* reserved for new sys_get_mempolicy */
473261	UNIMPL		/* reserved for new sys_set_mempolicy */
474262	STD		{ linux_mqd_t|linux_sys||mq_open(const char *name, \
475			    int oflag, linux_umode_t mode, \
476			    struct linux_mq_attr *attr); }
477263	STD		{ int|linux_sys||mq_unlink(const char *name); }
478264	STD		{ int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \
479			    const char *msg_ptr, size_t msg_len, \
480			    unsigned int msg_prio, \
481			    const struct linux_timespec *abs_timeout); }
482265	STD		{ ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \
483			    char *msg_ptr, size_t msg_len, \
484			    unsigned int *msg_prio, \
485			    const struct linux_timespec *abs_timeout); }
486266	STD		{ int|linux_sys||mq_notify(linux_mqd_t mqdes, \
487			    const struct linux_sigevent *sevp); }
488267	STD		{ int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \
489			    const struct linux_mq_attr *newattr, \
490			    struct linux_mq_attr *oldattr); }
491268	UNIMPL		kexec_load
492269	UNIMPL		add_key
493270	UNIMPL		request_key
494271	UNIMPL		keyctl
495272	STD		{ int|linux_sys||waitid(int idtype, id_t id, \
496			    linux_siginfo_t *infop, int options, \
497			    struct rusage50 *rusage); }
498273	UNIMPL		ioprio_set
499274	UNIMPL		ioprio_get
500275	STD		{ int|linux_sys||inotify_init(void); }
501276	STD		{ int|linux_sys||inotify_add_watch(int fd, \
502			    const char *pathname, uint32_t mask); }
503277	STD		{ int|linux_sys||inotify_rm_watch(int fd, int wd); }
504278	UNIMPL		spu_run
505279	UNIMPL		spu_create
506280	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
507			   fd_set *writefds, fd_set *exceptfds, \
508			   struct linux_timespec *timeout, \
509			   linux_sized_sigset_t *ss); }
510281	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
511			    struct linux_timespec *timeout, \
512			    linux_sigset_t *sigset); }
513282	UNIMPL		unshare
514283	UNIMPL		splice
515284	UNIMPL		tee
516285	UNIMPL		vmsplice
517286	STD		{ int|linux_sys||openat(int fd, const char *path, \
518			    int flags, ... linux_umode_t mode); }
519287	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
520			    linux_umode_t mode); }
521288	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
522			    linux_umode_t mode, unsigned dev); }
523289	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
524			    uid_t owner, gid_t group, int flag); }
525290	UNIMPL		futimesat
526291	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
527			    struct linux_stat64 *sp, int flag); }
528292	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
529			    int flag); }
530293	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
531			    int tofd, const char *to); }
532294	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
533			    int fd2, const char *name2, int flags); }
534295	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
535			    const char *path2); }
536296	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
537			    char *buf, size_t bufsize); }
538297	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
539			    linux_umode_t mode); }
540298	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
541			    int amode); }
542			;
543			; The NetBSD native robust list calls have different
544			; argument names / types, but they are ABI-compatible
545			; with Linux.
546			;
547299	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
548			    size_t len); }
549300	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
550			    void **headp, size_t *lenp); }
551301	UNIMPL		move_pages
552302	STD		{ int|linux_sys||getcpu(unsigned int *cpu, \
553			    unsigned int *node, \
554			    struct linux_getcpu_cache *tcache); }
555303	STD		{ int|linux_sys||epoll_pwait(int epfd, \
556			    struct linux_epoll_event *events, int maxevents, \
557			    int timeout, const linux_sigset_t *sigmask); }
558304	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
559			    struct linux_timespec *times, int flag); }
560305	UNIMPL		signalfd
561306	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
562			    int flags); }
563307	STD		{ int|linux_sys||eventfd(unsigned int initval); }
564308	STD		{ int|linux_sys||sync_file_range(int fd, \
565			    off_t offset, off_t nbytes, unsigned int flags); }
566309	STD		{ int|linux_sys||fallocate(int fd, int mode, \
567			    off_t offset, off_t len); }
568310	UNIMPL		subpage_prot
569311	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
570			    const struct linux_itimerspec *tim, \
571			    struct linux_itimerspec *otim); }
572312	STD		{ int|linux_sys||timerfd_gettime(int fd, \
573			    struct linux_itimerspec *tim); }
574313	UNIMPL		signalfd4
575314	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
576			    int flags); }
577315	STD		{ int|linux_sys||epoll_create1(int flags); }
578316	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
579317	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
580318	STD		{ int|linux_sys||inotify_init1(int flags); }
581319	UNIMPL		perf_event_open
582320	STD		{ int|linux_sys||preadv(int fd, \
583			    const struct iovec *iovp, int iovcnt, \
584			    unsigned long off_lo, unsigned long off_hi); }
585321	STD		{ int|linux_sys||pwritev(int fd, \
586			    const struct iovcnt *iovp, int iovcnt, \
587			    unsigned long off_lo, unsigned long off_hi); }
588322	UNIMPL		rt_tgsigqueueinfo
589323	UNIMPL		fanotify_init
590324	UNIMPL		fanotify_mark
591325	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
592			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
593326	UNIMPL		socket
594327	UNIMPL		bind
595328	UNIMPL		connect
596329	UNIMPL		listen
597330	UNIMPL		accept
598331	UNIMPL		getsockname
599332	UNIMPL		getpeername
600333	UNIMPL		socketpair
601334	UNIMPL		send
602335	UNIMPL		sendto
603336	UNIMPL		recv
604337	UNIMPL		recvfrom
605338	UNIMPL		shutdown
606339	UNIMPL		setsockopt
607340	UNIMPL		getsockopt
608341	UNIMPL		sendmsg
609342	UNIMPL		recvmsg
610343	STD		{ int|linux_sys||recvmmsg(int s, \
611			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
612			    unsigned int flags, struct timespec *timeout); }
613344	STD		{ int|linux_sys||accept4(int s, \
614			    struct osockaddr *name, \
615			    int *anamelen, int flags); }
616345	UNIMPL		name_to_handle_at
617346	UNIMPL		open_by_handle_at
618347	UNIMPL		clock_adjtime
619348	STD		{ int|linux_sys||syncfs(int fd); }
620349	STD		{ int|linux_sys||sendmmsg(int s, \
621			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
622			    unsigned int flags); }
623350	UNIMPL		setns
624351	UNIMPL		process_vm_readv
625352	UNIMPL		process_vm_writev
626353	UNIMPL		finit_module
627354	UNIMPL		kcmp
628355	UNIMPL		sched_setattr
629356	UNIMPL		sched_getattr
630357	STD		{ int|linux_sys||renameat2(int fromfd, \
631			    const char *from, int tofd, const char *to, \
632			    unsigned int flags); }
633358	UNIMPL		seccomp
634359	NOARGS		{ ssize_t|sys||getrandom(void *buf, size_t buflen, \
635			    unsigned int flags); }
636360	UNIMPL		memfd_create
637361	UNIMPL		bpf
638362	UNIMPL		execveat
639363	UNIMPL		switch_endian
640364	UNIMPL		userfaultfd
641365	UNIMPL		membarrier
642366	UNIMPL
643367	UNIMPL
644368	UNIMPL
645369	UNIMPL
646370	UNIMPL
647371	UNIMPL
648372	UNIMPL
649373	UNIMPL
650374	UNIMPL
651375	UNIMPL
652376	UNIMPL
653377	UNIMPL
654378	UNIMPL		mlock2
655379	STD		{ ssize_t|linux_sys||copy_file_range(int fd_in, \
656			off_t * off_in, int fd_out, off_t * off_out, \
657			size_t len, unsigned int flags); }
658380	UNIMPL		preadv2
659381	UNIMPL		pwritev2
660382	UNIMPL		kexec_file_load
661383	STD		{ int|linux_sys||statx(int fd, const char *path, \
662			    int flag, unsigned int mask, \
663			    struct linux_statx *sp); }
664384	UNIMPL
665385	UNIMPL
666386	UNIMPL
667387	UNIMPL
668388	UNIMPL
669389	UNIMPL
670390	UNIMPL
671391	UNIMPL
672392	UNIMPL
673393	UNIMPL
674394	UNIMPL
675395	UNIMPL
676396	UNIMPL
677397	UNIMPL
678398	UNIMPL
679399	UNIMPL
680400	UNIMPL
681401	UNIMPL
682402	UNIMPL
683403	UNIMPL
684404	UNIMPL
685405	UNIMPL
686406	UNIMPL
687407	UNIMPL
688408	UNIMPL
689409	UNIMPL
690410	UNIMPL
691411	UNIMPL
692412	UNIMPL
693413	UNIMPL
694414	UNIMPL
695415	UNIMPL
696416	UNIMPL
697417	UNIMPL
698418	UNIMPL
699419	UNIMPL
700420	UNIMPL
701421	UNIMPL
702422	UNIMPL
703423	UNIMPL
704424	UNIMPL
705425	UNIMPL
706426	UNIMPL
707427	UNIMPL
708428	UNIMPL
709429	UNIMPL
710430	UNIMPL
711431	UNIMPL
712432	UNIMPL
713433	UNIMPL
714434	UNIMPL
715435	STD		{ int|linux_sys||clone3( \
716			    struct linux_user_clone3_args *cl_args, \
717			    size_t size); }
718436	STD		{ int|linux_sys||close_range(unsigned int first, \
719			    unsigned int last, unsigned int flags); }
720437	UNIMPL
721438	UNIMPL
722439	STD		{ int|linux_sys||faccessat2(int fd, const char *path, \
723			    int amode, int flags); }
724440	UNIMPL
725441	STD		{ int|linux_sys||epoll_pwait2(int epfd, \
726			    struct linux_epoll_event *events, int maxevents, \
727			    const struct linux_timespec *timeout, \
728			    const linux_sigset_t *sigmask); }
729