Home | History | Annotate | Line # | Download | only in amd64
syscalls.master revision 1.67
      1 	$NetBSD: syscalls.master,v 1.67 2021/12/02 04:29:48 ryo Exp $
      2 
      3 ;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
      4 
      5 ; NetBSD amd64 COMPAT_LINUX system call name/number "master" file.
      6 ; (See syscalls.conf to see what it is processed into.)
      7 ;
      8 ; Fields: number type [type-dependent ...]
      9 ;	number	system call number, must be in order
     10 ;	type	one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
     11 ;		the compatibility options defined in syscalls.conf.
     12 ;
     13 ; types:
     14 ;	STD	always included
     15 ;	OBSOL	obsolete, not included in system
     16 ;	UNIMPL	unimplemented, not included in system
     17 ;	NODEF	included, but don't define the syscall number
     18 ;	NOARGS	included, but don't define the syscall args structure
     19 ;	INDIR	included, but don't define the syscall args structure
     20 ;		and allow it to be "really" varargs.
     21 ;
     22 ; The compat options are defined in the syscalls.conf file, and the
     23 ; compat option name is prefixed to the syscall name.  Other than
     24 ; that, they're like NODEF (for 'compat' options), or STD (for
     25 ; 'libcompat' options).
     26 ;
     27 ; The type-dependent arguments are as follows:
     28 ; For STD, NODEF, NOARGS, and compat syscalls:
     29 ;	{ pseudo-proto } [alias]
     30 ; For other syscalls:
     31 ;	[comment]
     32 ;
     33 ; #ifdef's, etc. may be included, and are copied to the output files.
     34 ; #include's are copied to the syscall names and switch definition files only.
     35 
     36 #if defined(_KERNEL_OPT)
     37 #include "opt_sysv.h"
     38 #include "opt_compat_43.h"
     39 #include "opt_compat_netbsd.h"
     40 #endif
     41 
     42 
     43 #include <sys/param.h>
     44 #include <sys/poll.h>
     45 #include <sys/systm.h>
     46 #include <sys/signal.h>
     47 #include <sys/mount.h>
     48 #include <sys/syscallargs.h>
     49 #include <sys/time.h>
     50 
     51 #include <compat/sys/time.h>
     52 
     53 #include <compat/linux/common/linux_types.h>
     54 #include <compat/linux/common/linux_mmap.h>
     55 #include <compat/linux/common/linux_ipc.h>
     56 #include <compat/linux/common/linux_msg.h>
     57 #include <compat/linux/common/linux_sem.h>
     58 #include <compat/linux/common/linux_shm.h>
     59 #include <compat/linux/common/linux_signal.h>
     60 #include <compat/linux/common/linux_siginfo.h>
     61 #include <compat/linux/common/linux_machdep.h>
     62 
     63 #include <compat/linux/linux_syscallargs.h>
     64 
     65 %%
     66 
     67 0	NOARGS		{ ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
     68 1	NOARGS		{ ssize_t|sys||write(int fd, const void *buf, \
     69 			    size_t nbyte); }
     70 2	STD		{ int|linux_sys||open(const char *path, int flags, \
     71 			    linux_umode_t mode); }
     72 3	NOARGS		{ int|sys||close(int fd); }
     73 4	STD		{ int|linux_sys||stat64(const char *path, \
     74 			    struct linux_stat64 *sp); }
     75 5	STD		{ int|linux_sys||fstat64(int fd, \
     76 			    struct linux_stat64 *sp); }
     77 6	STD		{ int|linux_sys||lstat64(const char *path, \
     78 			    struct linux_stat64 *sp); }
     79 7	NOARGS		{ int|sys||poll(struct pollfd *fds, u_int nfds, \
     80 			    int timeout); }
     81 8	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
     82 			    int whence); }
     83 9	NOARGS		{ linux_off_t|linux_sys||mmap(unsigned long addr, \
     84 			    size_t len, int prot, int flags, int fd, \
     85 			    linux_off_t offset); }
     86 10	STD		{ int|linux_sys||mprotect(const void *start, \
     87 			    unsigned long len, int prot); }
     88 11	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
     89 12	STD		{ int|linux_sys||brk(char *nsize); }
     90 13	STD		{ int|linux_sys||rt_sigaction(int signum, \
     91 			    const struct linux_sigaction *nsa, \
     92 			    struct linux_sigaction *osa, \
     93 			    size_t sigsetsize); }
     94 14	STD		{ int|linux_sys||rt_sigprocmask(int how, \
     95 			    const linux_sigset_t *set, \
     96 			    linux_sigset_t *oset, \
     97 			    size_t sigsetsize); }
     98 15	NOARGS		{ int|linux_sys||rt_sigreturn(void); }
     99 16	STD		{ int|linux_sys||ioctl(int fd, u_long com, \
    100 			    void *data); }
    101 17	STD		{ int|linux_sys||pread(int fd, char *buf, \
    102 			    size_t nbyte, off_t offset); }
    103 18	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
    104 			    size_t nbyte, off_t offset); }
    105 19	NOARGS		{ ssize_t|sys||readv(int fd, \
    106 			    const struct iovec *iovp, int iovcnt); }
    107 20	NOARGS		{ ssize_t|sys||writev(int fd, \
    108 			    const struct iovec *iovp, int iovcnt); }
    109 21	NOARGS		{ int|sys||access(const char *path, int flags); }
    110 22	STD		{ int|linux_sys||pipe(int *pfds); }
    111 23	STD		{ int|linux_sys||select(int nfds, fd_set *readfds, \
    112 			    fd_set *writefds, fd_set *exceptfds, \
    113 			    struct timeval50 *timeout); }
    114 24	STD		{ int|linux_sys||sched_yield(void); }
    115 25	STD		{ void *|linux_sys||mremap(void *old_address, \
    116 			    size_t old_size, size_t new_size, u_long flags); }
    117 26	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
    118 27	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
    119 28	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
    120 #ifdef SYSVSHM
    121 29	NOARGS		{ int|linux_sys||shmget(key_t key, size_t size, \
    122 			    int shmflg); }
    123 30	NOARGS		{ int|sys||shmat(int shmid, void *shmaddr, int shmflg); }
    124 31	NOARGS		{ int|linux_sys||shmctl(int shmid, int cmd, \
    125 			    struct linux_shmid_ds *buf); }
    126 #else
    127 29	UNIMPL		shmget
    128 30	UNIMPL		shmat
    129 31	UNIMPL		shmctl
    130 #endif
    131 32	NOARGS		{ int|sys||dup(int fd); }
    132 33	NOARGS		{ int|sys||dup2(int from, int to); }
    133 34	STD		{ int|linux_sys||pause(void); }
    134 35	STD		{ int|linux_sys||nanosleep( \
    135 			    const struct linux_timespec *rqtp, \
    136 			    struct linux_timespec *rmtp); }
    137 36	NOARGS		{ int|compat_50_sys||getitimer(int which, \
    138 			    struct itimerval50 *itv); }
    139 37	STD		{ int|linux_sys||alarm(unsigned int secs); }
    140 38	NOARGS		{ int|compat_50_sys||setitimer(int which, \
    141 			    struct itimerval50 *itv, \
    142 			    struct itimerval50 *oitv); }
    143 39	STD		{ pid_t|sys||getpid(void); }
    144 40	UNIMPL		sendfile
    145 41	STD		{ int|linux_sys||socket(int domain, \
    146 			    int type, int protocol); }
    147 42	STD		{ int|linux_sys||connect(int s, \
    148 			    const struct osockaddr *name, \
    149 			    unsigned int namelen); }
    150 43	STD		{ int|linux_sys||accept(int s, struct osockaddr *name, \
    151 			    int *anamelen); } oaccept
    152 44	STD		{ ssize_t|linux_sys||sendto(int s, void *msg, int len, \
    153 			    int flags, struct osockaddr *to, int tolen); }
    154 45	STD		{ ssize_t|linux_sys||recvfrom(int s, void *buf, \
    155 			    size_t len, int flags, struct osockaddr *from, \
    156 			    unsigned int *fromlenaddr); }
    157 46	STD		{ int|linux_sys||sendmsg(int s, \
    158 			    const struct linux_msghdr *msg, int flags); }
    159 47	STD		{ ssize_t|linux_sys||recvmsg(int s, \
    160 			    struct linux_msghdr *msg, int flags); }
    161 48	NOARGS		{ int|sys||shutdown(int s, int how); }
    162 49	STD		{ int|linux_sys||bind(int s, \
    163 			    const struct osockaddr *name, \
    164 			    unsigned int namelen); }
    165 50	NOARGS		{ int|sys||listen(int s, int backlog); }
    166 51	STD		{ int|linux_sys||getsockname(int fdec, void *asa, \
    167 			    int *alen); }
    168 52	STD		{ int|linux_sys||getpeername(int fdes, \
    169 			    struct sockaddr *asa, unsigned int *alen); }
    170 53	STD		{ int|linux_sys||socketpair(int domain, int type, \
    171 			    int protocol, int *rsv); }
    172 54	STD		{ int|linux_sys||setsockopt(int s, int level, \
    173 			    int optname, void *optval, int optlen); }
    174 55	STD		{ int|linux_sys||getsockopt(int s, int level, \
    175 			    int optname, void *optval, int *optlen); }
    176 56	STD		{ int|linux_sys||clone(int flags, void *stack, \
    177 			    void *parent_tidptr, void *child_tidptr, void *tls); }
    178 57	NOARGS		{ int|sys||fork(void); }
    179 58	NOARGS		{ int|sys|14|vfork(void); }
    180 59	NOARGS		{ int|sys||execve(const char *path, char **argp, \
    181 			    char **envp); }
    182 60	STD		{ int|linux_sys||exit(int rval); }
    183 61	STD		{ int|linux_sys||wait4(int pid, int *status, \
    184 			    int options, struct rusage50 *rusage); }
    185 62	STD		{ int|linux_sys||kill(int pid, int signum); }
    186 63	STD		{ int|linux_sys||uname(struct linux_utsname *up); }
    187 #ifdef SYSVSEM
    188 64	NOARGS		{ int|sys||semget(key_t key, int nsems, int semflg); }
    189 65	NOARGS		{ int|sys||semop(int semid, struct sembuf *sops, \
    190 			    size_t nsops); }
    191 66	STD		{ int|linux_sys||semctl(int semid, int semnum, \
    192 			    int cmd, union linux_semun arg); }
    193 #else
    194 64	UNIMPL		semget
    195 65	UNIMPL		semop
    196 66	UNIMPL		semctl
    197 #endif
    198 #ifdef SYSVSHM
    199 67	NOARGS		{ int|sys||shmdt(const void *shmaddr); }
    200 #else
    201 67	UNIMPL		shmdt
    202 #endif
    203 #ifdef SYSVMSG
    204 68	NOARGS		{ int|sys||msgget(key_t key, int msgflg); }
    205 69	NOARGS		{ int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \
    206 			    int msgflg); }
    207 70	NOARGS		{ ssize_t|sys||msgrcv(int msqid, void *msgp, \
    208 			    size_t msgsz, long msgtyp, int msgflg); }
    209 71	NOARGS		{ int|linux_sys||msgctl(int msqid, int cmd, \
    210 			    struct linux_msqid_ds *buf); }
    211 #else
    212 68	UNIMPL		msgget
    213 69	UNIMPL		msgsnd
    214 70	UNIMPL		msgrcv
    215 71	UNIMPL		msgctl
    216 #endif
    217 72	STD		{ int|linux_sys||fcntl(int fd, int cmd, void *arg); }
    218 73	NOARGS		{ int|sys||flock(int fd, int how); }
    219 74	NOARGS		{ int|sys||fsync(int fd); }
    220 75	STD		{ int|linux_sys||fdatasync(int fd); }
    221 76	STD		{ int|linux_sys||truncate64(const char *path, \
    222 			    off_t length); }
    223 77	STD		{ int|linux_sys||ftruncate64(unsigned int fd, \
    224 			    off_t length); }
    225 78	STD		{ int|linux_sys||getdents(int fd, \
    226 			    struct linux_dirent *dent, unsigned int count); }
    227 79	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
    228 80	NOARGS		{ int|sys||chdir(const char *path); }
    229 81	NOARGS		{ int|sys||fchdir(int fd); }
    230 82	NOARGS		{ int|sys||__posix_rename(const char *from, \
    231 			    const char *to); }
    232 83	NOARGS		{ int|sys||mkdir(const char *path, linux_umode_t mode); }
    233 84	NOARGS		{ int|sys||rmdir(const char *path); }
    234 85	STD		{ int|linux_sys||creat(const char *path, linux_umode_t mode); }
    235 86	NOARGS		{ int|sys||link(const char *path, const char *link); }
    236 87	STD		{ int|linux_sys||unlink(const char *path); }
    237 88	NOARGS		{ int|sys||symlink(const char *path, const char *link); }
    238 89	NOARGS		{ ssize_t|sys||readlink(const char *path, char *buf, \
    239 			    int count); }
    240 90	NOARGS		{ int|sys||chmod(const char *path, linux_umode_t mode); }
    241 91	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
    242 92	NOARGS		{ int|sys||__posix_chown(const char *path, uid_t uid, \
    243 				gid_t gid); }
    244 93	NOARGS		{ int|sys||__posix_fchown(int fd, uid_t uid, \
    245 			    gid_t gid); }
    246 94	NOARGS		{ int|sys||__posix_lchown(const char *path, uid_t uid, \
    247 			    gid_t gid); }
    248 95	NOARGS		{ int|sys||umask(int newmask); }
    249 96	STD		{ int|linux_sys||gettimeofday(struct timeval50 *tp, \
    250 			    struct timezone *tzp); }
    251 97	STD		{ int|linux_sys||getrlimit(int which, \
    252 			    struct rlimit *rlp); }
    253 98	NOARGS		{ int|compat_50_sys||getrusage(int who, \
    254 			    struct rusage50 *rusage); }
    255 99	STD		{ int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
    256 100	STD		{ int|linux_sys||times(struct times *tms); }
    257 101	STD		{ int|linux_sys||ptrace(long request, long pid, \
    258 			  long addr, long data); }
    259 102	NOARGS		{ uid_t|sys||getuid(void); }
    260 103	UNIMPL		syslog
    261 104	NOARGS		{ gid_t|sys||getgid(void); }
    262 105	NOARGS		{ int|sys||setuid(uid_t uid); }
    263 106	NOARGS		{ int|sys||setgid(gid_t gid); }
    264 107	NOARGS		{ uid_t|sys||geteuid(void); }
    265 108	NOARGS		{ gid_t|sys||getegid(void); }
    266 109	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
    267 110	STD		{ pid_t|sys||getppid(void); }
    268 111	NOARGS		{ int|sys||getpgrp(void); }
    269 112	NOARGS		{ int|sys||setsid(void); }
    270 113	NOARGS		{ int|sys||setreuid(uid_t ruid, uid_t euid); }
    271 114	NOARGS		{ int|sys||setregid(gid_t rgid, gid_t egid); }
    272 115	NOARGS		{ int|sys||getgroups(int gidsetsize, gid_t *gidset); }
    273 116	NOARGS		{ int|sys||setgroups(int gidsetsize, gid_t *gidset); }
    274 117	STD		{ int|linux_sys||setresuid(uid_t ruid, uid_t euid, \
    275 			    uid_t suid); }
    276 118	STD		{ int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \
    277 			    uid_t *suid); }
    278 119	STD		{ int|linux_sys||setresgid(gid_t rgid, gid_t egid, \
    279 			    gid_t sgid); }
    280 120	STD		{ int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \
    281 			    gid_t *sgid); }
    282 121	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
    283 122	STD		{ int|linux_sys||setfsuid(uid_t uid); }
    284 123	STD		{ int|linux_sys||setfsgid(gid_t gid); }
    285 124	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
    286 125	UNIMPL		capget
    287 126	UNIMPL		capset
    288 127	STD		{ int|linux_sys||rt_sigpending( \
    289 			    linux_sigset_t *set, \
    290 			    size_t sigsetsize); }
    291 128	STD		{ int|linux_sys||rt_sigtimedwait( \
    292 			    const linux_sigset_t *set, \
    293 			    linux_siginfo_t *info, \
    294 			    const struct linux_timespec *timeout); }
    295 129	STD		{ int|linux_sys||rt_queueinfo(int pid, int signum, \
    296 			    linux_siginfo_t *uinfo); }
    297 130	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
    298 			    size_t sigsetsize); }
    299 131	STD		{ int|linux_sys||sigaltstack( \
    300 			    const struct linux_sigaltstack *ss, \
    301 			    struct linux_sigaltstack *oss); }
    302 132	STD		{ int|linux_sys||utime(const char *path, \
    303 			    struct linux_utimbuf *times); }
    304 133	STD		{ int|linux_sys||mknod(const char *path, linux_umode_t mode, \
    305 			    unsigned dev); }
    306 #ifdef EXEC_AOUT
    307 134	STD		{ int|linux_sys||uselib(const char *path); }
    308 #else
    309 134	UNIMPL		sys_uselib
    310 #endif
    311 135	STD		{ int|linux_sys||personality(unsigned long per); }
    312 136	UNIMPL		ustat
    313 137	STD		{ int|linux_sys||statfs(const char *path, \
    314 			    struct linux_statfs *sp); }
    315 138	STD		{ int|linux_sys||fstatfs(int fd, \
    316 			    struct linux_statfs *sp); }
    317 139	UNIMPL		sysfs
    318 140	STD		{ int|linux_sys||getpriority(int which, int who); }
    319 141	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
    320 142	STD		{ int|linux_sys||sched_setparam(pid_t pid, \
    321 			    const struct linux_sched_param *sp); }
    322 143	STD		{ int|linux_sys||sched_getparam(pid_t pid, \
    323 			    struct linux_sched_param *sp); }
    324 144	STD		{ int|linux_sys||sched_setscheduler(pid_t pid, \
    325 			    int policy, const struct linux_sched_param *sp); }
    326 145	STD		{ int|linux_sys||sched_getscheduler(pid_t pid); }
    327 146	STD		{ int|linux_sys||sched_get_priority_max(int policy); }
    328 147	STD		{ int|linux_sys||sched_get_priority_min(int policy); }
    329 148	UNIMPL		sys_sched_rr_get_interval
    330 149	NOARGS		{ int|sys||mlock(void *addr, size_t len); }
    331 150	NOARGS		{ int|sys||munlock(void *addr, size_t len); }
    332 151	NOARGS		{ int|sys||mlockall(int flags); }
    333 152	NOARGS		{ int|sys||munlockall(void); }
    334 153	UNIMPL		vhangup
    335 154	STD		{ int|linux_sys||modify_ldt(int func, void *ptr, \
    336 			    size_t bytecount); }
    337 155	UNIMPL		pivot_root
    338 156	STD		{ int|linux_sys||__sysctl(struct linux___sysctl *lsp); }
    339 157	UNIMPL		prctl
    340 158	STD		{ int|linux_sys||arch_prctl(int code, \
    341 			    unsigned long addr); }
    342 159	UNIMPL		adjtimex
    343 160	STD		{ int|linux_sys||setrlimit(u_int which, \
    344 			    struct rlimit *rlp); }
    345 161	NOARGS		{ int|sys||chroot(char *path); }
    346 162	NOARGS		{ int|sys||sync(void); }
    347 163	NOARGS		{ int|sys||acct(char *path); }
    348 164	STD		{ int|linux_sys||settimeofday(struct timeval50 *tp, \
    349 			    struct timezone *tzp); }
    350 165	UNIMPL		mount
    351 166	UNIMPL		umount2
    352 167	STD		{ int|linux_sys||swapon(char *name); }
    353 168	STD		{ int|linux_sys||swapoff(const char *path); }
    354 169	STD		{ int|linux_sys||reboot(int magic1, int magic2, \
    355 			    int cmd, void *arg); }
    356 170	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
    357 			    u_int len);}
    358 171	STD		{ int|linux_sys||setdomainname(char *domainname, \
    359 			    int len); }
    360 172	STD		{ int|linux_sys||iopl(int level); }
    361 173	STD		{ int|linux_sys||ioperm(unsigned int lo, \
    362 			    unsigned int hi, int val); }
    363 174	UNIMPL		create_module
    364 175	UNIMPL		init_module
    365 176	UNIMPL		delete_module
    366 177	UNIMPL		get_kernel_syms
    367 178	UNIMPL		query_module
    368 179	UNIMPL		quotactl
    369 180	UNIMPL		nfsservctl
    370 181	UNIMPL		getpmsg
    371 182	UNIMPL		putpmsg
    372 183	UNIMPL		afs_syscall
    373 184	UNIMPL		tuxcall
    374 185	UNIMPL		security
    375 186	STD		{ pid_t|linux_sys||gettid(void); }
    376 187	UNIMPL		readahead
    377 188	STD		{ int|linux_sys||setxattr(char *path, char *name, \
    378 			    void *value, size_t size, int flags); }
    379 189	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
    380 			    void *value, size_t size, int flags); }
    381 190	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
    382 			    void *value, size_t size, int flags); }
    383 191	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
    384 			    void *value, size_t size); }
    385 192	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
    386 			    void *value, size_t size); }
    387 193	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
    388 			    void *value, size_t size); }
    389 194	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
    390 			    size_t size); }
    391 195	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
    392 			    size_t size); }
    393 196	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
    394 			    size_t size); }
    395 197	STD		{ int|linux_sys||removexattr(char *path, char *name); }
    396 198	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
    397 199	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
    398 200	STD		{ int|linux_sys||tkill(int tid, int sig); }
    399 201	STD		{ int|linux_sys||time(linux_time_t *t); }
    400 202	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
    401 			    const struct linux_timespec *timeout, int *uaddr2, \
    402 			    int val3); }
    403 203	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
    404 			    unsigned int len, unsigned long *mask); }
    405 204	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
    406 			    unsigned int len, unsigned long *mask); }
    407 205	UNIMPL		set_thread_area
    408 206	UNIMPL		io_setup
    409 207	UNIMPL		io_destroy
    410 208	UNIMPL		io_getevents
    411 209	UNIMPL		io_submit
    412 210	UNIMPL		io_cancel
    413 211	UNIMPL		get_thread_area
    414 212	UNIMPL		lookup_dcookie
    415 213	UNIMPL		epoll_create
    416 214	UNIMPL		epoll_ctl_old
    417 215	UNIMPL		epoll_wait_old
    418 216	UNIMPL		remap_file_pages
    419 217	STD		{ int|linux_sys||getdents64(int fd, \
    420 			    struct linux_dirent64 *dent, unsigned int count); }
    421 218	STD		{ int|linux_sys||set_tid_address(int *tid); }
    422 219	UNIMPL		restart_syscall
    423 220	UNIMPL		semtimedop
    424 221	STD		{ int|linux_sys||fadvise64(int fd, off_t offset, \
    425 			    size_t len, int advice); }
    426 222	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
    427 			    struct linux_sigevent *evp, timer_t *timerid); }
    428 223	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
    429 			    int flags, const struct linux_itimerspec *tim, \
    430 			    struct linux_itimerspec *otim); }
    431 224	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
    432 			    struct linux_itimerspec *tim); }
    433 225	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
    434 226	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
    435 227	STD		{ int|linux_sys||clock_settime(clockid_t which, \
    436 			    struct linux_timespec *tp); }
    437 228	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
    438 			    struct linux_timespec *tp); }
    439 229	STD		{ int|linux_sys||clock_getres(clockid_t which, \
    440 			    struct linux_timespec *tp); }
    441 230	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
    442 			    int flags, struct linux_timespec *rqtp, \
    443 			    struct linux_timespec *rmtp); }
    444 231	STD		{ int|linux_sys||exit_group(int error_code); }
    445 232	UNIMPL		epoll_wait
    446 233	UNIMPL		epoll_ctl
    447 234	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
    448 235	NOARGS		{ int|compat_50_sys||utimes(const char *path, \
    449 			    const struct timeval50 *tptr); }
    450 236	UNIMPL		vserver
    451 237	UNIMPL		mbind
    452 238	UNIMPL		set_mempolicy
    453 239	UNIMPL		get_mempolicy
    454 240	UNIMPL		mq_open
    455 241	UNIMPL		mq_unlink
    456 242	UNIMPL		mq_timedsend
    457 243	UNIMPL		mq_timedreceive
    458 244	UNIMPL		mq_notify
    459 245	UNIMPL		mq_getsetattr
    460 246	UNIMPL		kexec_load
    461 247	UNIMPL		waitid
    462 248	UNIMPL		add_key
    463 249	UNIMPL		request_key
    464 250	UNIMPL		keyctl
    465 251	UNIMPL		ioprio_set
    466 252	UNIMPL		ioprio_get
    467 253	UNIMPL		inotify_init
    468 254	UNIMPL		inotify_add_watch
    469 255	UNIMPL		inotify_rm_watch
    470 256	UNIMPL		migrate_pages
    471 257	STD 		{ int|linux_sys||openat(int fd, const char *path, \
    472 			    int flags, ... linux_umode_t mode); }
    473 258	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
    474 			    linux_umode_t mode); }
    475 259	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
    476 			    linux_umode_t mode, unsigned dev); }
    477 260	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
    478 			    uid_t owner, gid_t group, int flag); }
    479 261	UNIMPL		futimesat
    480 262	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
    481 			    struct linux_stat *sp, int flag); }
    482 263	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
    483 			    int flag); }
    484 264	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
    485 			    int tofd, const char *to); }
    486 265	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
    487 			    int fd2, const char *name2, int flags); }
    488 266	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
    489 			    const char *path2); }
    490 267	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
    491 			    char *buf, size_t bufsize); }
    492 268	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
    493 			    linux_umode_t mode); }
    494 269	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
    495 			    int amode); }
    496 270	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
    497 			   fd_set *writefds, fd_set *exceptfds, \
    498 			   struct linux_timespec *timeout, \
    499 			   linux_sized_sigset_t *ss); }
    500 271	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
    501 			    struct linux_timespec *timeout, \
    502 			    linux_sigset_t *sigset); }
    503 272	UNIMPL		unshare
    504 			;
    505 			; The NetBSD native robust list calls have different
    506 			; argument names / types, but they are ABI-compatible
    507 			; with Linux.
    508 			;
    509 273	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
    510 			    size_t len); }
    511 274	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
    512 			    void **headp, size_t *lenp); }
    513 275	UNIMPL		splice
    514 276	UNIMPL		tee
    515 277	UNIMPL		sync_file_range
    516 278	UNIMPL		vmsplice
    517 279	UNIMPL		move_pages
    518 280	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
    519 			    struct linux_timespec *times, int flag); }
    520 281	UNIMPL		epoll_pwait
    521 282	UNIMPL		signalfd
    522 283	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
    523 			    int flags); }
    524 284	STD		{ int|linux_sys||eventfd(unsigned int initval); }
    525 285	STD		{ int|linux_sys||fallocate(int fd, int mode, \
    526 			    off_t offset, off_t len); }
    527 286	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
    528 			    const struct linux_itimerspec *tim, \
    529 			    struct linux_itimerspec *otim); }
    530 287	STD		{ int|linux_sys||timerfd_gettime(int fd, \
    531 			    struct linux_itimerspec *tim); }
    532 288	STD		{ int|linux_sys||accept4(int s, \
    533 			    struct osockaddr *name, \
    534 			    int *anamelen, int flags); }
    535 289	UNIMPL		signalfd4
    536 290	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
    537 			    int flags); }
    538 291	UNIMPL		epoll_create1
    539 292	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
    540 293	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
    541 294	UNIMPL		inotify_init1
    542 295	STD		{ int|linux_sys||preadv(int fd, \
    543 			    const struct iovec *iovp, int iovcnt, \
    544 			    unsigned long off_lo, unsigned long off_hi); }
    545 296	STD		{ int|linux_sys||pwritev(int fd, \
    546 			    const struct iovcnt *iovp, int iovcnt, \
    547 			    unsigned long off_lo, unsigned long off_hi); }
    548 297	UNIMPL		rt_tgsigqueueinfo
    549 298	UNIMPL		perf_counter_open
    550 299	STD		{ int|linux_sys||recvmmsg(int s, \
    551 			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
    552 			    unsigned int flags, struct timespec *timeout); }
    553 300	UNIMPL		fanotify_init
    554 301	UNIMPL		fanotify_mark
    555 302	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
    556 			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
    557 303	UNIMPL		name_to_handle_at
    558 304	UNIMPL		open_by_handle_at
    559 305	UNIMPL		clock_adjtime
    560 306	UNIMPL		syncfs
    561 307	STD		{ int|linux_sys||sendmmsg(int s, \
    562 			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
    563 			    unsigned int flags); }
    564 308	UNIMPL		setns
    565 309	UNIMPL		getcpu
    566 310	UNIMPL		process_vm_readv
    567 311	UNIMPL		process_vm_writev
    568 312	UNIMPL		kcmp
    569 313	UNIMPL		finit_module
    570 
    571 ; we want a "nosys" syscall, we'll just add an extra entry for it.
    572 314	STD		{ int|linux_sys||nosys(void); }
    573