1	$NetBSD: syscalls.master,v 1.11 2023/08/19 17:49:49 christos Exp $
2
3;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
4
5; Derived from sys/compat/linux/arch/*/syscalls.master
6; and from Linux include/uapi/asm-generic/unistd.h
7
8; NetBSD aarch64 COMPAT_LINUX system call name/number "master" file.
9; (See syscalls.conf to see what it is processed into.)
10;
11; Fields: number type [type-dependent ...]
12;	number	system call number, must be in order
13;	type	one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
14;		the compatibility options defined in syscalls.conf.
15;
16; types:
17;	STD	always included
18;	OBSOL	obsolete, not included in system
19;	UNIMPL	unimplemented, not included in system
20;	NODEF	included, but don't define the syscall number
21;	NOARGS	included, but don't define the syscall args structure
22;	INDIR	included, but don't define the syscall args structure
23;		and allow it to be "really" varargs.
24;
25; The compat options are defined in the syscalls.conf file, and the
26; compat option name is prefixed to the syscall name.  Other than
27; that, they're like NODEF (for 'compat' options), or STD (for
28; 'libcompat' options).
29;
30; The type-dependent arguments are as follows:
31; For STD, NODEF, NOARGS, and compat syscalls:
32;	{ pseudo-proto } [alias]
33; For other syscalls:
34;	[comment]
35;
36; #ifdef's, etc. may be included, and are copied to the output files.
37; #include's are copied to the syscall names and switch definition files only.
38
39#if defined(_KERNEL_OPT)
40#include "opt_sysv.h"
41#include "opt_compat_43.h"
42#include "opt_compat_netbsd.h"
43#endif
44
45#include <sys/param.h>
46#include <sys/poll.h>
47#include <sys/systm.h>
48#include <sys/signal.h>
49#include <sys/mount.h>
50#include <sys/syscallargs.h>
51#include <sys/time.h>
52
53#include <compat/sys/time.h>
54
55#include <compat/linux/common/linux_types.h>
56#include <compat/linux/common/linux_ipc.h>
57#include <compat/linux/common/linux_machdep.h>
58#include <compat/linux/common/linux_misc.h>
59#include <compat/linux/common/linux_mmap.h>
60#include <compat/linux/common/linux_msg.h>
61#include <compat/linux/common/linux_sem.h>
62#include <compat/linux/common/linux_shm.h>
63#include <compat/linux/common/linux_siginfo.h>
64#include <compat/linux/common/linux_signal.h>
65
66#include <compat/linux/linux_syscallargs.h>
67
68%%
69
700	UNIMPL		io_setup
711	UNIMPL		io_destroy
722	UNIMPL		io_submit
733	UNIMPL		io_cancel
744	UNIMPL		io_getevents
755	STD		{ int|linux_sys||setxattr(char *path, char *name, \
76			    void *value, size_t size, int flags); }
776	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
78			    void *value, size_t size, int flags); }
797	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
80			    void *value, size_t size, int flags); }
818	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
82			    void *value, size_t size); }
839	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
84			    void *value, size_t size); }
8510	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
86			    void *value, size_t size); }
8711	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
88			    size_t size); }
8912	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
90			    size_t size); }
9113	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
92			    size_t size); }
9314	STD		{ int|linux_sys||removexattr(char *path, char *name); }
9415	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
9516	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
9617	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
9718	UNIMPL		lookup_dcookie
9819	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
99			    int flags); }
10020	STD		{ int|linux_sys||epoll_create1(int flags); }
10121	STD		{ int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
102			    struct linux_epoll_event *event); }
10322	STD		{ int|linux_sys||epoll_pwait(int epfd, \
104			    struct linux_epoll_event *events, int maxevents, \
105			    int timeout, const linux_sigset_t *sigmask); }
10623	NOARGS		{ int|sys||dup(int fd); }
10724	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
10825	STD		{ int|linux_sys||fcntl(int fd, int cmd, void *arg); }
10926	STD		{ int|linux_sys||inotify_init1(int flags); }
11027	STD	        { int|linux_sys||inotify_add_watch(int fd, \
111			    const char *pathname, uint32_t mask); }
11228	STD		{ int|linux_sys||inotify_rm_watch(int fd, int wd); }
11329	STD		{ int|linux_sys||ioctl(int fd, u_long com, \
114			    void *data); }
11530	UNIMPL		ioprio_set
11631	UNIMPL		ioprio_get
11732	NOARGS		{ int|sys||flock(int fd, int how); }
11833	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
119			    linux_umode_t mode, unsigned dev); }
12034	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
121			    linux_umode_t mode); }
12235	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
123			    int flag); }
12436	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
125			    const char *path2); }
12637	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
127			    int fd2, const char *name2, int flags); }
12838	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
129			    int tofd, const char *to); }
13039	UNIMPL		umount2
13140	UNIMPL		mount
13241	UNIMPL		pivot_root
13342	UNIMPL		nfsservctl
13443	STD		{ int|linux_sys||statfs(const char *path, \
135			    struct linux_statfs *sp); }
13644	STD		{ int|linux_sys||fstatfs(int fd, \
137			    struct linux_statfs *sp); }
13845	STD		{ int|linux_sys||truncate64(const char *path, \
139			    off_t length); }
14046	STD		{ int|linux_sys||ftruncate64(unsigned int fd, \
141			    off_t length); }
14247	STD		{ int|linux_sys||fallocate(int fd, int mode, \
143			    off_t offset, off_t len); }
14448	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
145			    int amode); }
14649	NOARGS		{ int|sys||chdir(const char *path); }
14750	NOARGS		{ int|sys||fchdir(int fd); }
14851	NOARGS		{ int|sys||chroot(char *path); }
14952	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
15053	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
151			    linux_umode_t mode); }
15254	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
153			    uid_t owner, gid_t group, int flag); }
15455	NOARGS		{ int|sys||__posix_fchown(int fd, uid_t uid, \
155			    gid_t gid); }
15656	STD 		{ int|linux_sys||openat(int fd, const char *path, \
157			    int flags, ... linux_umode_t mode); }
15857	NOARGS		{ int|sys||close(int fd); }
15958	UNIMPL		vhangup
16059	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
16160	UNIMPL		quotactl
16261	STD		{ int|linux_sys||getdents64(int fd, \
163			    struct linux_dirent64 *dent, unsigned int count); }
16462	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
165			    int whence); }
16663	NOARGS		{ ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
16764	NOARGS		{ ssize_t|sys||write(int fd, const void *buf, \
168			    size_t nbyte); }
16965	NOARGS		{ ssize_t|sys||readv(int fd, \
170			    const struct iovec *iovp, int iovcnt); }
17166	NOARGS		{ ssize_t|sys||writev(int fd, \
172			    const struct iovec *iovp, int iovcnt); }
17367	STD		{ int|linux_sys||pread(int fd, char *buf, \
174			    size_t nbyte, off_t offset); }
17568	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
176			    size_t nbyte, off_t offset); }
17769	STD		{ int|linux_sys||preadv(int fd, \
178			    const struct iovec *iovp, int iovcnt, \
179			    unsigned long off_lo, unsigned long off_hi); }
18070	STD		{ int|linux_sys||pwritev(int fd, \
181			    const struct iovcnt *iovp, int iovcnt, \
182			    unsigned long off_lo, unsigned long off_hi); }
18371	UNIMPL		sendfile
18472	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
185			   fd_set *writefds, fd_set *exceptfds, \
186			   struct linux_timespec *timeout, \
187			   linux_sized_sigset_t *ss); }
18873	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
189			    struct linux_timespec *timeout, \
190			    linux_sigset_t *sigset); }
19174	UNIMPL		signalfd4
19275	UNIMPL		vmsplice
19376	UNIMPL		splice
19477	UNIMPL		tee
19578	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
196			    char *buf, size_t bufsize); }
19779	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
198			    struct linux_stat *sp, int flag); }
19980	STD		{ int|linux_sys||fstat64(int fd, \
200			    struct linux_stat *sp); }
20181	NOARGS		{ int|sys||sync(void); }
20282	NOARGS		{ int|sys||fsync(int fd); }
20383	STD		{ int|linux_sys||fdatasync(int fd); }
20484	UNIMPL		sync_file_range
20585	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
206			    int flags); }
20786	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
208			    const struct linux_itimerspec *tim, \
209			    struct linux_itimerspec *otim); }
21087	STD		{ int|linux_sys||timerfd_gettime(int fd, \
211			    struct linux_itimerspec *tim); }
21288	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
213			    struct linux_timespec *times, int flag); }
21489	NOARGS		{ int|sys||acct(char *path); }
21590	UNIMPL		capget
21691	UNIMPL		capset
21792	STD		{ int|linux_sys||personality(unsigned long per); }
21893	STD		{ int|linux_sys||exit(int rval); }
21994	STD		{ int|linux_sys||exit_group(int error_code); }
22095	STD		{ int|linux_sys||waitid(int idtype, id_t id, \
221			    linux_siginfo_t *infop, int options, \
222			    struct rusage50 *rusage); }
22396	STD		{ int|linux_sys||set_tid_address(int *tid); }
22497	UNIMPL		unshare
22598	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
226			    const struct linux_timespec *timeout, int *uaddr2, \
227			    int val3); }
228			;
229			; The NetBSD native robust list calls have different
230			; argument names / types, but they are ABI-compatible
231			; with Linux.
232			;
23399	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
234			    size_t len); }
235100	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
236			    void **headp, size_t *lenp); }
237101	STD		{ int|linux_sys||nanosleep( \
238			    const struct linux_timespec *rqtp, \
239			    struct linux_timespec *rmtp); }
240102	NOARGS		{ int|compat_50_sys||getitimer(int which, \
241			    struct itimerval50 *itv); }
242103	NOARGS		{ int|compat_50_sys||setitimer(int which, \
243			    struct itimerval50 *itv, \
244			    struct itimerval50 *oitv); }
245104	UNIMPL		kexec_load
246105	UNIMPL		init_module
247106	UNIMPL		delete_module
248107	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
249			    struct linux_sigevent *evp, timer_t *timerid); }
250108	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
251			    struct linux_itimerspec *tim); }
252109	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
253110	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
254			    int flags, const struct linux_itimerspec *tim, \
255			    struct linux_itimerspec *otim); }
256111	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
257112	STD		{ int|linux_sys||clock_settime(clockid_t which, \
258			    struct linux_timespec *tp); }
259113	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
260			    struct linux_timespec *tp); }
261114	STD		{ int|linux_sys||clock_getres(clockid_t which, \
262			    struct linux_timespec *tp); }
263115	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
264			    int flags, struct linux_timespec *rqtp, \
265			    struct linux_timespec *rmtp); }
266116	UNIMPL		syslog
267117	STD		{ int|linux_sys||ptrace(long request, long pid, \
268			  long addr, long data); }
269118	STD		{ int|linux_sys||sched_setparam(pid_t pid, \
270			    const struct linux_sched_param *sp); }
271119	STD		{ int|linux_sys||sched_setscheduler(pid_t pid, \
272			    int policy, const struct linux_sched_param *sp); }
273120	STD		{ int|linux_sys||sched_getscheduler(pid_t pid); }
274121	STD		{ int|linux_sys||sched_getparam(pid_t pid, \
275			    struct linux_sched_param *sp); }
276122	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
277			    unsigned int len, unsigned long *mask); }
278123	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
279			    unsigned int len, unsigned long *mask); }
280124	STD		{ int|linux_sys||sched_yield(void); }
281125	STD		{ int|linux_sys||sched_get_priority_max(int policy); }
282126	STD		{ int|linux_sys||sched_get_priority_min(int policy); }
283127	UNIMPL		sys_sched_rr_get_interval
284128	UNIMPL		restart_syscall
285129	STD		{ int|linux_sys||kill(int pid, int signum); }
286130	STD		{ int|linux_sys||tkill(int tid, int sig); }
287131	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
288132	STD		{ int|linux_sys||sigaltstack( \
289			    const struct linux_sigaltstack *ss, \
290			    struct linux_sigaltstack *oss); }
291133	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
292			    size_t sigsetsize); }
293134	STD		{ int|linux_sys||rt_sigaction(int signum, \
294			    const struct linux_sigaction *nsa, \
295			    struct linux_sigaction *osa, \
296			    size_t sigsetsize); }
297135	STD		{ int|linux_sys||rt_sigprocmask(int how, \
298			    const linux_sigset_t *set, \
299			    linux_sigset_t *oset, \
300			    size_t sigsetsize); }
301136	STD		{ int|linux_sys||rt_sigpending( \
302			    linux_sigset_t *set, \
303			    size_t sigsetsize); }
304137	STD		{ int|linux_sys||rt_sigtimedwait( \
305			    const linux_sigset_t *set, \
306			    linux_siginfo_t *info, \
307			    const struct linux_timespec *timeout); }
308138	UNIMPL		rt_sigqueueinfo
309139	NOARGS		{ int|linux_sys||rt_sigreturn(void); }
310140	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
311141	STD		{ int|linux_sys||getpriority(int which, int who); }
312142	STD		{ int|linux_sys||reboot(int magic1, int magic2, \
313			    int cmd, void *arg); }
314143	NOARGS		{ int|sys||setregid(gid_t rgid, gid_t egid); }
315144	NOARGS		{ int|sys||setgid(gid_t gid); }
316145	NOARGS		{ int|sys||setreuid(uid_t ruid, uid_t euid); }
317146	NOARGS		{ int|sys||setuid(uid_t uid); }
318147	STD		{ int|linux_sys||setresuid(uid_t ruid, uid_t euid, \
319			    uid_t suid); }
320148	STD		{ int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \
321			    uid_t *suid); }
322149	STD		{ int|linux_sys||setresgid(gid_t rgid, gid_t egid, \
323			    gid_t sgid); }
324150	STD		{ int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \
325			    gid_t *sgid); }
326151	STD		{ int|linux_sys||setfsuid(uid_t uid); }
327152	STD		{ int|linux_sys||setfsgid(gid_t gid); }
328153	STD		{ int|linux_sys||times(struct times *tms); }
329154	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
330155	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
331156	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
332157	NOARGS		{ int|sys||setsid(void); }
333158	NOARGS		{ int|sys||getgroups(int gidsetsize, gid_t *gidset); }
334159	NOARGS		{ int|sys||setgroups(int gidsetsize, gid_t *gidset); }
335160	STD		{ int|linux_sys||uname(struct linux_utsname *up); }
336161	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
337			    u_int len);}
338162	STD		{ int|linux_sys||setdomainname(char *domainname, \
339			    int len); }
340163	STD		{ int|linux_sys||getrlimit(int which, \
341			    struct rlimit *rlp); }
342164	STD		{ int|linux_sys||setrlimit(u_int which, \
343			    struct rlimit *rlp); }
344165	NOARGS		{ int|compat_50_sys||getrusage(int who, \
345			    struct rusage50 *rusage); }
346166	NOARGS		{ int|sys||umask(int newmask); }
347167	UNIMPL		prctl
348168	UNIMPL		getcpu
349169	STD		{ int|linux_sys||gettimeofday(struct timeval50 *tp, \
350			    struct timezone *tzp); }
351170	STD		{ int|linux_sys||settimeofday(struct timeval50 *tp, \
352			    struct timezone *tzp); }
353171	UNIMPL		adjtimex
354172	STD		{ pid_t|sys||getpid(void); }
355173	STD		{ pid_t|sys||getppid(void); }
356174	NOARGS		{ uid_t|sys||getuid(void); }
357175	NOARGS		{ uid_t|sys||geteuid(void); }
358176	NOARGS		{ gid_t|sys||getgid(void); }
359177	NOARGS		{ gid_t|sys||getegid(void); }
360178	STD		{ pid_t|linux_sys||gettid(void); }
361179	STD		{ int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
362180	UNIMPL		mq_open
363181	UNIMPL		mq_unlink
364182	UNIMPL		mq_timedsend
365183	UNIMPL		mq_timedreceive
366184	UNIMPL		mq_notify
367185	UNIMPL		mq_getsetattr
368#ifdef SYSVMSG
369186	NOARGS		{ int|sys||msgget(key_t key, int msgflg); }
370187	NOARGS		{ int|linux_sys||msgctl(int msqid, int cmd, \
371			    struct linux_msqid_ds *buf); }
372188	NOARGS		{ ssize_t|sys||msgrcv(int msqid, void *msgp, \
373			    size_t msgsz, long msgtyp, int msgflg); }
374189	NOARGS		{ int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \
375			    int msgflg); }
376#else
377186	UNIMPL		msgget
378187	UNIMPL		msgctl
379188	UNIMPL		msgrcv
380189	UNIMPL		msgsnd
381#endif
382#ifdef SYSVSEM
383190	NOARGS		{ int|sys||semget(key_t key, int nsems, int semflg); }
384191	STD		{ int|linux_sys||semctl(int semid, int semnum, \
385			    int cmd, union linux_semun arg); }
386192	UNIMPL		semtimedop
387193	NOARGS		{ int|sys||semop(int semid, struct sembuf *sops, \
388			    size_t nsops); }
389#else
390190	UNIMPL		semget
391191	UNIMPL		semctl
392192	UNIMPL		semtimedop
393193	UNIMPL		semop
394#endif
395#ifdef SYSVSEM
396194	NOARGS		{ int|linux_sys||shmget(key_t key, size_t size, \
397			    int shmflg); }
398195	NOARGS		{ int|linux_sys||shmctl(int shmid, int cmd, \
399			    struct linux_shmid_ds *buf); }
400196	NOARGS		{ int|sys||shmat(int shmid, void *shmaddr, int shmflg); }
401197	NOARGS		{ int|sys||shmdt(const void *shmaddr); }
402#else
403194	UNIMPL		shmget
404195	UNIMPL		shmctl
405196	UNIMPL		shmat
406197	UNIMPL		shmdt
407#endif
408198	STD		{ int|linux_sys||socket(int domain, \
409			    int type, int protocol); }
410199	STD		{ int|linux_sys||socketpair(int domain, int type, \
411			    int protocol, int *rsv); }
412200	STD		{ int|linux_sys||bind(int s, \
413			    const struct osockaddr *name, \
414			    unsigned int namelen); }
415201	NOARGS		{ int|sys||listen(int s, int backlog); }
416202	STD		{ int|linux_sys||accept(int s, struct osockaddr *name, \
417			    int *anamelen); } oaccept
418203	STD		{ int|linux_sys||connect(int s, \
419			    const struct osockaddr *name, \
420			    unsigned int namelen); }
421204	STD		{ int|linux_sys||getsockname(int fdec, void *asa, \
422			    int *alen); }
423205	STD		{ int|linux_sys||getpeername(int fdes, \
424			    struct sockaddr *asa, unsigned int *alen); }
425206	STD		{ ssize_t|linux_sys||sendto(int s, void *msg, int len, \
426			    int flags, struct osockaddr *to, int tolen); }
427207	STD		{ ssize_t|linux_sys||recvfrom(int s, void *buf, \
428			    size_t len, int flags, struct osockaddr *from, \
429			    unsigned int *fromlenaddr); }
430208	STD		{ int|linux_sys||setsockopt(int s, int level, \
431			    int optname, void *optval, int optlen); }
432209	STD		{ int|linux_sys||getsockopt(int s, int level, \
433			    int optname, void *optval, int *optlen); }
434210	NOARGS		{ int|sys||shutdown(int s, int how); }
435211	STD		{ int|linux_sys||sendmsg(int s, \
436			    const struct linux_msghdr *msg, int flags); }
437212	STD		{ ssize_t|linux_sys||recvmsg(int s, \
438			    struct linux_msghdr *msg, int flags); }
439213	STD		{ ssize_t|linux_sys||readahead(int fd, off_t offset, \
440			    size_t count); }
441214	STD		{ int|linux_sys||brk(char *nsize); }
442215	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
443216	STD		{ void *|linux_sys||mremap(void *old_address, \
444			    size_t old_size, size_t new_size, u_long flags); }
445217	UNIMPL		add_key
446218	UNIMPL		request_key
447219	UNIMPL		keyctl
448220	STD		{ int|linux_sys||clone(int flags, void *stack, \
449			    void *parent_tidptr, void *child_tidptr, void *tls); }
450221	NOARGS		{ int|sys||execve(const char *path, char **argp, \
451			    char **envp); }
452222	NOARGS		{ linux_off_t|linux_sys||mmap(unsigned long addr, \
453			    size_t len, int prot, int flags, int fd, \
454			    linux_off_t offset); }
455223	STD		{ int|linux_sys||fadvise64(int fd, off_t offset, \
456			    size_t len, int advice); }
457224	STD		{ int|linux_sys||swapon(char *name); }
458225	STD		{ int|linux_sys||swapoff(const char *path); }
459226	STD		{ int|linux_sys||mprotect(const void *start, \
460			    unsigned long len, int prot); }
461227	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
462228	NOARGS		{ int|sys||mlock(void *addr, size_t len); }
463229	NOARGS		{ int|sys||munlock(void *addr, size_t len); }
464230	NOARGS		{ int|sys||mlockall(int flags); }
465231	NOARGS		{ int|sys||munlockall(void); }
466232	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
467233	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
468234	UNIMPL		remap_file_pages
469235	UNIMPL		mbind
470236	UNIMPL		get_mempolicy
471237	UNIMPL		set_mempolicy
472238	UNIMPL		migrate_pages
473239	UNIMPL		move_pages
474240	UNIMPL		rt_tgsigqueueinfo
475241	UNIMPL		perf_event_open
476242	STD		{ int|linux_sys||accept4(int s, \
477			    struct osockaddr *name, \
478			    int *anamelen, int flags); }
479243	STD		{ int|linux_sys||recvmmsg(int s, \
480			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
481			    unsigned int flags, struct timespec *timeout); }
482244	UNIMPL		arch_specific_syscall
483245	UNIMPL
484246	UNIMPL
485247	UNIMPL
486248	UNIMPL
487249	UNIMPL
488250	UNIMPL
489251	UNIMPL
490252	UNIMPL
491253	UNIMPL
492254	UNIMPL
493255	UNIMPL
494256	UNIMPL
495257	UNIMPL
496258	UNIMPL
497259	UNIMPL
498260	STD		{ int|linux_sys||wait4(int pid, int *status, \
499			    int options, struct rusage50 *rusage); }
500261	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
501			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
502262	UNIMPL		fanotify_init
503263	UNIMPL		fanotify_mark
504264	UNIMPL		name_to_handle_at
505265	UNIMPL		open_by_handle_at
506266	UNIMPL		clock_adjtime
507267	UNIMPL		syncfs
508268	UNIMPL		setns
509269	STD		{ int|linux_sys||sendmmsg(int s, \
510			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
511			    unsigned int flags); }
512270	UNIMPL		process_vm_readv
513271	UNIMPL		process_vm_writev
514272	UNIMPL		kcmp
515273	UNIMPL		finit_module
516274	UNIMPL		sched_setattr
517275	UNIMPL		sched_getattr
518276	UNIMPL		renameat2
519277	UNIMPL		seccomp
520278	NOARGS		{ ssize_t|sys||getrandom(void *buf, size_t buflen, \
521			    unsigned int flags); }
522279	STD		{ int|linux_sys||memfd_create(const char *name, \
523			    unsigned int flags); }
524280	UNIMPL		bpf
525281	UNIMPL		execveat
526282	UNIMPL		userfaultfd
527283	UNIMPL		membarrier
528284	UNIMPL		mlock2
529285	UNIMPL		copy_file_range
530286	UNIMPL		preadv2
531287	UNIMPL		pwritev2
532288	UNIMPL		pkey_mprotect
533289	UNIMPL		pkey_alloc
534290	UNIMPL		pkey_free
535291	STD		{ int|linux_sys||statx(int fd, const char *path, \
536			    int flag, unsigned int mask, \
537			    struct linux_statx *sp); }
538292	UNIMPL		io_pgetevents
539293	UNIMPL		rseq
540294	UNIMPL		kexec_file_load
541295	UNIMPL
542296	UNIMPL
543297	UNIMPL
544298	UNIMPL
545299	UNIMPL
546300	UNIMPL
547301	UNIMPL
548302	UNIMPL
549303	UNIMPL
550304	UNIMPL
551305	UNIMPL
552306	UNIMPL
553307	UNIMPL
554308	UNIMPL
555309	UNIMPL
556310	UNIMPL
557311	UNIMPL
558312	UNIMPL
559313	UNIMPL
560314	UNIMPL
561315	UNIMPL
562316	UNIMPL
563317	UNIMPL
564318	UNIMPL
565319	UNIMPL
566320	UNIMPL
567321	UNIMPL
568322	UNIMPL
569323	UNIMPL
570324	UNIMPL
571325	UNIMPL
572326	UNIMPL
573327	UNIMPL
574328	UNIMPL
575329	UNIMPL
576330	UNIMPL
577331	UNIMPL
578332	UNIMPL
579333	UNIMPL
580334	UNIMPL
581335	UNIMPL
582336	UNIMPL
583337	UNIMPL
584338	UNIMPL
585339	UNIMPL
586340	UNIMPL
587341	UNIMPL
588342	UNIMPL
589343	UNIMPL
590344	UNIMPL
591345	UNIMPL
592346	UNIMPL
593347	UNIMPL
594348	UNIMPL
595349	UNIMPL
596350	UNIMPL
597351	UNIMPL
598352	UNIMPL
599353	UNIMPL
600354	UNIMPL
601355	UNIMPL
602356	UNIMPL
603357	UNIMPL
604358	UNIMPL
605359	UNIMPL
606360	UNIMPL
607361	UNIMPL
608362	UNIMPL
609363	UNIMPL
610364	UNIMPL
611365	UNIMPL
612366	UNIMPL
613367	UNIMPL
614368	UNIMPL
615369	UNIMPL
616370	UNIMPL
617371	UNIMPL
618372	UNIMPL
619373	UNIMPL
620374	UNIMPL
621375	UNIMPL
622376	UNIMPL
623377	UNIMPL
624378	UNIMPL
625379	UNIMPL
626380	UNIMPL
627381	UNIMPL
628382	UNIMPL
629383	UNIMPL
630384	UNIMPL
631385	UNIMPL
632386	UNIMPL
633387	UNIMPL
634388	UNIMPL
635389	UNIMPL
636390	UNIMPL
637391	UNIMPL
638392	UNIMPL
639393	UNIMPL
640394	UNIMPL
641395	UNIMPL
642396	UNIMPL
643397	UNIMPL
644398	UNIMPL
645399	UNIMPL
646400	UNIMPL
647401	UNIMPL
648402	UNIMPL
649403	UNIMPL
650404	UNIMPL
651405	UNIMPL
652406	UNIMPL
653407	UNIMPL
654408	UNIMPL
655409	UNIMPL
656410	UNIMPL
657411	UNIMPL
658412	UNIMPL
659413	UNIMPL
660414	UNIMPL
661415	UNIMPL
662416	UNIMPL
663417	UNIMPL
664418	UNIMPL
665419	UNIMPL
666420	UNIMPL
667421	UNIMPL
668422	UNIMPL
669423	UNIMPL
670424	UNIMPL		pidfd_send_signal
671425	UNIMPL		io_uring_setup
672426	UNIMPL		io_uring_enter
673427	UNIMPL		io_uring_register
674428	UNIMPL		open_tree
675429	UNIMPL		move_mount
676430	UNIMPL		fsopen
677431	UNIMPL		fsconfig
678432	UNIMPL		fsmount
679433	UNIMPL		fspick
680434	UNIMPL		pidfd_open
681435	UNIMPL		clone3
682436	STD		{ int|linux_sys||close_range(unsigned int first, \
683			    unsigned int last, unsigned int flags); }
684437	UNIMPL		openat2
685438	UNIMPL		pidfd_getfd
686439	UNIMPL		faccessat2
687
688; we want a "nosys" syscall, we'll just add an extra entry for it.
689440	STD		{ int|linux_sys||nosys(void); }
690441	STD		{ int|linux_sys||epoll_pwait2(int epfd, \
691			    struct linux_epoll_event *events, int maxevents, \
692			    const struct linux_timespec *timeout, \
693			    const linux_sigset_t *sigmask); }
694