syscalls.master revision 1.68 1 $NetBSD: syscalls.master,v 1.68 2023/07/10 02:31:55 christos Exp $
2
3 ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
4
5 ; NetBSD amd64 COMPAT_LINUX system call name/number "master" file.
6 ; (See syscalls.conf to see what it is processed into.)
7 ;
8 ; Fields: number type [type-dependent ...]
9 ; number system call number, must be in order
10 ; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
11 ; the compatibility options defined in syscalls.conf.
12 ;
13 ; types:
14 ; STD always included
15 ; OBSOL obsolete, not included in system
16 ; UNIMPL unimplemented, not included in system
17 ; NODEF included, but don't define the syscall number
18 ; NOARGS included, but don't define the syscall args structure
19 ; INDIR included, but don't define the syscall args structure
20 ; and allow it to be "really" varargs.
21 ;
22 ; The compat options are defined in the syscalls.conf file, and the
23 ; compat option name is prefixed to the syscall name. Other than
24 ; that, they're like NODEF (for 'compat' options), or STD (for
25 ; 'libcompat' options).
26 ;
27 ; The type-dependent arguments are as follows:
28 ; For STD, NODEF, NOARGS, and compat syscalls:
29 ; { pseudo-proto } [alias]
30 ; For other syscalls:
31 ; [comment]
32 ;
33 ; #ifdef's, etc. may be included, and are copied to the output files.
34 ; #include's are copied to the syscall names and switch definition files only.
35
36 #if defined(_KERNEL_OPT)
37 #include "opt_sysv.h"
38 #include "opt_compat_43.h"
39 #include "opt_compat_netbsd.h"
40 #endif
41
42
43 #include <sys/param.h>
44 #include <sys/poll.h>
45 #include <sys/systm.h>
46 #include <sys/signal.h>
47 #include <sys/mount.h>
48 #include <sys/syscallargs.h>
49 #include <sys/time.h>
50
51 #include <compat/sys/time.h>
52
53 #include <compat/linux/common/linux_types.h>
54 #include <compat/linux/common/linux_mmap.h>
55 #include <compat/linux/common/linux_ipc.h>
56 #include <compat/linux/common/linux_msg.h>
57 #include <compat/linux/common/linux_sem.h>
58 #include <compat/linux/common/linux_shm.h>
59 #include <compat/linux/common/linux_signal.h>
60 #include <compat/linux/common/linux_siginfo.h>
61 #include <compat/linux/common/linux_machdep.h>
62
63 #include <compat/linux/linux_syscallargs.h>
64
65 %%
66
67 0 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); }
68 1 NOARGS { ssize_t|sys||write(int fd, const void *buf, \
69 size_t nbyte); }
70 2 STD { int|linux_sys||open(const char *path, int flags, \
71 linux_umode_t mode); }
72 3 NOARGS { int|sys||close(int fd); }
73 4 STD { int|linux_sys||stat64(const char *path, \
74 struct linux_stat64 *sp); }
75 5 STD { int|linux_sys||fstat64(int fd, \
76 struct linux_stat64 *sp); }
77 6 STD { int|linux_sys||lstat64(const char *path, \
78 struct linux_stat64 *sp); }
79 7 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \
80 int timeout); }
81 8 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \
82 int whence); }
83 9 NOARGS { linux_off_t|linux_sys||mmap(unsigned long addr, \
84 size_t len, int prot, int flags, int fd, \
85 linux_off_t offset); }
86 10 STD { int|linux_sys||mprotect(const void *start, \
87 unsigned long len, int prot); }
88 11 NOARGS { int|sys||munmap(void *addr, size_t len); }
89 12 STD { int|linux_sys||brk(char *nsize); }
90 13 STD { int|linux_sys||rt_sigaction(int signum, \
91 const struct linux_sigaction *nsa, \
92 struct linux_sigaction *osa, \
93 size_t sigsetsize); }
94 14 STD { int|linux_sys||rt_sigprocmask(int how, \
95 const linux_sigset_t *set, \
96 linux_sigset_t *oset, \
97 size_t sigsetsize); }
98 15 NOARGS { int|linux_sys||rt_sigreturn(void); }
99 16 STD { int|linux_sys||ioctl(int fd, u_long com, \
100 void *data); }
101 17 STD { int|linux_sys||pread(int fd, char *buf, \
102 size_t nbyte, off_t offset); }
103 18 STD { int|linux_sys||pwrite(int fd, char *buf, \
104 size_t nbyte, off_t offset); }
105 19 NOARGS { ssize_t|sys||readv(int fd, \
106 const struct iovec *iovp, int iovcnt); }
107 20 NOARGS { ssize_t|sys||writev(int fd, \
108 const struct iovec *iovp, int iovcnt); }
109 21 NOARGS { int|sys||access(const char *path, int flags); }
110 22 STD { int|linux_sys||pipe(int *pfds); }
111 23 STD { int|linux_sys||select(int nfds, fd_set *readfds, \
112 fd_set *writefds, fd_set *exceptfds, \
113 struct timeval50 *timeout); }
114 24 STD { int|linux_sys||sched_yield(void); }
115 25 STD { void *|linux_sys||mremap(void *old_address, \
116 size_t old_size, size_t new_size, u_long flags); }
117 26 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); }
118 27 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); }
119 28 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); }
120 #ifdef SYSVSHM
121 29 NOARGS { int|linux_sys||shmget(key_t key, size_t size, \
122 int shmflg); }
123 30 NOARGS { int|sys||shmat(int shmid, void *shmaddr, int shmflg); }
124 31 NOARGS { int|linux_sys||shmctl(int shmid, int cmd, \
125 struct linux_shmid_ds *buf); }
126 #else
127 29 UNIMPL shmget
128 30 UNIMPL shmat
129 31 UNIMPL shmctl
130 #endif
131 32 NOARGS { int|sys||dup(int fd); }
132 33 NOARGS { int|sys||dup2(int from, int to); }
133 34 STD { int|linux_sys||pause(void); }
134 35 STD { int|linux_sys||nanosleep( \
135 const struct linux_timespec *rqtp, \
136 struct linux_timespec *rmtp); }
137 36 NOARGS { int|compat_50_sys||getitimer(int which, \
138 struct itimerval50 *itv); }
139 37 STD { int|linux_sys||alarm(unsigned int secs); }
140 38 NOARGS { int|compat_50_sys||setitimer(int which, \
141 struct itimerval50 *itv, \
142 struct itimerval50 *oitv); }
143 39 STD { pid_t|sys||getpid(void); }
144 40 UNIMPL sendfile
145 41 STD { int|linux_sys||socket(int domain, \
146 int type, int protocol); }
147 42 STD { int|linux_sys||connect(int s, \
148 const struct osockaddr *name, \
149 unsigned int namelen); }
150 43 STD { int|linux_sys||accept(int s, struct osockaddr *name, \
151 int *anamelen); } oaccept
152 44 STD { ssize_t|linux_sys||sendto(int s, void *msg, int len, \
153 int flags, struct osockaddr *to, int tolen); }
154 45 STD { ssize_t|linux_sys||recvfrom(int s, void *buf, \
155 size_t len, int flags, struct osockaddr *from, \
156 unsigned int *fromlenaddr); }
157 46 STD { int|linux_sys||sendmsg(int s, \
158 const struct linux_msghdr *msg, int flags); }
159 47 STD { ssize_t|linux_sys||recvmsg(int s, \
160 struct linux_msghdr *msg, int flags); }
161 48 NOARGS { int|sys||shutdown(int s, int how); }
162 49 STD { int|linux_sys||bind(int s, \
163 const struct osockaddr *name, \
164 unsigned int namelen); }
165 50 NOARGS { int|sys||listen(int s, int backlog); }
166 51 STD { int|linux_sys||getsockname(int fdec, void *asa, \
167 int *alen); }
168 52 STD { int|linux_sys||getpeername(int fdes, \
169 struct sockaddr *asa, unsigned int *alen); }
170 53 STD { int|linux_sys||socketpair(int domain, int type, \
171 int protocol, int *rsv); }
172 54 STD { int|linux_sys||setsockopt(int s, int level, \
173 int optname, void *optval, int optlen); }
174 55 STD { int|linux_sys||getsockopt(int s, int level, \
175 int optname, void *optval, int *optlen); }
176 56 STD { int|linux_sys||clone(int flags, void *stack, \
177 void *parent_tidptr, void *child_tidptr, void *tls); }
178 57 NOARGS { int|sys||fork(void); }
179 58 NOARGS { int|sys|14|vfork(void); }
180 59 NOARGS { int|sys||execve(const char *path, char **argp, \
181 char **envp); }
182 60 STD { int|linux_sys||exit(int rval); }
183 61 STD { int|linux_sys||wait4(int pid, int *status, \
184 int options, struct rusage50 *rusage); }
185 62 STD { int|linux_sys||kill(int pid, int signum); }
186 63 STD { int|linux_sys||uname(struct linux_utsname *up); }
187 #ifdef SYSVSEM
188 64 NOARGS { int|sys||semget(key_t key, int nsems, int semflg); }
189 65 NOARGS { int|sys||semop(int semid, struct sembuf *sops, \
190 size_t nsops); }
191 66 STD { int|linux_sys||semctl(int semid, int semnum, \
192 int cmd, union linux_semun arg); }
193 #else
194 64 UNIMPL semget
195 65 UNIMPL semop
196 66 UNIMPL semctl
197 #endif
198 #ifdef SYSVSHM
199 67 NOARGS { int|sys||shmdt(const void *shmaddr); }
200 #else
201 67 UNIMPL shmdt
202 #endif
203 #ifdef SYSVMSG
204 68 NOARGS { int|sys||msgget(key_t key, int msgflg); }
205 69 NOARGS { int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \
206 int msgflg); }
207 70 NOARGS { ssize_t|sys||msgrcv(int msqid, void *msgp, \
208 size_t msgsz, long msgtyp, int msgflg); }
209 71 NOARGS { int|linux_sys||msgctl(int msqid, int cmd, \
210 struct linux_msqid_ds *buf); }
211 #else
212 68 UNIMPL msgget
213 69 UNIMPL msgsnd
214 70 UNIMPL msgrcv
215 71 UNIMPL msgctl
216 #endif
217 72 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); }
218 73 NOARGS { int|sys||flock(int fd, int how); }
219 74 NOARGS { int|sys||fsync(int fd); }
220 75 STD { int|linux_sys||fdatasync(int fd); }
221 76 STD { int|linux_sys||truncate64(const char *path, \
222 off_t length); }
223 77 STD { int|linux_sys||ftruncate64(unsigned int fd, \
224 off_t length); }
225 78 STD { int|linux_sys||getdents(int fd, \
226 struct linux_dirent *dent, unsigned int count); }
227 79 NOARGS { int|sys||__getcwd(char *bufp, size_t length); }
228 80 NOARGS { int|sys||chdir(const char *path); }
229 81 NOARGS { int|sys||fchdir(int fd); }
230 82 NOARGS { int|sys||__posix_rename(const char *from, \
231 const char *to); }
232 83 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); }
233 84 NOARGS { int|sys||rmdir(const char *path); }
234 85 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); }
235 86 NOARGS { int|sys||link(const char *path, const char *link); }
236 87 STD { int|linux_sys||unlink(const char *path); }
237 88 NOARGS { int|sys||symlink(const char *path, const char *link); }
238 89 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \
239 int count); }
240 90 NOARGS { int|sys||chmod(const char *path, linux_umode_t mode); }
241 91 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); }
242 92 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \
243 gid_t gid); }
244 93 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \
245 gid_t gid); }
246 94 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \
247 gid_t gid); }
248 95 NOARGS { int|sys||umask(int newmask); }
249 96 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \
250 struct timezone *tzp); }
251 97 STD { int|linux_sys||getrlimit(int which, \
252 struct rlimit *rlp); }
253 98 NOARGS { int|compat_50_sys||getrusage(int who, \
254 struct rusage50 *rusage); }
255 99 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); }
256 100 STD { int|linux_sys||times(struct times *tms); }
257 101 STD { int|linux_sys||ptrace(long request, long pid, \
258 long addr, long data); }
259 102 NOARGS { uid_t|sys||getuid(void); }
260 103 UNIMPL syslog
261 104 NOARGS { gid_t|sys||getgid(void); }
262 105 NOARGS { int|sys||setuid(uid_t uid); }
263 106 NOARGS { int|sys||setgid(gid_t gid); }
264 107 NOARGS { uid_t|sys||geteuid(void); }
265 108 NOARGS { gid_t|sys||getegid(void); }
266 109 NOARGS { int|sys||setpgid(int pid, int pgid); }
267 110 STD { pid_t|sys||getppid(void); }
268 111 NOARGS { int|sys||getpgrp(void); }
269 112 NOARGS { int|sys||setsid(void); }
270 113 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); }
271 114 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); }
272 115 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); }
273 116 NOARGS { int|sys||setgroups(int gidsetsize, gid_t *gidset); }
274 117 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \
275 uid_t suid); }
276 118 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \
277 uid_t *suid); }
278 119 STD { int|linux_sys||setresgid(gid_t rgid, gid_t egid, \
279 gid_t sgid); }
280 120 STD { int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \
281 gid_t *sgid); }
282 121 NOARGS { pid_t|sys||getpgid(pid_t pid); }
283 122 STD { int|linux_sys||setfsuid(uid_t uid); }
284 123 STD { int|linux_sys||setfsgid(gid_t gid); }
285 124 NOARGS { pid_t|sys||getsid(pid_t pid); }
286 125 UNIMPL capget
287 126 UNIMPL capset
288 127 STD { int|linux_sys||rt_sigpending( \
289 linux_sigset_t *set, \
290 size_t sigsetsize); }
291 128 STD { int|linux_sys||rt_sigtimedwait( \
292 const linux_sigset_t *set, \
293 linux_siginfo_t *info, \
294 const struct linux_timespec *timeout); }
295 129 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \
296 linux_siginfo_t *uinfo); }
297 130 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \
298 size_t sigsetsize); }
299 131 STD { int|linux_sys||sigaltstack( \
300 const struct linux_sigaltstack *ss, \
301 struct linux_sigaltstack *oss); }
302 132 STD { int|linux_sys||utime(const char *path, \
303 struct linux_utimbuf *times); }
304 133 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \
305 unsigned dev); }
306 #ifdef EXEC_AOUT
307 134 STD { int|linux_sys||uselib(const char *path); }
308 #else
309 134 UNIMPL sys_uselib
310 #endif
311 135 STD { int|linux_sys||personality(unsigned long per); }
312 136 UNIMPL ustat
313 137 STD { int|linux_sys||statfs(const char *path, \
314 struct linux_statfs *sp); }
315 138 STD { int|linux_sys||fstatfs(int fd, \
316 struct linux_statfs *sp); }
317 139 UNIMPL sysfs
318 140 STD { int|linux_sys||getpriority(int which, int who); }
319 141 NOARGS { int|sys||setpriority(int which, int who, int prio); }
320 142 STD { int|linux_sys||sched_setparam(pid_t pid, \
321 const struct linux_sched_param *sp); }
322 143 STD { int|linux_sys||sched_getparam(pid_t pid, \
323 struct linux_sched_param *sp); }
324 144 STD { int|linux_sys||sched_setscheduler(pid_t pid, \
325 int policy, const struct linux_sched_param *sp); }
326 145 STD { int|linux_sys||sched_getscheduler(pid_t pid); }
327 146 STD { int|linux_sys||sched_get_priority_max(int policy); }
328 147 STD { int|linux_sys||sched_get_priority_min(int policy); }
329 148 UNIMPL sys_sched_rr_get_interval
330 149 NOARGS { int|sys||mlock(void *addr, size_t len); }
331 150 NOARGS { int|sys||munlock(void *addr, size_t len); }
332 151 NOARGS { int|sys||mlockall(int flags); }
333 152 NOARGS { int|sys||munlockall(void); }
334 153 UNIMPL vhangup
335 154 STD { int|linux_sys||modify_ldt(int func, void *ptr, \
336 size_t bytecount); }
337 155 UNIMPL pivot_root
338 156 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); }
339 157 UNIMPL prctl
340 158 STD { int|linux_sys||arch_prctl(int code, \
341 unsigned long addr); }
342 159 UNIMPL adjtimex
343 160 STD { int|linux_sys||setrlimit(u_int which, \
344 struct rlimit *rlp); }
345 161 NOARGS { int|sys||chroot(char *path); }
346 162 NOARGS { int|sys||sync(void); }
347 163 NOARGS { int|sys||acct(char *path); }
348 164 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \
349 struct timezone *tzp); }
350 165 UNIMPL mount
351 166 UNIMPL umount2
352 167 STD { int|linux_sys||swapon(char *name); }
353 168 STD { int|linux_sys||swapoff(const char *path); }
354 169 STD { int|linux_sys||reboot(int magic1, int magic2, \
355 int cmd, void *arg); }
356 170 NOARGS { int|compat_43_sys||sethostname(char *hostname, \
357 u_int len);}
358 171 STD { int|linux_sys||setdomainname(char *domainname, \
359 int len); }
360 172 STD { int|linux_sys||iopl(int level); }
361 173 STD { int|linux_sys||ioperm(unsigned int lo, \
362 unsigned int hi, int val); }
363 174 UNIMPL create_module
364 175 UNIMPL init_module
365 176 UNIMPL delete_module
366 177 UNIMPL get_kernel_syms
367 178 UNIMPL query_module
368 179 UNIMPL quotactl
369 180 UNIMPL nfsservctl
370 181 UNIMPL getpmsg
371 182 UNIMPL putpmsg
372 183 UNIMPL afs_syscall
373 184 UNIMPL tuxcall
374 185 UNIMPL security
375 186 STD { pid_t|linux_sys||gettid(void); }
376 187 UNIMPL readahead
377 188 STD { int|linux_sys||setxattr(char *path, char *name, \
378 void *value, size_t size, int flags); }
379 189 STD { int|linux_sys||lsetxattr(char *path, char *name, \
380 void *value, size_t size, int flags); }
381 190 STD { int|linux_sys||fsetxattr(int fd, char *name, \
382 void *value, size_t size, int flags); }
383 191 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \
384 void *value, size_t size); }
385 192 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \
386 void *value, size_t size); }
387 193 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \
388 void *value, size_t size); }
389 194 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \
390 size_t size); }
391 195 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \
392 size_t size); }
393 196 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \
394 size_t size); }
395 197 STD { int|linux_sys||removexattr(char *path, char *name); }
396 198 STD { int|linux_sys||lremovexattr(char *path, char *name); }
397 199 STD { int|linux_sys||fremovexattr(int fd, char *name); }
398 200 STD { int|linux_sys||tkill(int tid, int sig); }
399 201 STD { int|linux_sys||time(linux_time_t *t); }
400 202 STD { int|linux_sys||futex(int *uaddr, int op, int val, \
401 const struct linux_timespec *timeout, int *uaddr2, \
402 int val3); }
403 203 STD { int|linux_sys||sched_setaffinity(pid_t pid, \
404 unsigned int len, unsigned long *mask); }
405 204 STD { int|linux_sys||sched_getaffinity(pid_t pid, \
406 unsigned int len, unsigned long *mask); }
407 205 UNIMPL set_thread_area
408 206 UNIMPL io_setup
409 207 UNIMPL io_destroy
410 208 UNIMPL io_getevents
411 209 UNIMPL io_submit
412 210 UNIMPL io_cancel
413 211 UNIMPL get_thread_area
414 212 UNIMPL lookup_dcookie
415 213 UNIMPL epoll_create
416 214 UNIMPL epoll_ctl_old
417 215 UNIMPL epoll_wait_old
418 216 UNIMPL remap_file_pages
419 217 STD { int|linux_sys||getdents64(int fd, \
420 struct linux_dirent64 *dent, unsigned int count); }
421 218 STD { int|linux_sys||set_tid_address(int *tid); }
422 219 UNIMPL restart_syscall
423 220 UNIMPL semtimedop
424 221 STD { int|linux_sys||fadvise64(int fd, off_t offset, \
425 size_t len, int advice); }
426 222 STD { int|linux_sys||timer_create(clockid_t clockid, \
427 struct linux_sigevent *evp, timer_t *timerid); }
428 223 STD { int|linux_sys||timer_settime(timer_t timerid, \
429 int flags, const struct linux_itimerspec *tim, \
430 struct linux_itimerspec *otim); }
431 224 STD { int|linux_sys||timer_gettime(timer_t timerid, \
432 struct linux_itimerspec *tim); }
433 225 NOARGS { int|sys||timer_getoverrun(timer_t timerid); }
434 226 NOARGS { int|sys||timer_delete(timer_t timerid); }
435 227 STD { int|linux_sys||clock_settime(clockid_t which, \
436 struct linux_timespec *tp); }
437 228 STD { int|linux_sys||clock_gettime(clockid_t which, \
438 struct linux_timespec *tp); }
439 229 STD { int|linux_sys||clock_getres(clockid_t which, \
440 struct linux_timespec *tp); }
441 230 STD { int|linux_sys||clock_nanosleep(clockid_t which, \
442 int flags, struct linux_timespec *rqtp, \
443 struct linux_timespec *rmtp); }
444 231 STD { int|linux_sys||exit_group(int error_code); }
445 232 UNIMPL epoll_wait
446 233 UNIMPL epoll_ctl
447 234 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); }
448 235 NOARGS { int|compat_50_sys||utimes(const char *path, \
449 const struct timeval50 *tptr); }
450 236 UNIMPL vserver
451 237 UNIMPL mbind
452 238 UNIMPL set_mempolicy
453 239 UNIMPL get_mempolicy
454 240 UNIMPL mq_open
455 241 UNIMPL mq_unlink
456 242 UNIMPL mq_timedsend
457 243 UNIMPL mq_timedreceive
458 244 UNIMPL mq_notify
459 245 UNIMPL mq_getsetattr
460 246 UNIMPL kexec_load
461 247 UNIMPL waitid
462 248 UNIMPL add_key
463 249 UNIMPL request_key
464 250 UNIMPL keyctl
465 251 UNIMPL ioprio_set
466 252 UNIMPL ioprio_get
467 253 UNIMPL inotify_init
468 254 UNIMPL inotify_add_watch
469 255 UNIMPL inotify_rm_watch
470 256 UNIMPL migrate_pages
471 257 STD { int|linux_sys||openat(int fd, const char *path, \
472 int flags, ... linux_umode_t mode); }
473 258 NOARGS { int|sys||mkdirat(int fd, const char *path, \
474 linux_umode_t mode); }
475 259 STD { int|linux_sys||mknodat(int fd, const char *path, \
476 linux_umode_t mode, unsigned dev); }
477 260 STD { int|linux_sys||fchownat(int fd, const char *path, \
478 uid_t owner, gid_t group, int flag); }
479 261 UNIMPL futimesat
480 262 STD { int|linux_sys||fstatat64(int fd, const char *path, \
481 struct linux_stat *sp, int flag); }
482 263 STD { int|linux_sys||unlinkat(int fd, const char *path, \
483 int flag); }
484 264 NOARGS { int|sys||renameat(int fromfd, const char *from, \
485 int tofd, const char *to); }
486 265 STD { int|linux_sys||linkat(int fd1, const char *name1, \
487 int fd2, const char *name2, int flags); }
488 266 NOARGS { int|sys||symlinkat(const char *path1, int fd, \
489 const char *path2); }
490 267 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \
491 char *buf, size_t bufsize); }
492 268 STD { int|linux_sys||fchmodat(int fd, const char *path, \
493 linux_umode_t mode); }
494 269 STD { int|linux_sys||faccessat(int fd, const char *path, \
495 int amode); }
496 270 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \
497 fd_set *writefds, fd_set *exceptfds, \
498 struct linux_timespec *timeout, \
499 linux_sized_sigset_t *ss); }
500 271 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \
501 struct linux_timespec *timeout, \
502 linux_sigset_t *sigset); }
503 272 UNIMPL unshare
504 ;
505 ; The NetBSD native robust list calls have different
506 ; argument names / types, but they are ABI-compatible
507 ; with Linux.
508 ;
509 273 NOARGS { int|sys||__futex_set_robust_list(void *head, \
510 size_t len); }
511 274 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \
512 void **headp, size_t *lenp); }
513 275 UNIMPL splice
514 276 UNIMPL tee
515 277 UNIMPL sync_file_range
516 278 UNIMPL vmsplice
517 279 UNIMPL move_pages
518 280 STD { int|linux_sys||utimensat(int fd, const char *path, \
519 struct linux_timespec *times, int flag); }
520 281 UNIMPL epoll_pwait
521 282 UNIMPL signalfd
522 283 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \
523 int flags); }
524 284 STD { int|linux_sys||eventfd(unsigned int initval); }
525 285 STD { int|linux_sys||fallocate(int fd, int mode, \
526 off_t offset, off_t len); }
527 286 STD { int|linux_sys||timerfd_settime(int fd, int flags, \
528 const struct linux_itimerspec *tim, \
529 struct linux_itimerspec *otim); }
530 287 STD { int|linux_sys||timerfd_gettime(int fd, \
531 struct linux_itimerspec *tim); }
532 288 STD { int|linux_sys||accept4(int s, \
533 struct osockaddr *name, \
534 int *anamelen, int flags); }
535 289 UNIMPL signalfd4
536 290 STD { int|linux_sys||eventfd2(unsigned int initval, \
537 int flags); }
538 291 UNIMPL epoll_create1
539 292 STD { int|linux_sys||dup3(int from, int to, int flags); }
540 293 STD { int|linux_sys||pipe2(int *pfds, int flags); }
541 294 UNIMPL inotify_init1
542 295 STD { int|linux_sys||preadv(int fd, \
543 const struct iovec *iovp, int iovcnt, \
544 unsigned long off_lo, unsigned long off_hi); }
545 296 STD { int|linux_sys||pwritev(int fd, \
546 const struct iovcnt *iovp, int iovcnt, \
547 unsigned long off_lo, unsigned long off_hi); }
548 297 UNIMPL rt_tgsigqueueinfo
549 298 UNIMPL perf_counter_open
550 299 STD { int|linux_sys||recvmmsg(int s, \
551 struct linux_mmsghdr *msgvec, unsigned int vlen, \
552 unsigned int flags, struct timespec *timeout); }
553 300 UNIMPL fanotify_init
554 301 UNIMPL fanotify_mark
555 302 STD { int|linux_sys||prlimit64(pid_t pid, int which, \
556 struct rlimit *new_rlp, struct rlimit *old_rlp); }
557 303 UNIMPL name_to_handle_at
558 304 UNIMPL open_by_handle_at
559 305 UNIMPL clock_adjtime
560 306 UNIMPL syncfs
561 307 STD { int|linux_sys||sendmmsg(int s, \
562 struct linux_mmsghdr *msgvec, unsigned int vlen, \
563 unsigned int flags); }
564 308 UNIMPL setns
565 309 UNIMPL getcpu
566 310 UNIMPL process_vm_readv
567 311 UNIMPL process_vm_writev
568 312 UNIMPL kcmp
569 313 UNIMPL finit_module
570 314 UNIMPL sched_setattr
571 315 UNIMPL sched_getattr
572 316 UNIMPL renameat2
573 317 UNIMPL seccomp
574 318 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \
575 unsigned int flags); }
576 319 STD { int|linux_sys||memfd_create(const char *name, \
577 unsigned int flags); }
578 320 UNIMPL kexec_file_load
579 321 UNIMPL bpf
580 322 UNIMPL execveat
581 323 UNIMPL userfaultfd
582 324 UNIMPL membarrier
583 325 UNIMPL mlock2
584 326 UNIMPL copy_file_range
585 327 UNIMPL preadv2
586 328 UNIMPL pwritev2
587 329 UNIMPL pkey_mprotect
588 330 UNIMPL pkey_alloc
589 331 UNIMPL pkey_free
590 332 UNIMPL statx
591 333 UNIMPL io_pgetevents
592 334 UNIMPL rseq
593 335 UNIMPL
594 336 UNIMPL
595 337 UNIMPL
596 338 UNIMPL
597 339 UNIMPL
598 340 UNIMPL
599 341 UNIMPL
600 342 UNIMPL
601 343 UNIMPL
602 344 UNIMPL
603 345 UNIMPL
604 346 UNIMPL
605 347 UNIMPL
606 348 UNIMPL
607 349 UNIMPL
608 350 UNIMPL
609 351 UNIMPL
610 352 UNIMPL
611 353 UNIMPL
612 354 UNIMPL
613 355 UNIMPL
614 356 UNIMPL
615 357 UNIMPL
616 358 UNIMPL
617 359 UNIMPL
618 360 UNIMPL
619 361 UNIMPL
620 362 UNIMPL
621 363 UNIMPL
622 364 UNIMPL
623 365 UNIMPL
624 366 UNIMPL
625 367 UNIMPL
626 368 UNIMPL
627 369 UNIMPL
628 370 UNIMPL
629 371 UNIMPL
630 372 UNIMPL
631 373 UNIMPL
632 374 UNIMPL
633 375 UNIMPL
634 376 UNIMPL
635 377 UNIMPL
636 378 UNIMPL
637 379 UNIMPL
638 380 UNIMPL
639 381 UNIMPL
640 382 UNIMPL
641 383 UNIMPL
642 384 UNIMPL
643 385 UNIMPL
644 386 UNIMPL
645 387 UNIMPL
646 388 UNIMPL
647 389 UNIMPL
648 390 UNIMPL
649 391 UNIMPL
650 392 UNIMPL
651 393 UNIMPL
652 394 UNIMPL
653 395 UNIMPL
654 396 UNIMPL
655 397 UNIMPL
656 398 UNIMPL
657 399 UNIMPL
658 400 UNIMPL
659 401 UNIMPL
660 402 UNIMPL
661 403 UNIMPL
662 404 UNIMPL
663 405 UNIMPL
664 406 UNIMPL
665 407 UNIMPL
666 408 UNIMPL
667 409 UNIMPL
668 410 UNIMPL
669 411 UNIMPL
670 412 UNIMPL
671 413 UNIMPL
672 414 UNIMPL
673 415 UNIMPL
674 416 UNIMPL
675 417 UNIMPL
676 418 UNIMPL
677 419 UNIMPL
678 420 UNIMPL
679 421 UNIMPL
680 422 UNIMPL
681 423 UNIMPL
682 424 UNIMPL pidfd_send_signal
683 425 UNIMPL io_uring_setup
684 426 UNIMPL io_uring_enter
685 427 UNIMPL io_uring_register
686 428 UNIMPL open_tree
687 429 UNIMPL move_mount
688 430 UNIMPL fsopen
689 431 UNIMPL fsconfig
690 432 UNIMPL fsmount
691 433 UNIMPL fspick
692 434 UNIMPL pidfd_open
693 435 UNIMPL clone3
694 436 UNIMPL close_range
695 437 UNIMPL openat2
696 438 UNIMPL pidfd_getfd
697 439 UNIMPL faccessat2
698 440 UNIMPL process_madvise
699 441 UNIMPL epoll_pwait2
700 442 UNIMPL mount_setattr
701 443 UNIMPL quotactl_fd
702 444 UNIMPL landlock_create_ruleset
703 445 UNIMPL landlock_add_rule
704 446 UNIMPL landlock_restrict_self
705 447 UNIMPL memfd_secret
706 448 UNIMPL process_mrelease
707 449 UNIMPL futex_waitv
708 450 UNIMPL set_mempolicy_home_node
709
710 ; we want a "nosys" syscall, we'll just add an extra entry for it.
711 451 STD { int|linux_sys||nosys(void); }
712