xref: /netbsd-src/sys/compat/linux/arch/arm/syscalls.master (revision 0a3071956a3a9fdebdbf7f338cf2d439b45fc728)
1	$NetBSD: syscalls.master,v 1.80 2024/06/29 13:46:09 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_sched.h>
52
53
54#include <compat/linux/linux_syscallargs.h>
55
56%%
57; XXX We have to explicitly declare linux_sys_nosys.
580	NOARGS		{ int|linux_sys||nosys(void); }
591	STD		{ int|linux_sys||exit(int rval); }
602	NOARGS		{ int|sys||fork(void); }
613	NOARGS		{ ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
624	NOARGS		{ ssize_t|sys||write(int fd, const void *buf, \
63			    size_t nbyte); }
645	STD		{ int|linux_sys||open(const char *path, int flags, \
65			    linux_umode_t mode); }
666	NOARGS		{ int|sys||close(int fd); }
677	STD		{ int|linux_sys||waitpid(int pid, int *status, \
68			    int options);}
698	STD		{ int|linux_sys||creat(const char *path, linux_umode_t mode); }
709	NOARGS		{ int|sys||link(const char *path, const char *link); }
7110	STD		{ int|linux_sys||unlink(const char *path); }
7211	NOARGS		{ int|sys||execve(const char *path, char **argp, \
73			    char **envp); }
7412	NOARGS		{ int|sys||chdir(const char *path); }
7513	STD		{ int|linux_sys||time(linux_time_t *t); }
7614	STD		{ int|linux_sys||mknod(const char *path, linux_umode_t mode, \
77			    unsigned dev); }
7815	NOARGS		{ int|sys||chmod(const char *path, int mode); }
7916	STD		{ int|linux_sys||lchown16(const char *path, \
80			    linux_uid16_t uid, linux_gid16_t gid); }
8117	OBSOL		break
8218	OBSOL		ostat
8319	NOARGS		{ long|compat_43_sys||lseek(int fd, long offset, \
84			    int whence); }
8520	NOARGS 		{ pid_t|sys||getpid(void); }
8621	UNIMPL		mount
8722	OBSOL		umount
8823	NOARGS		{ int|sys||setuid(uid_t uid); }
8924	NOARGS		{ uid_t|sys||getuid(void); }
9025	STD		{ int|linux_sys||stime(linux_time_t *t); }
9126	STD		{ int|linux_sys||ptrace(int request, int pid, \
92			    int addr, int data); }
9327	STD		{ int|linux_sys||alarm(unsigned int secs); }
9428	OBSOL		ofstat
9529	STD		{ int|linux_sys||pause(void); }
9630	STD		{ int|linux_sys||utime(const char *path, \
97			    struct linux_utimbuf *times); }
9831	OBSOL		stty
9932	OBSOL		gtty
10033	NOARGS		{ int|sys||access(const char *path, int flags); }
10134	STD		{ int|linux_sys||nice(int incr); }
10235	OBSOL		ftime
10336	NOARGS		{ int|sys||sync(void); }
10437	STD		{ int|linux_sys||kill(int pid, int signum); }
10538	NOARGS		{ int|sys||__posix_rename(const char *from, \
106			    const char *to); }
10739	NOARGS		{ int|sys||mkdir(const char *path, linux_umode_t mode); }
10840	NOARGS		{ int|sys||rmdir(const char *path); }
10941	NOARGS		{ int|sys||dup(int fd); }
11042	STD		{ int|linux_sys||pipe(int *pfds); }
11143	STD		{ int|linux_sys||times(struct times *tms); }
11244	OBSOL		prof
11345	STD		{ int|linux_sys||brk(char *nsize); }
11446	NOARGS		{ int|sys||setgid(gid_t gid); }
11547	NOARGS		{ gid_t|sys||getgid(void); }
11648	STD		{ int|linux_sys||signal(int signum, \
117			    linux_handler_t handler); }
11849	NOARGS		{ uid_t|sys||geteuid(void); }
11950	NOARGS		{ gid_t|sys||getegid(void); }
12051	NOARGS		{ int|sys||acct(char *path); }
12152	UNIMPL		umount
12253	OBSOL		lock
12354	STD		{ int|linux_sys||ioctl(int fd, u_long com, \
124			    void *data); }
12555	STD		{ int|linux_sys||fcntl(int fd, int cmd, void *arg); }
12656	OBSOL		mpx
12757	NOARGS		{ int|sys||setpgid(int pid, int pgid); }
12858	OBSOL		ulimit
12959	STD		{ int|linux_sys||oldolduname( \
130			   struct linux_oldold_utsname *up); }
13160	NOARGS		{ int|sys||umask(int newmask); }
13261	NOARGS		{ int|sys||chroot(char *path); }
13362	UNIMPL		ustat
13463	NOARGS		{ int|sys||dup2(int from, int to); }
13564	NOARGS		{ pid_t|sys||getppid(void); }
13665	NOARGS		{ int|sys||getpgrp(void); }
13766	NOARGS		{ int|sys||setsid(void); }
13867	STD		{ int|linux_sys||sigaction(int signum, \
139			    const struct linux_old_sigaction *nsa, \
140			    struct linux_old_sigaction *osa); }
14168	STD		{ int|linux_sys||siggetmask(void); }
14269	STD		{ int|linux_sys||sigsetmask(linux_old_sigset_t mask); }
14370	STD		{ int|linux_sys||setreuid16(linux_uid16_t ruid, \
144			    linux_uid16_t euid); }
14571	STD		{ int|linux_sys||setregid16(linux_gid16_t rgid, \
146			    linux_gid16_t egid); }
14772	STD		{ int|linux_sys||sigsuspend(void *restart, \
148			    int oldmask, int mask); }
14973	STD		{ int|linux_sys||sigpending(linux_old_sigset_t *set); }
15074	NOARGS		{ int|compat_43_sys||sethostname(char *hostname, \
151			    u_int len);}
15275	STD		{ int|linux_sys||setrlimit(u_int which, \
153			    struct orlimit *rlp); }
15476	STD		{ int|linux_sys||getrlimit(u_int which, \
155			    struct orlimit *rlp); }
15677	NOARGS		{ int|compat_50_sys||getrusage(int who, struct rusage50 *rusage); }
15778	STD		{ int|linux_sys||gettimeofday(struct timeval50 *tp, \
158			    struct timezone *tzp); }
15979	STD		{ int|linux_sys||settimeofday(struct timeval50 *tp, \
160			    struct timezone *tzp); }
16180	STD		{ int|linux_sys||getgroups16(int gidsetsize, \
162			    linux_gid16_t *gidset); }
16381	STD		{ int|linux_sys||setgroups16(int gidsetsize, \
164			    linux_gid16_t *gidset); }
16582	STD		{ int|linux_sys||oldselect(struct linux_oldselect *lsp); }
16683	NOARGS		{ int|sys||symlink(const char *path, const char *link); }
16784	NOARGS		{ int|compat_43_sys||lstat(const char *path, \
168			    struct stat43 *ub); } oolstat
16985	NOARGS		{ ssize_t|sys||readlink(const char *path, char *buf, \
170			    int count); }
171#ifdef EXEC_AOUT
17286	STD		{ int|linux_sys||uselib(const char *path); }
173#else
17486	EXCL		uselib
175#endif
17687	STD		{ int|linux_sys||swapon(char *name); }
17788	STD		{ int|linux_sys||reboot(int magic1, int magic2, \
178			    int cmd, void *arg); }
17989	STD		{ int|linux_sys||readdir(int fd, void *dent, \
180			    unsigned int count); }
18190	STD		{ int|linux_sys||old_mmap(struct linux_oldmmap *lmp); }
18291	NOARGS		{ int|sys||munmap(void *addr, size_t len); }
18392	NOARGS		{ int|compat_43_sys||truncate(const char *path, \
184			    long length); }
18593	NOARGS		{ int|compat_43_sys||ftruncate(int fd, long length); }
18694	NOARGS		{ int|sys||fchmod(int fd, linux_umode_t mode); }
18795	STD		{ int|linux_sys||fchown16(int fd, linux_uid16_t uid, \
188			    linux_gid16_t gid); }
18996	STD		{ int|linux_sys||getpriority(int which, int who); }
19097	NOARGS		{ int|sys||setpriority(int which, int who, int prio); }
19198	NOARGS		{ int|sys||profil(void *samples, u_int size, \
192			    u_int offset, u_int scale); }
19399	STD		{ int|linux_sys||statfs(const char *path, \
194			    struct linux_statfs *sp); }
195100	STD		{ int|linux_sys||fstatfs(int fd, \
196			    struct linux_statfs *sp); }
197101	UNIMPL
198102	STD		{ int|linux_sys||socketcall(int what, void *args); }
199103	UNIMPL		syslog
200104	NOARGS		{ int|compat_50_sys||setitimer(int which, \
201			    struct itimerval50 *itv, \
202			    struct itimerval50 *oitv); }
203105	NOARGS		{ int|compat_50_sys||getitimer(int which, \
204			    struct itimerval50 *itv); }
205106	STD		{ int|linux_sys||stat(const char *path, \
206			    struct linux_stat *sp); }
207107	STD		{ int|linux_sys||lstat(const char *path, \
208			    struct linux_stat *sp); }
209108	STD		{ int|linux_sys||fstat(int fd, struct linux_stat *sp); }
210109	STD		{ int|linux_sys||olduname(struct linux_oldutsname *up); }
211110	UNIMPL
212111	UNIMPL		vhangup
213112	UNIMPL		idle
214113	UNIMPL		syscall
215114	STD		{ int|linux_sys||wait4(int pid, int *status, \
216			    int options, struct rusage50 *rusage); }
217115	STD		{ int|linux_sys||swapoff(const char *path); }
218116	STD		{ int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
219117	STD		{ int|linux_sys||ipc(int what, int a1, int a2, int a3, \
220			    void *ptr); }
221118	NOARGS		{ int|sys||fsync(int fd); }
222119	STD		{ int|linux_sys||sigreturn(struct linux_sigcontext *scp); }
223120	STD		{ int|linux_sys||clone(int flags, void *stack, \
224			    void *parent_tidptr, void *tls, void *child_tidptr); }
225121	STD		{ int|linux_sys||setdomainname(char *domainname, \
226			    int len); }
227122	STD		{ int|linux_sys||uname(struct linux_utsname *up); }
228123	UNIMPL		modify_ldt
229124	UNIMPL		adjtimex
230125	STD		{ int|linux_sys||mprotect(const void *start, \
231			    unsigned long len, int prot); }
232126	STD		{ int|linux_sys||sigprocmask(int how, \
233			    const linux_old_sigset_t *set, \
234			    linux_old_sigset_t *oset); }
235127	UNIMPL		create_module
236128	UNIMPL		init_module
237129	UNIMPL		delete_module
238130	UNIMPL		get_kernel_syms
239131	UNIMPL		quotactl
240132	NOARGS		{ pid_t|sys||getpgid(pid_t pid); }
241133	NOARGS		{ int|sys||fchdir(int fd); }
242134	UNIMPL		bdflush
243135	UNIMPL		sysfs
244136	STD		{ int|linux_sys||personality(unsigned long per); }
245137	UNIMPL		afs_syscall
246138	STD		{ int|linux_sys||setfsuid(uid_t uid); }
247139	STD		{ int|linux_sys||setfsgid(gid_t gid); }
248140	STD		{ int|linux_sys||llseek(int fd, u_int32_t ohigh, \
249			    u_int32_t olow, void *res, int whence); }
250141	STD		{ int|linux_sys||getdents(int fd, \
251			    struct linux_dirent *dent, unsigned int count); }
252142	STD		{ int|linux_sys||select(int nfds, fd_set *readfds, \
253			    fd_set *writefds, fd_set *exceptfds, \
254			    struct timeval50 *timeout); }
255143	NOARGS		{ int|sys||flock(int fd, int how); }
256144	NOARGS		{ int|sys|13|msync(void *addr, size_t len, int flags); }
257145	NOARGS		{ ssize_t|sys||readv(int fd, \
258			    const struct iovec *iovp, int iovcnt); }
259146	NOARGS		{ ssize_t|sys||writev(int fd, \
260			    const struct iovec *iovp, int iovcnt); }
261147	NOARGS		{ pid_t|sys||getsid(pid_t pid); }
262148	STD		{ int|linux_sys||fdatasync(int fd); }
263149	STD		{ int|linux_sys||__sysctl(struct linux___sysctl *lsp); }
264150	NOARGS		{ int|sys||mlock(void *addr, size_t len); }
265151	NOARGS		{ int|sys||munlock(void *addr, size_t len); }
266152	NOARGS		{ int|sys||mlockall(int flags); }
267153	NOARGS		{ int|sys||munlockall(void); }
268154	STD		{ int|linux_sys||sched_setparam(pid_t pid, \
269			    const struct linux_sched_param *sp); }
270155	STD		{ int|linux_sys||sched_getparam(pid_t pid, \
271			    struct linux_sched_param *sp); }
272156	STD		{ int|linux_sys||sched_setscheduler(pid_t pid, \
273			    int policy, const struct linux_sched_param *sp); }
274157	STD		{ int|linux_sys||sched_getscheduler(pid_t pid); }
275158	STD		{ int|linux_sys||sched_yield(void); }
276159	STD		{ int|linux_sys||sched_get_priority_max(int policy); }
277160	STD		{ int|linux_sys||sched_get_priority_min(int policy); }
278161	UNIMPL		sched_rr_get_interval
279162	STD		{ int|linux_sys||nanosleep( \
280			    const struct linux_timespec *rqtp, \
281			    struct linux_timespec *rmtp); }
282163	STD		{ void *|linux_sys||mremap(void *old_address, \
283			    size_t old_size, size_t new_size, u_long flags); }
284164	STD		{ int|linux_sys||setresuid16(linux_uid16_t ruid, \
285			    linux_uid16_t euid, linux_uid16_t suid); }
286165	STD		{ int|linux_sys||getresuid16(linux_uid16_t *ruid, \
287			    linux_uid16_t *euid, linux_uid16_t *suid); }
288166	UNIMPL
289167	UNIMPL		query_module
290168	NOARGS		{ int|sys||poll(struct pollfd *fds, u_int nfds, \
291			    int timeout); }
292169	UNIMPL		nfsservctl
293170	STD		{ int|linux_sys||setresgid16(linux_gid16_t rgid, \
294			    linux_gid16_t egid, linux_gid16_t sgid); }
295171	STD		{ int|linux_sys||getresgid16(linux_gid16_t *rgid, \
296			    linux_gid16_t *egid, linux_gid16_t *sgid); }
297172	UNIMPL		prctl
298173	UNIMPL		rt_sigreturn
299;173	STD		{ int|linux_sys||rt_sigreturn( \
300;			    struct linux_rt_sigframe *sfp); }
301174	STD		{ int|linux_sys||rt_sigaction(int signum, \
302			    const struct linux_sigaction *nsa, \
303			    struct linux_sigaction *osa, \
304			    size_t sigsetsize); }
305175	STD		{ int|linux_sys||rt_sigprocmask(int how, \
306			    const linux_sigset_t *set, \
307			    linux_sigset_t *oset, \
308			    size_t sigsetsize); }
309176	STD		{ int|linux_sys||rt_sigpending( \
310			    linux_sigset_t *set, \
311			    size_t sigsetsize); }
312177	STD		{ int|linux_sys||rt_sigtimedwait( \
313			    const linux_sigset_t *set, \
314			    linux_siginfo_t *info, \
315			    const struct linux_timespec *timeout); }
316178	STD		{ int|linux_sys||rt_queueinfo(int pid, int signum, \
317			    linux_siginfo_t *uinfo); }
318179	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
319			    size_t sigsetsize); }
320180	STD		{ int|linux_sys||pread(int fd, char *buf, \
321			    size_t nbyte, off_t offset); }
322181	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
323			    size_t nbyte, off_t offset); }
324182	STD		{ int|linux_sys||chown16(const char *path, \
325			    linux_uid16_t uid, linux_gid16_t gid); }
326183	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
327184	UNIMPL		capget
328185	UNIMPL		capset
329186	STD		{ int|linux_sys||sigaltstack( \
330			    const struct linux_sigaltstack *ss, \
331			    struct linux_sigaltstack *oss); }
332187	UNIMPL		sendfile
333188	UNIMPL		getpmsg
334189	UNIMPL		putpmsg
335190	NOARGS		vfork { int|sys|14|vfork(void); }
336191	STD		{ int|linux_sys||ugetrlimit(int which, \
337			    struct rlimit *rlp); }
338#define linux_sys_mmap2_args linux_sys_mmap_args
339192	NOARGS		{ linux_off_t|linux_sys||mmap2(unsigned long addr, \
340			    size_t len, int prot, int flags, int fd, \
341			    linux_off_t offset); }
342193	STD		{ int|linux_sys||truncate64(const char *path, \
343				off_t length); }
344194	STD		{ int|linux_sys||ftruncate64(unsigned int fd, \
345				off_t length); }
346195	STD		{ int|linux_sys||stat64(const char *path, \
347				struct linux_stat64 *sp); }
348196	STD		{ int|linux_sys||lstat64(const char *path, \
349				struct linux_stat64 *sp); }
350197	STD		{ int|linux_sys||fstat64(int fd, \
351				struct linux_stat64 *sp); }
352198	NOARGS		{ int|sys||__posix_lchown(const char *path, uid_t uid, \
353				gid_t gid); }
354199	NOARGS		getuid32 { uid_t|sys||getuid(void); }
355200	NOARGS		getgid32 { gid_t|sys||getgid(void); }
356201	NOARGS		geteuid32 { uid_t|sys||geteuid(void); }
357202	NOARGS		getegid32 { gid_t|sys||getegid(void); }
358203	NOARGS		setreuid32 { int|sys||setreuid(uid_t ruid, \
359				uid_t euid); }
360204	NOARGS		setregid32 { int|sys||setregid(gid_t rgid, \
361				gid_t egid); }
362205	NOARGS		getgroups32 { int|sys||getgroups(int gidsetsize, \
363				gid_t *gidset); }
364206	NOARGS		setgroups32 { int|sys||setgroups(int gidsetsize, \
365				gid_t *gidset); }
366207	NOARGS		fchown32 { int|sys||__posix_fchown(int fd, uid_t uid, \
367				gid_t gid); }
368208	STD		setresuid32 { int|linux_sys||setresuid(uid_t ruid, \
369				uid_t euid, uid_t suid); }
370209	STD		getresuid32 { int|linux_sys||getresuid(uid_t *ruid, \
371				uid_t *euid, uid_t *suid); }
372210	STD		setresgid32 { int|linux_sys||setresgid(gid_t rgid, \
373				gid_t egid, gid_t sgid); }
374211	STD		getresgid32 { int|linux_sys||getresgid(gid_t *rgid, \
375				gid_t *egid, gid_t *sgid); }
376212	NOARGS		chown32 { int|sys||__posix_chown(const char *path, \
377				uid_t uid, gid_t gid); }
378213	NOARGS		setuid32 { int|sys||setuid(uid_t uid); }
379214	NOARGS		setgid32 { int|sys||setgid(gid_t gid); }
380215	NOARGS		setfsuid32 { int|linux_sys||setfsuid(uid_t uid); }
381216	NOARGS		setfsgid32 { int|linux_sys||setfsgid(gid_t gid); }
382217	STD		{ int|linux_sys||getdents64(int fd, \
383			    struct linux_dirent64 *dent, unsigned int count); }
384218	UNIMPL		pivot_root
385219	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
386220	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
387221	STD		{ int|linux_sys||fcntl64(int fd, int cmd, void *arg); }
388222	UNIMPL		/* for tux */
389223	UNIMPL		/* unused */
390224	NOARGS		{ pid_t|linux_sys||gettid(void); }
391225	STD		{ ssize_t|linux_sys||readahead(int fd, off_t offset, \
392			    size_t count); }
393226	STD		{ int|linux_sys||setxattr(char *path, char *name, \
394			    void *value, size_t size, int flags); }
395227	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
396			    void *value, size_t size, int flags); }
397228	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
398			    void *value, size_t size, int flags); }
399229	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
400			    void *value, size_t size); }
401230	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
402			    void *value, size_t size); }
403231	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
404			    void *value, size_t size); }
405232	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
406			    size_t size); }
407233	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
408			    size_t size); }
409234	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
410			    size_t size); }
411235	STD		{ int|linux_sys||removexattr(char *path, char *name); }
412236	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
413237	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
414238	STD		{ int|linux_sys||tkill(int tid, int sig); }
415239	UNIMPL		sendfile64
416240	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
417			    const struct linux_timespec *timeout, int *uaddr2, \
418			    int val3); }
419241	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
420			    unsigned int len, unsigned long *mask); }
421242	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
422			    unsigned int len, unsigned long *mask); }
423243	UNIMPL		io_setup
424244	UNIMPL		io_destroy
425245	UNIMPL		io_getevents
426246	UNIMPL		io_submit
427247	UNIMPL		io_cancel
428248	STD		{ int|linux_sys||exit_group(int error_code); }
429249	UNIMPL		lookup_dcookie
430250	STD		{ int|linux_sys||epoll_create(int size); }
431251	STD		{ int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
432			    struct linux_epoll_event *event); }
433252	STD		{ int|linux_sys||epoll_wait(int epfd, \
434			    struct linux_epoll_event *events, int maxevents, \
435			    int timeout); }
436253	UNIMPL		remap_file_pages
437254	UNIMPL		set_thread_area
438255	UNIMPL		get_thread_area
439256	STD		{ int|linux_sys||set_tid_address(int *tid); }
440257	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
441			    struct linux_sigevent *evp, timer_t *timerid); }
442258	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
443			    int flags, const struct linux_itimerspec *tim, \
444			    struct linux_itimerspec *otim); }
445259	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
446			    struct linux_itimerspec *tim); }
447260	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
448261	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
449262	STD		{ int|linux_sys||clock_settime(clockid_t which, \
450			    struct linux_timespec *tp); }
451263	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
452			    struct linux_timespec *tp); }
453264	STD		{ int|linux_sys||clock_getres(clockid_t which, \
454			    struct linux_timespec *tp); }
455265	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
456			    int flags, struct linux_timespec *rqtp, \
457			    struct linux_timespec *rmtp); }
458266	STD		{ int|linux_sys||statfs64(const char *path, \
459			    size_t sz, struct linux_statfs64 *sp); }
460267	STD		{ int|linux_sys||fstatfs64(int fd, \
461			    size_t sz, struct linux_statfs64 *sp); }
462268	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
463269	NOARGS		{ int|compat_50_sys||utimes(const char *path, \
464			    const struct timeval50 *tptr); }
465270	STD		{ int|linux_sys||fadvise64_64(int fd, off_t offset, \
466			    off_t len, int advice); }
467271	UNIMPL		pciconfig_iobase
468272	UNIMPL		pciconfig_read
469273	UNIMPL		pciconfig_write
470274	UNIMPL		mq_open
471275	UNIMPL		mq_unlink
472276	UNIMPL		mq_timedsend
473277	UNIMPL		mq_timedreceive
474278	UNIMPL		mq_notify
475279	UNIMPL		mq_getsetattr
476280	STD		{ int|linux_sys||waitid(int idtype, id_t id, \
477			    linux_siginfo_t *infop, int options, \
478			    struct rusage50 *rusage); }
479281	UNIMPL		socket
480282	UNIMPL		bind
481283	UNIMPL		connect
482284	UNIMPL		listen
483285	UNIMPL		accept
484286	UNIMPL		getsockname
485287	UNIMPL		getpeername
486288	UNIMPL		socketpair
487289	UNIMPL		send
488290	UNIMPL		sendto
489291	UNIMPL		recv
490292	UNIMPL		recvfrom
491293	UNIMPL		shutdown
492294	UNIMPL		setsockopt
493295	UNIMPL		getsockopt
494296	UNIMPL		sendmsg
495297	UNIMPL		recvmsg
496298	UNIMPL		semop
497299	UNIMPL		semget
498300	UNIMPL		semctl
499301	UNIMPL		msgsnd
500302	UNIMPL		msgrcv
501303	UNIMPL		msgget
502304	UNIMPL		msgctl
503305	UNIMPL		shmat
504306	UNIMPL		shmdt
505307	UNIMPL		shmget
506308	UNIMPL		shmctl
507309	UNIMPL		add_key
508310	UNIMPL		request_key
509311	UNIMPL		keyctl
510312	UNIMPL		semtimedop
511313	UNIMPL		vserver
512314	UNIMPL		ioptio_set
513315	UNIMPL		ioptio_get
514316	STD		{ int|linux_sys||inotify_init(void); }
515317	STD		{ int|linux_sys||inotify_add_watch(int fd, \
516			    const char *pathname, uint32_t mask); }
517318	STD		{ int|linux_sys||inotify_rm_watch(int fd, int wd); }
518319	UNIMPL		mbind
519320	UNIMPL		get_mempolicy
520321	UNIMPL		set_mempolicy
521322	STD 		{ int|linux_sys||openat(int fd, const char *path, \
522			    int flags, ... linux_umode_t mode); }
523323	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
524			    linux_umode_t mode); }
525324	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
526			    linux_umode_t mode, unsigned dev); }
527325	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
528			    uid_t owner, gid_t group, int flag); }
529326	UNIMPL		futimesat
530327	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
531			    struct linux_stat64 *sp, int flag); }
532328	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
533			    int flag); }
534329	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
535			    int tofd, const char *to); }
536330	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
537			    int fd2, const char *name2, int flags); }
538331	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
539			    const char *path2); }
540332	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
541			    char *buf, size_t bufsize); }
542333	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
543			    linux_umode_t mode); }
544334	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
545			    int amode); }
546335	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
547			   fd_set *writefds, fd_set *exceptfds, \
548			   struct linux_timespec *timeout, \
549			   linux_sized_sigset_t *ss); }
550336	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
551			    struct linux_timespec *timeout, \
552			    linux_sigset_t *sigset); }
553337	UNIMPL		unshare
554			;
555			; The NetBSD native robust list calls have different
556			; argument names / types, but they are ABI-compatible
557			; with Linux.
558			;
559338	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
560			    size_t len); }
561339	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
562			    void **headp, size_t *lenp); }
563340	UNIMPL		splice
564341	UNIMPL		sync_file_range2
565342	UNIMPL		tee
566343	UNIMPL		vmsplice
567344	UNIMPL		move_pages
568345	STD		{ int|linux_sys||getcpu(unsigned int *cpu, \
569			    unsigned int *node, \
570			    struct linux_getcpu_cache *tcache); }
571346	STD		{ int|linux_sys||epoll_pwait(int epfd, \
572			    struct linux_epoll_event *events, int maxevents, \
573			    int timeout, const linux_sigset_t *sigmask); }
574347	UNIMPL		kexec_load
575348	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
576			    struct linux_timespec *times, int flag); }
577349	UNIMPL		signalfd
578350	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
579			    int flags); }
580351	STD		{ int|linux_sys||eventfd(unsigned int initval); }
581352	STD		{ int|linux_sys||fallocate(int fd, int mode, \
582			    off_t offset, off_t len); }
583353	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
584			    const struct linux_itimerspec *tim, \
585			    struct linux_itimerspec *otim); }
586354	STD		{ int|linux_sys||timerfd_gettime(int fd, \
587			    struct linux_itimerspec *tim); }
588355	UNIMPL		signalfd4
589356	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
590			    int flags); }
591357	STD		{ int|linux_sys||epoll_create1(int flags); }
592358	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
593359	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
594360	STD		{ int|linux_sys||inotify_init1(int flags); }
595361	STD		{ int|linux_sys||preadv(int fd, \
596			    const struct iovec *iovp, int iovcnt, \
597			    unsigned long off_lo, unsigned long off_hi); }
598362	STD		{ int|linux_sys||pwritev(int fd, \
599			    const struct iovcnt *iovp, int iovcnt, \
600			    unsigned long off_lo, unsigned long off_hi); }
601363	UNIMPL		rt_tgsigqueueinfo
602364	UNIMPL		perf_counter_open
603365	STD		{ int|linux_sys||recvmmsg(int s, \
604			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
605			    unsigned int flags, struct timespec *timeout); }
606366	STD		{ int|linux_sys||accept4(int s, \
607			    struct osockaddr *name, \
608			    int *anamelen, int flags); }
609367	UNIMPL		fanotify_init
610368	UNIMPL		fanotify_mark
611369	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
612			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
613370	UNIMPL		name_to_handle_at
614371	UNIMPL		open_by_handle_at
615372	UNIMPL		clock_adjtime
616373	UNIMPL		syncfs
617374	STD		{ int|linux_sys||sendmmsg(int s, \
618			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
619			    unsigned int flags); }
620375	UNIMPL		setns
621376	UNIMPL		process_vm_readv
622377	UNIMPL		process_vm_writev
623378	UNIMPL		kcmp
624379	UNIMPL		finit_module
625380	UNIMPL		sched_setattr
626381	UNIMPL		sched_getattr
627382	UNIMPL		renameat2
628383	UNIMPL		seccomp
629; XXX FIX-me?
630; 384	NOARGS		{ ssize_t|sys||getrandom(void *buf, size_t buflen, \
631			    unsigned int flags); }
632; 385	UNIMPL		memfd_create
633
634; ARMLinux actually has two ranges of syscalls.  Normal syscalls use
635; SWI numbers starting at 0x900000 (__NR_SYSCALL_BASE).  Special
636; ARM-specific syscalls use SWI numbers starting at 0x9f0000
637; (__ARM_NR_BASE).  linux_syscall() (in arch/arm/arm/linux_syscall.c)
638; remaps these down to 0x900180 so that we can use one linux_sysent
639; array for the whole lot.
640
641384	UNIMPL		/* base */
642385	STD		{ int|linux_sys||breakpoint(void); }
643386	STD		{ int|linux_sys||cacheflush(uintptr_t from, \
644				intptr_t to, int flags); }
645387	UNIMPL		usr26
646388	UNIMPL		usr32
647389	STD		{ int|linux_sys||set_tls(void *tls); }
648390	UNIMPL
649391	UNIMPL
650392	UNIMPL
651393	UNIMPL
652394	UNIMPL
653395	UNIMPL
654396	UNIMPL
655397	STD		{ int|linux_sys||statx(int fd, const char *path, \
656			    int flag, unsigned int mask, \
657			    struct linux_statx *sp); }
658398	UNIMPL
659399	UNIMPL
660400	UNIMPL
661401	UNIMPL
662402	UNIMPL
663403	UNIMPL
664404	UNIMPL
665405	UNIMPL
666406	UNIMPL
667407	UNIMPL
668408	UNIMPL
669409	UNIMPL
670410	UNIMPL
671411	UNIMPL
672412	UNIMPL
673413	UNIMPL
674414	UNIMPL
675415	UNIMPL
676416	UNIMPL
677417	UNIMPL
678418	UNIMPL
679419	UNIMPL
680420	UNIMPL
681421	UNIMPL
682422	UNIMPL
683423	UNIMPL
684424	UNIMPL
685425	UNIMPL
686426	UNIMPL
687427	UNIMPL
688428	UNIMPL
689429	UNIMPL
690430	UNIMPL
691431	UNIMPL
692432	UNIMPL
693433	UNIMPL
694434	UNIMPL
695435	UNIMPL
696436	STD		{ int|linux_sys||close_range(unsigned int first, \
697			    unsigned int last, unsigned int flags); }
698437	UNIMPL
699438	UNIMPL
700439	STD		{ int|linux_sys||faccessat2(int fd, const char *path, \
701			    int amode, int flags); }
702440	UNIMPL
703441	STD		{ int|linux_sys||epoll_pwait2(int epfd, \
704			    struct linux_epoll_event *events, int maxevents, \
705			    const struct linux_timespec *timeout, \
706			    const linux_sigset_t *sigmask); }
707