syscalls.master revision 1.2
1	$NetBSD: syscalls.master,v 1.2 2021/11/27 21:15:07 ryo Exp $
2
3; NetBSD aarch64 COMPAT_LINUX32 system call name/number "master" file.
4;
5; The system call numbers are defined by $LINUXSRC/arch/arm/tools/syscall.tbl,
6; but linux/arm has multiple syscall tables, these are laid out
7; consecutively in this table.
8; See the comments at the bottom of this file for details.
9;
10; (See syscalls.conf to see what it is processed into.)
11;
12; Fields: number type [type-dependent ...]
13;	number	system call number, must be in order
14;	type	one of STD, OBSOL, UNIMPL, IGNORED, NODEF, NOARGS, or one of
15;		the compatibility options defined in syscalls.conf.
16;
17; Optional fields are specified after the type field
18; (NOTE! they *must* be specified in this order):
19;	MODULAR modname :attempt to autoload system call module if not present
20;	RUMP:	generate rump syscall entry point
21;
22; types:
23;	STD	always included
24;	OBSOL	obsolete, not included in system
25;	IGNORED	syscall is a null op, but always succeeds
26;	UNIMPL	unimplemented, not included in system
27;	EXCL	implemented, but not included in system
28;	NODEF	included, but don't define the syscall number
29;	NOARGS	included, but don't define the syscall args structure
30;	INDIR	included, but don't define the syscall args structure,
31;		and allow it to be "really" varargs.
32;	NOERR	included, syscall does not set errno
33;	EXTERN	implemented, but as 3rd party module
34;
35; arguments:
36;	PAD	argument not part of the C interface, used only for padding
37;
38; The compat options are defined in the syscalls.conf file, and the
39; compat option name is prefixed to the syscall name.  Other than
40; that, they're like NODEF (for 'compat' options), or STD (for
41; 'libcompat' options).
42;
43; The type-dependent arguments are as follows:
44; For STD, NODEF, NOARGS, and compat syscalls:
45;	{ return_type|prefix|compat(optional)|basename(pseudo-proto); } [alias]
46; For other syscalls:
47;	[comment]
48;
49; #ifdef's, etc. may be included, and are copied to the output files.
50; #include's are copied to the syscall names and switch definition files only.
51
52#include <sys/param.h>
53#include <sys/syscallargs.h>
54
55#include <machine/netbsd32_machdep.h>
56
57#include <compat/netbsd32/netbsd32.h>
58#include <compat/netbsd32/netbsd32_syscallargs.h>
59
60#include <compat/linux/common/linux_types.h>
61#include <compat/linux/common/linux_mmap.h>
62#include <compat/linux/common/linux_signal.h>
63#include <compat/linux/common/linux_siginfo.h>
64#include <compat/linux/common/linux_machdep.h>
65#include <compat/linux/common/linux_ipc.h>
66#include <compat/linux/common/linux_sem.h>
67#include <compat/linux/linux_syscallargs.h>
68
69#include <compat/linux32/common/linux32_types.h>
70#include <compat/linux32/common/linux32_signal.h>
71#include <compat/linux32/common/linux32_socketcall.h>
72#include <compat/linux32/arch/aarch64/linux32_missing.h>
73#include <compat/linux32/linux32_syscallargs.h>
74
75%%
76
770	NOARGS	{ int|linux_sys||nosys(void); } syscall
781	STD	{ int|linux32_sys||exit(int rval); }
792	NOARGS	{ int|sys||fork(void); }
803	NOARGS	{ netbsd32_ssize_t|netbsd32||read(int fd, \
81		    netbsd32_voidp buf, netbsd32_size_t nbyte); }
824	NOARGS	{ netbsd32_ssize_t|netbsd32||write(int fd, \
83		    netbsd32_voidp buf, netbsd32_size_t nbyte); }
845	STD	{ int|linux32_sys||open(netbsd32_charp path, int flags, \
85		    linux_umode_t mode); }
866	NOARGS	{ int|netbsd32||close(int fd); }
877	STD	{ int|linux32_sys||waitpid(int pid, netbsd32_intp status, \
88		    int options);}
898	STD	{ int|linux32_sys||creat(netbsd32_charp path, \
90	    linux_umode_t mode); }
919	NOARGS	{ int|netbsd32||link(netbsd32_charp path, \
92		    netbsd32_charp link); }
9310	STD	{ int|linux32_sys||unlink(netbsd32_charp path); }
9411	NOARGS	{ int|netbsd32||execve(netbsd32_charp path, \
95		    netbsd32_charpp argp, netbsd32_charpp envp); }
9612	NOARGS	{ int|netbsd32||chdir(netbsd32_charp path); }
9713	STD	{ int|linux32_sys||time(linux32_timep_t t); }
9814	STD	{ int|linux32_sys||mknod(netbsd32_charp path, \
99		    linux_umode_t mode, unsigned dev); }
10015	NOARGS	{ int|netbsd32||chmod(netbsd32_charp path, \
101	    linux_umode_t mode); }
10216	STD	{ int|linux32_sys||lchown16(netbsd32_charp path, \
103		    linux32_uid16_t uid, linux32_gid16_t gid); }
10417	OBSOL	break
10518	OBSOL	ostat
10619	NOARGS	{ netbsd32_long|compat_43_netbsd32||olseek(int fd, \
107		    netbsd32_long offset, int whence); }
10820	NOARGS 	{ pid_t|sys||getpid(void); }
10921	UNIMPL	mount
11022	UNIMPL	umount
11123	NOARGS	linux_setuid16 { int|netbsd32||setuid(uid_t uid); }
11224	NOARGS	linux_getuid16 { uid_t|sys||getuid(void); }
11325	STD	{ int|linux32_sys||stime(linux32_timep_t t); }
11426	STD	{ int|linux32_sys||ptrace(int request, int pid, \
115		  int addr, int data); }
11627	STD	{ int|linux32_sys||alarm(unsigned int secs); }
11728	OBSOL	ofstat
11829	NOARGS	{ int|linux_sys||pause(void); }
11930	STD	{ int|linux32_sys||utime(netbsd32_charp path, \
120		    linux32_utimbufp_t times); }
12131	OBSOL	stty
12232	OBSOL	gtty
12333	NOARGS	{ int|netbsd32||access(netbsd32_charp path, \
124		    int flags); }
12534	STD	{ int|linux32_sys||nice(int incr); }
12635	OBSOL	ftime
12736	NOARGS	{ int|sys||sync(void); }
12837	STD	{ int|linux32_sys||kill(int pid, int signum); }
12938	NOARGS	{ int|netbsd32||__posix_rename(netbsd32_charp from, \
130		    netbsd32_charp to); }
13139	NOARGS	{ int|netbsd32||mkdir(netbsd32_charp path, \
132	    linux_umode_t mode); }
13340	NOARGS	{ int|netbsd32||rmdir(netbsd32_charp path); }
13441	NOARGS	{ int|netbsd32||dup(int fd); }
13542	STD	{ int|linux32_sys||pipe(netbsd32_intp fd); }
13643	STD	{ int|linux32_sys||times(linux32_tmsp_t tms); }
13744	OBSOL	prof
13845	STD	{ int|linux32_sys||brk(netbsd32_charp nsize); }
13946	NOARGS	linux_setgid16 { int|netbsd32||setgid(gid_t gid); }
14047	NOARGS	linux_getgid16 { gid_t|sys||getgid(void); }
14148	STD	{ int|linux32_sys||signal(int signum, \
142		    linux32_handlerp_t handler); }
14349	NOARGS	linux_geteuid16 { uid_t|sys||geteuid(void); }
14450	NOARGS	linux_getegid16 { gid_t|sys||getegid(void); }
14551	NOARGS	{ int|netbsd32||acct(netbsd32_charp path); }
14652	OBSOL	phys
14753	OBSOL	lock
14854	STD	{ int|linux32_sys||ioctl(int fd, netbsd32_u_long com, \
149		    netbsd32_charp data); }
15055	STD	{ int|linux32_sys||fcntl(int fd, \
151		    int cmd, netbsd32_voidp arg); }
15256	OBSOL	mpx
15357	NOARGS	{ int|netbsd32||setpgid(int pid, int pgid); }
15458	OBSOL	ulimit
15559	STD	{ int|linux32_sys||oldolduname( \
156		    linux32_oldold_utsnamep_t up); }
15760	NOARGS	{ int|netbsd32||umask(int newmask); }
15861	NOARGS	{ int|netbsd32||chroot(netbsd32_charp path); }
15962	UNIMPL	ustat
16063	NOARGS	{ int|netbsd32||dup2(int from, int to); }
16164	NOARGS	{ pid_t|sys||getppid(void); }
16265	NOARGS	{ int|sys||getpgrp(void); }
16366	NOARGS	{ int|sys||setsid(void); }
16467	UNIMPL	sigaction
16568	STD	{ int|linux32_sys||siggetmask(void); }
16669	STD	{ int|linux32_sys||sigsetmask(linux32_old_sigset_t mask); }
16770	STD	{ int|linux32_sys||setreuid16(linux32_uid16_t ruid, \
168		    linux32_uid16_t euid); }
16971	STD	{ int|linux32_sys||setregid16(linux32_gid16_t rgid, \
170		    linux32_gid16_t egid); }
17172	UNIMPL	sigsuspend
17273	UNIMPL	sigpending
17374	NOARGS	{ int|compat_43_netbsd32||osethostname( \
174		    netbsd32_charp hostname, u_int len); }
17575	STD	{ int|linux32_sys||setrlimit(u_int which, \
176		    netbsd32_orlimitp_t rlp); }
17776	STD	{ int|linux32_sys||getrlimit(u_int which, \
178		    netbsd32_orlimitp_t rlp); }
17977	NOARGS	{ int|compat_50_netbsd32||getrusage(int who, \
180		    netbsd32_rusage50p_t rusage); }
18178	STD	{ int|linux32_sys||gettimeofday(netbsd32_timeval50p_t tp, \
182		    netbsd32_timezonep_t tzp); }
18379	STD	{ int|linux32_sys||settimeofday(netbsd32_timeval50p_t tp, \
184		    netbsd32_timezonep_t tzp); }
18580	STD	{ int|linux32_sys||getgroups16(int gidsetsize, \
186		    linux32_gid16p_t gidset); }
18781	STD	{ int|linux32_sys||setgroups16(int gidsetsize, \
188		    linux32_gid16p_t gidset); }
18982	STD	{ int|linux32_sys||oldselect(linux32_oldselectp_t lsp); }
19083	NOARGS	{ int|netbsd32||symlink(netbsd32_charp path, \
191		    netbsd32_charp link); }
19284	NOARGS	{ int|compat_43_netbsd32||lstat43(netbsd32_charp \
193		    path, netbsd32_stat43p_t ub); }
19485	NOARGS	{ int|netbsd32||readlink(netbsd32_charp path, \
195		    netbsd32_charp buf, netbsd32_size_t count); }
19686	UNIMPL	uselib
19787	STD	{ int|linux32_sys||swapon(netbsd32_charp name); }
19888	STD	{ int|linux32_sys||reboot(int magic1, int magic2, int cmd, \
199		    netbsd32_voidp arg); }
20089	STD	{ int|linux32_sys||readdir(int fd, netbsd32_voidp dent, \
201		    unsigned int count); }
20290	STD	{ int|linux32_sys||old_mmap(linux32_oldmmapp lmp); }
20391	NOARGS	{ int|netbsd32||munmap(netbsd32_voidp addr, \
204		    netbsd32_size_t len); }
20592	NOARGS	{ int|compat_43_netbsd32||otruncate(netbsd32_charp path, \
206		    netbsd32_long length); }
20793	NOARGS	{ int|compat_43_netbsd32||oftruncate(int fd, \
208		    netbsd32_long length); }
20994	NOARGS	{ int|netbsd32||fchmod(int fd, linux_umode_t mode); }
21095	STD	{ int|linux32_sys||fchown16(int fd, linux32_uid16_t uid, \
211		    linux32_gid16_t gid); }
21296	STD	{ int|linux32_sys||getpriority(int which, int who); }
21397	NOARGS	{ int|netbsd32||setpriority(int which, int who, int prio); }
21498	NOARGS	{ int|netbsd32||profil(netbsd32_voidp samples, \
215		    netbsd32_size_t size, netbsd32_u_long offset, \
216		    u_int scale); }
21799	STD	{ int|linux32_sys||statfs(netbsd32_charp path, \
218		    linux32_statfsp sp); }
219100	STD	{ int|linux32_sys||fstatfs(int fd, linux32_statfsp sp); }
220101	UNIMPL	ioperm
221102	STD	{ int|linux32_sys||socketcall(int what, netbsd32_voidp args); }
222103	UNIMPL	syslog
223104	NOARGS	{ int|compat_50_netbsd32||setitimer(int which, \
224		    netbsd32_itimerval50p_t itv, \
225		    netbsd32_itimerval50p_t oitv); }
226105	NOARGS	{ int|compat_50_netbsd32||getitimer(int which, \
227		    netbsd32_itimerval50p_t itv); }
228106	STD	{ int|linux32_sys||stat(netbsd32_charp path, \
229		    linux32_statp sp); }
230107	STD	{ int|linux32_sys||lstat(netbsd32_charp path, \
231		    linux32_statp sp); }
232108	STD	{ int|linux32_sys||fstat(int fd, \
233		    linux32_statp sp); }
234109	STD	{ int|linux32_sys||olduname(linux32_oldutsnamep_t up); }
235110	UNIMPL	iopl
236111	UNIMPL	vhangup
237112	UNIMPL	idle
238113	UNIMPL	syscall
239114	STD	{ int|linux32_sys||wait4(int pid, netbsd32_intp status, \
240		    int options, netbsd32_rusage50p_t rusage); }
241115	STD	{ int|linux32_sys||swapoff(netbsd32_charp path); }
242116	STD	{ int|linux32_sys||sysinfo(linux32_sysinfop_t arg); }
243117	STD	{ int|linux32_sys||ipc(int what, int a1, int a2, int a3, \
244		    netbsd32_voidp ptr); }
245118	NOARGS	{ int|netbsd32||fsync(int fd); }
246119	STD	{ int|linux32_sys||sigreturn(linux32_sigcontextp_t scp); }
247120	STD	{ int|linux32_sys||clone(int flags, netbsd32_voidp stack, \
248		    netbsd32_voidp parent_tidptr, netbsd32_voidp tls, \
249		    netbsd32_voidp child_tidptr); }
250121	STD	{ int|linux32_sys||setdomainname(netbsd32_charp domainname, \
251		    int len); }
252122	STD	{ int|linux32_sys||uname(linux32_utsnamep up); }
253123	UNIMPL	modify_ldt
254124	UNIMPL	adjtimex
255125	STD	{ int|linux32_sys||mprotect(netbsd32_voidp start, \
256		    netbsd32_size_t len, int prot); } 
257126	UNIMPL	sigprocmask
258127	UNIMPL	create_module
259128	UNIMPL	init_module
260129	UNIMPL	delete_module
261130	UNIMPL	get_kernel_syms
262131	UNIMPL	quotactl
263132	NOARGS	{ int|netbsd32||getpgid(pid_t pid); }
264133	NOARGS	{ int|netbsd32||fchdir(int fd); }
265134	UNIMPL	bdflush
266135	UNIMPL	sysfs
267136	STD	{ int|linux32_sys||personality(netbsd32_u_long per); }
268137	UNIMPL	afs_syscall
269138	NOARGS	setfsuid16 { int|linux32_sys||setfsuid(uid_t uid); }
270139	NOARGS	setfsgid16 { int|linux32_sys||setfsgid(gid_t gid); }
271140	STD	{ int|linux32_sys||llseek(int fd, u_int32_t ohigh, \
272		    u_int32_t olow, netbsd32_voidp res, int whence); }
273141	STD	{ int|linux32_sys||getdents(int fd, \
274		    linux32_direntp_t dent, unsigned int count); }
275142	STD	{ int|linux32_sys||select(int nfds, \
276		    netbsd32_fd_setp_t readfds, \
277		    netbsd32_fd_setp_t writefds, \
278		    netbsd32_fd_setp_t exceptfds, \
279		    netbsd32_timeval50p_t timeout); }
280143	NOARGS	{ int|netbsd32||flock(int fd, int how); } 
281144	NOARGS	{ int|netbsd32|13|msync(netbsd32_voidp addr, \
282		    netbsd32_size_t len, int flags); }
283145	NOARGS	{ int|netbsd32||readv(int fd, \
284		    netbsd32_iovecp_t iovp, int iovcnt); }
285146	NOARGS	{ netbsd32_ssize_t|netbsd32||writev(int fd, \
286		    netbsd32_iovecp_t iovp, int iovcnt); }
287147	NOARGS	{ pid_t|netbsd32||getsid(pid_t pid); }
288148	STD	{ int|linux32_sys||fdatasync(int fd); }
289149	STD	{ int|linux32_sys||__sysctl(linux32___sysctlp_t lsp); }
290150	NOARGS	{ int|netbsd32||mlock(netbsd32_voidp addr, \
291		    netbsd32_size_t len); }
292151	NOARGS	{ int|netbsd32||munlock(netbsd32_voidp addr, \
293		    netbsd32_size_t len); }
294152	NOARGS	{ int|netbsd32||mlockall(int flags); }
295153	NOARGS	{ int|sys||munlockall(void); }
296154	STD	{ int|linux32_sys||sched_setparam(pid_t pid, \
297		    const linux32_sched_paramp_t sp); }
298155	STD	{ int|linux32_sys||sched_getparam(pid_t pid, \
299		    linux32_sched_paramp_t sp); }
300156	STD	{ int|linux32_sys||sched_setscheduler(pid_t pid, \
301		    int policy, linux32_sched_paramp_t sp); }
302157	STD	{ int|linux32_sys||sched_getscheduler(pid_t pid); }
303158	NOARGS	{ int|linux_sys||sched_yield(void); }
304159	STD	{ int|linux32_sys||sched_get_priority_max(int policy); }
305160	STD	{ int|linux32_sys||sched_get_priority_min(int policy); }
306161	UNIMPL	sched_rr_get_interval
307162	STD	{ int|linux32_sys||nanosleep(linux32_timespecp_t rqtp, \
308		    linux32_timespecp_t rmtp); }
309163	STD	{ int|linux32_sys||mremap(netbsd32_voidp old_address, \
310		    netbsd32_size_t old_size, netbsd32_size_t new_size, \
311		    netbsd32_u_long flags); }
312164	STD	{ int|linux32_sys||setresuid16(linux32_uid16_t ruid, \
313		    linux32_uid16_t euid, linux32_uid16_t suid); }
314165	STD	{ int|linux32_sys||getresuid16(linux32_uid16p_t ruid, \
315		    linux32_uid16p_t euid, linux32_uid16p_t suid); }
316166	UNIMPL	vm86
317167	UNIMPL	query_module
318168	NOARGS	{ int|netbsd32||poll(netbsd32_pollfdp_t fds, u_int nfds, \
319		    int timeout); }
320169	UNIMPL	nfsservctl
321170	STD	{ int|linux32_sys||setresgid16(linux32_gid16_t rgid, \
322		    linux32_gid16_t egid, linux32_gid16_t sgid); }
323171	STD	{ int|linux32_sys||getresgid16(linux32_gid16p_t rgid, \
324		    linux32_gid16p_t egid, linux32_gid16p_t sgid); }
325172	UNIMPL	prctl
326173	STD	{ int|linux32_sys||rt_sigreturn(linux32_ucontextp_t ucp); }
327174	STD	{ int|linux32_sys||rt_sigaction(int signum, \
328		    linux32_sigactionp_t nsa, \
329		    linux32_sigactionp_t osa, \
330		    netbsd32_size_t sigsetsize); }
331175	STD	{ int|linux32_sys||rt_sigprocmask(int how, \
332		     linux32_sigsetp_t set, \
333		     linux32_sigsetp_t oset, \
334		     netbsd32_size_t sigsetsize); }
335176	STD	{ int|linux32_sys||rt_sigpending(linux32_sigsetp_t set, \
336		    netbsd32_size_t sigsetsize); }
337177	STD	{ int|linux32_sys||rt_sigtimedwait( \
338		    const linux32_sigsetp_t set, \
339		    linux32_siginfop_t info, \
340		    const linux32_timespecp_t timeout); }
341178	STD	{ int|linux32_sys||rt_queueinfo(int pid, int sig, \
342		    linux32_siginfop_t uinfo); }
343179	STD	{ int|linux32_sys||rt_sigsuspend(linux32_sigsetp_t unewset, \
344		    netbsd32_size_t sigsetsize); }
345180	STD	{ netbsd32_ssize_t|linux32_sys||pread(int fd, \
346		    netbsd32_voidp buf, netbsd32_size_t nbyte, \
347		    netbsd32_off_t offset); }
348181	STD	{ netbsd32_ssize_t|linux32_sys||pwrite(int fd, \
349		    netbsd32_voidp buf, netbsd32_size_t nbyte, \
350		    netbsd32_off_t offset); }
351182	STD	{ int|linux32_sys||chown16(netbsd32_charp path, \
352		    linux32_uid16_t uid, linux32_gid16_t gid); }
353183	NOARGS	{ int|netbsd32||__getcwd(netbsd32_charp bufp, \
354		    netbsd32_size_t length); } 
355184	UNIMPL	capget
356185	UNIMPL	capset
357186	UNIMPL	sigaltstack
358187	UNIMPL	sendfile
359188	UNIMPL	getpmsg
360189	UNIMPL	putpmsg
361190	NOARGS	{ int|sys|14|vfork(void); }
362191	STD	{ int|linux32_sys||ugetrlimit(int which, \
363		    netbsd32_orlimitp_t rlp); }
364192	STD	{ linux32_off_t|linux32_sys||mmap2(netbsd32_u_long addr, \
365		    netbsd32_size_t len, int prot, int flags, int fd, \
366		    linux32_off_t offset); }
367193	STD	{ int|linux32_sys||truncate64(netbsd32_charp path, \
368		    uint32_t lenlo, uint32_t lenhi); }
369194	STD	{ int|linux32_sys||ftruncate64(unsigned int fd, \
370		    uint32_t lenlo, uint32_t lenhi); }
371195	STD	{ int|linux32_sys||stat64(netbsd32_charp path, \
372		    linux32_stat64p sp); }
373196	STD	{ int|linux32_sys||lstat64(netbsd32_charp path, \
374		    linux32_stat64p sp); }
375197	STD	{ int|linux32_sys||fstat64(int fd, \
376		    linux32_stat64p sp); }
377198	NOARGS	{ int|netbsd32||__posix_lchown(netbsd32_charp path, \
378		    uid_t uid, gid_t gid); }
379199	NOARGS	{ uid_t|sys||getuid(void); }
380200	NOARGS	{ gid_t|sys||getgid(void); }
381201	NOARGS	{ uid_t|sys||geteuid(void); }
382202	NOARGS	{ gid_t|sys||getegid(void); }
383203	NOARGS	{ int|netbsd32||setreuid(uid_t ruid, uid_t euid); }
384204	NOARGS	{ int|netbsd32||setregid(gid_t rgid, gid_t egid); }
385205	NOARGS	{ int|netbsd32||getgroups(int gidsetsize, \
386		    netbsd32_gid_tp gidset); }
387206	NOARGS	{ int|netbsd32||setgroups(int gidsetsize, \
388		    netbsd32_gid_tp gidset); }
389207	NOARGS	{ int|netbsd32||__posix_fchown(int fd, uid_t uid, gid_t gid); }
390208	STD	{ int|linux32_sys||setresuid(uid_t ruid, uid_t euid, \
391		    uid_t suid); }
392209	STD	{ int|linux32_sys||getresuid(linux32_uidp_t ruid, \
393		    linux32_uidp_t euid, linux32_uidp_t suid); }
394210	STD	{ int|linux32_sys||setresgid(gid_t rgid, gid_t egid, \
395		    gid_t sgid); }
396211	STD	{ int|linux32_sys||getresgid(linux32_gidp_t rgid, \
397		    linux32_gidp_t egid, linux32_gidp_t sgid); }
398212	NOARGS	{ int|netbsd32||__posix_chown(netbsd32_charp path, \
399		    uid_t uid, gid_t gid); }
400213 	NOARGS	{ int|netbsd32||setuid(uid_t uid); }
401214	NOARGS	{ int|netbsd32||setgid(gid_t gid); }
402215	STD	{ int|linux32_sys||setfsuid(uid_t uid); }
403216	STD	{ int|linux32_sys||setfsgid(gid_t gid); }
404217	STD	{ int|linux32_sys||getdents64(int fd, \
405		    linux32_dirent64p_t dent, unsigned int count); }
406218	UNIMPL	pivot_root
407219	NOARGS	{ int|netbsd32||mincore(netbsd32_voidp addr, \
408		    netbsd32_size_t len, netbsd32_charp vec); }
409220	NOARGS	{ int|netbsd32||madvise(netbsd32_voidp addr, \
410		    netbsd32_size_t len, int behav); }
411; fcntl64() - Exactly the same as fcntl()
412#define linux32_sys_fcntl64 linux32_sys_fcntl
413#define linux32_sys_fcntl64_args linux32_sys_fcntl_args
414221	NOARGS	{ int|linux32_sys||fcntl64(int fd, \
415		    int cmd, netbsd32_voidp arg); }
416222	UNIMPL	/* unused */
417223	UNIMPL	/* unused */
418224	NOARGS	{ pid_t|linux_sys||gettid(void); }
419225	UNIMPL	readahead
420226	NOARGS	{ int|netbsd32||setxattr(netbsd32_charp path, \
421		    netbsd32_charp name, netbsd32_voidp value, \
422		    netbsd32_size_t size, int flags); }
423227	NOARGS	{ int|netbsd32||lsetxattr(netbsd32_charp path, \
424		    netbsd32_charp name,  netbsd32_voidp value, \
425		    netbsd32_size_t size, int flags); }
426228	NOARGS	{ int|netbsd32||fsetxattr(int fd, netbsd32_charp name, \
427		    netbsd32_voidp value, netbsd32_size_t size, int flags); }
428229	NOARGS	{ ssize_t|netbsd32||getxattr(netbsd32_charp path, \
429		    netbsd32_charp name, netbsd32_voidp value, \
430		    netbsd32_size_t size); }
431230	NOARGS	{ ssize_t|netbsd32||lgetxattr(netbsd32_charp path, \
432		    netbsd32_charp name, netbsd32_voidp value, \
433		    netbsd32_size_t size); }
434231	NOARGS	{ ssize_t|netbsd32||fgetxattr(int fd, netbsd32_charp name, \
435		    netbsd32_voidp value, netbsd32_size_t size); }
436232	NOARGS	{ ssize_t|netbsd32||listxattr(netbsd32_charp path, \
437		    netbsd32_charp list, netbsd32_size_t size); }
438233	NOARGS	{ ssize_t|netbsd32||llistxattr(netbsd32_charp path, \
439		    netbsd32_charp list, netbsd32_size_t size); }
440234	NOARGS	{ ssize_t|netbsd32||flistxattr(int fd, netbsd32_charp list, \
441		    netbsd32_size_t size); }
442235	NOARGS	{ int|netbsd32||removexattr(netbsd32_charp path, \
443		    netbsd32_charp name); }
444236	NOARGS	{ int|netbsd32||lremovexattr(netbsd32_charp path, \
445		    netbsd32_charp name); }
446237	NOARGS	{ int|netbsd32||fremovexattr(int fd, netbsd32_charp name); }
447238	STD	{ int|linux32_sys||tkill(int tid, int sig); }
448239	UNIMPL	sendfile64
449240	STD	{ int|linux32_sys||futex(linux32_intp_t uaddr, int op, \
450		    int val, linux32_timespecp_t timeout, \
451		    linux32_intp_t uaddr2, int val3); }
452241	STD	{ int|linux32_sys||sched_setaffinity(pid_t pid, \
453		    unsigned int len, linux32_ulongp_t mask); }
454242	STD	{ int|linux32_sys||sched_getaffinity(pid_t pid, \
455		    unsigned int len, linux32_ulongp_t mask); }
456243	UNIMPL	io_setup
457244	UNIMPL	io_destroy
458245	UNIMPL	io_getevents
459246	UNIMPL	io_submit
460247	UNIMPL	io_cancel
461248	STD	{ int|linux32_sys||exit_group(int error_code); }
462249	UNIMPL	lookup_dcookie
463250	UNIMPL	epoll_create
464251	UNIMPL	epoll_ctl
465252	UNIMPL	epoll_wait
466253	UNIMPL	remap_file_pages
467254	UNIMPL	set_thread_area
468255	UNIMPL	get_thread_area
469256	STD	{ int|linux32_sys||set_tid_address(linux32_intp_t tid); }
470257	STD	{ int|linux32_sys||timer_create(clockid_t clockid, \
471		    struct linux32_sigevent *evp, timer_t *timerid); }
472258	STD	{ int|linux32_sys||timer_settime(timer_t timerid, \
473		    int flags, const struct linux32_itimerspec *tim, \
474		    struct linux32_itimerspec *otim); }
475259	STD	{ int|linux32_sys||timer_gettime(timer_t timerid, \
476		    struct linux32_itimerspec *tim); }
477260	NOARGS	{ int|sys||timer_getoverrun(timer_t timerid); }
478261	NOARGS	{ int|sys||timer_delete(timer_t timerid); }
479262	STD	{ int|linux32_sys||clock_settime(clockid_t which, \
480		    linux32_timespecp_t tp); }
481263	STD	{ int|linux32_sys||clock_gettime(clockid_t which, \
482		    linux32_timespecp_t tp); }
483264	STD	{ int|linux32_sys||clock_getres(clockid_t which, \
484		    linux32_timespecp_t tp); }
485265	STD	{ int|linux32_sys||clock_nanosleep(clockid_t which, int flags, \
486		    linux32_timespecp_t rqtp, linux32_timespecp_t rmtp); }
487266	STD	{ int|linux32_sys||statfs64(netbsd32_charp path, \
488		    netbsd32_size_t sz, linux32_statfs64p sp); }
489267	STD	{ int|linux32_sys||fstatfs64(int fd, \
490		    netbsd32_size_t sz, linux32_statfs64p sp); }
491268	STD	{ int|linux32_sys||tgkill(int tgid, int tid, int sig); }
492269	NOARGS	{ int|compat_50_netbsd32||utimes(netbsd32_charp path, \
493		    netbsd32_timeval50p_t tptr); }
494270	STD	{ int|linux32_sys||fadvise64_64(int fd, uint32_t offlo, \
495		    uint32_t offhi, uint32_t lenlo, uint32_t lenhi, \
496		    int advice); }
497271	UNIMPL	pciconfig_iobase
498272	UNIMPL	pciconfig_read
499273	UNIMPL	pciconfig_write
500274	UNIMPL	mq_open
501275	UNIMPL	mq_unlink
502276	UNIMPL	mq_timedsend
503277	UNIMPL	mq_timedreceive
504278	UNIMPL	mq_notify
505279	UNIMPL	mq_getsetattr
506280	UNIMPL	waitid
507281	NOARGS	{ int|linux32_sys||socket(int domain, int type, \
508		    int protocol); }
509282	NOARGS	{ int|linux32_sys||bind(int s, netbsd32_osockaddrp_t name, \
510		    int namelen); }
511283	NOARGS	{ int|linux32_sys||connect(int s, netbsd32_osockaddrp_t name, \
512		    int namelen); }
513284	UNIMPL	listen
514285	NOARGS	{ int|linux32_sys||accept(int s, netbsd32_osockaddrp_t name, \
515		    netbsd32_intp anamelen); }
516286	NOARGS	{ int|linux32_sys||getsockname(int fdec, netbsd32_charp asa, \
517		    netbsd32_intp alen); }
518287	NOARGS	{ int|linux32_sys||getpeername(int fdes, \
519		    netbsd32_sockaddrp_t asa, netbsd32_intp alen); }
520288	NOARGS	{ int|linux32_sys||socketpair(int domain, int type, \
521		    int protocol, netbsd32_intp rsv); }
522289	NOARGS	{ int|linux32_sys||send(int s, netbsd32_voidp buf, int len, \
523		    int flags); }
524290	NOARGS	{ int|linux32_sys||sendto(int s, netbsd32_voidp msg, int len, \
525		    int flags, netbsd32_osockaddrp_t to, int tolen); }
526291	NOARGS	{ int|linux32_sys||recv(int s, netbsd32_voidp buf, int len, \
527		    int flags); }
528292	NOARGS	{ int|linux32_sys||recvfrom(int s, netbsd32_voidp buf, \
529		    netbsd32_size_t len, int flags, \
530		    netbsd32_osockaddrp_t from, netbsd32_intp fromlenaddr); }
531293	UNIMPL	shutdown
532294	NOARGS	{ int|linux32_sys||setsockopt(int s, int level, int optname, \
533		    netbsd32_voidp optval, int optlen); }
534295	NOARGS	{ int|linux32_sys||getsockopt(int s, int level, int optname, \
535		    netbsd32_voidp optval, netbsd32_intp optlen); }
536296	UNIMPL	sendmsg
537297	UNIMPL	recvmsg
538298	UNIMPL	semop
539299	UNIMPL	semget
540300	UNIMPL	semctl
541301	UNIMPL	msgsnd
542302	UNIMPL	msgrcv
543303	UNIMPL	msgget
544304	UNIMPL	msgctl
545305	UNIMPL	shmat
546306	UNIMPL	shmdt
547307	UNIMPL	shmget
548308	UNIMPL	shmctl
549309	UNIMPL	add_key
550310	UNIMPL	request_key
551311	UNIMPL	keyctl
552312	UNIMPL	semtimedop
553313	UNIMPL	vserver
554314	UNIMPL	ioptio_set
555315	UNIMPL	ioptio_get
556316	UNIMPL	inotify_init
557317	UNIMPL	inotify_add_watch
558318	UNIMPL	inotify_rm_watch
559319	UNIMPL	mbind
560320	UNIMPL	get_mempolicy
561321	UNIMPL	set_mempolicy
562322	STD	{ int|linux32_sys||openat(int fd, netbsd32_charp path, \
563		    int flags, ... linux_umode_t mode); }
564323	NOARGS	{ int|netbsd32||mkdirat(int fd, netbsd32_charp path, \
565		    linux_umode_t mode); }
566324	STD	{ int|linux32_sys||mknodat(int fd, netbsd32_charp path, \
567		    linux_umode_t mode, unsigned dev); }
568325	STD	{ int|linux32_sys||fchownat(int fd, netbsd32_charp path, \
569		    uid_t owner, gid_t group, int flag); }
570326	UNIMPL	futimesat
571327	STD	{ int|linux32_sys||fstatat64(int fd, netbsd32_charp path, \
572		    linux32_stat64p sp, int flag); }
573328	STD	{ int|linux32_sys||unlinkat(int fd, netbsd32_charp path, \
574		    int flag); }
575329	NOARGS	{ int|netbsd32||renameat(int fromfd, netbsd32_charp from, \
576		    int tofd, netbsd32_charp to); }
577330	STD	{ int|linux32_sys||linkat(int fd1, netbsd32_charp name1, \
578		    int fd2, netbsd32_charp name2, int flags); }
579331	NOARGS	{ int|netbsd32||symlinkat(netbsd32_charp path1, int fd, \
580		    netbsd32_charp path2); }
581332	NOARGS	{ int|netbsd32||readlinkat(int fd, netbsd32_charp path, \
582		    netbsd32_charp buf, linux32_size_t bufsize); }
583333	STD	{ int|linux32_sys||fchmodat(int fd, netbsd32_charp path, \
584		    linux_umode_t mode); }
585334	STD	{ int|linux32_sys||faccessat(int fd, netbsd32_charp path, \
586		    int amode); }
587335	STD	{ int|linux32_sys||pselect6(int nfds, \
588		   netbsd32_fd_setp_t readfds, \
589		   netbsd32_fd_setp_t writefds, \
590		   netbsd32_fd_setp_t exceptfds, \
591		   linux32_timespecp_t timeout, \
592		   linux32_sized_sigsetp_t ss); }
593336	STD	{ int|linux32_sys||ppoll(netbsd32_pollfdp_t fds, u_int nfds, \
594		    linux32_timespecp_t timeout, linux32_sigsetp_t sigset); }
595337	UNIMPL	unshare
596		;
597		; The netbsd32 native robust list calls have different
598		; argument names / types, but they are ABI-compatible
599		; with linux32.
600		;
601338	NOARGS	{ int|netbsd32||__futex_set_robust_list( \
602		    netbsd32_voidp head, netbsd32_size_t len); }
603339	NOARGS	{ int|netbsd32||__futex_get_robust_list(lwpid_t lwpid, \
604		    netbsd32_voidp headp, netbsd32_size_tp lenp); }
605340	UNIMPL	splice
606341	UNIMPL	sync_file_range
607342	UNIMPL	tee
608343	UNIMPL	vmsplice
609344	UNIMPL	move_pages
610345	UNIMPL	getcpu
611346	UNIMPL	epoll_wait
612347	UNIMPL	kexec_load
613348	STD	{ int|linux32_sys||utimensat(int fd, netbsd32_charp path, \
614			    linux32_timespecp_t times, int flag); }
615349	UNIMPL	signalfd
616350	NOARGS	{ int|linux_sys||timerfd_create(clockid_t clock_id, \
617		    int flags); }
618351	STD	{ int|linux32_sys||eventfd(unsigned int initval); }
619352	STD	{ int|linux32_sys||fallocate(int fd, int mode, \
620			    off_t offset, off_t len); }
621353	STD	{ int|linux32_sys||timerfd_settime(int fd, int flags, \
622		    const struct linux32_itimerspec *tim, \
623		    struct linux32_itimerspec *otim); }
624354	STD	{ int|linux32_sys||timerfd_gettime(int fd, \
625		    struct linux32_itimerspec *tim); }
626355	UNIMPL	signalfd4
627356	STD	{ int|linux32_sys||eventfd2(unsigned int initval, \
628		    int flags); }
629357	UNIMPL	epoll_create1
630358	STD	{ int|linux32_sys||dup3(int from, int to, int flags); }
631359	STD	{ int|linux32_sys||pipe2(netbsd32_intp fd, int flags); }
632360	UNIMPL	inotify_init1
633361	STD	{ int|linux32_sys||preadv(int fd, \
634		    const netbsd32_iovecp_t iovp, int iovcnt, \
635		    netbsd32_u_long off_lo, netbsd32_u_long off_hi); }
636362	STD	{ int|linux32_sys||pwritev(int fd, \
637		    const netbsd32_iovecp_t iovp, int iovcnt, \
638		    netbsd32_u_long off_lo, netbsd32_u_long off_hi); }
639363	UNIMPL	rt_tgsigqueueinfo
640364	UNIMPL	perf_counter_open
641365	UNIMPL	recvmmsg
642366	UNIMPL	accept4
643367	UNIMPL	fanotify_init
644368	UNIMPL	fanotify_mark
645369	UNIMPL	prlimit64
646370	UNIMPL	name_to_handle_at
647371	UNIMPL	open_by_handle_at
648372	UNIMPL	clock_adjtime
649373	UNIMPL	syncfs
650374	UNIMPL	sendmmsg
651375	UNIMPL	setns
652376	UNIMPL	process_vm_readv
653377	UNIMPL	process_vm_writev
654378	UNIMPL	kcmp
655379	UNIMPL	finit_module
656380	UNIMPL	sched_setattr
657381	UNIMPL	sched_getattr
658382	UNIMPL	renameat2
659383	UNIMPL	seccomp
660384	NOARGS	{ netbsd32_ssize_t|netbsd32||getrandom( \
661		    netbsd32_voidp buf, netbsd32_size_t buflen, \
662		    unsigned int flags); }
663385	UNIMPL	memfd_create
664386	UNIMPL	bpf
665387	UNIMPL	execveat
666388	UNIMPL	userfaultfd
667389	UNIMPL	membarrier
668390	UNIMPL	mlock2
669391	UNIMPL	copy_file_range
670392	UNIMPL	preadv2
671393	UNIMPL	pwritev2
672394	UNIMPL	pkey_mprotect
673395	UNIMPL	pkey_alloc
674396	UNIMPL	pkey_free
675397	STD	{ int|linux32_sys||statx(int fd, netbsd32_charp path, \
676		    int flag, unsigned int mask, linux32_statxp sp); }
677398	UNIMPL	rseq
678399	UNIMPL	io_pgetevents
679400	UNIMPL	migrate_pages
680401	UNIMPL	kexec_file_load
681402	UNIMPL	/* unused */
682403	UNIMPL	clock_gettime64
683404	UNIMPL	clock_settime64
684405	UNIMPL	clock_adjtime64
685406	UNIMPL	clock_getres_time64
686407	UNIMPL	clock_nanosleep_time64
687408	UNIMPL	timer_gettime64
688409	UNIMPL	timer_settime64
689410	UNIMPL	timerfd_gettime64
690411	UNIMPL	timerfd_settime64
691412	UNIMPL	utimensat_time64
692413	UNIMPL	pselect6_time64
693414	UNIMPL	ppoll_time64
694415	UNIMPL	/* unused? */
695416	UNIMPL	io_pgetevents_time64
696417	UNIMPL	recvmmsg_time64
697418	UNIMPL	mq_timedsend_time64
698419	UNIMPL	mq_timedreceive_time64
699420	UNIMPL	semtimedop_time64
700421	UNIMPL	rt_sigtimedwait_time64
701422	UNIMPL	futex_time64
702423	UNIMPL	sched_rr_get_interval_time64
703424	UNIMPL	pidfd_send_signal
704425	UNIMPL	io_uring_setup
705426	UNIMPL	io_uring_enter
706427	UNIMPL	io_uring_register
707428	UNIMPL	open_tree
708429	UNIMPL	move_mount
709430	UNIMPL	fsopen
710431	UNIMPL	fsconfig
711432	UNIMPL	fsmount
712433	UNIMPL	fspick
713434	UNIMPL	pidfd_open
714435	UNIMPL	clone3
715436	UNIMPL	close_range
716437	UNIMPL	openat2
717438	UNIMPL	pidfd_getfd
718439	UNIMPL	faccessat2
719440	UNIMPL	process_madvise
720441	UNIMPL	epoll_pwait2
721442	UNIMPL	mount_setattr
722443	UNIMPL	quotactl_fd
723444	UNIMPL	landlock_create_ruleset
724445	UNIMPL	landlock_add_rule
725446	UNIMPL	landlock_restrict_self
726447	UNIMPL
727448	UNIMPL
728449	UNIMPL
729450	UNIMPL
730451	UNIMPL
731452	UNIMPL
732453	UNIMPL
733454	UNIMPL
734455	UNIMPL
735456	UNIMPL
736457	UNIMPL
737458	UNIMPL
738459	UNIMPL
739460	UNIMPL
740461	UNIMPL
741462	UNIMPL
742463	UNIMPL
743464	UNIMPL
744465	UNIMPL
745466	UNIMPL
746467	UNIMPL
747468	UNIMPL
748469	UNIMPL
749470	UNIMPL
750471	UNIMPL
751472	UNIMPL
752473	UNIMPL
753474	UNIMPL
754475	UNIMPL
755476	UNIMPL
756477	UNIMPL
757478	UNIMPL
758479	UNIMPL
759
760;
761; EABI ARMLinux actually has two ranges of syscalls. Normal syscalls use
762; SVC numbers starting at 0 (__NR_SYSCALL_BASE), Special ARM-specific syscalls
763; use SVC numbers starting at 0x0f0000 (__ARM_NR_BASE).
764; $SRC/sys/arch/aarch64/aarch64/linux32_syscall.c remaps these down to 480-,
765; So that we can use one linux_sysent array for the whole lot.
766;
767; If the linux's normal syscall is increased to more than 480, this needs to be
768; changed. Also note the overall size as defined in syscalls.conf. (nsysent=512)
769;
770; see also:
771;  $LINUXSRC/arch/arm/include/uapi/asm/unistd.h
772;  $LINUXSRC/arch/arm/kernel/traps.c:arm_syscall()
773;
774480	UNIMPL	/* base. actually 0x0f0000 */
775481	UNIMPL	breakpoint
776482	UNIMPL	cacheflush
777483	UNIMPL	usr26
778484	UNIMPL	usr32
779485	STD	{ int|linux32_sys||set_tls(netbsd32_voidp tls); }
780486	STD	{ linux32_off_t|linux32_sys||get_tls(void); }
781