$NetBSD: syscalls.master,v 1.77 2021/12/02 04:29:48 ryo Exp $

; NetBSD i386 COMPAT_LINUX32 system call name/number "master" file.
; (See syscalls.conf to see what it is processed into.)
;
; Fields: number type [type-dependent ...]
;       number  system call number, must be in order
;       type    one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
;               the compatibility options defined in syscalls.conf.
;
; types:
;       STD     always included
;       OBSOL   obsolete, not included in system
;       UNIMPL  unimplemented, not included in system
;       NODEF   included, but don't define the syscall number
;
;       INDIR   included, but don't define the syscall args structure
;               and allow it to be "really" varargs.
;
; The compat options are defined in the syscalls.conf file, and the
; compat option name is prefixed to the syscall name.  Other than
; that, they're like NODEF (for 'compat' options), or STD (for
; 'libcompat' options).
;
; The type-dependent arguments are as follows:
; For STD, NODEF, NOARGS, and compat syscalls:
;       { pseudo-proto } [alias]
; For other syscalls:
;       [comment]
;
; #ifdef's, etc. may be included, and are copied to the output files.
; #include's are copied to the syscall names and switch definition files only.

#include <sys/param.h>
#include <sys/poll.h>
#include <sys/systm.h>
#include <sys/signal.h>
#include <sys/mount.h>
#include <sys/syscallargs.h>

#include <machine/netbsd32_machdep.h>

#include <compat/netbsd32/netbsd32.h>
#include <compat/netbsd32/netbsd32_syscallargs.h>

#include <compat/linux/common/linux_types.h>

#include <compat/linux32/common/linux32_types.h>
#include <compat/linux32/common/linux32_signal.h>
#include <compat/linux32/arch/amd64/linux32_missing.h>
#include <compat/linux32/linux32_syscallargs.h>

#include <compat/linux/common/linux_mmap.h>
#include <compat/linux/common/linux_signal.h>
#include <compat/linux/common/linux_siginfo.h>
#include <compat/linux/common/linux_machdep.h>
#include <compat/linux/common/linux_ipc.h>
#include <compat/linux/common/linux_sem.h>
#include <compat/linux/linux_syscallargs.h>

%%

0       NOARGS  { int|linux_sys||nosys(void); } syscall
1       STD     { int|linux32_sys||exit(int rval); }
2       NOARGS  { int|sys||fork(void); }
3       NOARGS  { netbsd32_ssize_t|netbsd32||read(int fd, \
                   netbsd32_voidp buf, netbsd32_size_t nbyte); }
4       NOARGS  { netbsd32_ssize_t|netbsd32||write(int fd, \
                   netbsd32_voidp buf, netbsd32_size_t nbyte); }
5       STD     { int|linux32_sys||open(netbsd32_charp path, int flags, \
                   linux_umode_t mode); }
6       NOARGS  { int|netbsd32||close(int fd); }
7       STD     { int|linux32_sys||waitpid(int pid, netbsd32_intp status, \
                   int options);}
8       STD     { int|linux32_sys||creat(netbsd32_charp path, linux_umode_t mode); }
9       NOARGS  { int|netbsd32||link(netbsd32_charp path, \
                   netbsd32_charp link); }
10      STD     { int|linux32_sys||unlink(netbsd32_charp path); }
11      NOARGS  { int|netbsd32||execve(netbsd32_charp path, \
                   netbsd32_charpp argp, netbsd32_charpp envp); }
12      NOARGS  { int|netbsd32||chdir(netbsd32_charp path); }
13      STD     { int|linux32_sys||time(linux32_timep_t t); }
14      STD     { int|linux32_sys||mknod(netbsd32_charp path, \
                   linux_umode_t mode, unsigned dev); }
15      NOARGS  { int|netbsd32||chmod(netbsd32_charp path, linux_umode_t mode); }
16      STD     { int|linux32_sys||lchown16(netbsd32_charp path, \
                   linux32_uid16_t uid, linux32_gid16_t gid); }
17      STD     { int|linux32_sys||break(netbsd32_charp nsize); }
18      OBSOL   ostat
19      NOARGS  { netbsd32_long|compat_43_netbsd32||olseek(int fd, \
                   netbsd32_long offset, int whence); }
20      NOARGS  { pid_t|sys||getpid(void); }
21      UNIMPL  mount
22      UNIMPL  umount
23      NOARGS  linux_setuid16 { int|netbsd32||setuid(uid_t uid); }
24      NOARGS  linux_getuid16 { uid_t|sys||getuid(void); }
25      STD     { int|linux32_sys||stime(linux32_timep_t t); }
26      STD     { int|linux32_sys||ptrace(int request, int pid, \
                 int addr, int data); }
