syscalls.master revision 1.85
1	$NetBSD: syscalls.master,v 1.85 2025/11/10 15:34:03 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	INDIR		{ int|linux_sys||__prctl(int code, \
299                                  ... void * args[SYS_MAXSYSARGS]); }
300173	UNIMPL		rt_sigreturn
301;173	STD		{ int|linux_sys||rt_sigreturn( \
302;			    struct linux_rt_sigframe *sfp); }
303174	STD		{ int|linux_sys||rt_sigaction(int signum, \
304			    const struct linux_sigaction *nsa, \
305			    struct linux_sigaction *osa, \
306			    size_t sigsetsize); }
307175	STD		{ int|linux_sys||rt_sigprocmask(int how, \
308			    const linux_sigset_t *set, \
309			    linux_sigset_t *oset, \
310			    size_t sigsetsize); }
311176	STD		{ int|linux_sys||rt_sigpending( \
312			    linux_sigset_t *set, \
313			    size_t sigsetsize); }
314177	STD		{ int|linux_sys||rt_sigtimedwait( \
315			    const linux_sigset_t *set, \
316			    linux_siginfo_t *info, \
317			    const struct linux_timespec *timeout); }
318178	STD		{ int|linux_sys||rt_queueinfo(int pid, int signum, \
319			    linux_siginfo_t *uinfo); }
320179	STD		{ int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
321			    size_t sigsetsize); }
322180	STD		{ int|linux_sys||pread(int fd, char *buf, \
323			    size_t nbyte, off_t offset); }
324181	STD		{ int|linux_sys||pwrite(int fd, char *buf, \
325			    size_t nbyte, off_t offset); }
326182	STD		{ int|linux_sys||chown16(const char *path, \
327			    linux_uid16_t uid, linux_gid16_t gid); }
328183	NOARGS		{ int|sys||__getcwd(char *bufp, size_t length); }
329184	UNIMPL		capget
330185	UNIMPL		capset
331186	STD		{ int|linux_sys||sigaltstack( \
332			    const struct linux_sigaltstack *ss, \
333			    struct linux_sigaltstack *oss); }
334187	UNIMPL		sendfile
335188	UNIMPL		getpmsg
336189	UNIMPL		putpmsg
337190	NOARGS		vfork { int|sys|14|vfork(void); }
338191	STD		{ int|linux_sys||ugetrlimit(int which, \
339			    struct rlimit *rlp); }
340#define linux_sys_mmap2_args linux_sys_mmap_args
341192	NOARGS		{ linux_off_t|linux_sys||mmap2(unsigned long addr, \
342			    size_t len, int prot, int flags, int fd, \
343			    linux_off_t offset); }
344193	STD		{ int|linux_sys||truncate64(const char *path, \
345				off_t length); }
346194	STD		{ int|linux_sys||ftruncate64(unsigned int fd, \
347				off_t length); }
348195	STD		{ int|linux_sys||stat64(const char *path, \
349				struct linux_stat64 *sp); }
350196	STD		{ int|linux_sys||lstat64(const char *path, \
351				struct linux_stat64 *sp); }
352197	STD		{ int|linux_sys||fstat64(int fd, \
353				struct linux_stat64 *sp); }
354198	NOARGS		{ int|sys||__posix_lchown(const char *path, uid_t uid, \
355				gid_t gid); }
356199	NOARGS		getuid32 { uid_t|sys||getuid(void); }
357200	NOARGS		getgid32 { gid_t|sys||getgid(void); }
358201	NOARGS		geteuid32 { uid_t|sys||geteuid(void); }
359202	NOARGS		getegid32 { gid_t|sys||getegid(void); }
360203	NOARGS		setreuid32 { int|sys||setreuid(uid_t ruid, \
361				uid_t euid); }
362204	NOARGS		setregid32 { int|sys||setregid(gid_t rgid, \
363				gid_t egid); }
364205	NOARGS		getgroups32 { int|sys||getgroups(int gidsetsize, \
365				gid_t *gidset); }
366206	NOARGS		setgroups32 { int|sys||setgroups(int gidsetsize, \
367				gid_t *gidset); }
368207	NOARGS		fchown32 { int|sys||__posix_fchown(int fd, uid_t uid, \
369				gid_t gid); }
370208	STD		setresuid32 { int|linux_sys||setresuid(uid_t ruid, \
371				uid_t euid, uid_t suid); }
372209	STD		getresuid32 { int|linux_sys||getresuid(uid_t *ruid, \
373				uid_t *euid, uid_t *suid); }
374210	STD		setresgid32 { int|linux_sys||setresgid(gid_t rgid, \
375				gid_t egid, gid_t sgid); }
376211	STD		getresgid32 { int|linux_sys||getresgid(gid_t *rgid, \
377				gid_t *egid, gid_t *sgid); }
378212	NOARGS		chown32 { int|sys||__posix_chown(const char *path, \
379				uid_t uid, gid_t gid); }
380213	NOARGS		setuid32 { int|sys||setuid(uid_t uid); }
381214	NOARGS		setgid32 { int|sys||setgid(gid_t gid); }
382215	NOARGS		setfsuid32 { int|linux_sys||setfsuid(uid_t uid); }
383216	NOARGS		setfsgid32 { int|linux_sys||setfsgid(gid_t gid); }
384217	STD		{ int|linux_sys||getdents64(int fd, \
385			    struct linux_dirent64 *dent, unsigned int count); }
386218	UNIMPL		pivot_root
387219	NOARGS		{ int|sys||mincore(void *addr, size_t len, char *vec); }
388220	NOARGS		{ int|sys||madvise(void *addr, size_t len, int behav); }
389221	STD		{ int|linux_sys||fcntl64(int fd, int cmd, void *arg); }
390222	UNIMPL		/* for tux */
391223	UNIMPL		/* unused */
392224	NOARGS		{ pid_t|linux_sys||gettid(void); }
393225	STD		{ ssize_t|linux_sys||readahead(int fd, off_t offset, \
394			    size_t count); }
395226	STD		{ int|linux_sys||setxattr(char *path, char *name, \
396			    void *value, size_t size, int flags); }
397227	STD		{ int|linux_sys||lsetxattr(char *path, char *name, \
398			    void *value, size_t size, int flags); }
399228	STD		{ int|linux_sys||fsetxattr(int fd, char *name, \
400			    void *value, size_t size, int flags); }
401229	STD		{ ssize_t|linux_sys||getxattr(char *path, char *name, \
402			    void *value, size_t size); }
403230	STD		{ ssize_t|linux_sys||lgetxattr(char *path, char *name, \
404			    void *value, size_t size); }
405231	STD		{ ssize_t|linux_sys||fgetxattr(int fd, char *name, \
406			    void *value, size_t size); }
407232	STD		{ ssize_t|linux_sys||listxattr(char *path, char *list, \
408			    size_t size); }
409233	STD		{ ssize_t|linux_sys||llistxattr(char *path, char *list, \
410			    size_t size); }
411234	STD		{ ssize_t|linux_sys||flistxattr(int fd, char *list, \
412			    size_t size); }
413235	STD		{ int|linux_sys||removexattr(char *path, char *name); }
414236	STD		{ int|linux_sys||lremovexattr(char *path, char *name); }
415237	STD		{ int|linux_sys||fremovexattr(int fd, char *name); }
416238	STD		{ int|linux_sys||tkill(int tid, int sig); }
417239	UNIMPL		sendfile64
418240	STD		{ int|linux_sys||futex(int *uaddr, int op, int val, \
419			    const struct linux_timespec *timeout, int *uaddr2, \
420			    int val3); }
421241	STD		{ int|linux_sys||sched_setaffinity(pid_t pid, \
422			    unsigned int len, unsigned long *mask); }
423242	STD		{ int|linux_sys||sched_getaffinity(pid_t pid, \
424			    unsigned int len, unsigned long *mask); }
425243	UNIMPL		io_setup
426244	UNIMPL		io_destroy
427245	UNIMPL		io_getevents
428246	UNIMPL		io_submit
429247	UNIMPL		io_cancel
430248	STD		{ int|linux_sys||exit_group(int error_code); }
431249	UNIMPL		lookup_dcookie
432250	STD		{ int|linux_sys||epoll_create(int size); }
433251	STD		{ int|linux_sys||epoll_ctl(int epfd, int op, int fd, \
434			    struct linux_epoll_event *event); }
435252	STD		{ int|linux_sys||epoll_wait(int epfd, \
436			    struct linux_epoll_event *events, int maxevents, \
437			    int timeout); }
438253	UNIMPL		remap_file_pages
439254	UNIMPL		set_thread_area
440255	UNIMPL		get_thread_area
441256	STD		{ int|linux_sys||set_tid_address(int *tid); }
442257	STD		{ int|linux_sys||timer_create(clockid_t clockid, \
443			    struct linux_sigevent *evp, timer_t *timerid); }
444258	STD		{ int|linux_sys||timer_settime(timer_t timerid, \
445			    int flags, const struct linux_itimerspec *tim, \
446			    struct linux_itimerspec *otim); }
447259	STD		{ int|linux_sys||timer_gettime(timer_t timerid, \
448			    struct linux_itimerspec *tim); }
449260	NOARGS		{ int|sys||timer_getoverrun(timer_t timerid); }
450261	NOARGS		{ int|sys||timer_delete(timer_t timerid); }
451262	STD		{ int|linux_sys||clock_settime(clockid_t which, \
452			    struct linux_timespec *tp); }
453263	STD		{ int|linux_sys||clock_gettime(clockid_t which, \
454			    struct linux_timespec *tp); }
455264	STD		{ int|linux_sys||clock_getres(clockid_t which, \
456			    struct linux_timespec *tp); }
457265	STD		{ int|linux_sys||clock_nanosleep(clockid_t which, \
458			    int flags, struct linux_timespec *rqtp, \
459			    struct linux_timespec *rmtp); }
460266	STD		{ int|linux_sys||statfs64(const char *path, \
461			    size_t sz, struct linux_statfs64 *sp); }
462267	STD		{ int|linux_sys||fstatfs64(int fd, \
463			    size_t sz, struct linux_statfs64 *sp); }
464268	STD		{ int|linux_sys||tgkill(int tgid, int tid, int sig); }
465269	NOARGS		{ int|compat_50_sys||utimes(const char *path, \
466			    const struct timeval50 *tptr); }
467270	STD		{ int|linux_sys||fadvise64_64(int fd, off_t offset, \
468			    off_t len, int advice); }
469271	UNIMPL		pciconfig_iobase
470272	UNIMPL		pciconfig_read
471273	UNIMPL		pciconfig_write
472274	STD		{ linux_mqd_t|linux_sys||mq_open(const char *name, \
473			    int oflag, linux_umode_t mode, \
474			    struct linux_mq_attr *attr); }
475275	STD		{ int|linux_sys||mq_unlink(const char *name); }
476276	STD		{ int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \
477			    const char *msg_ptr, size_t msg_len, \
478			    unsigned int msg_prio, \
479			    const struct linux_timespec *abs_timeout); }
480277	STD		{ ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \
481			    char *msg_ptr, size_t msg_len, \
482			    unsigned int *msg_prio, \
483			    const struct linux_timespec *abs_timeout); }
484278	STD		{ int|linux_sys||mq_notify(linux_mqd_t mqdes, \
485			    const struct linux_sigevent *sevp); }
486279	STD		{ int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \
487			    const struct linux_mq_attr *newattr, \
488			    struct linux_mq_attr *oldattr); }
489280	STD		{ int|linux_sys||waitid(int idtype, id_t id, \
490			    linux_siginfo_t *infop, int options, \
491			    struct rusage50 *rusage); }
492281	UNIMPL		socket
493282	UNIMPL		bind
494283	UNIMPL		connect
495284	UNIMPL		listen
496285	UNIMPL		accept
497286	UNIMPL		getsockname
498287	UNIMPL		getpeername
499288	UNIMPL		socketpair
500289	UNIMPL		send
501290	UNIMPL		sendto
502291	UNIMPL		recv
503292	UNIMPL		recvfrom
504293	UNIMPL		shutdown
505294	UNIMPL		setsockopt
506295	UNIMPL		getsockopt
507296	UNIMPL		sendmsg
508297	UNIMPL		recvmsg
509298	UNIMPL		semop
510299	UNIMPL		semget
511300	UNIMPL		semctl
512301	UNIMPL		msgsnd
513302	UNIMPL		msgrcv
514303	UNIMPL		msgget
515304	UNIMPL		msgctl
516305	UNIMPL		shmat
517306	UNIMPL		shmdt
518307	UNIMPL		shmget
519308	UNIMPL		shmctl
520309	UNIMPL		add_key
521310	UNIMPL		request_key
522311	UNIMPL		keyctl
523312	STD		{ int|linux_sys||semtimedop(int semid, \
524			    struct sembuf *sops, size_t nsops, \
525			    struct linux_timespec *timeout); }
526313	UNIMPL		vserver
527314	UNIMPL		ioptio_set
528315	UNIMPL		ioptio_get
529316	STD		{ int|linux_sys||inotify_init(void); }
530317	STD		{ int|linux_sys||inotify_add_watch(int fd, \
531			    const char *pathname, uint32_t mask); }
532318	STD		{ int|linux_sys||inotify_rm_watch(int fd, int wd); }
533319	UNIMPL		mbind
534320	UNIMPL		get_mempolicy
535321	UNIMPL		set_mempolicy
536322	STD 		{ int|linux_sys||openat(int fd, const char *path, \
537			    int flags, ... linux_umode_t mode); }
538323	NOARGS		{ int|sys||mkdirat(int fd, const char *path, \
539			    linux_umode_t mode); }
540324	STD		{ int|linux_sys||mknodat(int fd, const char *path, \
541			    linux_umode_t mode, unsigned dev); }
542325	STD		{ int|linux_sys||fchownat(int fd, const char *path, \
543			    uid_t owner, gid_t group, int flag); }
544326	UNIMPL		futimesat
545327	STD		{ int|linux_sys||fstatat64(int fd, const char *path, \
546			    struct linux_stat64 *sp, int flag); }
547328	STD		{ int|linux_sys||unlinkat(int fd, const char *path, \
548			    int flag); }
549329	NOARGS		{ int|sys||renameat(int fromfd, const char *from, \
550			    int tofd, const char *to); }
551330	STD		{ int|linux_sys||linkat(int fd1, const char *name1, \
552			    int fd2, const char *name2, int flags); }
553331	NOARGS		{ int|sys||symlinkat(const char *path1, int fd, \
554			    const char *path2); }
555332	NOARGS		{ ssize_t|sys||readlinkat(int fd, const char *path, \
556			    char *buf, size_t bufsize); }
557333	STD		{ int|linux_sys||fchmodat(int fd, const char *path, \
558			    linux_umode_t mode); }
559334	STD		{ int|linux_sys||faccessat(int fd, const char *path, \
560			    int amode); }
561335	STD		{ int|linux_sys||pselect6(int nfds, fd_set *readfds, \
562			   fd_set *writefds, fd_set *exceptfds, \
563			   struct linux_timespec *timeout, \
564			   linux_sized_sigset_t *ss); }
565336	STD		{ int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
566			    struct linux_timespec *timeout, \
567			    linux_sigset_t *sigset); }
568337	UNIMPL		unshare
569			;
570			; The NetBSD native robust list calls have different
571			; argument names / types, but they are ABI-compatible
572			; with Linux.
573			;
574338	NOARGS		{ int|sys||__futex_set_robust_list(void *head, \
575			    size_t len); }
576339	NOARGS		{ int|sys||__futex_get_robust_list(lwpid_t lwpid, \
577			    void **headp, size_t *lenp); }
578340	UNIMPL		splice
579341	STD		{ int|linux_sys||sync_file_range(int fd, \
580			    off_t offset, off_t nbytes, unsigned int flags); }
581342	UNIMPL		tee
582343	UNIMPL		vmsplice
583344	UNIMPL		move_pages
584345	STD		{ int|linux_sys||getcpu(unsigned int *cpu, \
585			    unsigned int *node, \
586			    struct linux_getcpu_cache *tcache); }
587346	STD		{ int|linux_sys||epoll_pwait(int epfd, \
588			    struct linux_epoll_event *events, int maxevents, \
589			    int timeout, const linux_sigset_t *sigmask); }
590347	UNIMPL		kexec_load
591348	STD		{ int|linux_sys||utimensat(int fd, const char *path, \
592			    struct linux_timespec *times, int flag); }
593349	UNIMPL		signalfd
594350	STD		{ int|linux_sys||timerfd_create(clockid_t clock_id, \
595			    int flags); }
596351	STD		{ int|linux_sys||eventfd(unsigned int initval); }
597352	STD		{ int|linux_sys||fallocate(int fd, int mode, \
598			    off_t offset, off_t len); }
599353	STD		{ int|linux_sys||timerfd_settime(int fd, int flags, \
600			    const struct linux_itimerspec *tim, \
601			    struct linux_itimerspec *otim); }
602354	STD		{ int|linux_sys||timerfd_gettime(int fd, \
603			    struct linux_itimerspec *tim); }
604355	UNIMPL		signalfd4
605356	STD		{ int|linux_sys||eventfd2(unsigned int initval, \
606			    int flags); }
607357	STD		{ int|linux_sys||epoll_create1(int flags); }
608358	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
609359	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
610360	STD		{ int|linux_sys||inotify_init1(int flags); }
611361	STD		{ int|linux_sys||preadv(int fd, \
612			    const struct iovec *iovp, int iovcnt, \
613			    unsigned long off_lo, unsigned long off_hi); }
614362	STD		{ int|linux_sys||pwritev(int fd, \
615			    const struct iovcnt *iovp, int iovcnt, \
616			    unsigned long off_lo, unsigned long off_hi); }
617363	UNIMPL		rt_tgsigqueueinfo
618364	UNIMPL		perf_counter_open
619365	STD		{ int|linux_sys||recvmmsg(int s, \
620			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
621			    unsigned int flags, struct timespec *timeout); }
622366	STD		{ int|linux_sys||accept4(int s, \
623			    struct osockaddr *name, \
624			    int *anamelen, int flags); }
625367	UNIMPL		fanotify_init
626368	UNIMPL		fanotify_mark
627369	STD		{ int|linux_sys||prlimit64(pid_t pid, int which, \
628			    struct rlimit *new_rlp, struct rlimit *old_rlp); }
629370	UNIMPL		name_to_handle_at
630371	UNIMPL		open_by_handle_at
631372	UNIMPL		clock_adjtime
632373	STD		{ int|linux_sys||syncfs(int fd); }
633374	STD		{ int|linux_sys||sendmmsg(int s, \
634			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
635			    unsigned int flags); }
636375	UNIMPL		setns
637376	UNIMPL		process_vm_readv
638377	UNIMPL		process_vm_writev
639378	UNIMPL		kcmp
640379	UNIMPL		finit_module
641380	UNIMPL		sched_setattr
642381	UNIMPL		sched_getattr
643382	STD		{ int|linux_sys||renameat2(int fromfd, \
644			    const char *from, int tofd, const char *to, \
645			    unsigned int flags); }
646383	UNIMPL		seccomp
647; XXX FIX-me?
648; 384	NOARGS		{ ssize_t|sys||getrandom(void *buf, size_t buflen, \
649			    unsigned int flags); }
650; 385	UNIMPL		memfd_create
651
652; ARMLinux actually has two ranges of syscalls.  Normal syscalls use
653; SWI numbers starting at 0x900000 (__NR_SYSCALL_BASE).  Special
654; ARM-specific syscalls use SWI numbers starting at 0x9f0000
655; (__ARM_NR_BASE).  linux_syscall() (in arch/arm/arm/linux_syscall.c)
656; remaps these down to 0x900180 so that we can use one linux_sysent
657; array for the whole lot.
658
659384	UNIMPL		/* base */
660385	STD		{ int|linux_sys||breakpoint(void); }
661386	STD		{ int|linux_sys||cacheflush(uintptr_t from, \
662				intptr_t to, int flags); }
663387	UNIMPL		usr26
664388	UNIMPL		usr32
665389	STD		{ int|linux_sys||set_tls(void *tls); }
666390	UNIMPL
667391	STD		{ ssize_t|linux_sys||copy_file_range(int fd_in, \
668			off_t * off_in, int fd_out, off_t * off_out, \
669			size_t len, unsigned int flags); }
670392	UNIMPL
671393	UNIMPL
672394	UNIMPL
673395	UNIMPL
674396	UNIMPL
675397	STD		{ int|linux_sys||statx(int fd, const char *path, \
676			    int flag, unsigned int mask, \
677			    struct linux_statx *sp); }
678398	UNIMPL
679399	UNIMPL
680400	UNIMPL
681401	UNIMPL
682402	UNIMPL
683403	UNIMPL
684404	UNIMPL
685405	UNIMPL
686406	UNIMPL
687407	UNIMPL
688408	UNIMPL
689409	UNIMPL
690410	UNIMPL
691411	UNIMPL
692412	UNIMPL
693413	UNIMPL
694414	UNIMPL
695415	UNIMPL
696416	UNIMPL
697417	UNIMPL
698418	UNIMPL
699419	UNIMPL
700420	UNIMPL
701421	UNIMPL
702422	UNIMPL
703423	UNIMPL
704424	UNIMPL
705425	UNIMPL
706426	UNIMPL
707427	UNIMPL
708428	UNIMPL
709429	UNIMPL
710430	UNIMPL
711431	UNIMPL
712432	UNIMPL
713433	UNIMPL
714434	UNIMPL
715435	STD		{ int|linux_sys||clone3( \
716			    struct linux_user_clone3_args *cl_args, \
717			    size_t size); }
718436	STD		{ int|linux_sys||close_range(unsigned int first, \
719			    unsigned int last, unsigned int flags); }
720437	UNIMPL
721438	UNIMPL
722439	STD		{ int|linux_sys||faccessat2(int fd, const char *path, \
723			    int amode, int flags); }
724440	UNIMPL
725441	STD		{ int|linux_sys||epoll_pwait2(int epfd, \
726			    struct linux_epoll_event *events, int maxevents, \
727			    const struct linux_timespec *timeout, \
728			    const linux_sigset_t *sigmask); }
729