1	$NetBSD: syscalls.master,v 1.108 2024/07/01 01:35:52 christos Exp $
2;
3;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
4
5; NetBSD alpha 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; (ERH: 3/18/00)
37;
38; XXX XAX things to do:
39;		make sure non-linux_foo() matches real linux syscalls.
40;			create new linux_foo functions otherwise
41;			(i.e. reboot, msgrcv? )
42;		make sure linux_foo() matches expected prototypes in .c files.
43;		kill not used functions.  (ifdef the actual code)
44;		make linux_sys_sigreturn in linux_machdep.c use frame.extramask
45;
46; NOT USED = This syscall is not really used in Linux, except in its
47;		osf compat mode.  Since Linux binaries shouldn't ever
48;		call it and osf binaries run under a different emulation,
49;		it shouldn't matter that the linux version of the
50;		function might not DTRT.  Define it anyway so we
51;		don't have to split off or ifdef the associated function.
52; 		    A bit better might be to have makesyscalls identify this
53; 		as "define but don't include in table" so it doesn't actually
54; 		ever get called.
55; UNIMPL <blank> = not implemented here nor in linux source
56; UNIMPL osf_*   = osf functions implemented in linux, not here.
57;
58
59#if defined(_KERNEL_OPT)
60#include "opt_sysv.h"
61#endif
62
63#include <sys/param.h>
64#include <sys/poll.h>
65#include <sys/systm.h>
66#include <sys/signal.h>
67#include <sys/mount.h>
68#include <sys/syscallargs.h>
69
70#include <compat/linux/common/linux_types.h>
71#include <compat/linux/common/linux_signal.h>
72#include <compat/linux/common/linux_siginfo.h>
73#include <compat/linux/common/linux_ipc.h>
74#include <compat/linux/common/linux_msg.h>
75#include <compat/linux/common/linux_sched.h>
76#include <compat/linux/common/linux_sem.h>
77#include <compat/linux/common/linux_shm.h>
78#include <compat/linux/common/linux_mmap.h>
79#include <compat/linux/common/linux_machdep.h>
80#include <compat/linux/common/linux_mqueue.h>
81
82#include <compat/linux/linux_syscallargs.h>
83#include <compat/linux/arch/alpha/linux_osf1.h>
84
85%%
86
870	NOARGS		{ int|linux_sys||nosys(void); } syscall
881	STD		{ int|linux_sys||exit(int rval); }
892	NOARGS		{ int|sys||fork(void); }
903	NOARGS		{ ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
914	NOARGS		{ ssize_t|sys||write(int fd, const void *buf, \
92			    size_t nbyte); }
935	UNIMPL
946	NOARGS		{ int|sys||close(int fd); }
957	STD		{ int|linux_sys||osf1_wait4(int pid, int *status, \
96			    int options, struct osf1_rusage *rusage); }
97;8	ALIAS		osf1_sys_old_creat, NOT USED
988	STD		{ int|linux_sys||creat(const char *path, linux_umode_t mode); }
999	NOARGS		{ int|sys||link(const char *path, const char *link); }
10010	STD		{ int|linux_sys||unlink(const char *path); }
10111	UNIMPL
10212	NOARGS		{ int|sys||chdir(const char *path); }
10313	NOARGS		{ int|sys||fchdir(int fd); }
10414	STD		{ int|linux_sys||mknod(const char *path, linux_umode_t mode, \
105			    unsigned dev); }
10615	NOARGS		{ int|sys||chmod(const char *path, int mode); }
10716	NOARGS		{ int|sys||__posix_chown(const char *path, uid_t uid, \
108			    gid_t gid); }
109;17	ALIAS		osf1_sys_brk
11017	STD		{ int|linux_sys||brk(char *nsize); }
11118	UNIMPL
11219	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
113			    int whence); }
11420	NOARGS		{ pid_t|sys||getpid_with_ppid(void); }
11521	STD		{ int|linux_sys||osf1_mount(int type, const char *path, \
116			    int flags, void *data); }
11722	UNIMPL		umount
11823	NOARGS		{ int|sys||setuid(uid_t uid); }
11924	NOARGS		{ uid_t|sys||getuid_with_euid(void); }
12025	UNIMPL
12126	STD		{ int|linux_sys||ptrace(long request, long pid, \
122			  long addr, long data); }
12327	UNIMPL
12428	UNIMPL
12529	UNIMPL
12630	UNIMPL
12731	UNIMPL
12832	UNIMPL
12933	NOARGS		{ int|sys||access(const char *path, int flags); }
13034	UNIMPL
13135	UNIMPL
13236	NOARGS		{ int|sys||sync(void); }
13337	STD		{ int|linux_sys||kill(int pid, int signum); }
13438	UNIMPL
13539	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
13640	UNIMPL
13741	NOARGS		{ int|sys||dup(int fd); }
13842	NOARGS		{ int|linux_sys||pipe(void); }
13943	STD		{ int|linux_sys||osf1_set_program_attributes( \
140			    void *taddr, unsigned long tsize, \
141			    void *daddr, unsigned long dsize); }
14244	UNIMPL
14345	STD		{ int|linux_sys||open(const char *path, int flags, \
144			    linux_umode_t mode); }
14546	UNIMPL
14647	NOARGS		{ gid_t|sys||getgid_with_egid(void); }
147; ALIAS osf1_sys_sigprocmask(int how, unsigned long mask);
148; XXX <- copied from osf1/syscalls.master
14948	NOARGS		{ int|compat_13_sys||sigprocmask(int how, \
150			    sigset13_t mask); }
15149	UNIMPL
15250	UNIMPL
15351	NOARGS		{ int|sys||acct(const char *path); }
15452	STD		{ int|linux_sys||sigpending(linux_old_sigset_t *set); }
15553	UNIMPL
15654	STD		{ int|linux_sys||ioctl(int fd, u_long com, \
157			    void *data); }
15855	UNIMPL
15956	UNIMPL
16057	NOARGS		{ int|sys||symlink(const char *path, const char *to); }
16158	NOARGS		{ ssize_t|sys||readlink(const char *path, char *buf, \
162			    int count); }
16359	NOARGS		{ int|sys||execve(const char *path, char **argp, \
164			    char **envp); }
16560	NOARGS		{ mode_t|sys||umask(mode_t newmask); }
16661	NOARGS		{ int|sys||chroot(const char *path); }
16762	UNIMPL
16863	NOARGS		{ int|sys||getpgrp(void); }
16964	NOARGS		{ int|compat_43_sys||getpagesize(void); }
17065	UNIMPL
17166	NOARGS		{ int|sys|14|vfork(void); }
17267	STD		{ int|linux_sys||stat(const char *path, \
173			    struct linux_stat *sp); }
17468	STD		{ int|linux_sys||lstat(const char *path, \
175			    struct linux_stat *sp); }
17669	UNIMPL
17770	UNIMPL
178;71	ALIAS		osf1_sys_mmap
17971	NOARGS		{ int|linux_sys||mmap(unsigned long addr, size_t len, \
180			    int prot, int flags, int fd, linux_off_t offset); }
18172	UNIMPL
18273	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
18374	STD		{ int|linux_sys||mprotect(const void *start, \
184			    unsigned long len, int prot); }
18575	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
18676	UNIMPL		vhangup
18777	UNIMPL
18878	UNIMPL
18979	NOARGS		{ int|sys||getgroups(int gidsetsize, gid_t *gidset); }
19080	NOARGS		{ int|sys||setgroups(int gidsetsize, const gid_t *gidset); }
19181	UNIMPL
19282	UNIMPL		setpgrp
19383	STD		{ int|linux_sys||osf1_setitimer(int which, \
194			    struct osf1_itimerval *itv, \
195			    struct osf1_itimerval *oitv); }
19684	UNIMPL
19785	UNIMPL
19886	UNIMPL		osf1_sys_getitimer
19987	NOARGS		{ int|compat_43_sys||gethostname(char *hostname, \
200			    u_int len); }
20188	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
202			    u_int len); }
20389	UNIMPL		getdtablesize
20490	NOARGS		{ int|sys||dup2(int from, int to); }
20591	STD		{ int|linux_sys||fstat(int fd, struct linux_stat *sp); }
20692	STD		{ int|linux_sys||fcntl(int fd, int cmd, void *arg); }
20793	STD		{ int|linux_sys||osf1_select(u_int nd, fd_set *in, \
208			    fd_set *ou, fd_set *ex, struct osf1_timeval *tv); }
20994	NOARGS		{ int|sys||poll(struct pollfd *fds, u_int nfds, \
210			    int timeout); }
21195	NOARGS		{ int|sys||fsync(int fd); }
21296	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
21397	STD		{ int|linux_sys||socket(int domain, int type, \
214			    int protocol); }
21598	STD		{ int|linux_sys||connect(int s, \
216			    const struct osockaddr *name, \
217			    unsigned int namelen); }
21899	STD		{ int|linux_sys||accept(int s, \
219				struct osockaddr *name, int *anamelen); }
220;100	ALIAS		osf1_sys_getpriority
221100	STD		{ int|linux_sys||getpriority(int which, int who); }
222101	STD		{ int|linux_sys||send(int s, void *buf, int len, \
223				int flags); }
224102	STD		{ int|linux_sys||recv(int s, void *buf, int len, \
225				int flags); }
226103	STD		{ int|linux_sys||sigreturn(struct linux_sigframe *sfp); }
227104	STD		{ int|linux_sys||bind(int s,	     \
228				const struct osockaddr *name, \
229				unsigned int namelen); }
230105	STD		{ int|linux_sys||setsockopt(int s, int level, \
231				int optname, void *optval, int optlen); }
232106	NOARGS		{ int|sys||listen(int s, int backlog); }
233107	UNIMPL
234108	UNIMPL
235109	UNIMPL
236110	UNIMPL
237
238111	STD		{ int|linux_sys||sigsuspend(void *restart, \
239			    int oldmask, int mask); }
240;112	ALIAS		osf1_sys_sigstack
241112	NOARGS		{ int|compat_43_sys||sigstack(struct sigstack *nss, \
242			    struct sigstack *oss); }
243113	STD		{ ssize_t|linux_sys||recvmsg(int s, \
244			    struct linux_msghdr *msg, int flags); }
245114	STD		{ ssize_t|linux_sys||sendmsg(int s, \
246				const struct linux_msghdr *msg, int flags); }
247115	UNIMPL
248116	STD		{ int|linux_sys||osf1_gettimeofday(struct osf1_timeval *tv, \
249			    struct osf1_timezone *tzp); }
250117	STD		{ int|linux_sys||osf1_getrusage(int who, \
251			    struct osf1_rusage *rusage); }
252118	STD		{ int|linux_sys||getsockopt(int s, int level, \
253				int optname, void *optval, int *optlen); }
254119	UNIMPL
255120	NOARGS		{ ssize_t|sys||readv(int fd, const struct iovec *iovp, \
256				int iovcnt); }
257121	NOARGS		{ ssize_t|sys||writev(int fd, const struct iovec *iovp, \
258				int iovcnt); }
259122	STD		{ int|linux_sys||osf1_settimeofday(struct osf1_timeval *tv, \
260			    struct osf1_timezone *tzp); }
261123	NOARGS		{ int|sys||__posix_fchown(int fd, uid_t uid, \
262			    gid_t gid); }
263124	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
264125	STD		{ int|linux_sys||recvfrom(int s, void *buf, int len, \
265				int flags, struct osockaddr *from, \
266				int *fromlenaddr); }
267126	NOARGS		{ int|sys||setreuid(uid_t ruid, uid_t euid); }
268127	NOARGS		{ int|sys||setregid(gid_t rgid, gid_t egid); }
269128	NOARGS		{ int|sys||__posix_rename(const char *from, const char *to); }
270129	NOARGS		{ int|compat_43_sys||truncate(const char *path, \
271				long length); }
272130	NOARGS		{ int|compat_43_sys||ftruncate(int fd, long length); }
273131	NOARGS		{ int|sys||flock(int fd, int how); }
274132	NOARGS		{ int|sys||setgid(gid_t gid); }
275133	STD		{ int|linux_sys||sendto(int s, void *msg, int len, \
276				int flags, struct osockaddr *to, int tolen); }
277134	NOARGS		{ int|sys||shutdown(int s, int how); }
278135	STD		{ int|linux_sys||socketpair(int domain, int type, \
279				int protocol, int *rsv); }
280136	NOARGS		{ int|sys||mkdir(const char *path, linux_umode_t mode); }
281137	NOARGS		{ int|sys||rmdir(const char *path); }
282138	STD		{ int|linux_sys||osf1_utimes(const char *path, \
283			    const struct osf1_timeval *tptr); }
284139	UNIMPL
285140	UNIMPL
286141	STD		{ int|linux_sys||getpeername(int fdes, \
287				void *asa, int *alen); }
288142	UNIMPL
289143	UNIMPL
290144	STD		{ int|linux_sys||getrlimit(int which, \
291			    struct orlimit *rlp); }
292145	STD		{ int|linux_sys||setrlimit(int which, \
293			    const struct orlimit *rlp); }
294146	UNIMPL
295147	NOARGS		{ int|sys||setsid(void); }
296148	UNIMPL		quotactl
297149	UNIMPL
298150	STD		{ int|linux_sys||getsockname(int fdec, \
299				void *asa, int *alen); }
300151	UNIMPL
301152	UNIMPL
302153	UNIMPL
303154	UNIMPL
304155	UNIMPL
305;156	ALIAS		osf1_sys_sigaction
306156	STD		{ int|linux_sys||sigaction(int signum, \
307				const struct linux_old_sigaction *nsa, \
308				struct linux_old_sigaction *osa); }
309157	UNIMPL
310158	UNIMPL
311;159	ALIAS		osf1_sys_getdirentries
312159	NOARGS		{ int|compat_43_sys||getdirentries(int fd, char *buf, \
313			    u_int count, long *basep); }
314160	STD		{ int|linux_sys||osf1_statfs(const char *path, \
315			    struct osf1_statfs *buf, int len); }
316161	STD		{ int|linux_sys||osf1_fstatfs(int fd, \
317			    struct osf1_statfs *buf, int len); }
318162	UNIMPL
319163	UNIMPL
320164	UNIMPL
321;165	ALIAS		osf1_sys_getdomainname
322165	NOARGS		{ int|compat_09_sys||getdomainname(char *domainname, \
323			    int len); }
324166	STD		{ int|linux_sys||setdomainname(char *domainname, \
325                            int len); }
326167	UNIMPL
327168	UNIMPL
328169	UNIMPL
329170	UNIMPL
330171	UNIMPL
331172	UNIMPL
332173	UNIMPL
333174	UNIMPL
334175	UNIMPL
335176	UNIMPL
336177	UNIMPL
337178	UNIMPL
338179	UNIMPL
339180	UNIMPL
340181	UNIMPL
341182	UNIMPL
342183	UNIMPL
343184	UNIMPL
344185	UNIMPL
345186	UNIMPL
346187	UNIMPL
347188	UNIMPL
348189	UNIMPL
349190	UNIMPL
350; XXX: Dunno
351191	STD		{ int|linux_sys||ugetrlimit(int which, \
352			    struct rlimit *rlp); }
353192	UNIMPL		mmap2
354193	UNIMPL
355194	UNIMPL
356195	UNIMPL
357196	UNIMPL
358197	UNIMPL
359198	UNIMPL
360199	UNIMPL		osf1_sys_swapon
361#ifdef SYSVMSG
362200	NOARGS		{ int|linux_sys||msgctl(int msqid, int cmd, \
363			    struct linux_msqid_ds *buf); }
364201	NOARGS		{ int|sys||msgget(key_t key, int msgflg); }
365202	NOARGS		{ ssize_t|sys||msgrcv(int msqid, void *msgp, \
366			    size_t msgsz, long msgtyp, int msgflg); }
367203	NOARGS		{ int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \
368			    int msgflg); }
369#else
370200	UNIMPL		msgctl
371201	UNIMPL		msgget
372202	UNIMPL		msgrcv
373203	UNIMPL		msgsnd
374#endif
375#ifdef SYSVSEM
376204	NOARGS		{ int|linux_sys||semctl(int semid, int semnum, \
377			    int cmd, union linux_semun arg); }
378205	NOARGS		{ int|sys||semget(key_t key, int nsems, int semflg); }
379206	NOARGS		{ int|sys||semop(int semid, struct sembuf *sops, \
380			    size_t nsops); }
381#else
382204	UNIMPL		semctl
383205	UNIMPL		semget
384206	UNIMPL		semop
385#endif
386;207	ALIAS		osf1_sys_utsname
387207	STD		{ int|linux_sys||olduname(struct linux_old_utsname *up); }
388208	NOARGS		{ int|sys||__posix_lchown(const char *path, uid_t uid, \
389			    gid_t gid); }
390#ifdef SYSVSHM
391209	NOARGS		{ int|linux_sys||shmat(int shmid, void *shmaddr, \
392			    int shmflg, u_long *raddr); }
393210	NOARGS		{ int|linux_sys||shmctl(int shmid, int cmd, \
394			    struct linux_shmid_ds *buf); }
395211	NOARGS		{ int|sys||shmdt(const void *shmaddr); }
396212	NOARGS		{ int|linux_sys||shmget(key_t key, size_t size, int shmflg); }
397#else
398209	UNIMPL		shmat
399210	UNIMPL		shmctl
400211	UNIMPL		shmdt
401212	UNIMPL		shmget
402#endif
403213	UNIMPL
404214	UNIMPL
405215	UNIMPL
406216	UNIMPL
407217	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
408218	UNIMPL
409219	UNIMPL
410220	UNIMPL
411221	UNIMPL
412222	UNIMPL
413223	UNIMPL
414224	UNIMPL
415225	UNIMPL
416226	UNIMPL
417227	UNIMPL
418228	UNIMPL
419229	UNIMPL
420230	UNIMPL
421231	UNIMPL
422232	UNIMPL
423233	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
424234	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
425235	UNIMPL		sigaltstack
426236	UNIMPL
427237	UNIMPL
428238	UNIMPL
429239	UNIMPL
430240	UNIMPL
431241	STD		{ int|linux_sys||osf1_sysinfo(int cmd, char *buf, long len); }
432242	UNIMPL
433243	UNIMPL
434244	UNIMPL		osf1_sys_proplist_syscall
435245	UNIMPL
436246	UNIMPL
437247	UNIMPL
438248	UNIMPL
439249	UNIMPL
440250	UNIMPL
441251	STD		{ int|linux_sys||osf1_usleep_thread( \
442			    struct osf1_timeval *sleep, \
443			    struct osf1_timeval *slept); }
444252	UNIMPL
445253	UNIMPL
446254	UNIMPL
447255	UNIMPL		sysfs
448256	STD		{ int|linux_sys||osf1_getsysinfo(u_long op, void *buffer, \
449			    u_long nbytes, void *arg, u_long flag); }
450257	STD		{ int|linux_sys||osf1_setsysinfo(u_long op, void *buffer, \
451			    u_long nbytes, void *arg, u_long flag); }
452258	UNIMPL
453259	UNIMPL
454260	UNIMPL
455; This entry doesn't exist in the Alpha linux syscall table but the function is
456; implemented and used on other ports.
457261	STD		{ int|linux_sys||fdatasync(int fd); }
458262	UNIMPL
459263	UNIMPL
460264	UNIMPL
461265	UNIMPL
462266	UNIMPL
463267	UNIMPL
464268	UNIMPL
465269	UNIMPL
466270	UNIMPL
467271	UNIMPL
468272	UNIMPL
469273	UNIMPL
470274	UNIMPL
471275	UNIMPL
472276	UNIMPL
473277	UNIMPL
474278	UNIMPL
475279	UNIMPL
476280	UNIMPL
477281	UNIMPL
478282	UNIMPL
479283	UNIMPL
480284	UNIMPL
481285	UNIMPL
482286	UNIMPL
483287	UNIMPL
484288	UNIMPL
485289	UNIMPL
486290	UNIMPL
487291	UNIMPL
488292	UNIMPL
489293	UNIMPL
490294	UNIMPL
491295	UNIMPL
492296	UNIMPL
493297	UNIMPL
494298	UNIMPL
495299	UNIMPL
496300	UNIMPL		bdflush
497301	UNIMPL		sethae
498302	UNIMPL		mount
499303	UNIMPL		old_adjtimex
500304	STD		{ int|linux_sys||swapoff(const char *path); }
501305	STD		{ int|linux_sys||getdents(int fd, \
502			    struct linux_dirent *dent, unsigned int count); }
503306	UNIMPL		alpha_create_module
504307	UNIMPL		init_module
505308	UNIMPL		delete_module
506309	UNIMPL		get_kernel_syms
507310	UNIMPL		syslog
508311	STD		{ int|linux_sys||reboot(int magic1, int magic2, \
509			    int cmd, void *arg); }
510312	STD		{ int|linux_sys||clone(int flags, void *stack, \
511			    void *parent_tidptr, void *child_tidptr, void *tls); }
512#ifdef EXEC_AOUT
513313	STD		{ int|linux_sys||uselib(const char *path); }
514#else
515313	UNIMPL		sys_uselib
516#endif
517314	NOARGS		{ int|sys||mlock(const void *addr, size_t len); }
518315	NOARGS		{ int|sys||munlock(const void *addr, size_t len); }
519316	NOARGS		{ int|sys||mlockall(int flags); }
520317	NOARGS		{ int|sys||munlockall(void); }
521318	STD		{ int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
522319	STD		{ int|linux_sys||__sysctl(struct linux___sysctl *lsp); }
523320	UNIMPL		idle
524321	UNIMPL		oldumount
525322	STD		{ int|linux_sys||swapon(const char *name); }
526323	STD		{ int|linux_sys||times(struct times *tms); }
527324	STD		{ int|linux_sys||personality(unsigned long per); }
528325	STD		{ int|linux_sys||setfsuid(uid_t uid); }
529326	STD		{ int|linux_sys||setfsgid(gid_t gid); }
530327	UNIMPL		ustat
531328	STD		{ int|linux_sys||statfs(const char *path, \
532			    struct linux_statfs *sp); }
533329	STD		{ int|linux_sys||fstatfs(int fd, \
534			    struct linux_statfs *sp); }
535330	STD		{ int|linux_sys||sched_setparam(pid_t pid, \
536			    const struct linux_sched_param *sp); }
537331	STD		{ int|linux_sys||sched_getparam(pid_t pid, \
538			    struct linux_sched_param *sp); }
539332	STD		{ int|linux_sys||sched_setscheduler(pid_t pid, \
540			    int policy, const struct linux_sched_param *sp); }
541333	STD		{ int|linux_sys||sched_getscheduler(pid_t pid); }
542334	STD		{ int|linux_sys||sched_yield(void); }
543335	STD		{ int|linux_sys||sched_get_priority_max(int policy); }
544336	STD		{ int|linux_sys||sched_get_priority_min(int policy); }
545337	UNIMPL		sched_rr_get_interval
546338	UNIMPL		afs_syscall
547339	STD		{ int|linux_sys||uname(struct linux_utsname *up); }
548340	STD		{ int|linux_sys||nanosleep( \
549			    const struct linux_timespec *rqtp, \
550			    struct linux_timespec *rmtp); }
551341	STD		{ void *|linux_sys||mremap(void *old_address, \
552			    size_t old_size, size_t new_size, u_long flags); }
553342	UNIMPL		nfsservctl
554343	STD		{ int|linux_sys||setresuid(uid_t ruid, uid_t euid, \
555			    uid_t suid); }
556344	STD		{ int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \
557			    uid_t *suid); }
558345	UNIMPL		pciconfig_read
559346	UNIMPL		pciconfig_write
560347	UNIMPL		query_module
561348	UNIMPL		prctl
562349	STD		{ int|linux_sys||pread(int fd, char *buf, \
563			    size_t nbyte, off_t offset); }
564350	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
565			    size_t nbyte, off_t offset); }
566351	STD		{ int|linux_sys||rt_sigreturn( \
567				struct linux_rt_sigframe *sfp); }
568352	STD		{ int|linux_sys||rt_sigaction(int signum, \
569				const struct linux_sigaction *nsa, \
570				struct linux_sigaction *osa, \
571				size_t sigsetsize); }
572353	STD		{ int|linux_sys||rt_sigprocmask(int how, \
573			    const linux_sigset_t *set, \
574			    linux_sigset_t *oset, \
575			    size_t sigsetsize); }
576354	STD		{ int|linux_sys||rt_sigpending( \
577			    linux_sigset_t *set, \
578			    size_t sigsetsize); }
579355	STD		{ int|linux_sys||rt_sigtimedwait( \
580			    const linux_sigset_t *set, \
581			    linux_siginfo_t *info, \
582			    const struct linux_timespec *timeout); }
583356	STD		{ int|linux_sys||rt_queueinfo(int pid, int signum, \
584			    linux_siginfo_t *uinfo); }
585357	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
586			    size_t sigsetsize); }
587358	STD		{ int|linux_sys||select(int nfds, fd_set *readfds, \
588			    fd_set *writefds, fd_set *exceptfds, \
589			    struct timeval50 *timeout); }
590359	STD		{ int|linux_sys||gettimeofday(struct timeval50 *tp, \
591			    struct timezone *tzp); }
592360	STD		{ int|linux_sys||settimeofday(struct timeval50 *tp, \
593			    struct timezone *tzp); }
594361	NOARGS		{ int|compat_50_sys||getitimer(int which, \
595			    struct itimerval50 *itv); }
596362	NOARGS		{ int|compat_50_sys||setitimer(int which, \
597			    const struct itimerval50 *itv, \
598			    struct itimerval50 *oitv); }
599363	NOARGS		{ int|compat_50_sys||utimes(const char *path, \
600			    const struct timeval50 *tptr); }
601364	NOARGS		{ int|compat_50_sys||getrusage(int who, \
602			    struct rusage50 *rusage); }
603365	STD		{ int|linux_sys||wait4(int pid, int *status, \
604			    int options, struct rusage50 *rusage); }
605366	UNIMPL		adjtimex
606367	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
607368	UNIMPL		capget
608369	UNIMPL		capset
609370	UNIMPL		sendfile
610371	UNIMPL		setresgid
611372	UNIMPL		getresgid
612373	UNIMPL		sys_dipc
613374	UNIMPL		pivot_root
614375	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
615376	UNIMPL		pciconfig_iobase
616377	STD		{ int|linux_sys||getdents64(int fd, \
617			    struct linux_dirent64 *dent, unsigned int count); }
618378	NOARGS		{ pid_t|linux_sys||gettid(void); }
619379	STD		{ ssize_t|linux_sys||readahead(int fd, off_t offset, \
620			    size_t count); }
621380	UNIMPL		/* unused */
622381	STD		{ int|linux_sys||tkill(int tid, int sig); }
623382	STD		{ int|linux_sys||setxattr(char *path, char *name, \
624			    void *value, size_t size, int flags); }
625383	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
626			    void *value, size_t size, int flags); }
627384	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
628			    void *value, size_t size, int flags); }
629385	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
630			    void *value, size_t size); }
631386	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
632			    void *value, size_t size); }
633387	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
634			    void *value, size_t size); }
635388	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
636			    size_t size); }
637389	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
638			    size_t size); }
639390	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
640			    size_t size); }
641391	STD		{ int|linux_sys||removexattr(char *path, char *name); }
642392	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
643393	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
644394	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
645			    const struct linux_timespec *timeout, int *uaddr2, \
646			    int val3); }
647395	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
648			    unsigned int len, unsigned long *mask); }
649396	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
650			    unsigned int len, unsigned long *mask); }
651397	UNIMPL		tuxcall
652398	UNIMPL		io_setup
653399	UNIMPL		io_destroy
654400	UNIMPL		io_getevents
655401	UNIMPL		io_submit
656402	UNIMPL		io_cancel
657403	UNIMPL		/* unused */
658404	UNIMPL		/* unused */
659405	STD		{ int|linux_sys||exit_group(int error_code); }
660406	UNIMPL		lookup_dcookie
661407	STD		{ int|linux_sys||epoll_create(int size); }
662408	STD		{ int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
663			    struct linux_epoll_event *event); }
664409	STD		{ int|linux_sys||epoll_wait(int epfd, \
665			    struct linux_epoll_event *events, int maxevents, \
666			    int timeout); }
667410	UNIMPL		remap_file_pages
668411	STD		{ int|linux_sys||set_tid_address(int *tid); }
669412	UNIMPL		restart_syscall
670413	STD		{ int|linux_sys||fadvise64(int fd, off_t offset, \
671			    size_t len, int advice); }
672414	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
673			    struct linux_sigevent *evp, timer_t *timerid); }
674415	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
675			    int flags, const struct linux_itimerspec *tim, \
676			    struct linux_itimerspec *otim); }
677416	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
678			    struct linux_itimerspec *tim); }
679417	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
680418	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
681419	STD		{ int|linux_sys||clock_settime(clockid_t which, \
682			    struct linux_timespec *tp); }
683420	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
684			    struct linux_timespec *tp); }
685421	STD		{ int|linux_sys||clock_getres(clockid_t which, \
686			    struct linux_timespec *tp); }
687422	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
688			    int flags, struct linux_timespec *rqtp, \
689			    struct linux_timespec *rmtp); }
690423	UNIMPL		semtimedop
691424	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
692425	STD		{ int|linux_sys||stat64(const char *path, \
693			    struct linux_stat64 *sp); }
694426	STD		{ int|linux_sys||lstat64(const char *path, \
695			    struct linux_stat64 *sp); }
696427	STD		{ int|linux_sys||fstat64(int fd, \
697			    struct linux_stat64 *sp); }
698428	UNIMPL		vserver
699429	UNIMPL		mbind
700430	UNIMPL		get_mempolicy
701431	UNIMPL		set_mempolicy
702432	STD		{ linux_mqd_t|linux_sys||mq_open(const char *name, \
703			    int oflag, linux_umode_t mode, \
704			    struct linux_mq_attr *attr); }
705433	STD		{ int|linux_sys||mq_unlink(const char *name); }
706434	STD		{ int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \
707			    const char *msg_ptr, size_t msg_len, \
708			    unsigned int msg_prio, \
709			    const struct linux_timespec *abs_timeout); }
710435	STD		{ ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \
711			    char *msg_ptr, size_t msg_len, \
712			    unsigned int *msg_prio, \
713			    const struct linux_timespec *abs_timeout); }
714436	STD		{ int|linux_sys||mq_notify(linux_mqd_t mqdes, \
715			    const struct linux_sigevent *sevp); }
716437	STD		{ int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \
717			    const struct linux_mq_attr *newattr, \
718			    struct linux_mq_attr *oldattr); }
719438	STD		{ int|linux_sys||waitid(int idtype, id_t id, \
720			    linux_siginfo_t *infop, int options, \
721			    struct rusage50 *rusage); }
722439	UNIMPL		add_key
723440	UNIMPL		request_key
724441	UNIMPL		keyctl
725442	UNIMPL		ioprio_set
726443	UNIMPL		ioprio_get
727444	STD		{ int|linux_sys||inotify_init(void); }
728445	STD		{ int|linux_sys||inotify_add_watch(int fd, \
729			    const char *pathname, uint32_t mask); }
730446	STD		{ int|linux_sys||inotify_rm_watch(int fd, int wd); }
731447	UNIMPL		fdatasync
732448	UNIMPL		kexec_load
733449	UNIMPL		migrate_pages
734450	STD 		{ int|linux_sys||openat(int fd, const char *path, \
735			    int flags, ... linux_umode_t mode); }
736451	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
737			    linux_umode_t mode); }
738452	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
739			    linux_umode_t mode, unsigned dev); }
740453	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
741			    uid_t owner, gid_t group, int flag); }
742454	UNIMPL		futimesat
743455	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
744			    struct linux_stat64 *sp, int flag); }
745456	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
746			    int flag); }
747457	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
748			    int tofd, const char *to); }
749458	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
750			    int fd2, const char *name2, int flags); }
751459	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
752			    const char *path2); }
753460	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
754			    char *buf, size_t bufsize); }
755461	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
756			    linux_umode_t mode); }
757462	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
758			    int amode); }
759463	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
760			   fd_set *writefds, fd_set *exceptfds, \
761			   struct linux_timespec *timeout, \
762			   linux_sized_sigset_t *ss); }
763464	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
764			    struct linux_timespec *timeout, \
765			    linux_sigset_t *sigset); }
766465	UNIMPL		unshare
767			;
768			; The NetBSD native robust list calls have different
769			; argument names / types, but they are ABI-compatible
770			; with Linux.
771			;
772466	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
773			    size_t len); }
774467	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
775			    void **headp, size_t *lenp); }
776468	UNIMPL		splice
777469	UNIMPL		sync_file_range
778470	UNIMPL		tee
779471	UNIMPL		vmsplice
780472	UNIMPL		move_pages
781473	STD		{ int|linux_sys||getcpu(unsigned int *cpu, \
782			    unsigned int *node, \
783			    struct linux_getcpu_cache *tcache); }
784474	STD		{ int|linux_sys||epoll_pwait(int epfd, \
785			    struct linux_epoll_event *events, int maxevents, \
786			    int timeout, const linux_sigset_t *sigmask); }
787475	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
788			    struct linux_timespec *times, int flag); }
789476	UNIMPL		signalfd
790477	UNIMPL		timerfd
791478	STD		{ int|linux_sys||eventfd(unsigned int initval); }
792479	STD		{ int|linux_sys||recvmmsg(int s, \
793			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
794			    unsigned int flags, struct timespec *timeout); }
795480	STD		{ int|linux_sys||fallocate(int fd, int mode, \
796			    off_t offset, off_t len); }
797481	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
798			    int flags); }
799482	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
800			    const struct linux_itimerspec *tim, \
801			    struct linux_itimerspec *otim); }
802483	STD		{ int|linux_sys||timerfd_gettime(int fd, \
803			    struct linux_itimerspec *tim); }
804484	UNIMPL		signalfd4
805485	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
806			    int flags); }
807486	STD		{ int|linux_sys||epoll_create1(int flags); }
808487	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
809488	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
810489	STD		{ int|linux_sys||inotify_init1(int flags); }
811490	STD		{ int|linux_sys||preadv(int fd, \
812			    const struct iovec *iovp, int iovcnt, \
813			    unsigned long off_lo, unsigned long off_hi); }
814491	STD		{ int|linux_sys||pwritev(int fd, \
815			    const struct iovcnt *iovp, int iovcnt, \
816			    unsigned long off_lo, unsigned long off_hi); }
817492	UNIMPL		rt_tgsigqueueinfo
818493	UNIMPL		perf_counter_open
819494	UNIMPL		fanotify_init
820495	UNIMPL		fanotify_mark
821496	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
822			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
823497	UNIMPL		name_to_handle_at
824498	UNIMPL		open_by_handle_at
825499	UNIMPL		clock_adjtime
826500	UNIMPL		syncfs
827501	UNIMPL		setns
828502	STD		{ int|linux_sys||accept4(int s, \
829			    struct osockaddr *name, \
830			    int *anamelen, int flags); }
831503	STD		{ int|linux_sys||sendmmsg(int s, \
832			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
833			    unsigned int flags); }
834504	UNIMPL		process_vm_readv
835505	UNIMPL		process_vm_writev
836506	UNIMPL		kcmp
837507	UNIMPL		finit_module
838508	UNIMPL		sched_setattr
839509	UNIMPL		sched_getattr
840510	UNIMPL		renameat2
841511	UNIMPL
842512	UNIMPL
843513	UNIMPL
844514	UNIMPL
845515	UNIMPL
846516	UNIMPL
847517	UNIMPL
848518	UNIMPL
849519	UNIMPL
850520	UNIMPL
851521	UNIMPL
852522	STD		{ int|linux_sys||statx(int fd, const char *path, \
853			    int flag, unsigned int mask, \
854			    struct linux_statx *sp); }
855523	UNIMPL
856524	UNIMPL
857525	UNIMPL
858526	UNIMPL
859527	UNIMPL
860528	UNIMPL
861529	UNIMPL
862530	UNIMPL
863531	UNIMPL
864532	UNIMPL
865533	UNIMPL
866534	UNIMPL
867535	UNIMPL
868536	UNIMPL
869537	UNIMPL
870538	UNIMPL
871539	UNIMPL
872540	UNIMPL
873541	UNIMPL
874542	UNIMPL
875543	UNIMPL
876544	UNIMPL
877545	UNIMPL
878546	STD		{ int|linux_sys||close_range(unsigned int first, \
879			    unsigned int last, unsigned int flags); }
880547	UNIMPL
881548	UNIMPL
882549	STD		{ int|linux_sys||faccessat2(int fd, const char *path, \
883			    int amode, int flags); }
884550	UNIMPL
885551	STD		{ int|linux_sys||epoll_pwait2(int epfd, \
886			    struct linux_epoll_event *events, int maxevents, \
887			    const struct linux_timespec *timeout, \
888			    const linux_sigset_t *sigmask); }
889