27      STD     { int|linux32_sys||alarm(unsigned int secs); }
28      OBSOL   ofstat
29      NOARGS  { int|linux_sys||pause(void); }
30      STD     { int|linux32_sys||utime(netbsd32_charp path, \
                   linux32_utimbufp_t times); }
31      OBSOL   stty
32      OBSOL   gtty
33      NOARGS  { int|netbsd32||access(netbsd32_charp path, \
                   int flags); }
34      STD     { int|linux32_sys||nice(int incr); }
35      OBSOL   ftime
36      NOARGS  { int|sys||sync(void); }
37      STD     { int|linux32_sys||kill(int pid, int signum); }
38      NOARGS  { int|netbsd32||__posix_rename(netbsd32_charp from, \
                   netbsd32_charp to); }
39      NOARGS  { int|netbsd32||mkdir(netbsd32_charp path, linux_umode_t mode); }
40      NOARGS  { int|netbsd32||rmdir(netbsd32_charp path); }
41      NOARGS  { int|netbsd32||dup(int fd); }
42      STD     { int|linux32_sys||pipe(netbsd32_intp fd); }
43      STD     { int|linux32_sys||times(linux32_tmsp_t tms); }
44      OBSOL   prof
45      STD     { int|linux32_sys||brk(netbsd32_charp nsize); }
46      NOARGS  linux_setgid16 { int|netbsd32||setgid(gid_t gid); }
47      NOARGS  linux_getgid16 { gid_t|sys||getgid(void); }
48      STD     { int|linux32_sys||signal(int signum, \
                   linux32_handlerp_t handler); }
49      NOARGS  linux_geteuid16 { uid_t|sys||geteuid(void); }
50      NOARGS  linux_getegid16 { gid_t|sys||getegid(void); }
51      NOARGS  { int|netbsd32||acct(netbsd32_charp path); }
52      OBSOL   phys
53      OBSOL   lock
54      STD     { int|linux32_sys||ioctl(int fd, netbsd32_u_long com, \
                   netbsd32_charp data); }
55      STD     { int|linux32_sys||fcntl(int fd, \
                   int cmd, netbsd32_voidp arg); }
56      OBSOL   mpx
57      NOARGS  { int|netbsd32||setpgid(int pid, int pgid); }
58      OBSOL   ulimit
59      STD     { int|linux32_sys||oldolduname( \
                   linux32_oldold_utsnamep_t up); }
60      NOARGS  { int|netbsd32||umask(int newmask); }
61      NOARGS  { int|netbsd32||chroot(netbsd32_charp path); }
62      UNIMPL  ustat
63      NOARGS  { int|netbsd32||dup2(int from, int to); }
64      NOARGS  { pid_t|sys||getppid(void); }
65      NOARGS  { int|sys||getpgrp(void); }
66      NOARGS  { int|sys||setsid(void); }
67      UNIMPL  sigaction
68      STD     { int|linux32_sys||siggetmask(void); }
69      STD     { int|linux32_sys||sigsetmask(linux32_old_sigset_t mask); }
70      STD     { int|linux32_sys||setreuid16(linux32_uid16_t ruid, \
                   linux32_uid16_t euid); }
71      STD     { int|linux32_sys||setregid16(linux32_gid16_t rgid, \
                   linux32_gid16_t egid); }
72      UNIMPL  sigsuspend
73      UNIMPL  sigpending
74      NOARGS  { int|compat_43_netbsd32||osethostname(netbsd32_charp hostname, \
                   u_int len); }
75      STD     { int|linux32_sys||setrlimit(u_int which, \
                   netbsd32_orlimitp_t rlp); }
76      STD     { int|linux32_sys||getrlimit(u_int which, \
                   netbsd32_orlimitp_t rlp); }
77      NOARGS  { int|compat_50_netbsd32||getrusage(int who, \
                   netbsd32_rusage50p_t rusage); }
78      STD     { int|linux32_sys||gettimeofday(netbsd32_timeval50p_t tp, \
                   netbsd32_timezonep_t tzp); }
79      STD     { int|linux32_sys||settimeofday(netbsd32_timeval50p_t tp, \
                   netbsd32_timezonep_t tzp); }
80      STD     { int|linux32_sys||getgroups16(int gidsetsize, \
                   linux32_gid16p_t gidset); }
