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