syscalls.master revision 1.83
1	$NetBSD: syscalls.master,v 1.83 2023/08/18 19:41:19 christos Exp $  
2
3;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
4
5; Derived from NetBSD's sys/compat/linux/arch/i386/syscalls.master
6; sys/compat/linux/arch/m68k/syscalls.master
7; and from Linux's arch/ppc/kernel/misc.S
8;
9; We have problems for a few syscalls, specially:
10; 142 ppc_select -> sys_new_select -> sys_select (Conflicts with 82 ???).
11;
12; Expect problems with the following, which have an architecture dependent
13; implementation in Linux/powerpc:
14; 29  pause
15; 42  pipe      tested. no problem.
16; 59  olduname
17; 101 ioperm
18; 109 uname
19; 117 ipc
20;
21; Most of syscalls after 182 that were introduced in Linux-2.4 are UNIMPL.
22;
23; The following are UNIMPL here. The Linux kernel implements them but just logs
24; a kernel error and returns -ENOSYS.
25; 110 iopl
26; 113 vm86
27; 123 modify_ldt
28; 198 sys_pciconfig_read
29; 199 sys_pciconfig_write
30; 200 sys_pciconfig_iobase
31;
32; Emmanuel Dreyfus <p99dreyf@criens.u-psud.fr>
33
34; NetBSD powerpc COMPAT_LINUX system call name/number "master" file.
35; (See syscalls.conf to see what it is processed into.)
36;
37; Fields: number type [type-dependent ...]
38;	number	system call number, must be in order
39;	type	one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
40;		the compatibility options defined in syscalls.conf.
41;
42; types:
43;	STD	always included
44;	OBSOL	obsolete, not included in system
45;	UNIMPL	unimplemented, not included in system
46;	NODEF	included, but don't define the syscall number
47;	NOARGS	included, but don't define the syscall args structure
48;	INDIR	included, but don't define the syscall args structure
49;		and allow it to be "really" varargs.
50;
51; The compat options are defined in the syscalls.conf file, and the
52; compat option name is prefixed to the syscall name.  Other than
53; that, they're like NODEF (for 'compat' options), or STD (for
54; 'libcompat' options).
55;
56; The type-dependent arguments are as follows:
57; For STD, NODEF, NOARGS, and compat syscalls:
58;	{ pseudo-proto } [alias]
59; For other syscalls:
60;	[comment]
61;
62; #ifdef's, etc. may be included, and are copied to the output files.
63; #include's are copied to the syscall names and switch definition files only.
64
65#include <sys/param.h>
66#include <sys/poll.h>
67#include <sys/systm.h>
68#include <sys/signal.h>
69#include <sys/mount.h>
70#include <sys/syscallargs.h>
71
72#include <compat/linux/common/linux_types.h>
73#include <compat/linux/common/linux_signal.h>
74#include <compat/linux/common/linux_siginfo.h>
75#include <compat/linux/common/linux_machdep.h>
76#include <compat/linux/common/linux_mmap.h>
77
78#include <compat/linux/linux_syscallargs.h>
79
80%%
81
820	NOARGS		{ int|linux_sys||nosys(void); } syscall
831	STD		{ int|linux_sys||exit(int rval); }
842	NOARGS		{ int|sys||fork(void); }
853	NOARGS		{ ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
864	NOARGS		{ ssize_t|sys||write(int fd, const void *buf, \
87			    size_t nbyte); }
885	STD		{ int|linux_sys||open(const char *path, int flags, \
89			    linux_umode_t mode); }
906	NOARGS		{ int|sys||close(int fd); }
917	STD		{ int|linux_sys||waitpid(int pid, int *status, \
92			    int options);}
938	STD		{ int|linux_sys||creat(const char *path, linux_umode_t mode); }
949	NOARGS		{ int|sys||link(const char *path, const char *link); }
9510	STD		{ int|linux_sys||unlink(const char *path); }
9611	NOARGS		{ int|sys||execve(const char *path, char **argp, \
97			    char **envp); }
9812	NOARGS		{ int|sys||chdir(const char *path); }
9913	STD		{ int|linux_sys||time(linux_time_t *t); }
10014	STD		{ int|linux_sys||mknod(const char *path, linux_umode_t mode, \
101			    unsigned dev); }
10215	NOARGS		{ int|sys||chmod(const char *path, int mode); }
10316	NOARGS		{ int|sys||__posix_lchown(const char *path, uid_t uid, \
104			    gid_t gid); }
10517	OBSOL		break
10618	OBSOL		ostat
10719	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
108			    int whence); }
10920	NOARGS 		{ pid_t|sys||getpid(void); }
11021	UNIMPL		mount
11122	OBSOL		umount
11223	NOARGS		{ int|sys||setuid(uid_t uid); }
11324	NOARGS		{ uid_t|sys||getuid(void); }
11425	STD		{ int|linux_sys||stime(linux_time_t *t); }
11526	STD		{ int|linux_sys||ptrace(int request, int pid, \
116			    long addr, long data); }
11727	STD		{ int|linux_sys||alarm(unsigned int secs); }
11828	OBSOL		ofstat
11929	STD		{ int|linux_sys||pause(void); }
12030	STD		{ int|linux_sys||utime(const char *path, \
121			    struct linux_utimbuf *times); }
12231	OBSOL		stty
12332	OBSOL		gtty
12433	NOARGS		{ int|sys||access(const char *path, int flags); }
12534	STD		{ int|linux_sys||nice(int incr); }
12635	OBSOL		ftime
12736	NOARGS		{ int|sys||sync(void); }
12837	STD		{ int|linux_sys||kill(int pid, int signum); }
12938	NOARGS		{ int|sys||__posix_rename(const char *from, \
130			    const char *to); }
13139	NOARGS		{ int|sys||mkdir(const char *path, linux_umode_t mode); }
13240	NOARGS		{ int|sys||rmdir(const char *path); }
13341	NOARGS		{ int|sys||dup(int fd); }
13442	STD		{ int|linux_sys||pipe(int *pfds); }
13543	STD		{ int|linux_sys||times(struct times *tms); }
13644	OBSOL		prof
13745	STD		{ int|linux_sys||brk(char *nsize); }
13846	NOARGS		{ int|sys||setgid(gid_t gid); }
13947	NOARGS		{ gid_t|sys||getgid(void); }
14048	STD		{ int|linux_sys||signal(int signum, \
141			    linux_handler_t handler); }
14249	NOARGS		{ uid_t|sys||geteuid(void); }
14350	NOARGS		{ gid_t|sys||getegid(void); }
14451	NOARGS		{ int|sys||acct(char *path); }
14552	UNIMPL		umount
14653	OBSOL		lock
14754	STD		{ int|linux_sys||ioctl(int fd, u_long com, \
148			    void *data); }
14955	STD		{ int|linux_sys||fcntl(int fd, int cmd, void *arg); }
15056	OBSOL		mpx
15157	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
15258	OBSOL		ulimit
15359 	STD		{ int|linux_sys||olduname(struct linux_old_utsname \
154			   *up); }
15560	NOARGS		{ int|sys||umask(int newmask); }
15661	NOARGS		{ int|sys||chroot(char *path); }
15762	UNIMPL		ustat
15863	NOARGS		{ int|sys||dup2(int from, int to); }
15964	NOARGS		{ pid_t|sys||getppid(void); }
16065	NOARGS		{ int|sys||getpgrp(void); }
16166	NOARGS		{ int|sys||setsid(void); }
16267	STD		{ int|linux_sys||sigaction(int signum, \
163			    const struct linux_old_sigaction *nsa, \
164			    struct linux_old_sigaction *osa); }
16568	STD		{ int|linux_sys||siggetmask(void); }
16669	STD		{ int|linux_sys||sigsetmask(linux_old_sigset_t mask); }
16770	NOARGS		{ int|sys||setreuid(uid_t ruid, uid_t euid); }
16871	NOARGS		{ int|sys||setregid(gid_t rgid, gid_t egid); }
16972	STD		{ int|linux_sys||sigsuspend(void *restart, \
170			    int oldmask, int mask); }
17173	STD		{ int|linux_sys||sigpending(linux_old_sigset_t *set); }
17274	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
173			    u_int len);}
17475	STD		{ int|linux_sys||setrlimit(u_int which, \
175			    struct orlimit *rlp); }
17676	STD		{ int|linux_sys||getrlimit(u_int which, \
177			    struct orlimit *rlp); }
17877	NOARGS		{ int|compat_50_sys||getrusage(int who, \
179			    struct rusage50 *rusage); }
18078	STD		{ int|linux_sys||gettimeofday(struct timeval50 *tp, \
181			    struct timezone *tzp); }
18279	STD		{ int|linux_sys||settimeofday(struct timeval50 *tp, \
183			    struct timezone *tzp); }
18480	NOARGS		{ int|sys||getgroups(int gidsetsize, gid_t *gidset); }
18581	NOARGS		{ int|sys||setgroups(int gidsetsize, gid_t *gidset); }
18682	STD		{ int|linux_sys||select(int nfds, fd_set* readfds, \
187					fd_set* writefds, fd_set* exceptfds, \
188					struct timeval50 *timeout); }
18983	NOARGS		{ int|sys||symlink(const char *path, const char *to); }
19084	NOARGS		{ int|compat_43_sys||lstat(const char *path, \
191			    struct stat43 *up); } oolstat
19285	NOARGS		{ ssize_t|sys||readlink(const char *path, char *buf, \
193			    int count); }
194#ifdef EXEC_AOUT
19586	STD		{ int|linux_sys||uselib(const char *path); }
196#else
19786	UNIMPL		sys_uselib
198#endif
19987	STD		{ int|linux_sys||swapon(char *name); }
20088	STD		{ int|linux_sys||reboot(int magic1, int magic2, \
201			    int cmd, void *arg); }
20289	STD		{ int|linux_sys||readdir(int fd, void *dent, \
203			    unsigned int count); }
20490	NOARGS		{ int|linux_sys||mmap(unsigned long addr, size_t len, \
205			    int prot, int flags, int fd, linux_off_t offset); }
20691	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
20792	NOARGS		{ int|compat_43_sys||truncate(const char *path, \
208			    long length); }
20993	NOARGS		{ int|compat_43_sys||ftruncate(int fd, long length); }
21094	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
21195	NOARGS		{ int|sys||__posix_fchown(int fd, uid_t uid, \
212			    gid_t gid); }
21396	STD		{ int|linux_sys||getpriority(int which, int who); }
21497	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
21598	NOARGS		{ int|sys||profil(void *samples, u_int size, \
216			    u_int offset, u_int scale); }
21799	STD		{ int|linux_sys||statfs(const char *path, \
218			    struct linux_statfs *sp); }
219100	STD		{ int|linux_sys||fstatfs(int fd, \
220			    struct linux_statfs *sp); }
221101	UNIMPL		ioperm
222102	STD		{ int|linux_sys||socketcall(int what, void *args); }
223103	UNIMPL		syslog
224104	NOARGS		{ int|compat_50_sys||setitimer(int which, \
225			    struct itimerval50 *itv, \
226			    struct itimerval50 *oitv); }
227105	NOARGS		{ int|compat_50_sys||getitimer(int which, \
228			    struct itimerval50 *itv); }
229106	STD		{ int|linux_sys||stat(const char *path, \
230			    struct linux_stat *sp); }
231107	STD		{ int|linux_sys||lstat(const char *path, \
232			    struct linux_stat *sp); }
233108	STD		{ int|linux_sys||fstat(int fd, struct linux_stat *sp); }
234109	STD		{ int|linux_sys||uname(struct linux_utsname *up); }
235110	UNIMPL		iopl
236111	UNIMPL		vhangup
237112	UNIMPL		idle
238113	UNIMPL		vm86old
239114	STD		{ int|linux_sys||wait4(int pid, int *status, \
240			    int options, struct rusage50 *rusage); }
241115	STD		{ int|linux_sys||swapoff(const char *path); }
242116	STD		{ int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
243117	STD		{ int|linux_sys||ipc(int what, int a1, int a2, int a3, \
244			    void *ptr); }
245118	NOARGS		{ int|sys||fsync(int fd); }
246119	STD		{ int|linux_sys||sigreturn(struct linux_sigcontext *scp); }
247120	STD		{ int|linux_sys||clone(int flags, void *stack, \
248			    void *parent_tidptr, void *tls, void *child_tidptr); }
249121	STD		{ int|linux_sys||setdomainname(char *domainname, \
250			    int len); }
251122	STD		{ int|linux_sys||new_uname(struct linux_utsname *up); }
252123	UNIMPL		modify_ldt
253124	UNIMPL		adjtimex
254125	STD		{ int|linux_sys||mprotect(const void *start, \
255			    unsigned long len, int prot); }
256126	STD		{ int|linux_sys||sigprocmask(int how, \
257			    const linux_old_sigset_t *set, \
258			    linux_old_sigset_t *oset); }
259127	UNIMPL		create_module
260128	UNIMPL		init_module
261129	UNIMPL		delete_module
262130	UNIMPL		get_kernel_syms
263131	UNIMPL		quotactl
264132	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
265133	NOARGS		{ int|sys||fchdir(int fd); }
266134	UNIMPL		bdflush
267135	UNIMPL		sysfs
268136	STD		{ int|linux_sys||personality(unsigned long per); }
269137	UNIMPL		afs_syscall
270138	STD		{ int|linux_sys||setfsuid(uid_t uid); }
271139	STD		{ int|linux_sys||setfsgid(gid_t gid); }
272140	STD		{ int|linux_sys||llseek(int fd, u_int32_t ohigh, \
273			    u_int32_t olow, void *res, int whence); }
274141	STD		{ int|linux_sys||getdents(int fd, \
275			    struct linux_dirent *dent, unsigned int count); }
276142	STD		{ int|linux_sys||new_select(int nfds, fd_set *readfds, \
277			    fd_set *writefds, fd_set *exceptfds, \
278			    struct timeval50 *timeout); }
279143	NOARGS		{ int|sys||flock(int fd, int how); }
280144	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
281145	NOARGS		{ ssize_t|sys||readv(int fd, \
282			    const struct iovec *iovp, int iovcnt); }
283146	NOARGS		{ ssize_t|sys||writev(int fd, \
284			    const struct iovec *iovp, int iovcnt); }
285147	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
286148	STD		{ int|linux_sys||fdatasync(int fd); }
287149	STD		{ int|linux_sys||__sysctl(struct linux___sysctl *lsp); }
288150	NOARGS		{ int|sys||mlock(void *addr, size_t len); }
289151	NOARGS		{ int|sys||munlock(void *addr, size_t len); }
290152	NOARGS		{ int|sys||mlockall(int flags); }
291153	NOARGS		{ int|sys||munlockall(void); }
292154	STD		{ int|linux_sys||sched_setparam(pid_t pid, \
293			    const struct linux_sched_param *sp); }
294155	STD		{ int|linux_sys||sched_getparam(pid_t pid, \
295			    struct linux_sched_param *sp); }
296156	STD		{ int|linux_sys||sched_setscheduler(pid_t pid, \
297			    int policy, const struct linux_sched_param *sp); }
298157	STD		{ int|linux_sys||sched_getscheduler(pid_t pid); }
299158	STD		{ int|linux_sys||sched_yield(void); }
300159	STD		{ int|linux_sys||sched_get_priority_max(int policy); }
301160	STD		{ int|linux_sys||sched_get_priority_min(int policy); }
302161	UNIMPL		sched_rr_get_interval
303162	STD		{ int|linux_sys||nanosleep( \
304			    const struct linux_timespec *rqtp, \
305			    struct linux_timespec *rmtp); }
306163	STD		{ void *|linux_sys||mremap(void *old_address, \
307			    size_t old_size, size_t new_size, u_long flags); }
308164	STD		{ int|linux_sys||setresuid(uid_t ruid, uid_t euid, \
309			    uid_t suid); }
310165	STD		{ int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \
311			    uid_t *suid); }
312166	UNIMPL		query_module
313167	NOARGS		{ int|sys||poll(struct pollfd *fds, u_int nfds, \
314			    int timeout); }
315168	UNIMPL		nfsservctl
316169	STD		{ int|linux_sys||setresgid(gid_t rgid, gid_t egid, \
317			    gid_t sgid); }
318170	STD		{ int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \
319			    gid_t *sgid); }
320171	UNIMPL		prctl
321172	STD		{ int|linux_sys||rt_sigreturn( \
322			    struct linux_rt_sigframe *sfp); }
323173	STD		{ int|linux_sys||rt_sigaction(int signum, \
324			    const struct linux_sigaction *nsa, \
325			    struct linux_sigaction *osa, \
326			    size_t sigsetsize); }
327174	STD		{ int|linux_sys||rt_sigprocmask(int how, \
328			    const linux_sigset_t *set, \
329			    linux_sigset_t *oset, \
330			    size_t sigsetsize); }
331175	STD		{ int|linux_sys||rt_sigpending( \
332			    linux_sigset_t *set, \
333			    size_t sigsetsize); }
334176	STD		{ int|linux_sys||rt_sigtimedwait( \
335			    const linux_sigset_t *set, \
336			    linux_siginfo_t *info, \
337			    const struct linux_timespec *timeout); }
338177	STD		{ int|linux_sys||rt_queueinfo(int pid, int signum, \
339			    linux_siginfo_t *uinfo); }
340178	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
341			    size_t sigsetsize); }
342179	STD		{ int|linux_sys||pread(int fd, char *buf, \
343			    size_t nbyte, off_t offset); }
344180	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
345			    size_t nbyte, off_t offset); }
346181	NOARGS		{ int|sys||__posix_chown(const char *path, uid_t uid, \
347			    gid_t gid); }
348182	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
349183	UNIMPL		capget
350184	UNIMPL		capset
351185	STD		{ int|linux_sys||sigaltstack( \
352			    const struct linux_sigaltstack *ss, \
353			    struct linux_sigaltstack *oss); }
354186	UNIMPL		sendfile
355187	UNIMPL		getpmsg
356188	UNIMPL		putpmsg
357189	NOARGS		{ int|sys|14|vfork(void); }
358190	STD		{ int|linux_sys||ugetrlimit(int which, \
359			    struct rlimit *rlp); }
360191	STD		{ ssize_t|linux_sys||readahead(int fd, off_t offset, \
361			    size_t count); }
362#define linux_sys_mmap2_args linux_sys_mmap_args
363192	NOARGS		{ linux_off_t|linux_sys||mmap2(unsigned long addr, \
364			    size_t len, int prot, int flags, int fd, \
365			    linux_off_t offset); }
366193	STD		{ int|linux_sys||truncate64(const char *path, \
367			    off_t length); }
368194	STD		{ int|linux_sys||ftruncate64(unsigned int fd, \
369			    off_t length); }
370195	STD		{ int|linux_sys||stat64(const char *path, \
371			    struct linux_stat64 *sp); }
372196	STD		{ int|linux_sys||lstat64(const char *path, \
373			    struct linux_stat64 *sp); }
374197	STD		{ int|linux_sys||fstat64(int fd, \
375			    struct linux_stat64 *sp); }
376198	UNIMPL		sys_pciconfig_read
377199	UNIMPL		sys_pciconfig_write
378200	UNIMPL		sys_pciconfig_iobase
379201	UNIMPL		/* Unused (MacOnLinux project) */
380202	STD		{ int|linux_sys||getdents64(int fd, \
381			    struct linux_dirent64 *dent, unsigned int count); }
382203	UNIMPL		pivot_root
383204	STD		{ int|linux_sys||fcntl64(int fd, int cmd, void *arg); }
384205	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
385206	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
386207	NOARGS		{ pid_t|linux_sys||gettid(void); }
387208	STD		{ int|linux_sys||tkill(int tid, int sig); }
388209	STD		{ int|linux_sys||setxattr(char *path, char *name, \
389			    void *value, size_t size, int flags); }
390210	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
391			    void *value, size_t size, int flags); }
392211	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
393			    void *value, size_t size, int flags); }
394212	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
395			    void *value, size_t size); }
396213	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
397			    void *value, size_t size); }
398214	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
399			    void *value, size_t size); }
400215	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
401			    size_t size); }
402216	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
403			    size_t size); }
404217	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
405			    size_t size); }
406218	STD		{ int|linux_sys||removexattr(char *path, char *name); }
407219	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
408220	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
409221	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
410			    const struct linux_timespec *timeout, int *uaddr2, \
411			    int val3); }
412222	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
413			    unsigned int len, unsigned long *mask); }
414223	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
415			    unsigned int len, unsigned long *mask); }
416224	UNIMPL		/* unused */
417225	UNIMPL		tuxcall
418226	UNIMPL		sendfile64
419227	UNIMPL		io_setup
420228	UNIMPL		io_destroy
421229	UNIMPL		io_getevents
422230	UNIMPL		io_submit
423231	UNIMPL		io_cancel
424232	STD		{ int|linux_sys||set_tid_address(int *tid); }
425233	STD		{ int|linux_sys||fadvise64(int fd, off_t offset, \
426			    size_t len, int advice); }
427234	STD		{ int|linux_sys||exit_group(int error_code); }
428235	UNIMPL		lookup_dcookie
429236	STD		{ int|linux_sys||epoll_create(int size); }
430237	STD		{ int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
431			    struct linux_epoll_event *event); }
432238	STD		{ int|linux_sys||epoll_wait(int epfd, \
433			    struct linux_epoll_event *events, int maxevents, \
434			    int timeout); }
435239	UNIMPL		remap_file_pages
436240	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
437			    struct linux_sigevent *evp, timer_t *timerid); }
438241	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
439			    int flags, const struct linux_itimerspec *tim, \
440			    struct linux_itimerspec *otim); }
441242	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
442			    struct linux_itimerspec *tim); }
443243	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
444244	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
445245	STD		{ int|linux_sys||clock_settime(clockid_t which, \
446			    struct linux_timespec *tp); }
447246	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
448			    struct linux_timespec *tp); }
449247	STD		{ int|linux_sys||clock_getres(clockid_t which, \
450			    struct linux_timespec *tp); }
451248	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
452			    int flags, struct linux_timespec *rqtp, \
453			    struct linux_timespec *rmtp); }
454249	UNIMPL		swapcontext
455250	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
456251	NOARGS		{ int|compat_50_sys||utimes(const char *path, \
457			    const struct timeval50 *tptr); }
458252	STD		{ int|linux_sys||statfs64(const char *path, \
459			    size_t sz, struct linux_statfs64 *sp); }
460253	STD		{ int|linux_sys||fstatfs64(int fd, \
461			    size_t sz, struct linux_statfs64 *sp); }
462254	STD		{ int|linux_sys||fadvise64_64(int fd, off_t offset, \
463			    off_t len, int advice); }
464255	UNIMPL		rtas
465256	UNIMPL		/* reserved for sys_debug_setcontext */
466257	UNIMPL		/* reserved for vserver */
467258	UNIMPL		/* reserved for new sys_remap_file_pages */
468259	UNIMPL		/* reserved for new sys_mbind */
469260	UNIMPL		/* reserved for new sys_get_mempolicy */
470261	UNIMPL		/* reserved for new sys_set_mempolicy */
471262	UNIMPL		mq_open
472263	UNIMPL		mq_unlink
473264	UNIMPL		mq_timedsend
474265	UNIMPL		mq_timedreceive
475266	UNIMPL		mq_notify
476267	UNIMPL		mq_getsetattr
477268	UNIMPL		kexec_load
478269	UNIMPL		add_key
479270	UNIMPL		request_key
480271	UNIMPL		keyctl
481272     STD		{ int|linux_sys||waitid(int idtype, id_t id, \
482			    linux_siginfo_t *infop, int options, \
483			    struct rusage50 *rusage); }
484273	UNIMPL		ioprio_set
485274	UNIMPL		ioprio_get
486275	UNIMPL		inotify_init
487276	UNIMPL		inotify_add_watch
488277	UNIMPL		inotify_rm_watch
489278	UNIMPL		spu_run
490279	UNIMPL		spu_create
491280	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
492			   fd_set *writefds, fd_set *exceptfds, \
493			   struct linux_timespec *timeout, \
494			   linux_sized_sigset_t *ss); }
495281	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
496			    struct linux_timespec *timeout, \
497			    linux_sigset_t *sigset); }
498282	UNIMPL		unshare
499283	UNIMPL		splice
500284	UNIMPL		tee
501285	UNIMPL		vmsplice
502286	STD		{ int|linux_sys||openat(int fd, const char *path, \
503			    int flags, ... linux_umode_t mode); }
504287	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
505			    linux_umode_t mode); }
506288	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
507			    linux_umode_t mode, unsigned dev); }
508289	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
509			    uid_t owner, gid_t group, int flag); }
510290	UNIMPL		futimesat
511291	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
512			    struct linux_stat64 *sp, int flag); }
513292	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
514			    int flag); }
515293	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
516			    int tofd, const char *to); }
517294	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
518			    int fd2, const char *name2, int flags); }
519295	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
520			    const char *path2); }
521296	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
522			    char *buf, size_t bufsize); }
523297	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
524			    linux_umode_t mode); }
525298	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
526			    int amode); }
527			;
528			; The NetBSD native robust list calls have different
529			; argument names / types, but they are ABI-compatible
530			; with Linux.
531			;
532299	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
533			    size_t len); }
534300	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
535			    void **headp, size_t *lenp); }
536301	UNIMPL		move_pages
537302	UNIMPL		getcpu
538303	STD		{ int|linux_sys||epoll_pwait(int epfd, \
539			    struct linux_epoll_event *events, int maxevents, \
540			    int timeout, const linux_sigset_t *sigmask); }
541304	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
542			    struct linux_timespec *times, int flag); }
543305	UNIMPL		signalfd
544306	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
545			    int flags); }
546307	STD		{ int|linux_sys||eventfd(unsigned int initval); }
547308	UNIMPL		sync_file_range2
548309	STD		{ int|linux_sys||fallocate(int fd, int mode, \
549			    off_t offset, off_t len); }
550310	UNIMPL		subpage_prot
551311	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
552			    const struct linux_itimerspec *tim, \
553			    struct linux_itimerspec *otim); }
554312	STD		{ int|linux_sys||timerfd_gettime(int fd, \
555			    struct linux_itimerspec *tim); }
556313	UNIMPL		signalfd4
557314	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
558			    int flags); }
559315	STD		{ int|linux_sys||epoll_create1(int flags); }
560316	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
561317	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
562318	UNIMPL		inotify_init1
563319	UNIMPL		perf_event_open
564320	STD		{ int|linux_sys||preadv(int fd, \
565			    const struct iovec *iovp, int iovcnt, \
566			    unsigned long off_lo, unsigned long off_hi); }
567321	STD		{ int|linux_sys||pwritev(int fd, \
568			    const struct iovcnt *iovp, int iovcnt, \
569			    unsigned long off_lo, unsigned long off_hi); }
570322	UNIMPL		rt_tgsigqueueinfo
571323	UNIMPL		fanotify_init
572324	UNIMPL		fanotify_mark
573325	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
574			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
575326	UNIMPL		socket
576327	UNIMPL		bind
577328	UNIMPL		connect
578329	UNIMPL		listen
579330	UNIMPL		accept
580331	UNIMPL		getsockname
581332	UNIMPL		getpeername
582333	UNIMPL		socketpair
583334	UNIMPL		send
584335	UNIMPL		sendto
585336	UNIMPL		recv
586337	UNIMPL		recvfrom
587338	UNIMPL		shutdown
588339	UNIMPL		setsockopt
589340	UNIMPL		getsockopt
590341	UNIMPL		sendmsg
591342	UNIMPL		recvmsg
592343	STD		{ int|linux_sys||recvmmsg(int s, \
593			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
594			    unsigned int flags, struct timespec *timeout); }
595344	STD		{ int|linux_sys||accept4(int s, \
596			    struct osockaddr *name, \
597			    int *anamelen, int flags); }
598345	UNIMPL		name_to_handle_at
599346	UNIMPL		open_by_handle_at
600347	UNIMPL		clock_adjtime
601348	UNIMPL		syncfs
602349	STD		{ int|linux_sys||sendmmsg(int s, \
603			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
604			    unsigned int flags); }
605350	UNIMPL		setns
606351	UNIMPL		process_vm_readv
607352	UNIMPL		process_vm_writev
608353	UNIMPL		finit_module
609354	UNIMPL		kcmp
610355	UNIMPL		sched_setattr
611356	UNIMPL		sched_getattr
612357	UNIMPL		renameat2
613358	UNIMPL		seccomp
614359	NOARGS		{ ssize_t|sys||getrandom(void *buf, size_t buflen, \
615			    unsigned int flags); }
616360	UNIMPL		memfd_create
617361	UNIMPL		bpf
618362	UNIMPL		execveat
619363	UNIMPL		switch_endian
620364	UNIMPL		userfaultfd
621365	UNIMPL		membarrier
622366	UNIMPL
623367	UNIMPL
624368	UNIMPL
625369	UNIMPL
626370	UNIMPL
627371	UNIMPL
628372	UNIMPL
629373	UNIMPL
630374	UNIMPL
631375	UNIMPL
632376	UNIMPL
633377	UNIMPL
634378	UNIMPL		mlock2
635379	UNIMPL		copy_file_range
636380	UNIMPL		preadv2
637381	UNIMPL		pwritev2
638382	UNIMPL		kexec_file_load
639383     STD		{ int|linux_sys||statx(int fd, const char *path, \
640			    int flag, unsigned int mask, \
641			    struct linux_statx *sp); }
642384	UNIMPL
643385	UNIMPL
644386	UNIMPL
645387	UNIMPL
646388	UNIMPL
647389	UNIMPL
648390	UNIMPL
649391	UNIMPL
650392	UNIMPL
651393	UNIMPL
652394	UNIMPL
653395	UNIMPL
654396	UNIMPL
655397	UNIMPL
656398	UNIMPL
657399	UNIMPL
658400	UNIMPL
659401	UNIMPL
660402	UNIMPL
661403	UNIMPL
662404	UNIMPL
663405	UNIMPL
664406	UNIMPL
665407	UNIMPL
666408	UNIMPL
667409	UNIMPL
668410	UNIMPL
669411	UNIMPL
670412	UNIMPL
671413	UNIMPL
672414	UNIMPL
673415	UNIMPL
674416	UNIMPL
675417	UNIMPL
676418	UNIMPL
677419	UNIMPL
678420	UNIMPL
679421	UNIMPL
680422	UNIMPL
681423	UNIMPL
682424	UNIMPL
683425	UNIMPL
684426	UNIMPL
685427	UNIMPL
686428	UNIMPL
687429	UNIMPL
688430	UNIMPL
689431	UNIMPL
690432	UNIMPL
691433	UNIMPL
692434	UNIMPL
693435	UNIMPL
694436	STD		{ int|linux_sys||close_range(unsigned int first, \
695			    unsigned int last, unsigned int flags); }
696437	UNIMPL
697438	UNIMPL
698439	UNIMPL
699440	UNIMPL
700441	STD		{ int|linux_sys||epoll_pwait2(int epfd, \
701			    struct linux_epoll_event *events, int maxevents, \
702			    const struct linux_timespec *timeout, \
703			    const linux_sigset_t *sigmask); }
704