81      STD     { int|linux32_sys||setgroups16(int gidsetsize, \
                   linux32_gid16p_t gidset); }
82      STD     { int|linux32_sys||oldselect(linux32_oldselectp_t lsp); }
83      NOARGS  { int|netbsd32||symlink(netbsd32_charp path, \
                   netbsd32_charp link); }
84      NOARGS  { int|compat_43_netbsd32||lstat43(netbsd32_charp \
                   path, netbsd32_stat43p_t ub); }
85      NOARGS  { int|netbsd32||readlink(netbsd32_charp path, \
                   netbsd32_charp buf, netbsd32_size_t count); }
86      UNIMPL  uselib
87      STD     { int|linux32_sys||swapon(netbsd32_charp name); }
88      STD     { int|linux32_sys||reboot(int magic1, int magic2, int cmd, \
                   netbsd32_voidp arg); }
89      STD     { int|linux32_sys||readdir(int fd, netbsd32_voidp dent, \
                   unsigned int count); }
90      STD     { int|linux32_sys||old_mmap(linux32_oldmmapp lmp); }
91      NOARGS  { int|netbsd32||munmap(netbsd32_voidp addr, \
                   netbsd32_size_t len); }
92      NOARGS  { int|compat_43_netbsd32||otruncate(netbsd32_charp path, \
                   netbsd32_long length); }
93      NOARGS  { int|compat_43_netbsd32||oftruncate(int fd, \
                   netbsd32_long length); }
94      NOARGS  { int|netbsd32||fchmod(int fd, linux_umode_t mode); }
95      STD     { int|linux32_sys||fchown16(int fd, linux32_uid16_t uid, \
                   linux32_gid16_t gid); }
96      STD     { int|linux32_sys||getpriority(int which, int who); }
97      NOARGS  { int|netbsd32||setpriority(int which, int who, int prio); }
98      NOARGS  { int|netbsd32||profil(netbsd32_voidp samples, \
                   netbsd32_size_t size, netbsd32_u_long offset, \
                   u_int scale); }
99      STD     { int|linux32_sys||statfs(netbsd32_charp path, \
                   linux32_statfsp sp); }
100     STD     { int|linux32_sys||fstatfs(int fd, linux32_statfsp sp); }
101     NOARGS  { int|linux_sys||ioperm(unsigned int lo, \
                   unsigned int hi, int val); }
102     STD     { int|linux32_sys||socketcall(int what, netbsd32_voidp args); }
103     UNIMPL  syslog
104     NOARGS  { int|compat_50_netbsd32||setitimer(int which, \
                   netbsd32_itimerval50p_t itv, netbsd32_itimerval50p_t oitv); }
105     NOARGS  { int|compat_50_netbsd32||getitimer(int which, \
                   netbsd32_itimerval50p_t itv); }
106     STD     { int|linux32_sys||stat(netbsd32_charp path, \
                   linux32_statp sp); }
107     STD     { int|linux32_sys||lstat(netbsd32_charp path, \
                   linux32_statp sp); }
108     STD     { int|linux32_sys||fstat(int fd, \
                   linux32_statp sp); }
109     STD     { int|linux32_sys||olduname(linux32_oldutsnamep_t up); }
110     NOARGS  { int|linux_sys||iopl(int level); }
111     UNIMPL  vhangup
112     UNIMPL  idle
113     UNIMPL  vm86old
114     STD     { int|linux32_sys||wait4(int pid, netbsd32_intp status, \
                   int options, netbsd32_rusage50p_t rusage); }
115     STD     { int|linux32_sys||swapoff(netbsd32_charp path); }
116     STD     { int|linux32_sys||sysinfo(linux32_sysinfop_t arg); }
117     STD     { int|linux32_sys||ipc(int what, int a1, int a2, int a3, \
                   netbsd32_voidp ptr); }
118     NOARGS  { int|netbsd32||fsync(int fd); }
119     STD     { int|linux32_sys||sigreturn(linux32_sigcontextp_t scp); }
120     STD     { int|linux32_sys||clone(int flags, netbsd32_voidp stack, \
                   netbsd32_voidp parent_tidptr, netbsd32_voidp tls, \
                   netbsd32_voidp child_tidptr); }
121     STD     { int|linux32_sys||setdomainname(netbsd32_charp domainname, \
                   int len); }
