xref: /netbsd-src/sys/compat/linux/arch/powerpc/syscalls.master (revision 6cfa3b0f83a4f3a0b46d134791324141951f2bc4)
1	$NetBSD: syscalls.master,v 1.84 2023/08/19 17:49:50 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	STD		{ int|linux_sys||inotify_init(void); }
487276	STD		{ int|linux_sys||inotify_add_watch(int fd, \
488			    const char *pathname, uint32_t mask); }
489277	STD		{ int|linux_sys||inotify_rm_watch(int fd, int wd); }
490278	UNIMPL		spu_run
491279	UNIMPL		spu_create
492280	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
493			   fd_set *writefds, fd_set *exceptfds, \
494			   struct linux_timespec *timeout, \
495			   linux_sized_sigset_t *ss); }
496281	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
497			    struct linux_timespec *timeout, \
498			    linux_sigset_t *sigset); }
499282	UNIMPL		unshare
500283	UNIMPL		splice
501284	UNIMPL		tee
502285	UNIMPL		vmsplice
503286	STD		{ int|linux_sys||openat(int fd, const char *path, \
504			    int flags, ... linux_umode_t mode); }
505287	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
506			    linux_umode_t mode); }
507288	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
508			    linux_umode_t mode, unsigned dev); }
509289	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
510			    uid_t owner, gid_t group, int flag); }
511290	UNIMPL		futimesat
512291	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
513			    struct linux_stat64 *sp, int flag); }
514292	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
515			    int flag); }
516293	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
517			    int tofd, const char *to); }
518294	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
519			    int fd2, const char *name2, int flags); }
520295	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
521			    const char *path2); }
522296	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
523			    char *buf, size_t bufsize); }
524297	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
525			    linux_umode_t mode); }
526298	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
527			    int amode); }
528			;
529			; The NetBSD native robust list calls have different
530			; argument names / types, but they are ABI-compatible
531			; with Linux.
532			;
533299	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
534			    size_t len); }
535300	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
536			    void **headp, size_t *lenp); }
537301	UNIMPL		move_pages
538302	UNIMPL		getcpu
539303	STD		{ int|linux_sys||epoll_pwait(int epfd, \
540			    struct linux_epoll_event *events, int maxevents, \
541			    int timeout, const linux_sigset_t *sigmask); }
542304	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
543			    struct linux_timespec *times, int flag); }
544305	UNIMPL		signalfd
545306	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
546			    int flags); }
547307	STD		{ int|linux_sys||eventfd(unsigned int initval); }
548308	UNIMPL		sync_file_range2
549309	STD		{ int|linux_sys||fallocate(int fd, int mode, \
550			    off_t offset, off_t len); }
551310	UNIMPL		subpage_prot
552311	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
553			    const struct linux_itimerspec *tim, \
554			    struct linux_itimerspec *otim); }
555312	STD		{ int|linux_sys||timerfd_gettime(int fd, \
556			    struct linux_itimerspec *tim); }
557313	UNIMPL		signalfd4
558314	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
559			    int flags); }
560315	STD		{ int|linux_sys||epoll_create1(int flags); }
561316	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
562317	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
563318	STD		{ int|linux_sys||inotify_init1(int flags); }
564319	UNIMPL		perf_event_open
565320	STD		{ int|linux_sys||preadv(int fd, \
566			    const struct iovec *iovp, int iovcnt, \
567			    unsigned long off_lo, unsigned long off_hi); }
568321	STD		{ int|linux_sys||pwritev(int fd, \
569			    const struct iovcnt *iovp, int iovcnt, \
570			    unsigned long off_lo, unsigned long off_hi); }
571322	UNIMPL		rt_tgsigqueueinfo
572323	UNIMPL		fanotify_init
573324	UNIMPL		fanotify_mark
574325	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
575			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
576326	UNIMPL		socket
577327	UNIMPL		bind
578328	UNIMPL		connect
579329	UNIMPL		listen
580330	UNIMPL		accept
581331	UNIMPL		getsockname
582332	UNIMPL		getpeername
583333	UNIMPL		socketpair
584334	UNIMPL		send
585335	UNIMPL		sendto
586336	UNIMPL		recv
587337	UNIMPL		recvfrom
588338	UNIMPL		shutdown
589339	UNIMPL		setsockopt
590340	UNIMPL		getsockopt
591341	UNIMPL		sendmsg
592342	UNIMPL		recvmsg
593343	STD		{ int|linux_sys||recvmmsg(int s, \
594			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
595			    unsigned int flags, struct timespec *timeout); }
596344	STD		{ int|linux_sys||accept4(int s, \
597			    struct osockaddr *name, \
598			    int *anamelen, int flags); }
599345	UNIMPL		name_to_handle_at
600346	UNIMPL		open_by_handle_at
601347	UNIMPL		clock_adjtime
602348	UNIMPL		syncfs
603349	STD		{ int|linux_sys||sendmmsg(int s, \
604			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
605			    unsigned int flags); }
606350	UNIMPL		setns
607351	UNIMPL		process_vm_readv
608352	UNIMPL		process_vm_writev
609353	UNIMPL		finit_module
610354	UNIMPL		kcmp
611355	UNIMPL		sched_setattr
612356	UNIMPL		sched_getattr
613357	UNIMPL		renameat2
614358	UNIMPL		seccomp
615359	NOARGS		{ ssize_t|sys||getrandom(void *buf, size_t buflen, \
616			    unsigned int flags); }
617360	UNIMPL		memfd_create
618361	UNIMPL		bpf
619362	UNIMPL		execveat
620363	UNIMPL		switch_endian
621364	UNIMPL		userfaultfd
622365	UNIMPL		membarrier
623366	UNIMPL
624367	UNIMPL
625368	UNIMPL
626369	UNIMPL
627370	UNIMPL
628371	UNIMPL
629372	UNIMPL
630373	UNIMPL
631374	UNIMPL
632375	UNIMPL
633376	UNIMPL
634377	UNIMPL
635378	UNIMPL		mlock2
636379	UNIMPL		copy_file_range
637380	UNIMPL		preadv2
638381	UNIMPL		pwritev2
639382	UNIMPL		kexec_file_load
640383	STD		{ int|linux_sys||statx(int fd, const char *path, \
641			    int flag, unsigned int mask, \
642			    struct linux_statx *sp); }
643384	UNIMPL
644385	UNIMPL
645386	UNIMPL
646387	UNIMPL
647388	UNIMPL
648389	UNIMPL
649390	UNIMPL
650391	UNIMPL
651392	UNIMPL
652393	UNIMPL
653394	UNIMPL
654395	UNIMPL
655396	UNIMPL
656397	UNIMPL
657398	UNIMPL
658399	UNIMPL
659400	UNIMPL
660401	UNIMPL
661402	UNIMPL
662403	UNIMPL
663404	UNIMPL
664405	UNIMPL
665406	UNIMPL
666407	UNIMPL
667408	UNIMPL
668409	UNIMPL
669410	UNIMPL
670411	UNIMPL
671412	UNIMPL
672413	UNIMPL
673414	UNIMPL
674415	UNIMPL
675416	UNIMPL
676417	UNIMPL
677418	UNIMPL
678419	UNIMPL
679420	UNIMPL
680421	UNIMPL
681422	UNIMPL
682423	UNIMPL
683424	UNIMPL
684425	UNIMPL
685426	UNIMPL
686427	UNIMPL
687428	UNIMPL
688429	UNIMPL
689430	UNIMPL
690431	UNIMPL
691432	UNIMPL
692433	UNIMPL
693434	UNIMPL
694435	UNIMPL
695436	STD		{ int|linux_sys||close_range(unsigned int first, \
696			    unsigned int last, unsigned int flags); }
697437	UNIMPL
698438	UNIMPL
699439	UNIMPL
700440	UNIMPL
701441	STD		{ int|linux_sys||epoll_pwait2(int epfd, \
702			    struct linux_epoll_event *events, int maxevents, \
703			    const struct linux_timespec *timeout, \
704			    const linux_sigset_t *sigmask); }
705