xref: /netbsd-src/sys/compat/linux/arch/powerpc/syscalls.master (revision 6b54cae3762909b1742ccdb32355331d56211611)
1	$NetBSD: syscalls.master,v 1.88 2024/10/01 16:29:15 riastradh 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#include <compat/linux/common/linux_mqueue.h>
78#include <compat/linux/common/linux_sched.h>
79
80#include <compat/linux/linux_syscallargs.h>
81
82%%
83
840	NOARGS		{ int|linux_sys||nosys(void); } syscall
851	STD		{ int|linux_sys||exit(int rval); }
862	NOARGS		{ int|sys||fork(void); }
873	NOARGS		{ ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
884	NOARGS		{ ssize_t|sys||write(int fd, const void *buf, \
89			    size_t nbyte); }
905	STD		{ int|linux_sys||open(const char *path, int flags, \
91			    linux_umode_t mode); }
926	NOARGS		{ int|sys||close(int fd); }
937	STD		{ int|linux_sys||waitpid(int pid, int *status, \
94			    int options);}
958	STD		{ int|linux_sys||creat(const char *path, linux_umode_t mode); }
969	NOARGS		{ int|sys||link(const char *path, const char *link); }
9710	STD		{ int|linux_sys||unlink(const char *path); }
9811	NOARGS		{ int|sys||execve(const char *path, char **argp, \
99			    char **envp); }
10012	NOARGS		{ int|sys||chdir(const char *path); }
10113	STD		{ int|linux_sys||time(linux_time_t *t); }
10214	STD		{ int|linux_sys||mknod(const char *path, linux_umode_t mode, \
103			    unsigned dev); }
10415	NOARGS		{ int|sys||chmod(const char *path, int mode); }
10516	NOARGS		{ int|sys||__posix_lchown(const char *path, uid_t uid, \
106			    gid_t gid); }
10717	OBSOL		break
10818	OBSOL		ostat
10919	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
110			    int whence); }
11120	NOARGS 		{ pid_t|sys||getpid(void); }
11221	UNIMPL		mount
11322	OBSOL		umount
11423	NOARGS		{ int|sys||setuid(uid_t uid); }
11524	NOARGS		{ uid_t|sys||getuid(void); }
11625	STD		{ int|linux_sys||stime(linux_time_t *t); }
11726	STD		{ int|linux_sys||ptrace(int request, int pid, \
118			    long addr, long data); }
11927	STD		{ int|linux_sys||alarm(unsigned int secs); }
12028	OBSOL		ofstat
12129	STD		{ int|linux_sys||pause(void); }
12230	STD		{ int|linux_sys||utime(const char *path, \
123			    struct linux_utimbuf *times); }
12431	OBSOL		stty
12532	OBSOL		gtty
12633	NOARGS		{ int|sys||access(const char *path, int flags); }
12734	STD		{ int|linux_sys||nice(int incr); }
12835	OBSOL		ftime
12936	NOARGS		{ int|sys||sync(void); }
13037	STD		{ int|linux_sys||kill(int pid, int signum); }
13138	NOARGS		{ int|sys||__posix_rename(const char *from, \
132			    const char *to); }
13339	NOARGS		{ int|sys||mkdir(const char *path, linux_umode_t mode); }
13440	NOARGS		{ int|sys||rmdir(const char *path); }
13541	NOARGS		{ int|sys||dup(int fd); }
13642	STD		{ int|linux_sys||pipe(int *pfds); }
13743	STD		{ int|linux_sys||times(struct times *tms); }
13844	OBSOL		prof
13945	STD		{ int|linux_sys||brk(char *nsize); }
14046	NOARGS		{ int|sys||setgid(gid_t gid); }
14147	NOARGS		{ gid_t|sys||getgid(void); }
14248	STD		{ int|linux_sys||signal(int signum, \
143			    linux_handler_t handler); }
14449	NOARGS		{ uid_t|sys||geteuid(void); }
14550	NOARGS		{ gid_t|sys||getegid(void); }
14651	NOARGS		{ int|sys||acct(char *path); }
14752	UNIMPL		umount
14853	OBSOL		lock
14954	STD		{ int|linux_sys||ioctl(int fd, u_long com, \
150			    void *data); }
15155	STD		{ int|linux_sys||fcntl(int fd, int cmd, void *arg); }
15256	OBSOL		mpx
15357	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
15458	OBSOL		ulimit
15559	STD		{ int|linux_sys||olduname(struct linux_old_utsname \
156			   *up); }
15760	NOARGS		{ int|sys||umask(int newmask); }
15861	NOARGS		{ int|sys||chroot(char *path); }
15962	UNIMPL		ustat
16063	NOARGS		{ int|sys||dup2(int from, int to); }
16164	NOARGS		{ pid_t|sys||getppid(void); }
16265	NOARGS		{ int|sys||getpgrp(void); }
16366	NOARGS		{ int|sys||setsid(void); }
16467	STD		{ int|linux_sys||sigaction(int signum, \
165			    const struct linux_old_sigaction *nsa, \
166			    struct linux_old_sigaction *osa); }
16768	STD		{ int|linux_sys||siggetmask(void); }
16869	STD		{ int|linux_sys||sigsetmask(linux_old_sigset_t mask); }
16970	NOARGS		{ int|sys||setreuid(uid_t ruid, uid_t euid); }
17071	NOARGS		{ int|sys||setregid(gid_t rgid, gid_t egid); }
17172	STD		{ int|linux_sys||sigsuspend(void *restart, \
172			    int oldmask, int mask); }
17373	STD		{ int|linux_sys||sigpending(linux_old_sigset_t *set); }
17474	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
175			    u_int len);}
17675	STD		{ int|linux_sys||setrlimit(u_int which, \
177			    struct orlimit *rlp); }
17876	STD		{ int|linux_sys||getrlimit(u_int which, \
179			    struct orlimit *rlp); }
18077	NOARGS		{ int|compat_50_sys||getrusage(int who, \
181			    struct rusage50 *rusage); }
18278	STD		{ int|linux_sys||gettimeofday(struct timeval50 *tp, \
183			    struct timezone *tzp); }
18479	STD		{ int|linux_sys||settimeofday(struct timeval50 *tp, \
185			    struct timezone *tzp); }
18680	NOARGS		{ int|sys||getgroups(int gidsetsize, gid_t *gidset); }
18781	NOARGS		{ int|sys||setgroups(int gidsetsize, gid_t *gidset); }
18882	STD		{ int|linux_sys||select(int nfds, fd_set* readfds, \
189					fd_set* writefds, fd_set* exceptfds, \
190					struct timeval50 *timeout); }
19183	NOARGS		{ int|sys||symlink(const char *path, const char *to); }
19284	NOARGS		{ int|compat_43_sys||lstat(const char *path, \
193			    struct stat43 *up); } oolstat
19485	NOARGS		{ ssize_t|sys||readlink(const char *path, char *buf, \
195			    int count); }
196#ifdef EXEC_AOUT
19786	STD		{ int|linux_sys||uselib(const char *path); }
198#else
19986	UNIMPL		sys_uselib
200#endif
20187	STD		{ int|linux_sys||swapon(char *name); }
20288	STD		{ int|linux_sys||reboot(int magic1, int magic2, \
203			    int cmd, void *arg); }
20489	STD		{ int|linux_sys||readdir(int fd, void *dent, \
205			    unsigned int count); }
20690	NOARGS		{ int|linux_sys||mmap(unsigned long addr, size_t len, \
207			    int prot, int flags, int fd, linux_off_t offset); }
20891	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
20992	NOARGS		{ int|compat_43_sys||truncate(const char *path, \
210			    long length); }
21193	NOARGS		{ int|compat_43_sys||ftruncate(int fd, long length); }
21294	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
21395	NOARGS		{ int|sys||__posix_fchown(int fd, uid_t uid, \
214			    gid_t gid); }
21596	STD		{ int|linux_sys||getpriority(int which, int who); }
21697	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
21798	NOARGS		{ int|sys||profil(void *samples, u_int size, \
218			    u_int offset, u_int scale); }
21999	STD		{ int|linux_sys||statfs(const char *path, \
220			    struct linux_statfs *sp); }
221100	STD		{ int|linux_sys||fstatfs(int fd, \
222			    struct linux_statfs *sp); }
223101	UNIMPL		ioperm
224102	STD		{ int|linux_sys||socketcall(int what, void *args); }
225103	UNIMPL		syslog
226104	NOARGS		{ int|compat_50_sys||setitimer(int which, \
227			    struct itimerval50 *itv, \
228			    struct itimerval50 *oitv); }
229105	NOARGS		{ int|compat_50_sys||getitimer(int which, \
230			    struct itimerval50 *itv); }
231106	STD		{ int|linux_sys||stat(const char *path, \
232			    struct linux_stat *sp); }
233107	STD		{ int|linux_sys||lstat(const char *path, \
234			    struct linux_stat *sp); }
235108	STD		{ int|linux_sys||fstat(int fd, struct linux_stat *sp); }
236109	STD		{ int|linux_sys||uname(struct linux_utsname *up); }
237110	UNIMPL		iopl
238111	UNIMPL		vhangup
239112	UNIMPL		idle
240113	UNIMPL		vm86old
241114	STD		{ int|linux_sys||wait4(int pid, int *status, \
242			    int options, struct rusage50 *rusage); }
243115	STD		{ int|linux_sys||swapoff(const char *path); }
244116	STD		{ int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
245117	STD		{ int|linux_sys||ipc(int what, int a1, int a2, int a3, \
246			    void *ptr); }
247118	NOARGS		{ int|sys||fsync(int fd); }
248119	STD		{ int|linux_sys||sigreturn(struct linux_sigcontext *scp); }
249120	STD		{ int|linux_sys||clone(int flags, void *stack, \
250			    void *parent_tidptr, void *tls, void *child_tidptr); }
251121	STD		{ int|linux_sys||setdomainname(char *domainname, \
252			    int len); }
253122	STD		{ int|linux_sys||new_uname(struct linux_utsname *up); }
254123	UNIMPL		modify_ldt
255124	UNIMPL		adjtimex
256125	STD		{ int|linux_sys||mprotect(const void *start, \
257			    unsigned long len, int prot); }
258126	STD		{ int|linux_sys||sigprocmask(int how, \
259			    const linux_old_sigset_t *set, \
260			    linux_old_sigset_t *oset); }
261127	UNIMPL		create_module
262128	UNIMPL		init_module
263129	UNIMPL		delete_module
264130	UNIMPL		get_kernel_syms
265131	UNIMPL		quotactl
266132	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
267133	NOARGS		{ int|sys||fchdir(int fd); }
268134	UNIMPL		bdflush
269135	UNIMPL		sysfs
270136	STD		{ int|linux_sys||personality(unsigned long per); }
271137	UNIMPL		afs_syscall
272138	STD		{ int|linux_sys||setfsuid(uid_t uid); }
273139	STD		{ int|linux_sys||setfsgid(gid_t gid); }
274140	STD		{ int|linux_sys||llseek(int fd, u_int32_t ohigh, \
275			    u_int32_t olow, void *res, int whence); }
276141	STD		{ int|linux_sys||getdents(int fd, \
277			    struct linux_dirent *dent, unsigned int count); }
278142	STD		{ int|linux_sys||new_select(int nfds, fd_set *readfds, \
279			    fd_set *writefds, fd_set *exceptfds, \
280			    struct timeval50 *timeout); }
281143	NOARGS		{ int|sys||flock(int fd, int how); }
282144	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
283145	NOARGS		{ ssize_t|sys||readv(int fd, \
284			    const struct iovec *iovp, int iovcnt); }
285146	NOARGS		{ ssize_t|sys||writev(int fd, \
286			    const struct iovec *iovp, int iovcnt); }
287147	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
288148	STD		{ int|linux_sys||fdatasync(int fd); }
289149	STD		{ int|linux_sys||__sysctl(struct linux___sysctl *lsp); }
290150	NOARGS		{ int|sys||mlock(void *addr, size_t len); }
291151	NOARGS		{ int|sys||munlock(void *addr, size_t len); }
292152	NOARGS		{ int|sys||mlockall(int flags); }
293153	NOARGS		{ int|sys||munlockall(void); }
294154	STD		{ int|linux_sys||sched_setparam(pid_t pid, \
295			    const struct linux_sched_param *sp); }
296155	STD		{ int|linux_sys||sched_getparam(pid_t pid, \
297			    struct linux_sched_param *sp); }
298156	STD		{ int|linux_sys||sched_setscheduler(pid_t pid, \
299			    int policy, const struct linux_sched_param *sp); }
300157	STD		{ int|linux_sys||sched_getscheduler(pid_t pid); }
301158	STD		{ int|linux_sys||sched_yield(void); }
302159	STD		{ int|linux_sys||sched_get_priority_max(int policy); }
303160	STD		{ int|linux_sys||sched_get_priority_min(int policy); }
304161	UNIMPL		sched_rr_get_interval
305162	STD		{ int|linux_sys||nanosleep( \
306			    const struct linux_timespec *rqtp, \
307			    struct linux_timespec *rmtp); }
308163	STD		{ void *|linux_sys||mremap(void *old_address, \
309			    size_t old_size, size_t new_size, u_long flags); }
310164	STD		{ int|linux_sys||setresuid(uid_t ruid, uid_t euid, \
311			    uid_t suid); }
312165	STD		{ int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \
313			    uid_t *suid); }
314166	UNIMPL		query_module
315167	NOARGS		{ int|sys||poll(struct pollfd *fds, u_int nfds, \
316			    int timeout); }
317168	UNIMPL		nfsservctl
318169	STD		{ int|linux_sys||setresgid(gid_t rgid, gid_t egid, \
319			    gid_t sgid); }
320170	STD		{ int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \
321			    gid_t *sgid); }
322171	UNIMPL		prctl
323172	STD		{ int|linux_sys||rt_sigreturn( \
324			    struct linux_rt_sigframe *sfp); }
325173	STD		{ int|linux_sys||rt_sigaction(int signum, \
326			    const struct linux_sigaction *nsa, \
327			    struct linux_sigaction *osa, \
328			    size_t sigsetsize); }
329174	STD		{ int|linux_sys||rt_sigprocmask(int how, \
330			    const linux_sigset_t *set, \
331			    linux_sigset_t *oset, \
332			    size_t sigsetsize); }
333175	STD		{ int|linux_sys||rt_sigpending( \
334			    linux_sigset_t *set, \
335			    size_t sigsetsize); }
336176	STD		{ int|linux_sys||rt_sigtimedwait( \
337			    const linux_sigset_t *set, \
338			    linux_siginfo_t *info, \
339			    const struct linux_timespec *timeout); }
340177	STD		{ int|linux_sys||rt_queueinfo(int pid, int signum, \
341			    linux_siginfo_t *uinfo); }
342178	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
343			    size_t sigsetsize); }
344179	STD		{ int|linux_sys||pread(int fd, char *buf, \
345			    size_t nbyte, off_t offset); }
346180	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
347			    size_t nbyte, off_t offset); }
348181	NOARGS		{ int|sys||__posix_chown(const char *path, uid_t uid, \
349			    gid_t gid); }
350182	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
351183	UNIMPL		capget
352184	UNIMPL		capset
353185	STD		{ int|linux_sys||sigaltstack( \
354			    const struct linux_sigaltstack *ss, \
355			    struct linux_sigaltstack *oss); }
356186	UNIMPL		sendfile
357187	UNIMPL		getpmsg
358188	UNIMPL		putpmsg
359189	NOARGS		{ int|sys|14|vfork(void); }
360190	STD		{ int|linux_sys||ugetrlimit(int which, \
361			    struct rlimit *rlp); }
362191	STD		{ ssize_t|linux_sys||readahead(int fd, off_t offset, \
363			    size_t count); }
364#define linux_sys_mmap2_args linux_sys_mmap_args
365192	NOARGS		{ linux_off_t|linux_sys||mmap2(unsigned long addr, \
366			    size_t len, int prot, int flags, int fd, \
367			    linux_off_t offset); }
368193	STD		{ int|linux_sys||truncate64(const char *path, \
369			    off_t length); }
370194	STD		{ int|linux_sys||ftruncate64(unsigned int fd, \
371			    off_t length); }
372195	STD		{ int|linux_sys||stat64(const char *path, \
373			    struct linux_stat64 *sp); }
374196	STD		{ int|linux_sys||lstat64(const char *path, \
375			    struct linux_stat64 *sp); }
376197	STD		{ int|linux_sys||fstat64(int fd, \
377			    struct linux_stat64 *sp); }
378198	UNIMPL		sys_pciconfig_read
379199	UNIMPL		sys_pciconfig_write
380200	UNIMPL		sys_pciconfig_iobase
381201	UNIMPL		/* Unused (MacOnLinux project) */
382202	STD		{ int|linux_sys||getdents64(int fd, \
383			    struct linux_dirent64 *dent, unsigned int count); }
384203	UNIMPL		pivot_root
385204	STD		{ int|linux_sys||fcntl64(int fd, int cmd, void *arg); }
386205	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
387206	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
388207	NOARGS		{ pid_t|linux_sys||gettid(void); }
389208	STD		{ int|linux_sys||tkill(int tid, int sig); }
390209	STD		{ int|linux_sys||setxattr(char *path, char *name, \
391			    void *value, size_t size, int flags); }
392210	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
393			    void *value, size_t size, int flags); }
394211	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
395			    void *value, size_t size, int flags); }
396212	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
397			    void *value, size_t size); }
398213	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
399			    void *value, size_t size); }
400214	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
401			    void *value, size_t size); }
402215	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
403			    size_t size); }
404216	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
405			    size_t size); }
406217	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
407			    size_t size); }
408218	STD		{ int|linux_sys||removexattr(char *path, char *name); }
409219	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
410220	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
411221	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
412			    const struct linux_timespec *timeout, int *uaddr2, \
413			    int val3); }
414222	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
415			    unsigned int len, unsigned long *mask); }
416223	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
417			    unsigned int len, unsigned long *mask); }
418224	UNIMPL		/* unused */
419225	UNIMPL		tuxcall
420226	UNIMPL		sendfile64
421227	UNIMPL		io_setup
422228	UNIMPL		io_destroy
423229	UNIMPL		io_getevents
424230	UNIMPL		io_submit
425231	UNIMPL		io_cancel
426232	STD		{ int|linux_sys||set_tid_address(int *tid); }
427233	STD		{ int|linux_sys||fadvise64(int fd, off_t offset, \
428			    size_t len, int advice); }
429234	STD		{ int|linux_sys||exit_group(int error_code); }
430235	UNIMPL		lookup_dcookie
431236	STD		{ int|linux_sys||epoll_create(int size); }
432237	STD		{ int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
433			    struct linux_epoll_event *event); }
434238	STD		{ int|linux_sys||epoll_wait(int epfd, \
435			    struct linux_epoll_event *events, int maxevents, \
436			    int timeout); }
437239	UNIMPL		remap_file_pages
438240	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
439			    struct linux_sigevent *evp, timer_t *timerid); }
440241	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
441			    int flags, const struct linux_itimerspec *tim, \
442			    struct linux_itimerspec *otim); }
443242	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
444			    struct linux_itimerspec *tim); }
445243	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
446244	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
447245	STD		{ int|linux_sys||clock_settime(clockid_t which, \
448			    struct linux_timespec *tp); }
449246	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
450			    struct linux_timespec *tp); }
451247	STD		{ int|linux_sys||clock_getres(clockid_t which, \
452			    struct linux_timespec *tp); }
453248	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
454			    int flags, struct linux_timespec *rqtp, \
455			    struct linux_timespec *rmtp); }
456249	UNIMPL		swapcontext
457250	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
458251	NOARGS		{ int|compat_50_sys||utimes(const char *path, \
459			    const struct timeval50 *tptr); }
460252	STD		{ int|linux_sys||statfs64(const char *path, \
461			    size_t sz, struct linux_statfs64 *sp); }
462253	STD		{ int|linux_sys||fstatfs64(int fd, \
463			    size_t sz, struct linux_statfs64 *sp); }
464254	STD		{ int|linux_sys||fadvise64_64(int fd, off_t offset, \
465			    off_t len, int advice); }
466255	UNIMPL		rtas
467256	UNIMPL		/* reserved for sys_debug_setcontext */
468257	UNIMPL		/* reserved for vserver */
469258	UNIMPL		/* reserved for new sys_remap_file_pages */
470259	UNIMPL		/* reserved for new sys_mbind */
471260	UNIMPL		/* reserved for new sys_get_mempolicy */
472261	UNIMPL		/* reserved for new sys_set_mempolicy */
473262	STD		{ linux_mqd_t|linux_sys||mq_open(const char *name, \
474			    int oflag, linux_umode_t mode, \
475			    struct linux_mq_attr *attr); }
476263	STD		{ int|linux_sys||mq_unlink(const char *name); }
477264	STD		{ int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \
478			    const char *msg_ptr, size_t msg_len, \
479			    unsigned int msg_prio, \
480			    const struct linux_timespec *abs_timeout); }
481265	STD		{ ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \
482			    char *msg_ptr, size_t msg_len, \
483			    unsigned int *msg_prio, \
484			    const struct linux_timespec *abs_timeout); }
485266	STD		{ int|linux_sys||mq_notify(linux_mqd_t mqdes, \
486			    const struct linux_sigevent *sevp); }
487267	STD		{ int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \
488			    const struct linux_mq_attr *newattr, \
489			    struct linux_mq_attr *oldattr); }
490268	UNIMPL		kexec_load
491269	UNIMPL		add_key
492270	UNIMPL		request_key
493271	UNIMPL		keyctl
494272	STD		{ int|linux_sys||waitid(int idtype, id_t id, \
495			    linux_siginfo_t *infop, int options, \
496			    struct rusage50 *rusage); }
497273	UNIMPL		ioprio_set
498274	UNIMPL		ioprio_get
499275	STD		{ int|linux_sys||inotify_init(void); }
500276	STD		{ int|linux_sys||inotify_add_watch(int fd, \
501			    const char *pathname, uint32_t mask); }
502277	STD		{ int|linux_sys||inotify_rm_watch(int fd, int wd); }
503278	UNIMPL		spu_run
504279	UNIMPL		spu_create
505280	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
506			   fd_set *writefds, fd_set *exceptfds, \
507			   struct linux_timespec *timeout, \
508			   linux_sized_sigset_t *ss); }
509281	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
510			    struct linux_timespec *timeout, \
511			    linux_sigset_t *sigset); }
512282	UNIMPL		unshare
513283	UNIMPL		splice
514284	UNIMPL		tee
515285	UNIMPL		vmsplice
516286	STD		{ int|linux_sys||openat(int fd, const char *path, \
517			    int flags, ... linux_umode_t mode); }
518287	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
519			    linux_umode_t mode); }
520288	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
521			    linux_umode_t mode, unsigned dev); }
522289	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
523			    uid_t owner, gid_t group, int flag); }
524290	UNIMPL		futimesat
525291	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
526			    struct linux_stat64 *sp, int flag); }
527292	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
528			    int flag); }
529293	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
530			    int tofd, const char *to); }
531294	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
532			    int fd2, const char *name2, int flags); }
533295	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
534			    const char *path2); }
535296	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
536			    char *buf, size_t bufsize); }
537297	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
538			    linux_umode_t mode); }
539298	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
540			    int amode); }
541			;
542			; The NetBSD native robust list calls have different
543			; argument names / types, but they are ABI-compatible
544			; with Linux.
545			;
546299	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
547			    size_t len); }
548300	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
549			    void **headp, size_t *lenp); }
550301	UNIMPL		move_pages
551302	STD		{ int|linux_sys||getcpu(unsigned int *cpu, \
552			    unsigned int *node, \
553			    struct linux_getcpu_cache *tcache); }
554303	STD		{ int|linux_sys||epoll_pwait(int epfd, \
555			    struct linux_epoll_event *events, int maxevents, \
556			    int timeout, const linux_sigset_t *sigmask); }
557304	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
558			    struct linux_timespec *times, int flag); }
559305	UNIMPL		signalfd
560306	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
561			    int flags); }
562307	STD		{ int|linux_sys||eventfd(unsigned int initval); }
563308	STD		{ int|linux_sys||sync_file_range(int fd, \
564			    off_t offset, off_t nbytes, unsigned int flags); }
565309	STD		{ int|linux_sys||fallocate(int fd, int mode, \
566			    off_t offset, off_t len); }
567310	UNIMPL		subpage_prot
568311	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
569			    const struct linux_itimerspec *tim, \
570			    struct linux_itimerspec *otim); }
571312	STD		{ int|linux_sys||timerfd_gettime(int fd, \
572			    struct linux_itimerspec *tim); }
573313	UNIMPL		signalfd4
574314	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
575			    int flags); }
576315	STD		{ int|linux_sys||epoll_create1(int flags); }
577316	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
578317	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
579318	STD		{ int|linux_sys||inotify_init1(int flags); }
580319	UNIMPL		perf_event_open
581320	STD		{ int|linux_sys||preadv(int fd, \
582			    const struct iovec *iovp, int iovcnt, \
583			    unsigned long off_lo, unsigned long off_hi); }
584321	STD		{ int|linux_sys||pwritev(int fd, \
585			    const struct iovcnt *iovp, int iovcnt, \
586			    unsigned long off_lo, unsigned long off_hi); }
587322	UNIMPL		rt_tgsigqueueinfo
588323	UNIMPL		fanotify_init
589324	UNIMPL		fanotify_mark
590325	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
591			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
592326	UNIMPL		socket
593327	UNIMPL		bind
594328	UNIMPL		connect
595329	UNIMPL		listen
596330	UNIMPL		accept
597331	UNIMPL		getsockname
598332	UNIMPL		getpeername
599333	UNIMPL		socketpair
600334	UNIMPL		send
601335	UNIMPL		sendto
602336	UNIMPL		recv
603337	UNIMPL		recvfrom
604338	UNIMPL		shutdown
605339	UNIMPL		setsockopt
606340	UNIMPL		getsockopt
607341	UNIMPL		sendmsg
608342	UNIMPL		recvmsg
609343	STD		{ int|linux_sys||recvmmsg(int s, \
610			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
611			    unsigned int flags, struct timespec *timeout); }
612344	STD		{ int|linux_sys||accept4(int s, \
613			    struct osockaddr *name, \
614			    int *anamelen, int flags); }
615345	UNIMPL		name_to_handle_at
616346	UNIMPL		open_by_handle_at
617347	UNIMPL		clock_adjtime
618348	STD		{ int|linux_sys||syncfs(int fd); }
619349	STD		{ int|linux_sys||sendmmsg(int s, \
620			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
621			    unsigned int flags); }
622350	UNIMPL		setns
623351	UNIMPL		process_vm_readv
624352	UNIMPL		process_vm_writev
625353	UNIMPL		finit_module
626354	UNIMPL		kcmp
627355	UNIMPL		sched_setattr
628356	UNIMPL		sched_getattr
629357	STD		{ int|linux_sys||renameat2(int fromfd, \
630			    const char *from, int tofd, const char *to, \
631			    unsigned int flags); }
632358	UNIMPL		seccomp
633359	NOARGS		{ ssize_t|sys||getrandom(void *buf, size_t buflen, \
634			    unsigned int flags); }
635360	UNIMPL		memfd_create
636361	UNIMPL		bpf
637362	UNIMPL		execveat
638363	UNIMPL		switch_endian
639364	UNIMPL		userfaultfd
640365	UNIMPL		membarrier
641366	UNIMPL
642367	UNIMPL
643368	UNIMPL
644369	UNIMPL
645370	UNIMPL
646371	UNIMPL
647372	UNIMPL
648373	UNIMPL
649374	UNIMPL
650375	UNIMPL
651376	UNIMPL
652377	UNIMPL
653378	UNIMPL		mlock2
654379	STD		{ ssize_t|linux_sys||copy_file_range(int fd_in, \
655			off_t * off_in, int fd_out, off_t * off_out, \
656			size_t len, unsigned int flags); }
657380	UNIMPL		preadv2
658381	UNIMPL		pwritev2
659382	UNIMPL		kexec_file_load
660383	STD		{ int|linux_sys||statx(int fd, const char *path, \
661			    int flag, unsigned int mask, \
662			    struct linux_statx *sp); }
663384	UNIMPL
664385	UNIMPL
665386	UNIMPL
666387	UNIMPL
667388	UNIMPL
668389	UNIMPL
669390	UNIMPL
670391	UNIMPL
671392	UNIMPL
672393	UNIMPL
673394	UNIMPL
674395	UNIMPL
675396	UNIMPL
676397	UNIMPL
677398	UNIMPL
678399	UNIMPL
679400	UNIMPL
680401	UNIMPL
681402	UNIMPL
682403	UNIMPL
683404	UNIMPL
684405	UNIMPL
685406	UNIMPL
686407	UNIMPL
687408	UNIMPL
688409	UNIMPL
689410	UNIMPL
690411	UNIMPL
691412	UNIMPL
692413	UNIMPL
693414	UNIMPL
694415	UNIMPL
695416	UNIMPL
696417	UNIMPL
697418	UNIMPL
698419	UNIMPL
699420	UNIMPL
700421	UNIMPL
701422	UNIMPL
702423	UNIMPL
703424	UNIMPL
704425	UNIMPL
705426	UNIMPL
706427	UNIMPL
707428	UNIMPL
708429	UNIMPL
709430	UNIMPL
710431	UNIMPL
711432	UNIMPL
712433	UNIMPL
713434	UNIMPL
714435	STD		{ int|linux_sys||clone3( \
715			    struct linux_user_clone3_args *cl_args, \
716			    size_t size); }
717436	STD		{ int|linux_sys||close_range(unsigned int first, \
718			    unsigned int last, unsigned int flags); }
719437	UNIMPL
720438	UNIMPL
721439	STD		{ int|linux_sys||faccessat2(int fd, const char *path, \
722			    int amode, int flags); }
723440	UNIMPL
724441	STD		{ int|linux_sys||epoll_pwait2(int epfd, \
725			    struct linux_epoll_event *events, int maxevents, \
726			    const struct linux_timespec *timeout, \
727			    const linux_sigset_t *sigmask); }
728