122     STD     { int|linux32_sys||uname(linux32_utsnamep up); }
123     STD     { int|linux32_sys||modify_ldt(int func, netbsd32_charp ptr, \
                   netbsd32_size_t bytecount); }
124     UNIMPL  adjtimex
125     STD     { int|linux32_sys||mprotect(netbsd32_voidp start, \
                   netbsd32_size_t len, int prot); }
126     UNIMPL  sigprocmask
127     UNIMPL  create_module
128     UNIMPL  init_module
129     UNIMPL  delete_module
130     UNIMPL  get_kernel_syms
131     UNIMPL  quotactl
132     NOARGS  { int|netbsd32||getpgid(pid_t pid); }
133     NOARGS  { int|netbsd32||fchdir(int fd); }
134     UNIMPL  bdflush
135     UNIMPL  sysfs
136     STD     { int|linux32_sys||personality(netbsd32_u_long per); }
137     UNIMPL  afs_syscall
138     NOARGS  setfsuid16 { int|linux32_sys||setfsuid(uid_t uid); }
139     NOARGS  setfsgid16 { int|linux32_sys||setfsgid(gid_t gid); }
140     STD     { int|linux32_sys||llseek(int fd, u_int32_t ohigh, \
                   u_int32_t olow, netbsd32_voidp res, int whence); }
141     STD     { int|linux32_sys||getdents(int fd, \
                   linux32_direntp_t dent, unsigned int count); }
142     STD     { int|linux32_sys||select(int nfds, \
                   netbsd32_fd_setp_t readfds, \
                   netbsd32_fd_setp_t writefds, \
                   netbsd32_fd_setp_t exceptfds, \
                   netbsd32_timeval50p_t timeout); }
143     NOARGS  { int|netbsd32||flock(int fd, int how); }
144     NOARGS  { int|netbsd32|13|msync(netbsd32_voidp addr, \
                   netbsd32_size_t len, int flags); }
145     NOARGS  { int|netbsd32||readv(int fd, \
                   netbsd32_iovecp_t iovp, int iovcnt); }
146     NOARGS  { netbsd32_ssize_t|netbsd32||writev(int fd, \
                   netbsd32_iovecp_t iovp, int iovcnt); }
147     NOARGS  { pid_t|netbsd32||getsid(pid_t pid); }
148     STD     { int|linux32_sys||fdatasync(int fd); }
149     STD     { int|linux32_sys||__sysctl(linux32___sysctlp_t lsp); }
150     NOARGS  { int|netbsd32||mlock(netbsd32_voidp addr, \
                   netbsd32_size_t len); }
151     NOARGS  { int|netbsd32||munlock(netbsd32_voidp addr, \
                   netbsd32_size_t len); }
152     NOARGS  { int|netbsd32||mlockall(int flags); }
153     NOARGS  { int|sys||munlockall(void); }
154     STD     { int|linux32_sys||sched_setparam(pid_t pid, \
                   const linux32_sched_paramp_t sp); }
155     STD     { int|linux32_sys||sched_getparam(pid_t pid, \
                   linux32_sched_paramp_t sp); }
156     STD     { int|linux32_sys||sched_setscheduler(pid_t pid, \
                   int policy, linux32_sched_paramp_t sp); }
157     STD     { int|linux32_sys||sched_getscheduler(pid_t pid); }
158     NOARGS  { int|linux_sys||sched_yield(void); }
159     STD     { int|linux32_sys||sched_get_priority_max(int policy); }
160     STD     { int|linux32_sys||sched_get_priority_min(int policy); }
161     UNIMPL  sched_rr_get_interval
162     STD     { int|linux32_sys||nanosleep(linux32_timespecp_t rqtp, \
                   linux32_timespecp_t rmtp); }
163     STD     { int|linux32_sys||mremap(netbsd32_voidp old_address, \
                   netbsd32_size_t old_size, netbsd32_size_t new_size, \
                   netbsd32_u_long flags); }
164     STD     { int|linux32_sys||setresuid16(linux32_uid16_t ruid, \
                   linux32_uid16_t euid, linux32_uid16_t suid); }
165     STD     { int|linux32_sys||getresuid16(linux32_uid16p_t ruid, \
                   linux32_uid16p_t euid, linux32_uid16p_t suid); }
166     UNIMPL  vm86
167     UNIMPL  query_module
168     NOARGS  { int|netbsd32||poll(netbsd32_pollfdp_t fds, u_int nfds, \
                   int timeout); }
169     UNIMPL  nfsservctl
170     STD     { int|linux32_sys||setresgid16(linux32_gid16_t rgid, \
                   linux32_gid16_t egid, linux32_gid16_t sgid); }
