syscalls.master revision 1.78
1	$NetBSD: syscalls.master,v 1.78 2023/08/18 19:41:19 christos Exp $
2
3; Derived from sys/compat/linux/arch/*/syscalls.master
4; and from Linux 2.4.12 arch/arm/kernel/calls.S
5
6; NetBSD/arm COMPAT_LINUX system call name/number "master" file.
7; (See syscalls.conf to see what it is processed into.)
8;
9; Fields: number type [type-dependent ...]
10;	number	system call number, must be in order
11;	type	one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
12;		the compatibility options defined in syscalls.conf.
13;
14; types:
15;	STD	always included
16;	OBSOL	obsolete, not included in system
17;	UNIMPL	unimplemented, not included in system
18;	NODEF	included, but don't define the syscall number
19;	NOARGS	included, but don't define the syscall args structure
20;	INDIR	included, but don't define the syscall args structure
21;		and allow it to be "really" varargs.
22;
23; The compat options are defined in the syscalls.conf file, and the
24; compat option name is prefixed to the syscall name.  Other than
25; that, they're like NODEF (for 'compat' options), or STD (for
26; 'libcompat' options).
27;
28; The type-dependent arguments are as follows:
29; For STD, NODEF, NOARGS, and compat syscalls:
30;	{ pseudo-proto } [alias]
31; For other syscalls:
32;	[comment]
33;
34; #ifdef's, etc. may be included, and are copied to the output files.
35; #include's are copied to the syscall names and switch definition files only.
36
37#include <sys/param.h>
38#include <sys/poll.h>
39#include <sys/systm.h>
40#include <sys/signal.h>
41#include <sys/mount.h>
42#include <sys/syscallargs.h>
43#include <sys/time.h>
44
45#include <compat/sys/time.h>
46#include <compat/linux/common/linux_types.h>
47#include <compat/linux/common/linux_mmap.h>
48#include <compat/linux/common/linux_signal.h>
49#include <compat/linux/common/linux_siginfo.h>
50#include <compat/linux/common/linux_machdep.h>
51
52#include <compat/linux/linux_syscallargs.h>
53
54%%
55; XXX We have to explicitly declare linux_sys_nosys.
560	NOARGS		{ int|linux_sys||nosys(void); }
571	STD		{ int|linux_sys||exit(int rval); }
582	NOARGS		{ int|sys||fork(void); }
593	NOARGS		{ ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
604	NOARGS		{ ssize_t|sys||write(int fd, const void *buf, \
61			    size_t nbyte); }
625	STD		{ int|linux_sys||open(const char *path, int flags, \
63			    linux_umode_t mode); }
646	NOARGS		{ int|sys||close(int fd); }
657	STD		{ int|linux_sys||waitpid(int pid, int *status, \
66			    int options);}
678	STD		{ int|linux_sys||creat(const char *path, linux_umode_t mode); }
689	NOARGS		{ int|sys||link(const char *path, const char *link); }
6910	STD		{ int|linux_sys||unlink(const char *path); }
7011	NOARGS		{ int|sys||execve(const char *path, char **argp, \
71			    char **envp); }
7212	NOARGS		{ int|sys||chdir(const char *path); }
7313	STD		{ int|linux_sys||time(linux_time_t *t); }
7414	STD		{ int|linux_sys||mknod(const char *path, linux_umode_t mode, \
75			    unsigned dev); }
7615	NOARGS		{ int|sys||chmod(const char *path, int mode); }
7716	STD		{ int|linux_sys||lchown16(const char *path, \
78			    linux_uid16_t uid, linux_gid16_t gid); }
7917	OBSOL		break
8018	OBSOL		ostat
8119	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
82			    int whence); }
8320	NOARGS 		{ pid_t|sys||getpid(void); }
8421	UNIMPL		mount
8522	OBSOL		umount
8623	NOARGS		{ int|sys||setuid(uid_t uid); }
8724	NOARGS		{ uid_t|sys||getuid(void); }
8825	STD		{ int|linux_sys||stime(linux_time_t *t); }
8926	STD		{ int|linux_sys||ptrace(int request, int pid, \
90			    int addr, int data); }
9127	STD		{ int|linux_sys||alarm(unsigned int secs); }
9228	OBSOL		ofstat
9329	STD		{ int|linux_sys||pause(void); }
9430	STD		{ int|linux_sys||utime(const char *path, \
95			    struct linux_utimbuf *times); }
9631	OBSOL		stty
9732	OBSOL		gtty
9833	NOARGS		{ int|sys||access(const char *path, int flags); }
9934	STD		{ int|linux_sys||nice(int incr); }
10035	OBSOL		ftime
10136	NOARGS		{ int|sys||sync(void); }
10237	STD		{ int|linux_sys||kill(int pid, int signum); }
10338	NOARGS		{ int|sys||__posix_rename(const char *from, \
104			    const char *to); }
10539	NOARGS		{ int|sys||mkdir(const char *path, linux_umode_t mode); }
10640	NOARGS		{ int|sys||rmdir(const char *path); }
10741	NOARGS		{ int|sys||dup(int fd); }
10842	STD		{ int|linux_sys||pipe(int *pfds); }
10943	STD		{ int|linux_sys||times(struct times *tms); }
11044	OBSOL		prof
11145	STD		{ int|linux_sys||brk(char *nsize); }
11246	NOARGS		{ int|sys||setgid(gid_t gid); }
11347	NOARGS		{ gid_t|sys||getgid(void); }
11448	STD		{ int|linux_sys||signal(int signum, \
115			    linux_handler_t handler); }
11649	NOARGS		{ uid_t|sys||geteuid(void); }
11750	NOARGS		{ gid_t|sys||getegid(void); }
11851	NOARGS		{ int|sys||acct(char *path); }
11952	UNIMPL		umount
12053	OBSOL		lock
12154	STD		{ int|linux_sys||ioctl(int fd, u_long com, \
122			    void *data); }
12355	STD		{ int|linux_sys||fcntl(int fd, int cmd, void *arg); }
12456	OBSOL		mpx
12557	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
12658	OBSOL		ulimit
12759 	STD		{ int|linux_sys||oldolduname( \
128			   struct linux_oldold_utsname *up); }
12960	NOARGS		{ int|sys||umask(int newmask); }
13061	NOARGS		{ int|sys||chroot(char *path); }
13162	UNIMPL		ustat
13263	NOARGS		{ int|sys||dup2(int from, int to); }
13364	NOARGS		{ pid_t|sys||getppid(void); }
13465	NOARGS		{ int|sys||getpgrp(void); }
13566	NOARGS		{ int|sys||setsid(void); }
13667	STD		{ int|linux_sys||sigaction(int signum, \
137			    const struct linux_old_sigaction *nsa, \
138			    struct linux_old_sigaction *osa); }
13968	STD		{ int|linux_sys||siggetmask(void); }
14069	STD		{ int|linux_sys||sigsetmask(linux_old_sigset_t mask); }
14170	STD		{ int|linux_sys||setreuid16(linux_uid16_t ruid, \
142			    linux_uid16_t euid); }
14371	STD		{ int|linux_sys||setregid16(linux_gid16_t rgid, \
144			    linux_gid16_t egid); }
14572	STD		{ int|linux_sys||sigsuspend(void *restart, \
146			    int oldmask, int mask); }
14773	STD		{ int|linux_sys||sigpending(linux_old_sigset_t *set); }
14874	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
149			    u_int len);}
15075	STD		{ int|linux_sys||setrlimit(u_int which, \
151			    struct orlimit *rlp); }
15276	STD		{ int|linux_sys||getrlimit(u_int which, \
153			    struct orlimit *rlp); }
15477	NOARGS		{ int|compat_50_sys||getrusage(int who, struct rusage50 *rusage); }
15578	STD		{ int|linux_sys||gettimeofday(struct timeval50 *tp, \
156			    struct timezone *tzp); }
15779	STD		{ int|linux_sys||settimeofday(struct timeval50 *tp, \
158			    struct timezone *tzp); }
15980	STD		{ int|linux_sys||getgroups16(int gidsetsize, \
160			    linux_gid16_t *gidset); }
16181	STD		{ int|linux_sys||setgroups16(int gidsetsize, \
162			    linux_gid16_t *gidset); }
16382	STD		{ int|linux_sys||oldselect(struct linux_oldselect *lsp); }
16483	NOARGS		{ int|sys||symlink(const char *path, const char *link); }
16584	NOARGS		{ int|compat_43_sys||lstat(const char *path, \
166			    struct stat43 *ub); } oolstat
16785	NOARGS		{ ssize_t|sys||readlink(const char *path, char *buf, \
168			    int count); }
169#ifdef EXEC_AOUT
17086	STD		{ int|linux_sys||uselib(const char *path); }
171#else
17286	EXCL		uselib
173#endif
17487	STD		{ int|linux_sys||swapon(char *name); }
17588	STD		{ int|linux_sys||reboot(int magic1, int magic2, \
176			    int cmd, void *arg); }
17789	STD		{ int|linux_sys||readdir(int fd, void *dent, \
178			    unsigned int count); }
17990	STD		{ int|linux_sys||old_mmap(struct linux_oldmmap *lmp); }
18091	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
18192	NOARGS		{ int|compat_43_sys||truncate(const char *path, \
182			    long length); }
18393	NOARGS		{ int|compat_43_sys||ftruncate(int fd, long length); }
18494	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
18595	STD		{ int|linux_sys||fchown16(int fd, linux_uid16_t uid, \
186			    linux_gid16_t gid); }
18796	STD		{ int|linux_sys||getpriority(int which, int who); }
18897	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
18998	NOARGS		{ int|sys||profil(void *samples, u_int size, \
190			    u_int offset, u_int scale); }
19199	STD		{ int|linux_sys||statfs(const char *path, \
192			    struct linux_statfs *sp); }
193100	STD		{ int|linux_sys||fstatfs(int fd, \
194			    struct linux_statfs *sp); }
195101	UNIMPL
196102	STD		{ int|linux_sys||socketcall(int what, void *args); }
197103	UNIMPL		syslog
198104	NOARGS		{ int|compat_50_sys||setitimer(int which, \
199			    struct itimerval50 *itv, \
200			    struct itimerval50 *oitv); }
201105	NOARGS		{ int|compat_50_sys||getitimer(int which, \
202			    struct itimerval50 *itv); }
203106	STD		{ int|linux_sys||stat(const char *path, \
204			    struct linux_stat *sp); }
205107	STD		{ int|linux_sys||lstat(const char *path, \
206			    struct linux_stat *sp); }
207108	STD		{ int|linux_sys||fstat(int fd, struct linux_stat *sp); }
208109	STD		{ int|linux_sys||olduname(struct linux_oldutsname *up); }
209110	UNIMPL
210111	UNIMPL		vhangup
211112	UNIMPL		idle
212113	UNIMPL		syscall
213114	STD		{ int|linux_sys||wait4(int pid, int *status, \
214			    int options, struct rusage50 *rusage); }
215115	STD		{ int|linux_sys||swapoff(const char *path); }
216116	STD		{ int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
217117	STD		{ int|linux_sys||ipc(int what, int a1, int a2, int a3, \
218			    void *ptr); }
219118	NOARGS		{ int|sys||fsync(int fd); }
220119	STD		{ int|linux_sys||sigreturn(struct linux_sigcontext *scp); }
221120	STD		{ int|linux_sys||clone(int flags, void *stack, \
222			    void *parent_tidptr, void *tls, void *child_tidptr); }
223121	STD		{ int|linux_sys||setdomainname(char *domainname, \
224			    int len); }
225122	STD		{ int|linux_sys||uname(struct linux_utsname *up); }
226123	UNIMPL		modify_ldt
227124	UNIMPL		adjtimex
228125	STD		{ int|linux_sys||mprotect(const void *start, \
229			    unsigned long len, int prot); }
230126	STD		{ int|linux_sys||sigprocmask(int how, \
231			    const linux_old_sigset_t *set, \
232			    linux_old_sigset_t *oset); }
233127	UNIMPL		create_module
234128	UNIMPL		init_module
235129	UNIMPL		delete_module
236130	UNIMPL		get_kernel_syms
237131	UNIMPL		quotactl
238132	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
239133	NOARGS		{ int|sys||fchdir(int fd); }
240134	UNIMPL		bdflush
241135	UNIMPL		sysfs
242136	STD		{ int|linux_sys||personality(unsigned long per); }
243137	UNIMPL		afs_syscall
244138	STD		{ int|linux_sys||setfsuid(uid_t uid); }
245139	STD		{ int|linux_sys||setfsgid(gid_t gid); }
246140	STD		{ int|linux_sys||llseek(int fd, u_int32_t ohigh, \
247			    u_int32_t olow, void *res, int whence); }
248141	STD		{ int|linux_sys||getdents(int fd, \
249			    struct linux_dirent *dent, unsigned int count); }
250142	STD		{ int|linux_sys||select(int nfds, fd_set *readfds, \
251			    fd_set *writefds, fd_set *exceptfds, \
252			    struct timeval50 *timeout); }
253143	NOARGS		{ int|sys||flock(int fd, int how); }
254144	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
255145	NOARGS		{ ssize_t|sys||readv(int fd, \
256			    const struct iovec *iovp, int iovcnt); }
257146	NOARGS		{ ssize_t|sys||writev(int fd, \
258			    const struct iovec *iovp, int iovcnt); }
259147	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
260148	STD		{ int|linux_sys||fdatasync(int fd); }
261149	STD		{ int|linux_sys||__sysctl(struct linux___sysctl *lsp); }
262150	NOARGS		{ int|sys||mlock(void *addr, size_t len); }
263151	NOARGS		{ int|sys||munlock(void *addr, size_t len); }
264152	NOARGS		{ int|sys||mlockall(int flags); }
265153	NOARGS		{ int|sys||munlockall(void); }
266154	STD		{ int|linux_sys||sched_setparam(pid_t pid, \
267			    const struct linux_sched_param *sp); }
268155	STD		{ int|linux_sys||sched_getparam(pid_t pid, \
269			    struct linux_sched_param *sp); }
270156	STD		{ int|linux_sys||sched_setscheduler(pid_t pid, \
271			    int policy, const struct linux_sched_param *sp); }
272157	STD		{ int|linux_sys||sched_getscheduler(pid_t pid); }
273158	STD		{ int|linux_sys||sched_yield(void); }
274159	STD		{ int|linux_sys||sched_get_priority_max(int policy); }
275160	STD		{ int|linux_sys||sched_get_priority_min(int policy); }
276161	UNIMPL		sched_rr_get_interval
277162	STD		{ int|linux_sys||nanosleep( \
278			    const struct linux_timespec *rqtp, \
279			    struct linux_timespec *rmtp); }
280163	STD		{ void *|linux_sys||mremap(void *old_address, \
281			    size_t old_size, size_t new_size, u_long flags); }
282164	STD		{ int|linux_sys||setresuid16(linux_uid16_t ruid, \
283			    linux_uid16_t euid, linux_uid16_t suid); }
284165	STD		{ int|linux_sys||getresuid16(linux_uid16_t *ruid, \
285			    linux_uid16_t *euid, linux_uid16_t *suid); }
286166	UNIMPL
287167	UNIMPL		query_module
288168	NOARGS		{ int|sys||poll(struct pollfd *fds, u_int nfds, \
289			    int timeout); }
290169	UNIMPL		nfsservctl
291170	STD		{ int|linux_sys||setresgid16(linux_gid16_t rgid, \
292			    linux_gid16_t egid, linux_gid16_t sgid); }
293171	STD		{ int|linux_sys||getresgid16(linux_gid16_t *rgid, \
294			    linux_gid16_t *egid, linux_gid16_t *sgid); }
295172	UNIMPL		prctl
296173	UNIMPL		rt_sigreturn
297;173	STD		{ int|linux_sys||rt_sigreturn( \
298;			    struct linux_rt_sigframe *sfp); }
299174	STD		{ int|linux_sys||rt_sigaction(int signum, \
300			    const struct linux_sigaction *nsa, \
301			    struct linux_sigaction *osa, \
302			    size_t sigsetsize); }
303175	STD		{ int|linux_sys||rt_sigprocmask(int how, \
304			    const linux_sigset_t *set, \
305			    linux_sigset_t *oset, \
306			    size_t sigsetsize); }
307176	STD		{ int|linux_sys||rt_sigpending( \
308			    linux_sigset_t *set, \
309			    size_t sigsetsize); }
310177	STD		{ int|linux_sys||rt_sigtimedwait( \
311			    const linux_sigset_t *set, \
312			    linux_siginfo_t *info, \
313			    const struct linux_timespec *timeout); }
314178	STD		{ int|linux_sys||rt_queueinfo(int pid, int signum, \
315			    linux_siginfo_t *uinfo); }
316179	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
317			    size_t sigsetsize); }
318180	STD		{ int|linux_sys||pread(int fd, char *buf, \
319			    size_t nbyte, off_t offset); }
320181	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
321			    size_t nbyte, off_t offset); }
322182	STD		{ int|linux_sys||chown16(const char *path, \
323			    linux_uid16_t uid, linux_gid16_t gid); }
324183	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
325184	UNIMPL		capget
326185	UNIMPL		capset
327186	STD		{ int|linux_sys||sigaltstack( \
328			    const struct linux_sigaltstack *ss, \
329			    struct linux_sigaltstack *oss); }
330187	UNIMPL		sendfile
331188	UNIMPL		getpmsg
332189	UNIMPL		putpmsg
333190	NOARGS		vfork { int|sys|14|vfork(void); }
334191	STD		{ int|linux_sys||ugetrlimit(int which, \
335			    struct rlimit *rlp); }
336#define linux_sys_mmap2_args linux_sys_mmap_args
337192	NOARGS		{ linux_off_t|linux_sys||mmap2(unsigned long addr, \
338			    size_t len, int prot, int flags, int fd, \
339			    linux_off_t offset); }
340193	STD		{ int|linux_sys||truncate64(const char *path, \
341				off_t length); }
342194	STD		{ int|linux_sys||ftruncate64(unsigned int fd, \
343				off_t length); }
344195	STD		{ int|linux_sys||stat64(const char *path, \
345				struct linux_stat64 *sp); }
346196	STD		{ int|linux_sys||lstat64(const char *path, \
347				struct linux_stat64 *sp); }
348197	STD		{ int|linux_sys||fstat64(int fd, \
349				struct linux_stat64 *sp); }
350198	NOARGS		{ int|sys||__posix_lchown(const char *path, uid_t uid, \
351				gid_t gid); }
352199	NOARGS		getuid32 { uid_t|sys||getuid(void); }
353200	NOARGS		getgid32 { gid_t|sys||getgid(void); }
354201	NOARGS		geteuid32 { uid_t|sys||geteuid(void); }
355202	NOARGS		getegid32 { gid_t|sys||getegid(void); }
356203	NOARGS		setreuid32 { int|sys||setreuid(uid_t ruid, \
357				uid_t euid); }
358204	NOARGS		setregid32 { int|sys||setregid(gid_t rgid, \
359				gid_t egid); }
360205	NOARGS		getgroups32 { int|sys||getgroups(int gidsetsize, \
361				gid_t *gidset); }
362206	NOARGS		setgroups32 { int|sys||setgroups(int gidsetsize, \
363				gid_t *gidset); }
364207	NOARGS		fchown32 { int|sys||__posix_fchown(int fd, uid_t uid, \
365				gid_t gid); }
366208	STD		setresuid32 { int|linux_sys||setresuid(uid_t ruid, \
367				uid_t euid, uid_t suid); }
368209	STD		getresuid32 { int|linux_sys||getresuid(uid_t *ruid, \
369				uid_t *euid, uid_t *suid); }
370210	STD		setresgid32 { int|linux_sys||setresgid(gid_t rgid, \
371				gid_t egid, gid_t sgid); }
372211	STD		getresgid32 { int|linux_sys||getresgid(gid_t *rgid, \
373				gid_t *egid, gid_t *sgid); }
374212	NOARGS		chown32 { int|sys||__posix_chown(const char *path, \
375				uid_t uid, gid_t gid); }
376213	NOARGS		setuid32 { int|sys||setuid(uid_t uid); }
377214	NOARGS		setgid32 { int|sys||setgid(gid_t gid); }
378215	NOARGS		setfsuid32 { int|linux_sys||setfsuid(uid_t uid); }
379216	NOARGS		setfsgid32 { int|linux_sys||setfsgid(gid_t gid); }
380217	STD		{ int|linux_sys||getdents64(int fd, \
381			    struct linux_dirent64 *dent, unsigned int count); }
382218	UNIMPL		pivot_root
383219	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
384220	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
385221	STD		{ int|linux_sys||fcntl64(int fd, int cmd, void *arg); }
386222	UNIMPL		/* for tux */
387223	UNIMPL		/* unused */
388224	NOARGS		{ pid_t|linux_sys||gettid(void); }
389225	STD		{ ssize_t|linux_sys||readahead(int fd, off_t offset, \
390			    size_t count); }
391226	STD		{ int|linux_sys||setxattr(char *path, char *name, \
392			    void *value, size_t size, int flags); }
393227	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
394			    void *value, size_t size, int flags); }
395228	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
396			    void *value, size_t size, int flags); }
397229	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
398			    void *value, size_t size); }
399230	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
400			    void *value, size_t size); }
401231	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
402			    void *value, size_t size); }
403232	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
404			    size_t size); }
405233	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
406			    size_t size); }
407234	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
408			    size_t size); }
409235	STD		{ int|linux_sys||removexattr(char *path, char *name); }
410236	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
411237	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
412238	STD		{ int|linux_sys||tkill(int tid, int sig); }
413239	UNIMPL		sendfile64
414240	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
415			    const struct linux_timespec *timeout, int *uaddr2, \
416			    int val3); }
417241	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
418			    unsigned int len, unsigned long *mask); }
419242	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
420			    unsigned int len, unsigned long *mask); }
421243	UNIMPL		io_setup
422244	UNIMPL		io_destroy
423245	UNIMPL		io_getevents
424246	UNIMPL		io_submit
425247	UNIMPL		io_cancel
426248	STD		{ int|linux_sys||exit_group(int error_code); }
427249	UNIMPL		lookup_dcookie
428250	STD		{ int|linux_sys||epoll_create(int size); }
429251	STD		{ int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
430			    struct linux_epoll_event *event); }
431252	STD		{ int|linux_sys||epoll_wait(int epfd, \
432			    struct linux_epoll_event *events, int maxevents, \
433			    int timeout); }
434253	UNIMPL		remap_file_pages
435254	UNIMPL		set_thread_area
436255	UNIMPL		get_thread_area
437256	STD		{ int|linux_sys||set_tid_address(int *tid); }
438257	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
439			    struct linux_sigevent *evp, timer_t *timerid); }
440258	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
441			    int flags, const struct linux_itimerspec *tim, \
442			    struct linux_itimerspec *otim); }
443259	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
444			    struct linux_itimerspec *tim); }
445260	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
446261	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
447262	STD		{ int|linux_sys||clock_settime(clockid_t which, \
448			    struct linux_timespec *tp); }
449263	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
450			    struct linux_timespec *tp); }
451264	STD		{ int|linux_sys||clock_getres(clockid_t which, \
452			    struct linux_timespec *tp); }
453265	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
454			    int flags, struct linux_timespec *rqtp, \
455			    struct linux_timespec *rmtp); }
456266	STD		{ int|linux_sys||statfs64(const char *path, \
457			    size_t sz, struct linux_statfs64 *sp); }
458267	STD		{ int|linux_sys||fstatfs64(int fd, \
459			    size_t sz, struct linux_statfs64 *sp); }
460268	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
461269	NOARGS		{ int|compat_50_sys||utimes(const char *path, \
462			    const struct timeval50 *tptr); }
463270	STD		{ int|linux_sys||fadvise64_64(int fd, off_t offset, \
464			    off_t len, int advice); }
465271	UNIMPL		pciconfig_iobase
466272	UNIMPL		pciconfig_read
467273	UNIMPL		pciconfig_write
468274	UNIMPL		mq_open
469275	UNIMPL		mq_unlink
470276	UNIMPL		mq_timedsend
471277	UNIMPL		mq_timedreceive
472278	UNIMPL		mq_notify
473279	UNIMPL		mq_getsetattr
474280     STD		{ int|linux_sys||waitid(int idtype, id_t id, \
475			    linux_siginfo_t *infop, int options, \
476			    struct rusage50 *rusage); }
477281	UNIMPL		socket
478282	UNIMPL		bind
479283	UNIMPL		connect
480284	UNIMPL		listen
481285	UNIMPL		accept
482286	UNIMPL		getsockname
483287	UNIMPL		getpeername
484288	UNIMPL		socketpair
485289	UNIMPL		send
486290	UNIMPL		sendto
487291	UNIMPL		recv
488292	UNIMPL		recvfrom
489293	UNIMPL		shutdown
490294	UNIMPL		setsockopt
491295	UNIMPL		getsockopt
492296	UNIMPL		sendmsg
493297	UNIMPL		recvmsg
494298	UNIMPL		semop
495299	UNIMPL		semget
496300	UNIMPL		semctl
497301	UNIMPL		msgsnd
498302	UNIMPL		msgrcv
499303	UNIMPL		msgget
500304	UNIMPL		msgctl
501305	UNIMPL		shmat
502306	UNIMPL		shmdt
503307	UNIMPL		shmget
504308	UNIMPL		shmctl
505309	UNIMPL		add_key
506310	UNIMPL		request_key
507311	UNIMPL		keyctl
508312	UNIMPL		semtimedop
509313	UNIMPL		vserver
510314	UNIMPL		ioptio_set
511315	UNIMPL		ioptio_get
512316	UNIMPL		inotify_init
513317	UNIMPL		inotify_add_watch
514318	UNIMPL		inotify_rm_watch
515319	UNIMPL		mbind
516320	UNIMPL		get_mempolicy
517321	UNIMPL		set_mempolicy
518322	STD 		{ int|linux_sys||openat(int fd, const char *path, \
519			    int flags, ... linux_umode_t mode); }
520323	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
521			    linux_umode_t mode); }
522324	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
523			    linux_umode_t mode, unsigned dev); }
524325	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
525			    uid_t owner, gid_t group, int flag); }
526326	UNIMPL		futimesat
527327	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
528			    struct linux_stat64 *sp, int flag); }
529328	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
530			    int flag); }
531329	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
532			    int tofd, const char *to); }
533330	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
534			    int fd2, const char *name2, int flags); }
535331	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
536			    const char *path2); }
537332	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
538			    char *buf, size_t bufsize); }
539333	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
540			    linux_umode_t mode); }
541334	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
542			    int amode); }
543335	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
544			   fd_set *writefds, fd_set *exceptfds, \
545			   struct linux_timespec *timeout, \
546			   linux_sized_sigset_t *ss); }
547336	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
548			    struct linux_timespec *timeout, \
549			    linux_sigset_t *sigset); }
550337	UNIMPL		unshare
551			;
552			; The NetBSD native robust list calls have different
553			; argument names / types, but they are ABI-compatible
554			; with Linux.
555			;
556338	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
557			    size_t len); }
558339	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
559			    void **headp, size_t *lenp); }
560340	UNIMPL		splice
561341	UNIMPL		sync_file_range2
562342	UNIMPL		tee
563343	UNIMPL		vmsplice
564344	UNIMPL		move_pages
565345	UNIMPL		getcpu
566346	STD		{ int|linux_sys||epoll_pwait(int epfd, \
567			    struct linux_epoll_event *events, int maxevents, \
568			    int timeout, const linux_sigset_t *sigmask); }
569347	UNIMPL		kexec_load
570348	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
571			    struct linux_timespec *times, int flag); }
572349	UNIMPL		signalfd
573350	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
574			    int flags); }
575351	STD		{ int|linux_sys||eventfd(unsigned int initval); }
576352	STD		{ int|linux_sys||fallocate(int fd, int mode, \
577			    off_t offset, off_t len); }
578353	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
579			    const struct linux_itimerspec *tim, \
580			    struct linux_itimerspec *otim); }
581354	STD		{ int|linux_sys||timerfd_gettime(int fd, \
582			    struct linux_itimerspec *tim); }
583355	UNIMPL		signalfd4
584356	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
585			    int flags); }
586357	STD		{ int|linux_sys||epoll_create1(int flags); }
587358	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
588359	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
589360	UNIMPL		inotify_init1
590361	STD		{ int|linux_sys||preadv(int fd, \
591			    const struct iovec *iovp, int iovcnt, \
592			    unsigned long off_lo, unsigned long off_hi); }
593362	STD		{ int|linux_sys||pwritev(int fd, \
594			    const struct iovcnt *iovp, int iovcnt, \
595			    unsigned long off_lo, unsigned long off_hi); }
596363	UNIMPL		rt_tgsigqueueinfo
597364	UNIMPL		perf_counter_open
598365	STD		{ int|linux_sys||recvmmsg(int s, \
599			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
600			    unsigned int flags, struct timespec *timeout); }
601366	STD		{ int|linux_sys||accept4(int s, \
602			    struct osockaddr *name, \
603			    int *anamelen, int flags); }
604367	UNIMPL		fanotify_init
605368	UNIMPL		fanotify_mark
606369	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
607			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
608370	UNIMPL		name_to_handle_at
609371	UNIMPL		open_by_handle_at
610372	UNIMPL		clock_adjtime
611373	UNIMPL		syncfs
612374	STD		{ int|linux_sys||sendmmsg(int s, \
613			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
614			    unsigned int flags); }
615375	UNIMPL		setns
616376	UNIMPL		process_vm_readv
617377	UNIMPL		process_vm_writev
618378	UNIMPL		kcmp
619379	UNIMPL		finit_module
620380	UNIMPL		sched_setattr
621381	UNIMPL		sched_getattr
622382	UNIMPL		renameat2
623383	UNIMPL		seccomp
624; XXX FIX-me?
625; 384	NOARGS		{ ssize_t|sys||getrandom(void *buf, size_t buflen, \
626			    unsigned int flags); }
627; 385	UNIMPL		memfd_create
628
629; ARMLinux actually has two ranges of syscalls.  Normal syscalls use
630; SWI numbers starting at 0x900000 (__NR_SYSCALL_BASE).  Special
631; ARM-specific syscalls use SWI numbers starting at 0x9f0000
632; (__ARM_NR_BASE).  linux_syscall() (in arch/arm/arm/linux_syscall.c)
633; remaps these down to 0x900180 so that we can use one linux_sysent
634; array for the whole lot.
635
636384	UNIMPL		/* base */
637385	STD		{ int|linux_sys||breakpoint(void); }
638386	STD		{ int|linux_sys||cacheflush(uintptr_t from, \
639				intptr_t to, int flags); }
640387	UNIMPL		usr26
641388	UNIMPL		usr32
642389	STD		{ int|linux_sys||set_tls(void *tls); }
643390	UNIMPL
644391	UNIMPL
645392	UNIMPL
646393	UNIMPL
647394	UNIMPL
648395	UNIMPL
649396	UNIMPL
650397     STD		{ int|linux_sys||statx(int fd, const char *path, \
651			    int flag, unsigned int mask, \
652			    struct linux_statx *sp); }
653398	UNIMPL
654399	UNIMPL
655400	UNIMPL
656401	UNIMPL
657402	UNIMPL
658403	UNIMPL
659404	UNIMPL
660405	UNIMPL
661406	UNIMPL
662407	UNIMPL
663408	UNIMPL
664409	UNIMPL
665410	UNIMPL
666411	UNIMPL
667412	UNIMPL
668413	UNIMPL
669414	UNIMPL
670415	UNIMPL
671416	UNIMPL
672417	UNIMPL
673418	UNIMPL
674419	UNIMPL
675420	UNIMPL
676421	UNIMPL
677422	UNIMPL
678423	UNIMPL
679424	UNIMPL
680425	UNIMPL
681426	UNIMPL
682427	UNIMPL
683428	UNIMPL
684429	UNIMPL
685430	UNIMPL
686431	UNIMPL
687432	UNIMPL
688433	UNIMPL
689434	UNIMPL
690435	UNIMPL
691436	STD		{ int|linux_sys||close_range(unsigned int first, \
692			    unsigned int last, unsigned int flags); }
693437	UNIMPL
694438	UNIMPL
695439	UNIMPL
696440	UNIMPL
697441	STD		{ int|linux_sys||epoll_pwait2(int epfd, \
698			    struct linux_epoll_event *events, int maxevents, \
699			    const struct linux_timespec *timeout, \
700			    const linux_sigset_t *sigmask); }
701