Home | History | Annotate | Line # | Download | only in aarch64
syscalls.master revision 1.3
      1 	$NetBSD: syscalls.master,v 1.3 2021/11/25 02:29:33 ryo 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_machdep.h>
     57 #include <compat/linux/common/linux_mmap.h>
     58 #include <compat/linux/common/linux_ipc.h>
     59 #include <compat/linux/common/linux_msg.h>
     60 #include <compat/linux/common/linux_sem.h>
     61 #include <compat/linux/common/linux_shm.h>
     62 #include <compat/linux/common/linux_signal.h>
     63 #include <compat/linux/common/linux_siginfo.h>
     64 #include <compat/linux/common/linux_machdep.h>
     65 
     66 #include <compat/linux/linux_syscallargs.h>
     67 
     68 %%
     69 
     70 0	UNIMPL		io_setup
     71 1	UNIMPL		io_destroy
     72 2	UNIMPL		io_submit
     73 3	UNIMPL		io_cancel
     74 4	UNIMPL		io_getevents
     75 5	STD		{ int|linux_sys||setxattr(char *path, char *name, \
     76 			    void *value, size_t size, int flags); }
     77 6	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
     78 			    void *value, size_t size, int flags); }
     79 7	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
     80 			    void *value, size_t size, int flags); }
     81 8	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
     82 			    void *value, size_t size); }
     83 9	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
     84 			    void *value, size_t size); }
     85 10	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
     86 			    void *value, size_t size); }
     87 11	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
     88 			    size_t size); }
     89 12	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
     90 			    size_t size); }
     91 13	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
     92 			    size_t size); }
     93 14	STD		{ int|linux_sys||removexattr(char *path, char *name); }
     94 15	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
     95 16	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
     96 17	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
     97 18	UNIMPL		lookup_dcookie
     98 19	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
     99 			    int flags); }
    100 20	UNIMPL		epoll_create1
    101 21	UNIMPL		epoll_ctl
    102 22	UNIMPL		epoll_pwait
    103 23	NOARGS		{ int|sys||dup(int fd); }
    104 24	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
    105 25	STD		{ int|linux_sys||fcntl(int fd, int cmd, void *arg); }
    106 26	UNIMPL		inotify_init1
    107 27	UNIMPL		inotify_add_watch
    108 28	UNIMPL		inotify_rm_watch
    109 29	STD		{ int|linux_sys||ioctl(int fd, u_long com, \
    110 			    void *data); }
    111 30	UNIMPL		ioprio_set
    112 31	UNIMPL		ioprio_get
    113 32	NOARGS		{ int|sys||flock(int fd, int how); }
    114 33	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
    115 			    linux_umode_t mode, unsigned dev); }
    116 34	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
    117 			    linux_umode_t mode); }
    118 35	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
    119 			    int flag); }
    120 36	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
    121 			    const char *path2); }
    122 37	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
    123 			    int fd2, const char *name2, int flags); }
    124 38	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
    125 			    int tofd, const char *to); }
    126 39	UNIMPL		umount2
    127 40	UNIMPL		mount
    128 41	UNIMPL		pivot_root
    129 42	UNIMPL		nfsservctl
    130 43	STD		{ int|linux_sys||statfs(const char *path, \
    131 			    struct linux_statfs *sp); }
    132 44	STD		{ int|linux_sys||fstatfs(int fd, \
    133 			    struct linux_statfs *sp); }
    134 45	STD		{ int|linux_sys||truncate64(const char *path, \
    135 			    off_t length); }
    136 46	STD		{ int|linux_sys||ftruncate64(unsigned int fd, \
    137 			    off_t length); }
    138 47	STD		{ int|linux_sys||fallocate(int fd, int mode, \
    139 			    off_t offset, off_t len); }
    140 48	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
    141 			    int amode); }
    142 49	NOARGS		{ int|sys||chdir(const char *path); }
    143 50	NOARGS		{ int|sys||fchdir(int fd); }
    144 51	NOARGS		{ int|sys||chroot(char *path); }
    145 52	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
    146 53	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
    147 			    linux_umode_t mode); }
    148 54	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
    149 			    uid_t owner, gid_t group, int flag); }
    150 55	NOARGS		{ int|sys||__posix_fchown(int fd, uid_t uid, \
    151 			    gid_t gid); }
    152 56	STD 		{ int|linux_sys||openat(int fd, const char *path, \
    153 			    int flags, ... linux_umode_t mode); }
    154 57	NOARGS		{ int|sys||close(int fd); }
    155 58	UNIMPL		vhangup
    156 59	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
    157 60	UNIMPL		quotactl
    158 61	STD		{ int|linux_sys||getdents64(int fd, \
    159 			    struct linux_dirent64 *dent, unsigned int count); }
    160 62	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
    161 			    int whence); }
    162 63	NOARGS		{ ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
    163 64	NOARGS		{ ssize_t|sys||write(int fd, const void *buf, \
    164 			    size_t nbyte); }
    165 65	NOARGS		{ ssize_t|sys||readv(int fd, \
    166 			    const struct iovec *iovp, int iovcnt); }
    167 66	NOARGS		{ ssize_t|sys||writev(int fd, \
    168 			    const struct iovec *iovp, int iovcnt); }
    169 67	STD		{ int|linux_sys||pread(int fd, char *buf, \
    170 			    size_t nbyte, off_t offset); }
    171 68	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
    172 			    size_t nbyte, off_t offset); }
    173 69	STD		{ int|linux_sys||preadv(int fd, \
    174 			    const struct iovec *iovp, int iovcnt, \
    175 			    unsigned long off_lo, unsigned long off_hi); }
    176 70	STD		{ int|linux_sys||pwritev(int fd, \
    177 			    const struct iovcnt *iovp, int iovcnt, \
    178 			    unsigned long off_lo, unsigned long off_hi); }
    179 71	UNIMPL		sendfile
    180 72	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
    181 			   fd_set *writefds, fd_set *exceptfds, \
    182 			   struct linux_timespec *timeout, \
    183 			   linux_sized_sigset_t *ss); }
    184 73	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
    185 			    struct linux_timespec *timeout, \
    186 			    linux_sigset_t *sigset); }
    187 74	UNIMPL		signalfd4
    188 75	UNIMPL		vmsplice
    189 76	UNIMPL		splice
    190 77	UNIMPL		tee
    191 78	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
    192 			    char *buf, size_t bufsize); }
    193 79	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
    194 			    struct linux_stat *sp, int flag); }
    195 80	STD		{ int|linux_sys||fstat64(int fd, \
    196 			    struct linux_stat *sp); }
    197 81	NOARGS		{ int|sys||sync(void); }
    198 82	NOARGS		{ int|sys||fsync(int fd); }
    199 83	STD		{ int|linux_sys||fdatasync(int fd); }
    200 84	UNIMPL		sync_file_range
    201 85	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
    202 			    int flags); }
    203 86	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
    204 			    const struct linux_itimerspec *tim, \
    205 			    struct linux_itimerspec *otim); }
    206 87	STD		{ int|linux_sys||timerfd_gettime(int fd, \
    207 			    struct linux_itimerspec *tim); }
    208 88	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
    209 			    struct linux_timespec *times, int flag); }
    210 89	NOARGS		{ int|sys||acct(char *path); }
    211 90	UNIMPL		capget
    212 91	UNIMPL		capset
    213 92	STD		{ int|linux_sys||personality(unsigned long per); }
    214 93	STD		{ int|linux_sys||exit(int rval); }
    215 94	STD		{ int|linux_sys||exit_group(int error_code); }
    216 95	UNIMPL		waitid
    217 96	STD		{ int|linux_sys||set_tid_address(int *tid); }
    218 97	UNIMPL		unshare
    219 98	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
    220 			    const struct linux_timespec *timeout, int *uaddr2, \
    221 			    int val3); }
    222 			;
    223 			; The NetBSD native robust list calls have different
    224 			; argument names / types, but they are ABI-compatible
    225 			; with Linux.
    226 			;
    227 99	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
    228 			    size_t len); }
    229 100	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
    230 			    void **headp, size_t *lenp); }
    231 101	STD		{ int|linux_sys||nanosleep( \
    232 			    const struct linux_timespec *rqtp, \
    233 			    struct linux_timespec *rmtp); }
    234 102	NOARGS		{ int|compat_50_sys||getitimer(int which, \
    235 			    struct itimerval50 *itv); }
    236 103	NOARGS		{ int|compat_50_sys||setitimer(int which, \
    237 			    struct itimerval50 *itv, \
    238 			    struct itimerval50 *oitv); }
    239 104	UNIMPL		kexec_load
    240 105	UNIMPL		init_module
    241 106	UNIMPL		delete_module
    242 107	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
    243 			    struct linux_sigevent *evp, timer_t *timerid); }
    244 108	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
    245 			    struct linux_itimerspec *tim); }
    246 109	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
    247 110	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
    248 			    int flags, const struct linux_itimerspec *tim, \
    249 			    struct linux_itimerspec *otim); }
    250 111	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
    251 112	STD		{ int|linux_sys||clock_settime(clockid_t which, \
    252 			    struct linux_timespec *tp); }
    253 113	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
    254 			    struct linux_timespec *tp); }
    255 114	STD		{ int|linux_sys||clock_getres(clockid_t which, \
    256 			    struct linux_timespec *tp); }
    257 115	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
    258 			    int flags, struct linux_timespec *rqtp, \
    259 			    struct linux_timespec *rmtp); }
    260 116	UNIMPL		syslog
    261 117	STD		{ int|linux_sys||ptrace(long request, long pid, \
    262 			  long addr, long data); }
    263 118	STD		{ int|linux_sys||sched_setparam(pid_t pid, \
    264 			    const struct linux_sched_param *sp); }
    265 119	STD		{ int|linux_sys||sched_setscheduler(pid_t pid, \
    266 			    int policy, const struct linux_sched_param *sp); }
    267 120	STD		{ int|linux_sys||sched_getscheduler(pid_t pid); }
    268 121	STD		{ int|linux_sys||sched_getparam(pid_t pid, \
    269 			    struct linux_sched_param *sp); }
    270 122	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
    271 			    unsigned int len, unsigned long *mask); }
    272 123	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
    273 			    unsigned int len, unsigned long *mask); }
    274 124	STD		{ int|linux_sys||sched_yield(void); }
    275 125	STD		{ int|linux_sys||sched_get_priority_max(int policy); }
    276 126	STD		{ int|linux_sys||sched_get_priority_min(int policy); }
    277 127	UNIMPL		sys_sched_rr_get_interval
    278 128	UNIMPL		restart_syscall
    279 129	STD		{ int|linux_sys||kill(int pid, int signum); }
    280 130	STD		{ int|linux_sys||tkill(int tid, int sig); }
    281 131	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
    282 132	STD		{ int|linux_sys||sigaltstack( \
    283 			    const struct linux_sigaltstack *ss, \
    284 			    struct linux_sigaltstack *oss); }
    285 133	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
    286 			    size_t sigsetsize); }
    287 134	STD		{ int|linux_sys||rt_sigaction(int signum, \
    288 			    const struct linux_sigaction *nsa, \
    289 			    struct linux_sigaction *osa, \
    290 			    size_t sigsetsize); }
    291 135	STD		{ int|linux_sys||rt_sigprocmask(int how, \
    292 			    const linux_sigset_t *set, \
    293 			    linux_sigset_t *oset, \
    294 			    size_t sigsetsize); }
    295 136	STD		{ int|linux_sys||rt_sigpending( \
    296 			    linux_sigset_t *set, \
    297 			    size_t sigsetsize); }
    298 137	STD		{ int|linux_sys||rt_sigtimedwait( \
    299 			    const linux_sigset_t *set, \
    300 			    linux_siginfo_t *info, \
    301 			    const struct linux_timespec *timeout); }
    302 138	UNIMPL		rt_sigqueueinfo
    303 139	NOARGS		{ int|linux_sys||rt_sigreturn(void); }
    304 140	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
    305 141	STD		{ int|linux_sys||getpriority(int which, int who); }
    306 142	STD		{ int|linux_sys||reboot(int magic1, int magic2, \
    307 			    int cmd, void *arg); }
    308 143	NOARGS		{ int|sys||setregid(gid_t rgid, gid_t egid); }
    309 144	NOARGS		{ int|sys||setgid(gid_t gid); }
    310 145	NOARGS		{ int|sys||setreuid(uid_t ruid, uid_t euid); }
    311 146	NOARGS		{ int|sys||setuid(uid_t uid); }
    312 147	STD		{ int|linux_sys||setresuid(uid_t ruid, uid_t euid, \
    313 			    uid_t suid); }
    314 148	STD		{ int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \
    315 			    uid_t *suid); }
    316 149	STD		{ int|linux_sys||setresgid(gid_t rgid, gid_t egid, \
    317 			    gid_t sgid); }
    318 150	STD		{ int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \
    319 			    gid_t *sgid); }
    320 151	STD		{ int|linux_sys||setfsuid(uid_t uid); }
    321 152	STD		{ int|linux_sys||setfsgid(gid_t gid); }
    322 153	STD		{ int|linux_sys||times(struct times *tms); }
    323 154	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
    324 155	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
    325 156	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
    326 157	NOARGS		{ int|sys||setsid(void); }
    327 158	NOARGS		{ int|sys||getgroups(int gidsetsize, gid_t *gidset); }
    328 159	NOARGS		{ int|sys||setgroups(int gidsetsize, gid_t *gidset); }
    329 160	STD		{ int|linux_sys||uname(struct linux_utsname *up); }
    330 161	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
    331 			    u_int len);}
    332 162	STD		{ int|linux_sys||setdomainname(char *domainname, \
    333 			    int len); }
    334 163	STD		{ int|linux_sys||getrlimit(int which, \
    335 			    struct rlimit *rlp); }
    336 164	STD		{ int|linux_sys||setrlimit(u_int which, \
    337 			    struct rlimit *rlp); }
    338 165	NOARGS		{ int|compat_50_sys||getrusage(int who, \
    339 			    struct rusage50 *rusage); }
    340 166	NOARGS		{ int|sys||umask(int newmask); }
    341 167	UNIMPL		prctl
    342 168	UNIMPL		getcpu
    343 169	STD		{ int|linux_sys||gettimeofday(struct timeval50 *tp, \
    344 			    struct timezone *tzp); }
    345 170	STD		{ int|linux_sys||settimeofday(struct timeval50 *tp, \
    346 			    struct timezone *tzp); }
    347 171	UNIMPL		adjtimex
    348 172	STD		{ pid_t|sys||getpid(void); }
    349 173	STD		{ pid_t|sys||getppid(void); }
    350 174	NOARGS		{ uid_t|sys||getuid(void); }
    351 175	NOARGS		{ uid_t|sys||geteuid(void); }
    352 176	NOARGS		{ gid_t|sys||getgid(void); }
    353 177	NOARGS		{ gid_t|sys||getegid(void); }
    354 178	STD		{ pid_t|linux_sys||gettid(void); }
    355 179	STD		{ int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
    356 180	UNIMPL		mq_open
    357 181	UNIMPL		mq_unlink
    358 182	UNIMPL		mq_timedsend
    359 183	UNIMPL		mq_timedreceive
    360 184	UNIMPL		mq_notify
    361 185	UNIMPL		mq_getsetattr
    362 #ifdef SYSVMSG
    363 186	NOARGS		{ int|sys||msgget(key_t key, int msgflg); }
    364 187	NOARGS		{ int|linux_sys||msgctl(int msqid, int cmd, \
    365 			    struct linux_msqid_ds *buf); }
    366 188	NOARGS		{ ssize_t|sys||msgrcv(int msqid, void *msgp, \
    367 			    size_t msgsz, long msgtyp, int msgflg); }
    368 189	NOARGS		{ int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \
    369 			    int msgflg); }
    370 #else
    371 186	UNIMPL		msgget
    372 187	UNIMPL		msgctl
    373 188	UNIMPL		msgrcv
    374 189	UNIMPL		msgsnd
    375 #endif
    376 #ifdef SYSVSEM
    377 190	NOARGS		{ int|sys||semget(key_t key, int nsems, int semflg); }
    378 191	STD		{ int|linux_sys||semctl(int semid, int semnum, \
    379 			    int cmd, union linux_semun arg); }
    380 192	UNIMPL		semtimedop
    381 193	NOARGS		{ int|sys||semop(int semid, struct sembuf *sops, \
    382 			    size_t nsops); }
    383 #else
    384 190	UNIMPL		semget
    385 191	UNIMPL		semctl
    386 192	UNIMPL		semtimedop
    387 193	UNIMPL		semop
    388 #endif
    389 #ifdef SYSVSEM
    390 194	NOARGS		{ int|linux_sys||shmget(key_t key, size_t size, \
    391 			    int shmflg); }
    392 195	NOARGS		{ int|linux_sys||shmctl(int shmid, int cmd, \
    393 			    struct linux_shmid_ds *buf); }
    394 196	NOARGS		{ int|sys||shmat(int shmid, void *shmaddr, int shmflg); }
    395 197	NOARGS		{ int|sys||shmdt(const void *shmaddr); }
    396 #else
    397 194	UNIMPL		shmget
    398 195	UNIMPL		shmctl
    399 196	UNIMPL		shmat
    400 197	UNIMPL		shmdt
    401 #endif
    402 198	STD		{ int|linux_sys||socket(int domain, \
    403 			    int type, int protocol); }
    404 199	STD		{ int|linux_sys||socketpair(int domain, int type, \
    405 			    int protocol, int *rsv); }
    406 200	STD		{ int|linux_sys||bind(int s, \
    407 			    const struct osockaddr *name, \
    408 			    unsigned int namelen); }
    409 201	NOARGS		{ int|sys||listen(int s, int backlog); }
    410 202	STD		{ int|linux_sys||accept(int s, struct osockaddr *name, \
    411 			    int *anamelen); } oaccept
    412 203	STD		{ int|linux_sys||connect(int s, \
    413 			    const struct osockaddr *name, \
    414 			    unsigned int namelen); }
    415 204	STD		{ int|linux_sys||getsockname(int fdec, void *asa, \
    416 			    int *alen); }
    417 205	STD		{ int|linux_sys||getpeername(int fdes, \
    418 			    struct sockaddr *asa, unsigned int *alen); }
    419 206	STD		{ ssize_t|linux_sys||sendto(int s, void *msg, int len, \
    420 			    int flags, struct osockaddr *to, int tolen); }
    421 207	STD		{ ssize_t|linux_sys||recvfrom(int s, void *buf, \
    422 			    size_t len, int flags, struct osockaddr *from, \
    423 			    unsigned int *fromlenaddr); }
    424 208	STD		{ int|linux_sys||setsockopt(int s, int level, \
    425 			    int optname, void *optval, int optlen); }
    426 209	STD		{ int|linux_sys||getsockopt(int s, int level, \
    427 			    int optname, void *optval, int *optlen); }
    428 210	NOARGS		{ int|sys||shutdown(int s, int how); }
    429 211	STD		{ int|linux_sys||sendmsg(int s, \
    430 			    const struct linux_msghdr *msg, int flags); }
    431 212	STD		{ ssize_t|linux_sys||recvmsg(int s, \
    432 			    struct linux_msghdr *msg, int flags); }
    433 213	UNIMPL		readahead
    434 214	STD		{ int|linux_sys||brk(char *nsize); }
    435 215	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
    436 216	STD		{ void *|linux_sys||mremap(void *old_address, \
    437 			    size_t old_size, size_t new_size, u_long flags); }
    438 217	UNIMPL		add_key
    439 218	UNIMPL		request_key
    440 219	UNIMPL		keyctl
    441 220	STD		{ int|linux_sys||clone(int flags, void *stack, \
    442 			    void *parent_tidptr, void *child_tidptr, void *tls); }
    443 221	NOARGS		{ int|sys||execve(const char *path, char **argp, \
    444 			    char **envp); }
    445 222	NOARGS		{ linux_off_t|linux_sys||mmap(unsigned long addr, \
    446 			    size_t len, int prot, int flags, int fd, \
    447 			    linux_off_t offset); }
    448 223	STD		{ int|linux_sys||fadvise64(int fd, off_t offset, \
    449 			    size_t len, int advice); }
    450 224	STD		{ int|linux_sys||swapon(char *name); }
    451 225	STD		{ int|linux_sys||swapoff(const char *path); }
    452 226	STD		{ int|linux_sys||mprotect(const void *start, \
    453 			    unsigned long len, int prot); }
    454 227	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
    455 228	NOARGS		{ int|sys||mlock(void *addr, size_t len); }
    456 229	NOARGS		{ int|sys||munlock(void *addr, size_t len); }
    457 230	NOARGS		{ int|sys||mlockall(int flags); }
    458 231	NOARGS		{ int|sys||munlockall(void); }
    459 232	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
    460 233	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
    461 234	UNIMPL		remap_file_pages
    462 235	UNIMPL		mbind
    463 236	UNIMPL		get_mempolicy
    464 237	UNIMPL		set_mempolicy
    465 238	UNIMPL		migrate_pages
    466 239	UNIMPL		move_pages
    467 240	UNIMPL		rt_tgsigqueueinfo
    468 241	UNIMPL		perf_event_open
    469 242	STD		{ int|linux_sys||accept4(int s, \
    470 			    struct osockaddr *name, \
    471 			    int *anamelen, int flags); }
    472 243	STD		{ int|linux_sys||recvmmsg(int s, \
    473 			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
    474 			    unsigned int flags, struct timespec *timeout); }
    475 244	UNIMPL		arch_specific_syscall
    476 245	UNIMPL
    477 246	UNIMPL
    478 247	UNIMPL
    479 248	UNIMPL
    480 249	UNIMPL
    481 250	UNIMPL
    482 251	UNIMPL
    483 252	UNIMPL
    484 253	UNIMPL
    485 254	UNIMPL
    486 255	UNIMPL
    487 256	UNIMPL
    488 257	UNIMPL
    489 258	UNIMPL
    490 259	UNIMPL
    491 260	STD		{ int|linux_sys||wait4(int pid, int *status, \
    492 			    int options, struct rusage50 *rusage); }
    493 261	UNIMPL		prlimit64
    494 262	UNIMPL		fanotify_init
    495 263	UNIMPL		fanotify_mark
    496 264	UNIMPL		name_to_handle_at
    497 265	UNIMPL		open_by_handle_at
    498 266	UNIMPL		clock_adjtime
    499 267	UNIMPL		syncfs
    500 268	UNIMPL		setns
    501 269	STD		{ int|linux_sys||sendmmsg(int s, \
    502 			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
    503 			    unsigned int flags); }
    504 270	UNIMPL		process_vm_readv
    505 271	UNIMPL		process_vm_writev
    506 272	UNIMPL		kcmp
    507 273	UNIMPL		finit_module
    508 274	UNIMPL		sched_setattr
    509 275	UNIMPL		sched_getattr
    510 276	UNIMPL		renameat2
    511 277	UNIMPL		seccomp
    512 278	NOARGS		{ ssize_t|sys||getrandom(void *buf, size_t buflen, \
    513 			    unsigned int flags); }
    514 279	UNIMPL		memfd_create
    515 280	UNIMPL		bpf
    516 281	UNIMPL		execveat
    517 282	UNIMPL		userfaultfd
    518 283	UNIMPL		membarrier
    519 284	UNIMPL		mlock2
    520 285	UNIMPL		copy_file_range
    521 286	UNIMPL		preadv2
    522 287	UNIMPL		pwritev2
    523 288	UNIMPL		pkey_mprotect
    524 289	UNIMPL		pkey_alloc
    525 290	UNIMPL		pkey_free
    526 291	STD		{ int|linux_sys||statx(int fd, const char *path, \
    527 			    int flag, unsigned int mask, \
    528 			    struct linux_statx *sp); }
    529 292	UNIMPL		io_pgetevents
    530 293	UNIMPL		rseq
    531 294	UNIMPL		kexec_file_load
    532 295	UNIMPL
    533 296	UNIMPL
    534 297	UNIMPL
    535 298	UNIMPL
    536 299	UNIMPL
    537 300	UNIMPL
    538 301	UNIMPL
    539 302	UNIMPL
    540 303	UNIMPL
    541 304	UNIMPL
    542 305	UNIMPL
    543 306	UNIMPL
    544 307	UNIMPL
    545 308	UNIMPL
    546 309	UNIMPL
    547 310	UNIMPL
    548 311	UNIMPL
    549 312	UNIMPL
    550 313	UNIMPL
    551 314	UNIMPL
    552 315	UNIMPL
    553 316	UNIMPL
    554 317	UNIMPL
    555 318	UNIMPL
    556 319	UNIMPL
    557 320	UNIMPL
    558 321	UNIMPL
    559 322	UNIMPL
    560 323	UNIMPL
    561 324	UNIMPL
    562 325	UNIMPL
    563 326	UNIMPL
    564 327	UNIMPL
    565 328	UNIMPL
    566 329	UNIMPL
    567 330	UNIMPL
    568 331	UNIMPL
    569 332	UNIMPL
    570 333	UNIMPL
    571 334	UNIMPL
    572 335	UNIMPL
    573 336	UNIMPL
    574 337	UNIMPL
    575 338	UNIMPL
    576 339	UNIMPL
    577 340	UNIMPL
    578 341	UNIMPL
    579 342	UNIMPL
    580 343	UNIMPL
    581 344	UNIMPL
    582 345	UNIMPL
    583 346	UNIMPL
    584 347	UNIMPL
    585 348	UNIMPL
    586 349	UNIMPL
    587 350	UNIMPL
    588 351	UNIMPL
    589 352	UNIMPL
    590 353	UNIMPL
    591 354	UNIMPL
    592 355	UNIMPL
    593 356	UNIMPL
    594 357	UNIMPL
    595 358	UNIMPL
    596 359	UNIMPL
    597 360	UNIMPL
    598 361	UNIMPL
    599 362	UNIMPL
    600 363	UNIMPL
    601 364	UNIMPL
    602 365	UNIMPL
    603 366	UNIMPL
    604 367	UNIMPL
    605 368	UNIMPL
    606 369	UNIMPL
    607 370	UNIMPL
    608 371	UNIMPL
    609 372	UNIMPL
    610 373	UNIMPL
    611 374	UNIMPL
    612 375	UNIMPL
    613 376	UNIMPL
    614 377	UNIMPL
    615 378	UNIMPL
    616 379	UNIMPL
    617 380	UNIMPL
    618 381	UNIMPL
    619 382	UNIMPL
    620 383	UNIMPL
    621 384	UNIMPL
    622 385	UNIMPL
    623 386	UNIMPL
    624 387	UNIMPL
    625 388	UNIMPL
    626 389	UNIMPL
    627 390	UNIMPL
    628 391	UNIMPL
    629 392	UNIMPL
    630 393	UNIMPL
    631 394	UNIMPL
    632 395	UNIMPL
    633 396	UNIMPL
    634 397	UNIMPL
    635 398	UNIMPL
    636 399	UNIMPL
    637 400	UNIMPL
    638 401	UNIMPL
    639 402	UNIMPL
    640 403	UNIMPL
    641 404	UNIMPL
    642 405	UNIMPL
    643 406	UNIMPL
    644 407	UNIMPL
    645 408	UNIMPL
    646 409	UNIMPL
    647 410	UNIMPL
    648 411	UNIMPL
    649 412	UNIMPL
    650 413	UNIMPL
    651 414	UNIMPL
    652 415	UNIMPL
    653 416	UNIMPL
    654 417	UNIMPL
    655 418	UNIMPL
    656 419	UNIMPL
    657 420	UNIMPL
    658 421	UNIMPL
    659 422	UNIMPL
    660 423	UNIMPL
    661 424	UNIMPL		pidfd_send_signal
    662 425	UNIMPL		io_uring_setup
    663 426	UNIMPL		io_uring_enter
    664 427	UNIMPL		io_uring_register
    665 428	UNIMPL		open_tree
    666 429	UNIMPL		move_mount
    667 430	UNIMPL		fsopen
    668 431	UNIMPL		fsconfig
    669 432	UNIMPL		fsmount
    670 433	UNIMPL		fspick
    671 434	UNIMPL		pidfd_open
    672 435	UNIMPL		clone3
    673 436	UNIMPL
    674 437	UNIMPL		openat2
    675 438	UNIMPL		pidfd_getfd
    676 439	UNIMPL		faccessat2
    677 
    678 ; we want a "nosys" syscall, we'll just add an extra entry for it.
    679 440	STD		{ int|linux_sys||nosys(void); }
    680