171     STD     { int|linux32_sys||getresgid16(linux32_gid16p_t rgid, \
                   linux32_gid16p_t egid, linux32_gid16p_t sgid); }
172     UNIMPL  prctl
173     STD     { int|linux32_sys||rt_sigreturn(linux32_ucontextp_t ucp); }
174     STD     { int|linux32_sys||rt_sigaction(int signum, \
                   linux32_sigactionp_t nsa, \
                   linux32_sigactionp_t osa, \
                   netbsd32_size_t sigsetsize); }
175     STD     { int|linux32_sys||rt_sigprocmask(int how, \
                    linux32_sigsetp_t set, \
                    linux32_sigsetp_t oset, \
                    netbsd32_size_t sigsetsize); }
176     STD     { int|linux32_sys||rt_sigpending(linux32_sigsetp_t set, \
                   netbsd32_size_t sigsetsize); }
177     STD     { int|linux32_sys||rt_sigtimedwait( \
                   const linux32_sigsetp_t set, \
                   linux32_siginfop_t info, \
                   const linux32_timespecp_t timeout); }
178     STD     { int|linux32_sys||rt_queueinfo(int pid, int sig, \
                   linux32_siginfop_t uinfo); }
179     STD     { int|linux32_sys||rt_sigsuspend(linux32_sigsetp_t unewset, \
                   netbsd32_size_t sigsetsize); }
180     STD     { netbsd32_ssize_t|linux32_sys||pread(int fd, \
                   netbsd32_voidp buf, netbsd32_size_t nbyte, \
                   netbsd32_off_t offset); }
181     STD     { netbsd32_ssize_t|linux32_sys||pwrite(int fd, \
                   netbsd32_voidp buf, netbsd32_size_t nbyte, \
                   netbsd32_off_t offset); }
182     STD     { int|linux32_sys||chown16(netbsd32_charp path, \
                   linux32_uid16_t uid, linux32_gid16_t gid); }
183     NOARGS  { int|netbsd32||__getcwd(netbsd32_charp bufp, \
                   netbsd32_size_t length); }
184     UNIMPL  capget
185     UNIMPL  capset
186     UNIMPL  sigaltstack
187     UNIMPL  sendfile
188     UNIMPL  getpmsg
189     UNIMPL  putpmsg
190     NOARGS  { int|sys|14|vfork(void); }
191     STD     { int|linux32_sys||ugetrlimit(int which, \
                   netbsd32_orlimitp_t rlp); }
192     STD     { linux32_off_t|linux32_sys||mmap2(netbsd32_u_long addr, \
                   netbsd32_size_t len, int prot, int flags, int fd, \
                   linux32_off_t offset); }
193     STD     { int|linux32_sys||truncate64(netbsd32_charp path, \
                   uint32_t lenlo, uint32_t lenhi); }
194     STD     { int|linux32_sys||ftruncate64(unsigned int fd, \
                   uint32_t lenlo, uint32_t lenhi); }
195     STD     { int|linux32_sys||stat64(netbsd32_charp path, \
                   linux32_stat64p sp); }
196     STD     { int|linux32_sys||lstat64(netbsd32_charp path, \
                   linux32_stat64p sp); }
197     STD     { int|linux32_sys||fstat64(int fd, \
                   linux32_stat64p sp); }
198     NOARGS  { int|netbsd32||__posix_lchown(netbsd32_charp path, \
                   uid_t uid, gid_t gid); }
199     NOARGS  { uid_t|sys||getuid(void); }
200     NOARGS  { gid_t|sys||getgid(void); }
201     NOARGS  { uid_t|sys||geteuid(void); }
202     NOARGS  { gid_t|sys||getegid(void); }
203     NOARGS  { int|netbsd32||setreuid(uid_t ruid, uid_t euid); }
204     NOARGS  { int|netbsd32||setregid(gid_t rgid, gid_t egid); }
205     NOARGS  { int|netbsd32||getgroups(int gidsetsize, \
                   netbsd32_gid_tp gidset); }
206     NOARGS  { int|netbsd32||setgroups(int gidsetsize, \
                   netbsd32_gid_tp gidset); }
207     NOARGS  { int|netbsd32||__posix_fchown(int fd, uid_t uid, gid_t gid); }
208     STD     { int|linux32_sys||setresuid(uid_t ruid, uid_t euid, \
                   uid_t suid); }
