syscalls.master revision 1.84
1	$NetBSD: syscalls.master,v 1.84 2025/10/26 16:24:59 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#include <compat/linux/common/linux_mqueue.h>
52#include <compat/linux/common/linux_sched.h>
53
54
55#include <compat/linux/linux_syscallargs.h>
56
57%%
58; XXX We have to explicitly declare linux_sys_nosys.
590	NOARGS		{ int|linux_sys||nosys(void); }
601	STD		{ int|linux_sys||exit(int rval); }
612	NOARGS		{ int|sys||fork(void); }
623	NOARGS		{ ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
634	NOARGS		{ ssize_t|sys||write(int fd, const void *buf, \
64			    size_t nbyte); }
655	STD		{ int|linux_sys||open(const char *path, int flags, \
66			    linux_umode_t mode); }
676	NOARGS		{ int|sys||close(int fd); }
687	STD		{ int|linux_sys||waitpid(int pid, int *status, \
69			    int options);}
708	STD		{ int|linux_sys||creat(const char *path, linux_umode_t mode); }
719	NOARGS		{ int|sys||link(const char *path, const char *link); }
7210	STD		{ int|linux_sys||unlink(const char *path); }
7311	NOARGS		{ int|sys||execve(const char *path, char **argp, \
74			    char **envp); }
7512	NOARGS		{ int|sys||chdir(const char *path); }
7613	STD		{ int|linux_sys||time(linux_time_t *t); }
7714	STD		{ int|linux_sys||mknod(const char *path, linux_umode_t mode, \
78			    unsigned dev); }
7915	NOARGS		{ int|sys||chmod(const char *path, int mode); }
8016	STD		{ int|linux_sys||lchown16(const char *path, \
81			    linux_uid16_t uid, linux_gid16_t gid); }
8217	OBSOL		break
8318	OBSOL		ostat
8419	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
85			    int whence); }
8620	NOARGS 		{ pid_t|sys||getpid(void); }
8721	UNIMPL		mount
8822	OBSOL		umount
8923	NOARGS		{ int|sys||setuid(uid_t uid); }
9024	NOARGS		{ uid_t|sys||getuid(void); }
9125	STD		{ int|linux_sys||stime(linux_time_t *t); }
9226	STD		{ int|linux_sys||ptrace(int request, int pid, \
93			    int addr, int data); }
9427	STD		{ int|linux_sys||alarm(unsigned int secs); }
9528	OBSOL		ofstat
9629	STD		{ int|linux_sys||pause(void); }
9730	STD		{ int|linux_sys||utime(const char *path, \
98			    struct linux_utimbuf *times); }
9931	OBSOL		stty
10032	OBSOL		gtty
10133	NOARGS		{ int|sys||access(const char *path, int flags); }
10234	STD		{ int|linux_sys||nice(int incr); }
10335	OBSOL		ftime
10436	NOARGS		{ int|sys||sync(void); }
10537	STD		{ int|linux_sys||kill(int pid, int signum); }
10638	NOARGS		{ int|sys||__posix_rename(const char *from, \
107			    const char *to); }
10839	NOARGS		{ int|sys||mkdir(const char *path, linux_umode_t mode); }
10940	NOARGS		{ int|sys||rmdir(const char *path); }
11041	NOARGS		{ int|sys||dup(int fd); }
11142	STD		{ int|linux_sys||pipe(int *pfds); }
11243	STD		{ int|linux_sys||times(struct times *tms); }
11344	OBSOL		prof
11445	STD		{ int|linux_sys||brk(char *nsize); }
11546	NOARGS		{ int|sys||setgid(gid_t gid); }
11647	NOARGS		{ gid_t|sys||getgid(void); }
11748	STD		{ int|linux_sys||signal(int signum, \
118			    linux_handler_t handler); }
11949	NOARGS		{ uid_t|sys||geteuid(void); }
12050	NOARGS		{ gid_t|sys||getegid(void); }
12151	NOARGS		{ int|sys||acct(char *path); }
12252	UNIMPL		umount
12353	OBSOL		lock
12454	STD		{ int|linux_sys||ioctl(int fd, u_long com, \
125			    void *data); }
12655	STD		{ int|linux_sys||fcntl(int fd, int cmd, void *arg); }
12756	OBSOL		mpx
12857	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
12958	OBSOL		ulimit
13059	STD		{ int|linux_sys||oldolduname( \
131			   struct linux_oldold_utsname *up); }
13260	NOARGS		{ int|sys||umask(int newmask); }
13361	NOARGS		{ int|sys||chroot(char *path); }
13462	UNIMPL		ustat
13563	NOARGS		{ int|sys||dup2(int from, int to); }
13664	NOARGS		{ pid_t|sys||getppid(void); }
13765	NOARGS		{ int|sys||getpgrp(void); }
13866	NOARGS		{ int|sys||setsid(void); }
13967	STD		{ int|linux_sys||sigaction(int signum, \
140			    const struct linux_old_sigaction *nsa, \
141			    struct linux_old_sigaction *osa); }
14268	STD		{ int|linux_sys||siggetmask(void); }
14369	STD		{ int|linux_sys||sigsetmask(linux_old_sigset_t mask); }
14470	STD		{ int|linux_sys||setreuid16(linux_uid16_t ruid, \
145			    linux_uid16_t euid); }
14671	STD		{ int|linux_sys||setregid16(linux_gid16_t rgid, \
147			    linux_gid16_t egid); }
14872	STD		{ int|linux_sys||sigsuspend(void *restart, \
149			    int oldmask, int mask); }
15073	STD		{ int|linux_sys||sigpending(linux_old_sigset_t *set); }
15174	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
152			    u_int len);}
15375	STD		{ int|linux_sys||setrlimit(u_int which, \
154			    struct orlimit *rlp); }
15576	STD		{ int|linux_sys||getrlimit(u_int which, \
156			    struct orlimit *rlp); }
15777	NOARGS		{ int|compat_50_sys||getrusage(int who, struct rusage50 *rusage); }
15878	STD		{ int|linux_sys||gettimeofday(struct timeval50 *tp, \
159			    struct timezone *tzp); }
16079	STD		{ int|linux_sys||settimeofday(struct timeval50 *tp, \
161			    struct timezone *tzp); }
16280	STD		{ int|linux_sys||getgroups16(int gidsetsize, \
163			    linux_gid16_t *gidset); }
16481	STD		{ int|linux_sys||setgroups16(int gidsetsize, \
165			    linux_gid16_t *gidset); }
16682	STD		{ int|linux_sys||oldselect(struct linux_oldselect *lsp); }
16783	NOARGS		{ int|sys||symlink(const char *path, const char *link); }
16884	NOARGS		{ int|compat_43_sys||lstat(const char *path, \
169			    struct stat43 *ub); } oolstat
17085	NOARGS		{ ssize_t|sys||readlink(const char *path, char *buf, \
171			    int count); }
172#ifdef EXEC_AOUT
17386	STD		{ int|linux_sys||uselib(const char *path); }
174#else
17586	EXCL		uselib
176#endif
17787	STD		{ int|linux_sys||swapon(char *name); }
17888	STD		{ int|linux_sys||reboot(int magic1, int magic2, \
179			    int cmd, void *arg); }
18089	STD		{ int|linux_sys||readdir(int fd, void *dent, \
181			    unsigned int count); }
18290	STD		{ int|linux_sys||old_mmap(struct linux_oldmmap *lmp); }
18391	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
18492	NOARGS		{ int|compat_43_sys||truncate(const char *path, \
185			    long length); }
18693	NOARGS		{ int|compat_43_sys||ftruncate(int fd, long length); }
18794	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
18895	STD		{ int|linux_sys||fchown16(int fd, linux_uid16_t uid, \
189			    linux_gid16_t gid); }
19096	STD		{ int|linux_sys||getpriority(int which, int who); }
19197	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
19298	NOARGS		{ int|sys||profil(void *samples, u_int size, \
193			    u_int offset, u_int scale); }
19499	STD		{ int|linux_sys||statfs(const char *path, \
195			    struct linux_statfs *sp); }
196100	STD		{ int|linux_sys||fstatfs(int fd, \
197			    struct linux_statfs *sp); }
198101	UNIMPL
199102	STD		{ int|linux_sys||socketcall(int what, void *args); }
200103	UNIMPL		syslog
201104	NOARGS		{ int|compat_50_sys||setitimer(int which, \
202			    struct itimerval50 *itv, \
203			    struct itimerval50 *oitv); }
204105	NOARGS		{ int|compat_50_sys||getitimer(int which, \
205			    struct itimerval50 *itv); }
206106	STD		{ int|linux_sys||stat(const char *path, \
207			    struct linux_stat *sp); }
208107	STD		{ int|linux_sys||lstat(const char *path, \
209			    struct linux_stat *sp); }
210108	STD		{ int|linux_sys||fstat(int fd, struct linux_stat *sp); }
211109	STD		{ int|linux_sys||olduname(struct linux_oldutsname *up); }
212110	UNIMPL
213111	UNIMPL		vhangup
214112	UNIMPL		idle
215113	UNIMPL		syscall
216114	STD		{ int|linux_sys||wait4(int pid, int *status, \
217			    int options, struct rusage50 *rusage); }
218115	STD		{ int|linux_sys||swapoff(const char *path); }
219116	STD		{ int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
220117	STD		{ int|linux_sys||ipc(int what, int a1, int a2, int a3, \
221			    void *ptr); }
222118	NOARGS		{ int|sys||fsync(int fd); }
223119	STD		{ int|linux_sys||sigreturn(struct linux_sigcontext *scp); }
224120	STD		{ int|linux_sys||clone(int flags, void *stack, \
225			    void *parent_tidptr, void *tls, void *child_tidptr); }
226121	STD		{ int|linux_sys||setdomainname(char *domainname, \
227			    int len); }
228122	STD		{ int|linux_sys||uname(struct linux_utsname *up); }
229123	UNIMPL		modify_ldt
230124	UNIMPL		adjtimex
231125	STD		{ int|linux_sys||mprotect(const void *start, \
232			    unsigned long len, int prot); }
233126	STD		{ int|linux_sys||sigprocmask(int how, \
234			    const linux_old_sigset_t *set, \
235			    linux_old_sigset_t *oset); }
236127	UNIMPL		create_module
237128	UNIMPL		init_module
238129	UNIMPL		delete_module
239130	UNIMPL		get_kernel_syms
240131	UNIMPL		quotactl
241132	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
242133	NOARGS		{ int|sys||fchdir(int fd); }
243134	UNIMPL		bdflush
244135	UNIMPL		sysfs
245136	STD		{ int|linux_sys||personality(unsigned long per); }
246137	UNIMPL		afs_syscall
247138	STD		{ int|linux_sys||setfsuid(uid_t uid); }
248139	STD		{ int|linux_sys||setfsgid(gid_t gid); }
249140	STD		{ int|linux_sys||llseek(int fd, u_int32_t ohigh, \
250			    u_int32_t olow, void *res, int whence); }
251141	STD		{ int|linux_sys||getdents(int fd, \
252			    struct linux_dirent *dent, unsigned int count); }
253142	STD		{ int|linux_sys||select(int nfds, fd_set *readfds, \
254			    fd_set *writefds, fd_set *exceptfds, \
255			    struct timeval50 *timeout); }
256143	NOARGS		{ int|sys||flock(int fd, int how); }
257144	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
258145	NOARGS		{ ssize_t|sys||readv(int fd, \
259			    const struct iovec *iovp, int iovcnt); }
260146	NOARGS		{ ssize_t|sys||writev(int fd, \
261			    const struct iovec *iovp, int iovcnt); }
262147	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
263148	STD		{ int|linux_sys||fdatasync(int fd); }
264149	STD		{ int|linux_sys||__sysctl(struct linux___sysctl *lsp); }
265150	NOARGS		{ int|sys||mlock(void *addr, size_t len); }
266151	NOARGS		{ int|sys||munlock(void *addr, size_t len); }
267152	NOARGS		{ int|sys||mlockall(int flags); }
268153	NOARGS		{ int|sys||munlockall(void); }
269154	STD		{ int|linux_sys||sched_setparam(pid_t pid, \
270			    const struct linux_sched_param *sp); }
271155	STD		{ int|linux_sys||sched_getparam(pid_t pid, \
272			    struct linux_sched_param *sp); }
273156	STD		{ int|linux_sys||sched_setscheduler(pid_t pid, \
274			    int policy, const struct linux_sched_param *sp); }
275157	STD		{ int|linux_sys||sched_getscheduler(pid_t pid); }
276158	STD		{ int|linux_sys||sched_yield(void); }
277159	STD		{ int|linux_sys||sched_get_priority_max(int policy); }
278160	STD		{ int|linux_sys||sched_get_priority_min(int policy); }
279161	UNIMPL		sched_rr_get_interval
280162	STD		{ int|linux_sys||nanosleep( \
281			    const struct linux_timespec *rqtp, \
282			    struct linux_timespec *rmtp); }
283163	STD		{ void *|linux_sys||mremap(void *old_address, \
284			    size_t old_size, size_t new_size, u_long flags); }
285164	STD		{ int|linux_sys||setresuid16(linux_uid16_t ruid, \
286			    linux_uid16_t euid, linux_uid16_t suid); }
287165	STD		{ int|linux_sys||getresuid16(linux_uid16_t *ruid, \
288			    linux_uid16_t *euid, linux_uid16_t *suid); }
289166	UNIMPL
290167	UNIMPL		query_module
291168	NOARGS		{ int|sys||poll(struct pollfd *fds, u_int nfds, \
292			    int timeout); }
293169	UNIMPL		nfsservctl
294170	STD		{ int|linux_sys||setresgid16(linux_gid16_t rgid, \
295			    linux_gid16_t egid, linux_gid16_t sgid); }
296171	STD		{ int|linux_sys||getresgid16(linux_gid16_t *rgid, \
297			    linux_gid16_t *egid, linux_gid16_t *sgid); }
298172	UNIMPL		prctl
299173	UNIMPL		rt_sigreturn
300;173	STD		{ int|linux_sys||rt_sigreturn( \
301;			    struct linux_rt_sigframe *sfp); }
302174	STD		{ int|linux_sys||rt_sigaction(int signum, \
303			    const struct linux_sigaction *nsa, \
304			    struct linux_sigaction *osa, \
305			    size_t sigsetsize); }
306175	STD		{ int|linux_sys||rt_sigprocmask(int how, \
307			    const linux_sigset_t *set, \
308			    linux_sigset_t *oset, \
309			    size_t sigsetsize); }
310176	STD		{ int|linux_sys||rt_sigpending( \
311			    linux_sigset_t *set, \
312			    size_t sigsetsize); }
313177	STD		{ int|linux_sys||rt_sigtimedwait( \
314			    const linux_sigset_t *set, \
315			    linux_siginfo_t *info, \
316			    const struct linux_timespec *timeout); }
317178	STD		{ int|linux_sys||rt_queueinfo(int pid, int signum, \
318			    linux_siginfo_t *uinfo); }
319179	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
320			    size_t sigsetsize); }
321180	STD		{ int|linux_sys||pread(int fd, char *buf, \
322			    size_t nbyte, off_t offset); }
323181	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
324			    size_t nbyte, off_t offset); }
325182	STD		{ int|linux_sys||chown16(const char *path, \
326			    linux_uid16_t uid, linux_gid16_t gid); }
327183	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
328184	UNIMPL		capget
329185	UNIMPL		capset
330186	STD		{ int|linux_sys||sigaltstack( \
331			    const struct linux_sigaltstack *ss, \
332			    struct linux_sigaltstack *oss); }
333187	UNIMPL		sendfile
334188	UNIMPL		getpmsg
335189	UNIMPL		putpmsg
336190	NOARGS		vfork { int|sys|14|vfork(void); }
337191	STD		{ int|linux_sys||ugetrlimit(int which, \
338			    struct rlimit *rlp); }
339#define linux_sys_mmap2_args linux_sys_mmap_args
340192	NOARGS		{ linux_off_t|linux_sys||mmap2(unsigned long addr, \
341			    size_t len, int prot, int flags, int fd, \
342			    linux_off_t offset); }
343193	STD		{ int|linux_sys||truncate64(const char *path, \
344				off_t length); }
345194	STD		{ int|linux_sys||ftruncate64(unsigned int fd, \
346				off_t length); }
347195	STD		{ int|linux_sys||stat64(const char *path, \
348				struct linux_stat64 *sp); }
349196	STD		{ int|linux_sys||lstat64(const char *path, \
350				struct linux_stat64 *sp); }
351197	STD		{ int|linux_sys||fstat64(int fd, \
352				struct linux_stat64 *sp); }
353198	NOARGS		{ int|sys||__posix_lchown(const char *path, uid_t uid, \
354				gid_t gid); }
355199	NOARGS		getuid32 { uid_t|sys||getuid(void); }
356200	NOARGS		getgid32 { gid_t|sys||getgid(void); }
357201	NOARGS		geteuid32 { uid_t|sys||geteuid(void); }
358202	NOARGS		getegid32 { gid_t|sys||getegid(void); }
359203	NOARGS		setreuid32 { int|sys||setreuid(uid_t ruid, \
360				uid_t euid); }
361204	NOARGS		setregid32 { int|sys||setregid(gid_t rgid, \
362				gid_t egid); }
363205	NOARGS		getgroups32 { int|sys||getgroups(int gidsetsize, \
364				gid_t *gidset); }
365206	NOARGS		setgroups32 { int|sys||setgroups(int gidsetsize, \
366				gid_t *gidset); }
367207	NOARGS		fchown32 { int|sys||__posix_fchown(int fd, uid_t uid, \
368				gid_t gid); }
369208	STD		setresuid32 { int|linux_sys||setresuid(uid_t ruid, \
370				uid_t euid, uid_t suid); }
371209	STD		getresuid32 { int|linux_sys||getresuid(uid_t *ruid, \
372				uid_t *euid, uid_t *suid); }
373210	STD		setresgid32 { int|linux_sys||setresgid(gid_t rgid, \
374				gid_t egid, gid_t sgid); }
375211	STD		getresgid32 { int|linux_sys||getresgid(gid_t *rgid, \
376				gid_t *egid, gid_t *sgid); }
377212	NOARGS		chown32 { int|sys||__posix_chown(const char *path, \
378				uid_t uid, gid_t gid); }
379213	NOARGS		setuid32 { int|sys||setuid(uid_t uid); }
380214	NOARGS		setgid32 { int|sys||setgid(gid_t gid); }
381215	NOARGS		setfsuid32 { int|linux_sys||setfsuid(uid_t uid); }
382216	NOARGS		setfsgid32 { int|linux_sys||setfsgid(gid_t gid); }
383217	STD		{ int|linux_sys||getdents64(int fd, \
384			    struct linux_dirent64 *dent, unsigned int count); }
385218	UNIMPL		pivot_root
386219	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
387220	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
388221	STD		{ int|linux_sys||fcntl64(int fd, int cmd, void *arg); }
389222	UNIMPL		/* for tux */
390223	UNIMPL		/* unused */
391224	NOARGS		{ pid_t|linux_sys||gettid(void); }
392225	STD		{ ssize_t|linux_sys||readahead(int fd, off_t offset, \
393			    size_t count); }
394226	STD		{ int|linux_sys||setxattr(char *path, char *name, \
395			    void *value, size_t size, int flags); }
396227	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
397			    void *value, size_t size, int flags); }
398228	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
399			    void *value, size_t size, int flags); }
400229	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
401			    void *value, size_t size); }
402230	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
403			    void *value, size_t size); }
404231	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
405			    void *value, size_t size); }
406232	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
407			    size_t size); }
408233	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
409			    size_t size); }
410234	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
411			    size_t size); }
412235	STD		{ int|linux_sys||removexattr(char *path, char *name); }
413236	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
414237	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
415238	STD		{ int|linux_sys||tkill(int tid, int sig); }
416239	UNIMPL		sendfile64
417240	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
418			    const struct linux_timespec *timeout, int *uaddr2, \
419			    int val3); }
420241	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
421			    unsigned int len, unsigned long *mask); }
422242	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
423			    unsigned int len, unsigned long *mask); }
424243	UNIMPL		io_setup
425244	UNIMPL		io_destroy
426245	UNIMPL		io_getevents
427246	UNIMPL		io_submit
428247	UNIMPL		io_cancel
429248	STD		{ int|linux_sys||exit_group(int error_code); }
430249	UNIMPL		lookup_dcookie
431250	STD		{ int|linux_sys||epoll_create(int size); }
432251	STD		{ int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
433			    struct linux_epoll_event *event); }
434252	STD		{ int|linux_sys||epoll_wait(int epfd, \
435			    struct linux_epoll_event *events, int maxevents, \
436			    int timeout); }
437253	UNIMPL		remap_file_pages
438254	UNIMPL		set_thread_area
439255	UNIMPL		get_thread_area
440256	STD		{ int|linux_sys||set_tid_address(int *tid); }
441257	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
442			    struct linux_sigevent *evp, timer_t *timerid); }
443258	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
444			    int flags, const struct linux_itimerspec *tim, \
445			    struct linux_itimerspec *otim); }
446259	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
447			    struct linux_itimerspec *tim); }
448260	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
449261	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
450262	STD		{ int|linux_sys||clock_settime(clockid_t which, \
451			    struct linux_timespec *tp); }
452263	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
453			    struct linux_timespec *tp); }
454264	STD		{ int|linux_sys||clock_getres(clockid_t which, \
455			    struct linux_timespec *tp); }
456265	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
457			    int flags, struct linux_timespec *rqtp, \
458			    struct linux_timespec *rmtp); }
459266	STD		{ int|linux_sys||statfs64(const char *path, \
460			    size_t sz, struct linux_statfs64 *sp); }
461267	STD		{ int|linux_sys||fstatfs64(int fd, \
462			    size_t sz, struct linux_statfs64 *sp); }
463268	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
464269	NOARGS		{ int|compat_50_sys||utimes(const char *path, \
465			    const struct timeval50 *tptr); }
466270	STD		{ int|linux_sys||fadvise64_64(int fd, off_t offset, \
467			    off_t len, int advice); }
468271	UNIMPL		pciconfig_iobase
469272	UNIMPL		pciconfig_read
470273	UNIMPL		pciconfig_write
471274	STD		{ linux_mqd_t|linux_sys||mq_open(const char *name, \
472			    int oflag, linux_umode_t mode, \
473			    struct linux_mq_attr *attr); }
474275	STD		{ int|linux_sys||mq_unlink(const char *name); }
475276	STD		{ int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \
476			    const char *msg_ptr, size_t msg_len, \
477			    unsigned int msg_prio, \
478			    const struct linux_timespec *abs_timeout); }
479277	STD		{ ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \
480			    char *msg_ptr, size_t msg_len, \
481			    unsigned int *msg_prio, \
482			    const struct linux_timespec *abs_timeout); }
483278	STD		{ int|linux_sys||mq_notify(linux_mqd_t mqdes, \
484			    const struct linux_sigevent *sevp); }
485279	STD		{ int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \
486			    const struct linux_mq_attr *newattr, \
487			    struct linux_mq_attr *oldattr); }
488280	STD		{ int|linux_sys||waitid(int idtype, id_t id, \
489			    linux_siginfo_t *infop, int options, \
490			    struct rusage50 *rusage); }
491281	UNIMPL		socket
492282	UNIMPL		bind
493283	UNIMPL		connect
494284	UNIMPL		listen
495285	UNIMPL		accept
496286	UNIMPL		getsockname
497287	UNIMPL		getpeername
498288	UNIMPL		socketpair
499289	UNIMPL		send
500290	UNIMPL		sendto
501291	UNIMPL		recv
502292	UNIMPL		recvfrom
503293	UNIMPL		shutdown
504294	UNIMPL		setsockopt
505295	UNIMPL		getsockopt
506296	UNIMPL		sendmsg
507297	UNIMPL		recvmsg
508298	UNIMPL		semop
509299	UNIMPL		semget
510300	UNIMPL		semctl
511301	UNIMPL		msgsnd
512302	UNIMPL		msgrcv
513303	UNIMPL		msgget
514304	UNIMPL		msgctl
515305	UNIMPL		shmat
516306	UNIMPL		shmdt
517307	UNIMPL		shmget
518308	UNIMPL		shmctl
519309	UNIMPL		add_key
520310	UNIMPL		request_key
521311	UNIMPL		keyctl
522312	STD		{ int|linux_sys||semtimedop(int semid, \
523			    struct sembuf *sops, size_t nsops, \
524			    struct linux_timespec *timeout); }
525313	UNIMPL		vserver
526314	UNIMPL		ioptio_set
527315	UNIMPL		ioptio_get
528316	STD		{ int|linux_sys||inotify_init(void); }
529317	STD		{ int|linux_sys||inotify_add_watch(int fd, \
530			    const char *pathname, uint32_t mask); }
531318	STD		{ int|linux_sys||inotify_rm_watch(int fd, int wd); }
532319	UNIMPL		mbind
533320	UNIMPL		get_mempolicy
534321	UNIMPL		set_mempolicy
535322	STD 		{ int|linux_sys||openat(int fd, const char *path, \
536			    int flags, ... linux_umode_t mode); }
537323	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
538			    linux_umode_t mode); }
539324	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
540			    linux_umode_t mode, unsigned dev); }
541325	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
542			    uid_t owner, gid_t group, int flag); }
543326	UNIMPL		futimesat
544327	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
545			    struct linux_stat64 *sp, int flag); }
546328	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
547			    int flag); }
548329	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
549			    int tofd, const char *to); }
550330	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
551			    int fd2, const char *name2, int flags); }
552331	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
553			    const char *path2); }
554332	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
555			    char *buf, size_t bufsize); }
556333	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
557			    linux_umode_t mode); }
558334	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
559			    int amode); }
560335	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
561			   fd_set *writefds, fd_set *exceptfds, \
562			   struct linux_timespec *timeout, \
563			   linux_sized_sigset_t *ss); }
564336	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
565			    struct linux_timespec *timeout, \
566			    linux_sigset_t *sigset); }
567337	UNIMPL		unshare
568			;
569			; The NetBSD native robust list calls have different
570			; argument names / types, but they are ABI-compatible
571			; with Linux.
572			;
573338	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
574			    size_t len); }
575339	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
576			    void **headp, size_t *lenp); }
577340	UNIMPL		splice
578341	STD		{ int|linux_sys||sync_file_range(int fd, \
579			    off_t offset, off_t nbytes, unsigned int flags); }
580342	UNIMPL		tee
581343	UNIMPL		vmsplice
582344	UNIMPL		move_pages
583345	STD		{ int|linux_sys||getcpu(unsigned int *cpu, \
584			    unsigned int *node, \
585			    struct linux_getcpu_cache *tcache); }
586346	STD		{ int|linux_sys||epoll_pwait(int epfd, \
587			    struct linux_epoll_event *events, int maxevents, \
588			    int timeout, const linux_sigset_t *sigmask); }
589347	UNIMPL		kexec_load
590348	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
591			    struct linux_timespec *times, int flag); }
592349	UNIMPL		signalfd
593350	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
594			    int flags); }
595351	STD		{ int|linux_sys||eventfd(unsigned int initval); }
596352	STD		{ int|linux_sys||fallocate(int fd, int mode, \
597			    off_t offset, off_t len); }
598353	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
599			    const struct linux_itimerspec *tim, \
600			    struct linux_itimerspec *otim); }
601354	STD		{ int|linux_sys||timerfd_gettime(int fd, \
602			    struct linux_itimerspec *tim); }
603355	UNIMPL		signalfd4
604356	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
605			    int flags); }
606357	STD		{ int|linux_sys||epoll_create1(int flags); }
607358	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
608359	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
609360	STD		{ int|linux_sys||inotify_init1(int flags); }
610361	STD		{ int|linux_sys||preadv(int fd, \
611			    const struct iovec *iovp, int iovcnt, \
612			    unsigned long off_lo, unsigned long off_hi); }
613362	STD		{ int|linux_sys||pwritev(int fd, \
614			    const struct iovcnt *iovp, int iovcnt, \
615			    unsigned long off_lo, unsigned long off_hi); }
616363	UNIMPL		rt_tgsigqueueinfo
617364	UNIMPL		perf_counter_open
618365	STD		{ int|linux_sys||recvmmsg(int s, \
619			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
620			    unsigned int flags, struct timespec *timeout); }
621366	STD		{ int|linux_sys||accept4(int s, \
622			    struct osockaddr *name, \
623			    int *anamelen, int flags); }
624367	UNIMPL		fanotify_init
625368	UNIMPL		fanotify_mark
626369	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
627			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
628370	UNIMPL		name_to_handle_at
629371	UNIMPL		open_by_handle_at
630372	UNIMPL		clock_adjtime
631373	STD		{ int|linux_sys||syncfs(int fd); }
632374	STD		{ int|linux_sys||sendmmsg(int s, \
633			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
634			    unsigned int flags); }
635375	UNIMPL		setns
636376	UNIMPL		process_vm_readv
637377	UNIMPL		process_vm_writev
638378	UNIMPL		kcmp
639379	UNIMPL		finit_module
640380	UNIMPL		sched_setattr
641381	UNIMPL		sched_getattr
642382	STD		{ int|linux_sys||renameat2(int fromfd, \
643			    const char *from, int tofd, const char *to, \
644			    unsigned int flags); }
645383	UNIMPL		seccomp
646; XXX FIX-me?
647; 384	NOARGS		{ ssize_t|sys||getrandom(void *buf, size_t buflen, \
648			    unsigned int flags); }
649; 385	UNIMPL		memfd_create
650
651; ARMLinux actually has two ranges of syscalls.  Normal syscalls use
652; SWI numbers starting at 0x900000 (__NR_SYSCALL_BASE).  Special
653; ARM-specific syscalls use SWI numbers starting at 0x9f0000
654; (__ARM_NR_BASE).  linux_syscall() (in arch/arm/arm/linux_syscall.c)
655; remaps these down to 0x900180 so that we can use one linux_sysent
656; array for the whole lot.
657
658384	UNIMPL		/* base */
659385	STD		{ int|linux_sys||breakpoint(void); }
660386	STD		{ int|linux_sys||cacheflush(uintptr_t from, \
661				intptr_t to, int flags); }
662387	UNIMPL		usr26
663388	UNIMPL		usr32
664389	STD		{ int|linux_sys||set_tls(void *tls); }
665390	UNIMPL
666391	STD		{ ssize_t|linux_sys||copy_file_range(int fd_in, \
667			off_t * off_in, int fd_out, off_t * off_out, \
668			size_t len, unsigned int flags); }
669392	UNIMPL
670393	UNIMPL
671394	UNIMPL
672395	UNIMPL
673396	UNIMPL
674397	STD		{ int|linux_sys||statx(int fd, const char *path, \
675			    int flag, unsigned int mask, \
676			    struct linux_statx *sp); }
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