209     STD     { int|linux32_sys||getresuid(linux32_uidp_t ruid, \
                   linux32_uidp_t euid, linux32_uidp_t suid); }
210     STD     { int|linux32_sys||setresgid(gid_t rgid, gid_t egid, \
                   gid_t sgid); }
211     STD     { int|linux32_sys||getresgid(linux32_gidp_t rgid, \
                   linux32_gidp_t egid, linux32_gidp_t sgid); }
212     NOARGS  { int|netbsd32||__posix_chown(netbsd32_charp path, \
                   uid_t uid, gid_t gid); }
213     NOARGS  { int|netbsd32||setuid(uid_t uid); }
214     NOARGS  { int|netbsd32||setgid(gid_t gid); }
215     STD     { int|linux32_sys||setfsuid(uid_t uid); }
216     STD     { int|linux32_sys||setfsgid(gid_t gid); }
217     UNIMPL  pivot_root
218     NOARGS  { int|netbsd32||mincore(netbsd32_voidp addr, \
                   netbsd32_size_t len, netbsd32_charp vec); }
219     NOARGS  { int|netbsd32||madvise(netbsd32_voidp addr, \
                   netbsd32_size_t len, int behav); }
220     STD     { int|linux32_sys||getdents64(int fd, \
                   linux32_dirent64p_t dent, unsigned int count); }
; fcntl64() - Exactly the same as fcntl()
#define linux32_sys_fcntl64 linux32_sys_fcntl
#define linux32_sys_fcntl64_args linux32_sys_fcntl_args
221     NOARGS  { int|linux32_sys||fcntl64(int fd, \
                   int cmd, netbsd32_voidp arg); }
222     UNIMPL  /*      unused  */
223     UNIMPL  /*      unused  */
224     NOARGS  { pid_t|linux_sys||gettid(void); }
225     UNIMPL  readahead
226     NOARGS  { int|netbsd32||setxattr(netbsd32_charp path, \
                   netbsd32_charp name, netbsd32_voidp value, \
                   netbsd32_size_t size, int flags); }
227     NOARGS  { int|netbsd32||lsetxattr(netbsd32_charp path, \
                   netbsd32_charp name,  netbsd32_voidp value, \
                   netbsd32_size_t size, int flags); }
228     NOARGS  { int|netbsd32||fsetxattr(int fd, netbsd32_charp name, \
                   netbsd32_voidp value, netbsd32_size_t size, int flags); }
229     NOARGS  { ssize_t|netbsd32||getxattr(netbsd32_charp path, \
                   netbsd32_charp name, netbsd32_voidp value, \
                   netbsd32_size_t size); }
230     NOARGS  { ssize_t|netbsd32||lgetxattr(netbsd32_charp path, \
                   netbsd32_charp name, netbsd32_voidp value, \
                   netbsd32_size_t size); }
231     NOARGS  { ssize_t|netbsd32||fgetxattr(int fd, netbsd32_charp name, \
                   netbsd32_voidp value, netbsd32_size_t size); }
232     NOARGS  { ssize_t|netbsd32||listxattr(netbsd32_charp path, \
                   netbsd32_charp list, netbsd32_size_t size); }
233     NOARGS  { ssize_t|netbsd32||llistxattr(netbsd32_charp path, \
                   netbsd32_charp list, netbsd32_size_t size); }
234     NOARGS  { ssize_t|netbsd32||flistxattr(int fd, netbsd32_charp list, \
                   netbsd32_size_t size); }
235     NOARGS  { int|netbsd32||removexattr(netbsd32_charp path, \
                   netbsd32_charp name); }
236     NOARGS  { int|netbsd32||lremovexattr(netbsd32_charp path, \
                   netbsd32_charp name); }
237     NOARGS  { int|netbsd32||fremovexattr(int fd, netbsd32_charp name); }
238     STD     { int|linux32_sys||tkill(int tid, int sig); }
239     UNIMPL  sendfile64
240     STD     { int|linux32_sys||futex(linux32_intp_t uaddr, int op, int val, \
                   linux32_timespecp_t timeout, linux32_intp_t uaddr2, \
                   int val3); }
241     STD     { int|linux32_sys||sched_setaffinity(pid_t pid, \
                   unsigned int len, linux32_ulongp_t mask); }
242     STD     { int|linux32_sys||sched_getaffinity(pid_t pid, \
                   unsigned int len, linux32_ulongp_t mask); }
243     STD     { int|linux32_sys||set_thread_area(linux32_user_descp_t desc); }
244     STD     { int|linux32_sys||get_thread_area(linux32_user_descp_t desc); }
245     UNIMPL  io_setup
246     UNIMPL  io_destroy
247     UNIMPL  io_getevents
248     UNIMPL  io_submit
249     UNIMPL  io_cancel
250     STD     { int|linux32_sys||fadvise64(int fd, uint32_t offlo, \
                   uint32_t offhi, linux32_size_t len, int advice); }
251     UNIMPL  /*      unused  */
252     STD     { int|linux32_sys||exit_group(int error_code); }
253     UNIMPL  lookup_dcookie
254     UNIMPL  epoll_create
255     UNIMPL  epoll_ctl
256     UNIMPL  epoll_wait
257     UNIMPL  remap_file_pages
258     STD     { int|linux32_sys||set_tid_address(linux32_intp_t tid); }
259     STD     { int|linux32_sys||timer_create(clockid_t clockid, \
                   struct linux32_sigevent *evp, timer_t *timerid); }
260     STD     { int|linux32_sys||timer_settime(timer_t timerid, \
                   int flags, const struct linux32_itimerspec *tim, \
                   struct linux32_itimerspec *otim); }
261     STD     { int|linux32_sys||timer_gettime(timer_t timerid, \
                   struct linux32_itimerspec *tim); }
262     NOARGS  { int|sys||timer_getoverrun(timer_t timerid); }
263     NOARGS  { int|sys||timer_delete(timer_t timerid); }
264     STD     { int|linux32_sys||clock_settime(clockid_t which, \
                   linux32_timespecp_t tp); }
265     STD     { int|linux32_sys||clock_gettime(clockid_t which, \
                   linux32_timespecp_t tp); }
266     STD     { int|linux32_sys||clock_getres(clockid_t which, \
                   linux32_timespecp_t tp); }
267     STD     { int|linux32_sys||clock_nanosleep(clockid_t which, int flags, \
                   linux32_timespecp_t rqtp, linux32_timespecp_t rmtp); }
268     STD     { int|linux32_sys||statfs64(netbsd32_charp path, \
                   netbsd32_size_t sz, linux32_statfs64p sp); }
269     STD     { int|linux32_sys||fstatfs64(int fd, \
                   netbsd32_size_t sz, linux32_statfs64p sp); }
270     STD     { int|linux32_sys||tgkill(int tgid, int tid, int sig); }
271     NOARGS  { int|compat_50_netbsd32||utimes(netbsd32_charp path, \
                   netbsd32_timeval50p_t tptr); }
272     STD     { int|linux32_sys||fadvise64_64(int fd, uint32_t offlo, \
                   uint32_t offhi, uint32_t lenlo, uint32_t lenhi, int advice); }
273     UNIMPL  vserver
274     UNIMPL  mbind
275     UNIMPL  get_mempolicy
276     UNIMPL  set_mempolicy
277     UNIMPL  mq_open
278     UNIMPL  mq_unlink
279     UNIMPL  mq_timedsend
280     UNIMPL  mq_timedreceive
281     UNIMPL  mq_notify
282     UNIMPL  mq_getsetattr
283     UNIMPL  kexec_load
284     UNIMPL  waitid
285     UNIMPL  /* unused */
286     UNIMPL  add_key
287     UNIMPL  request_key
288     UNIMPL  keyctl
289     UNIMPL  ioprio_set
290     UNIMPL  ioprio_get
291     UNIMPL  inotify_init
292     UNIMPL  inotify_add_watch
293     UNIMPL  inotify_rm_watch
294     UNIMPL  migrate_pages
295     STD     { int|linux32_sys||openat(int fd, netbsd32_charp path, \
                   int flags, ... linux_umode_t mode); }
296     NOARGS  { int|netbsd32||mkdirat(int fd, netbsd32_charp path, \
                   linux_umode_t mode); }
297     STD     { int|linux32_sys||mknodat(int fd, netbsd32_charp path, \
                   linux_umode_t mode, unsigned dev); }
298     STD     { int|linux32_sys||fchownat(int fd, netbsd32_charp path, \
                   uid_t owner, gid_t group, int flag); }
299     UNIMPL  futimesat
300     STD     { int|linux32_sys||fstatat64(int fd, netbsd32_charp path, \
                   linux32_stat64p sp, int flag); }
301     STD     { int|linux32_sys||unlinkat(int fd, netbsd32_charp path, \
                   int flag); }
302     NOARGS  { int|netbsd32||renameat(int fromfd, netbsd32_charp from, \
                   int tofd, netbsd32_charp to); }
303     STD     { int|linux32_sys||linkat(int fd1, netbsd32_charp name1, \
                   int fd2, netbsd32_charp name2, int flags); }
304     NOARGS  { int|netbsd32||symlinkat(netbsd32_charp path1, int fd, \
                   netbsd32_charp path2); }
305     NOARGS  { int|netbsd32||readlinkat(int fd, netbsd32_charp path, \
                   netbsd32_charp buf, linux32_size_t bufsize); }
306     STD     { int|linux32_sys||fchmodat(int fd, netbsd32_charp path, \
                   linux_umode_t mode); }
307     STD     { int|linux32_sys||faccessat(int fd, netbsd32_charp path, \
                   int amode); }
308     STD     { int|linux32_sys||pselect6(int nfds, \
                  netbsd32_fd_setp_t readfds, \
                  netbsd32_fd_setp_t writefds, \
                  netbsd32_fd_setp_t exceptfds, \
                  linux32_timespecp_t timeout, \
                  linux32_sized_sigsetp_t ss); }
309     STD     { int|linux32_sys||ppoll(netbsd32_pollfdp_t fds, u_int nfds, \
                   linux32_timespecp_t timeout, linux32_sigsetp_t sigset); }
310     UNIMPL  unshare
               ;
               ; The netbsd32 native robust list calls have different
               ; argument names / types, but they are ABI-compatible
               ; with linux32.
               ;
311     NOARGS  { int|netbsd32||__futex_set_robust_list( \
                   netbsd32_voidp head, netbsd32_size_t len); }
312     NOARGS  { int|netbsd32||__futex_get_robust_list(lwpid_t lwpid, \
                   netbsd32_voidp headp, netbsd32_size_tp lenp); }
313     UNIMPL  splice
314     UNIMPL  sync_file_range
315     UNIMPL  tee
316     UNIMPL  vmsplice
317     UNIMPL  move_pages
318     UNIMPL  getcpu
319     UNIMPL  epoll_wait
320     STD     { int|linux32_sys||utimensat(int fd, netbsd32_charp path, \
                           linux32_timespecp_t times, int flag); }
321     UNIMPL  signalfd
322     NOARGS  { int|linux_sys||timerfd_create(clockid_t clock_id, \
                   int flags); }
323     STD     { int|linux32_sys||eventfd(unsigned int initval); }
324     STD     { int|linux32_sys||fallocate(int fd, int mode, \
                           off_t offset, off_t len); }
325     STD     { int|linux32_sys||timerfd_settime(int fd, int flags, \
                   const struct linux32_itimerspec *tim, \
                   struct linux32_itimerspec *otim); }
326     STD     { int|linux32_sys||timerfd_gettime(int fd, \
                   struct linux32_itimerspec *tim); }
327     UNIMPL  signalfd4
328     STD     { int|linux32_sys||eventfd2(unsigned int initval, \
                   int flags); }
329     UNIMPL  epoll_create1
330     STD     { int|linux32_sys||dup3(int from, int to, int flags); }
331     STD     { int|linux32_sys||pipe2(netbsd32_intp fd, int flags); }
332     UNIMPL  inotify_init1
333     STD     { int|linux32_sys||preadv(int fd, \
                   const netbsd32_iovecp_t iovp, int iovcnt, \
                   netbsd32_u_long off_lo, netbsd32_u_long off_hi); }
334     STD     { int|linux32_sys||pwritev(int fd, \
                   const netbsd32_iovecp_t iovp, int iovcnt, \
                   netbsd32_u_long off_lo, netbsd32_u_long off_hi); }
335     UNIMPL  rt_tgsigqueueinfo
336     UNIMPL  perf_counter_open
337     UNIMPL  recvmmsg
338     UNIMPL  fanotify_init
339     UNIMPL  fanotify_mark
340     STD     { int|linux32_sys||prlimit64(pid_t pid, int which, \
                   netbsd32_rlimitp_t new_rlp, netbsd32_rlimitp_t old_rlp); }
341     UNIMPL  name_to_handle_at
342     UNIMPL  open_by_handle_at
343     UNIMPL  clock_adjtime
344     UNIMPL  syncfs
345     UNIMPL  sendmmsg
346     UNIMPL  setns
347     UNIMPL  process_vm_readv
348     UNIMPL  process_vm_writev
349     UNIMPL  kcmp
350     UNIMPL  finit_module