1 $NetBSD: syscalls.master,v 1.70 2023/07/29 15:04:28 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_misc.h> 55#include <compat/linux/common/linux_mmap.h> 56#include <compat/linux/common/linux_ipc.h> 57#include <compat/linux/common/linux_msg.h> 58#include <compat/linux/common/linux_sem.h> 59#include <compat/linux/common/linux_shm.h> 60#include <compat/linux/common/linux_signal.h> 61#include <compat/linux/common/linux_siginfo.h> 62#include <compat/linux/common/linux_machdep.h> 63 64#include <compat/linux/linux_syscallargs.h> 65 66%% 67 680 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 691 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 70 size_t nbyte); } 712 STD { int|linux_sys||open(const char *path, int flags, \ 72 linux_umode_t mode); } 733 NOARGS { int|sys||close(int fd); } 744 STD { int|linux_sys||stat64(const char *path, \ 75 struct linux_stat64 *sp); } 765 STD { int|linux_sys||fstat64(int fd, \ 77 struct linux_stat64 *sp); } 786 STD { int|linux_sys||lstat64(const char *path, \ 79 struct linux_stat64 *sp); } 807 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 81 int timeout); } 828 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 83 int whence); } 849 NOARGS { linux_off_t|linux_sys||mmap(unsigned long addr, \ 85 size_t len, int prot, int flags, int fd, \ 86 linux_off_t offset); } 8710 STD { int|linux_sys||mprotect(const void *start, \ 88 unsigned long len, int prot); } 8911 NOARGS { int|sys||munmap(void *addr, size_t len); } 9012 STD { int|linux_sys||brk(char *nsize); } 9113 STD { int|linux_sys||rt_sigaction(int signum, \ 92 const struct linux_sigaction *nsa, \ 93 struct linux_sigaction *osa, \ 94 size_t sigsetsize); } 9514 STD { int|linux_sys||rt_sigprocmask(int how, \ 96 const linux_sigset_t *set, \ 97 linux_sigset_t *oset, \ 98 size_t sigsetsize); } 9915 NOARGS { int|linux_sys||rt_sigreturn(void); } 10016 STD { int|linux_sys||ioctl(int fd, u_long com, \ 101 void *data); } 10217 STD { int|linux_sys||pread(int fd, char *buf, \ 103 size_t nbyte, off_t offset); } 10418 STD { int|linux_sys||pwrite(int fd, char *buf, \ 105 size_t nbyte, off_t offset); } 10619 NOARGS { ssize_t|sys||readv(int fd, \ 107 const struct iovec *iovp, int iovcnt); } 10820 NOARGS { ssize_t|sys||writev(int fd, \ 109 const struct iovec *iovp, int iovcnt); } 11021 NOARGS { int|sys||access(const char *path, int flags); } 11122 STD { int|linux_sys||pipe(int *pfds); } 11223 STD { int|linux_sys||select(int nfds, fd_set *readfds, \ 113 fd_set *writefds, fd_set *exceptfds, \ 114 struct timeval50 *timeout); } 11524 STD { int|linux_sys||sched_yield(void); } 11625 STD { void *|linux_sys||mremap(void *old_address, \ 117 size_t old_size, size_t new_size, u_long flags); } 11826 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 11927 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 12028 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 121#ifdef SYSVSHM 12229 NOARGS { int|linux_sys||shmget(key_t key, size_t size, \ 123 int shmflg); } 12430 NOARGS { int|sys||shmat(int shmid, void *shmaddr, int shmflg); } 12531 NOARGS { int|linux_sys||shmctl(int shmid, int cmd, \ 126 struct linux_shmid_ds *buf); } 127#else 12829 UNIMPL shmget 12930 UNIMPL shmat 13031 UNIMPL shmctl 131#endif 13232 NOARGS { int|sys||dup(int fd); } 13333 NOARGS { int|sys||dup2(int from, int to); } 13434 STD { int|linux_sys||pause(void); } 13535 STD { int|linux_sys||nanosleep( \ 136 const struct linux_timespec *rqtp, \ 137 struct linux_timespec *rmtp); } 13836 NOARGS { int|compat_50_sys||getitimer(int which, \ 139 struct itimerval50 *itv); } 14037 STD { int|linux_sys||alarm(unsigned int secs); } 14138 NOARGS { int|compat_50_sys||setitimer(int which, \ 142 struct itimerval50 *itv, \ 143 struct itimerval50 *oitv); } 14439 STD { pid_t|sys||getpid(void); } 14540 UNIMPL sendfile 14641 STD { int|linux_sys||socket(int domain, \ 147 int type, int protocol); } 14842 STD { int|linux_sys||connect(int s, \ 149 const struct osockaddr *name, \ 150 unsigned int namelen); } 15143 STD { int|linux_sys||accept(int s, struct osockaddr *name, \ 152 int *anamelen); } oaccept 15344 STD { ssize_t|linux_sys||sendto(int s, void *msg, int len, \ 154 int flags, struct osockaddr *to, int tolen); } 15545 STD { ssize_t|linux_sys||recvfrom(int s, void *buf, \ 156 size_t len, int flags, struct osockaddr *from, \ 157 unsigned int *fromlenaddr); } 15846 STD { int|linux_sys||sendmsg(int s, \ 159 const struct linux_msghdr *msg, int flags); } 16047 STD { ssize_t|linux_sys||recvmsg(int s, \ 161 struct linux_msghdr *msg, int flags); } 16248 NOARGS { int|sys||shutdown(int s, int how); } 16349 STD { int|linux_sys||bind(int s, \ 164 const struct osockaddr *name, \ 165 unsigned int namelen); } 16650 NOARGS { int|sys||listen(int s, int backlog); } 16751 STD { int|linux_sys||getsockname(int fdec, void *asa, \ 168 int *alen); } 16952 STD { int|linux_sys||getpeername(int fdes, \ 170 struct sockaddr *asa, unsigned int *alen); } 17153 STD { int|linux_sys||socketpair(int domain, int type, \ 172 int protocol, int *rsv); } 17354 STD { int|linux_sys||setsockopt(int s, int level, \ 174 int optname, void *optval, int optlen); } 17555 STD { int|linux_sys||getsockopt(int s, int level, \ 176 int optname, void *optval, int *optlen); } 17756 STD { int|linux_sys||clone(int flags, void *stack, \ 178 void *parent_tidptr, void *child_tidptr, void *tls); } 17957 NOARGS { int|sys||fork(void); } 18058 NOARGS { int|sys|14|vfork(void); } 18159 NOARGS { int|sys||execve(const char *path, char **argp, \ 182 char **envp); } 18360 STD { int|linux_sys||exit(int rval); } 18461 STD { int|linux_sys||wait4(int pid, int *status, \ 185 int options, struct rusage50 *rusage); } 18662 STD { int|linux_sys||kill(int pid, int signum); } 18763 STD { int|linux_sys||uname(struct linux_utsname *up); } 188#ifdef SYSVSEM 18964 NOARGS { int|sys||semget(key_t key, int nsems, int semflg); } 19065 NOARGS { int|sys||semop(int semid, struct sembuf *sops, \ 191 size_t nsops); } 19266 STD { int|linux_sys||semctl(int semid, int semnum, \ 193 int cmd, union linux_semun arg); } 194#else 19564 UNIMPL semget 19665 UNIMPL semop 19766 UNIMPL semctl 198#endif 199#ifdef SYSVSHM 20067 NOARGS { int|sys||shmdt(const void *shmaddr); } 201#else 20267 UNIMPL shmdt 203#endif 204#ifdef SYSVMSG 20568 NOARGS { int|sys||msgget(key_t key, int msgflg); } 20669 NOARGS { int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \ 207 int msgflg); } 20870 NOARGS { ssize_t|sys||msgrcv(int msqid, void *msgp, \ 209 size_t msgsz, long msgtyp, int msgflg); } 21071 NOARGS { int|linux_sys||msgctl(int msqid, int cmd, \ 211 struct linux_msqid_ds *buf); } 212#else 21368 UNIMPL msgget 21469 UNIMPL msgsnd 21570 UNIMPL msgrcv 21671 UNIMPL msgctl 217#endif 21872 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 21973 NOARGS { int|sys||flock(int fd, int how); } 22074 NOARGS { int|sys||fsync(int fd); } 22175 STD { int|linux_sys||fdatasync(int fd); } 22276 STD { int|linux_sys||truncate64(const char *path, \ 223 off_t length); } 22477 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 225 off_t length); } 22678 STD { int|linux_sys||getdents(int fd, \ 227 struct linux_dirent *dent, unsigned int count); } 22879 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 22980 NOARGS { int|sys||chdir(const char *path); } 23081 NOARGS { int|sys||fchdir(int fd); } 23182 NOARGS { int|sys||__posix_rename(const char *from, \ 232 const char *to); } 23383 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 23484 NOARGS { int|sys||rmdir(const char *path); } 23585 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 23686 NOARGS { int|sys||link(const char *path, const char *link); } 23787 STD { int|linux_sys||unlink(const char *path); } 23888 NOARGS { int|sys||symlink(const char *path, const char *link); } 23989 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 240 int count); } 24190 NOARGS { int|sys||chmod(const char *path, linux_umode_t mode); } 24291 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 24392 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \ 244 gid_t gid); } 24593 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \ 246 gid_t gid); } 24794 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 248 gid_t gid); } 24995 NOARGS { int|sys||umask(int newmask); } 25096 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 251 struct timezone *tzp); } 25297 STD { int|linux_sys||getrlimit(int which, \ 253 struct rlimit *rlp); } 25498 NOARGS { int|compat_50_sys||getrusage(int who, \ 255 struct rusage50 *rusage); } 25699 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 257100 STD { int|linux_sys||times(struct times *tms); } 258101 STD { int|linux_sys||ptrace(long request, long pid, \ 259 long addr, long data); } 260102 NOARGS { uid_t|sys||getuid(void); } 261103 UNIMPL syslog 262104 NOARGS { gid_t|sys||getgid(void); } 263105 NOARGS { int|sys||setuid(uid_t uid); } 264106 NOARGS { int|sys||setgid(gid_t gid); } 265107 NOARGS { uid_t|sys||geteuid(void); } 266108 NOARGS { gid_t|sys||getegid(void); } 267109 NOARGS { int|sys||setpgid(int pid, int pgid); } 268110 STD { pid_t|sys||getppid(void); } 269111 NOARGS { int|sys||getpgrp(void); } 270112 NOARGS { int|sys||setsid(void); } 271113 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); } 272114 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); } 273115 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); } 274116 NOARGS { int|sys||setgroups(int gidsetsize, gid_t *gidset); } 275117 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \ 276 uid_t suid); } 277118 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \ 278 uid_t *suid); } 279119 STD { int|linux_sys||setresgid(gid_t rgid, gid_t egid, \ 280 gid_t sgid); } 281120 STD { int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \ 282 gid_t *sgid); } 283121 NOARGS { pid_t|sys||getpgid(pid_t pid); } 284122 STD { int|linux_sys||setfsuid(uid_t uid); } 285123 STD { int|linux_sys||setfsgid(gid_t gid); } 286124 NOARGS { pid_t|sys||getsid(pid_t pid); } 287125 UNIMPL capget 288126 UNIMPL capset 289127 STD { int|linux_sys||rt_sigpending( \ 290 linux_sigset_t *set, \ 291 size_t sigsetsize); } 292128 STD { int|linux_sys||rt_sigtimedwait( \ 293 const linux_sigset_t *set, \ 294 linux_siginfo_t *info, \ 295 const struct linux_timespec *timeout); } 296129 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 297 linux_siginfo_t *uinfo); } 298130 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 299 size_t sigsetsize); } 300131 STD { int|linux_sys||sigaltstack( \ 301 const struct linux_sigaltstack *ss, \ 302 struct linux_sigaltstack *oss); } 303132 STD { int|linux_sys||utime(const char *path, \ 304 struct linux_utimbuf *times); } 305133 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 306 unsigned dev); } 307#ifdef EXEC_AOUT 308134 STD { int|linux_sys||uselib(const char *path); } 309#else 310134 UNIMPL sys_uselib 311#endif 312135 STD { int|linux_sys||personality(unsigned long per); } 313136 UNIMPL ustat 314137 STD { int|linux_sys||statfs(const char *path, \ 315 struct linux_statfs *sp); } 316138 STD { int|linux_sys||fstatfs(int fd, \ 317 struct linux_statfs *sp); } 318139 UNIMPL sysfs 319140 STD { int|linux_sys||getpriority(int which, int who); } 320141 NOARGS { int|sys||setpriority(int which, int who, int prio); } 321142 STD { int|linux_sys||sched_setparam(pid_t pid, \ 322 const struct linux_sched_param *sp); } 323143 STD { int|linux_sys||sched_getparam(pid_t pid, \ 324 struct linux_sched_param *sp); } 325144 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 326 int policy, const struct linux_sched_param *sp); } 327145 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 328146 STD { int|linux_sys||sched_get_priority_max(int policy); } 329147 STD { int|linux_sys||sched_get_priority_min(int policy); } 330148 UNIMPL sys_sched_rr_get_interval 331149 NOARGS { int|sys||mlock(void *addr, size_t len); } 332150 NOARGS { int|sys||munlock(void *addr, size_t len); } 333151 NOARGS { int|sys||mlockall(int flags); } 334152 NOARGS { int|sys||munlockall(void); } 335153 UNIMPL vhangup 336154 STD { int|linux_sys||modify_ldt(int func, void *ptr, \ 337 size_t bytecount); } 338155 UNIMPL pivot_root 339156 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 340157 UNIMPL prctl 341158 STD { int|linux_sys||arch_prctl(int code, \ 342 unsigned long addr); } 343159 UNIMPL adjtimex 344160 STD { int|linux_sys||setrlimit(u_int which, \ 345 struct rlimit *rlp); } 346161 NOARGS { int|sys||chroot(char *path); } 347162 NOARGS { int|sys||sync(void); } 348163 NOARGS { int|sys||acct(char *path); } 349164 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 350 struct timezone *tzp); } 351165 UNIMPL mount 352166 UNIMPL umount2 353167 STD { int|linux_sys||swapon(char *name); } 354168 STD { int|linux_sys||swapoff(const char *path); } 355169 STD { int|linux_sys||reboot(int magic1, int magic2, \ 356 int cmd, void *arg); } 357170 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 358 u_int len);} 359171 STD { int|linux_sys||setdomainname(char *domainname, \ 360 int len); } 361172 STD { int|linux_sys||iopl(int level); } 362173 STD { int|linux_sys||ioperm(unsigned int lo, \ 363 unsigned int hi, int val); } 364174 UNIMPL create_module 365175 UNIMPL init_module 366176 UNIMPL delete_module 367177 UNIMPL get_kernel_syms 368178 UNIMPL query_module 369179 UNIMPL quotactl 370180 UNIMPL nfsservctl 371181 UNIMPL getpmsg 372182 UNIMPL putpmsg 373183 UNIMPL afs_syscall 374184 UNIMPL tuxcall 375185 UNIMPL security 376186 STD { pid_t|linux_sys||gettid(void); } 377187 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 378 size_t count); } 379188 STD { int|linux_sys||setxattr(char *path, char *name, \ 380 void *value, size_t size, int flags); } 381189 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 382 void *value, size_t size, int flags); } 383190 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 384 void *value, size_t size, int flags); } 385191 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 386 void *value, size_t size); } 387192 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 388 void *value, size_t size); } 389193 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 390 void *value, size_t size); } 391194 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 392 size_t size); } 393195 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 394 size_t size); } 395196 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 396 size_t size); } 397197 STD { int|linux_sys||removexattr(char *path, char *name); } 398198 STD { int|linux_sys||lremovexattr(char *path, char *name); } 399199 STD { int|linux_sys||fremovexattr(int fd, char *name); } 400200 STD { int|linux_sys||tkill(int tid, int sig); } 401201 STD { int|linux_sys||time(linux_time_t *t); } 402202 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 403 const struct linux_timespec *timeout, int *uaddr2, \ 404 int val3); } 405203 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 406 unsigned int len, unsigned long *mask); } 407204 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 408 unsigned int len, unsigned long *mask); } 409205 UNIMPL set_thread_area 410206 UNIMPL io_setup 411207 UNIMPL io_destroy 412208 UNIMPL io_getevents 413209 UNIMPL io_submit 414210 UNIMPL io_cancel 415211 UNIMPL get_thread_area 416212 UNIMPL lookup_dcookie 417213 STD { int|linux_sys||epoll_create(int size); } 418214 UNIMPL epoll_ctl_old 419215 UNIMPL epoll_wait_old 420216 UNIMPL remap_file_pages 421217 STD { int|linux_sys||getdents64(int fd, \ 422 struct linux_dirent64 *dent, unsigned int count); } 423218 STD { int|linux_sys||set_tid_address(int *tid); } 424219 UNIMPL restart_syscall 425220 UNIMPL semtimedop 426221 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 427 size_t len, int advice); } 428222 STD { int|linux_sys||timer_create(clockid_t clockid, \ 429 struct linux_sigevent *evp, timer_t *timerid); } 430223 STD { int|linux_sys||timer_settime(timer_t timerid, \ 431 int flags, const struct linux_itimerspec *tim, \ 432 struct linux_itimerspec *otim); } 433224 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 434 struct linux_itimerspec *tim); } 435225 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 436226 NOARGS { int|sys||timer_delete(timer_t timerid); } 437227 STD { int|linux_sys||clock_settime(clockid_t which, \ 438 struct linux_timespec *tp); } 439228 STD { int|linux_sys||clock_gettime(clockid_t which, \ 440 struct linux_timespec *tp); } 441229 STD { int|linux_sys||clock_getres(clockid_t which, \ 442 struct linux_timespec *tp); } 443230 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 444 int flags, struct linux_timespec *rqtp, \ 445 struct linux_timespec *rmtp); } 446231 STD { int|linux_sys||exit_group(int error_code); } 447232 STD { int|linux_sys||epoll_wait(int epfd, \ 448 struct linux_epoll_event *events, int maxevents, \ 449 int timeout); } 450233 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 451 struct linux_epoll_event *event); } 452234 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 453235 NOARGS { int|compat_50_sys||utimes(const char *path, \ 454 const struct timeval50 *tptr); } 455236 UNIMPL vserver 456237 UNIMPL mbind 457238 UNIMPL set_mempolicy 458239 UNIMPL get_mempolicy 459240 UNIMPL mq_open 460241 UNIMPL mq_unlink 461242 UNIMPL mq_timedsend 462243 UNIMPL mq_timedreceive 463244 UNIMPL mq_notify 464245 UNIMPL mq_getsetattr 465246 UNIMPL kexec_load 466247 UNIMPL waitid 467248 UNIMPL add_key 468249 UNIMPL request_key 469250 UNIMPL keyctl 470251 UNIMPL ioprio_set 471252 UNIMPL ioprio_get 472253 UNIMPL inotify_init 473254 UNIMPL inotify_add_watch 474255 UNIMPL inotify_rm_watch 475256 UNIMPL migrate_pages 476257 STD { int|linux_sys||openat(int fd, const char *path, \ 477 int flags, ... linux_umode_t mode); } 478258 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 479 linux_umode_t mode); } 480259 STD { int|linux_sys||mknodat(int fd, const char *path, \ 481 linux_umode_t mode, unsigned dev); } 482260 STD { int|linux_sys||fchownat(int fd, const char *path, \ 483 uid_t owner, gid_t group, int flag); } 484261 UNIMPL futimesat 485262 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 486 struct linux_stat *sp, int flag); } 487263 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 488 int flag); } 489264 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 490 int tofd, const char *to); } 491265 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 492 int fd2, const char *name2, int flags); } 493266 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 494 const char *path2); } 495267 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 496 char *buf, size_t bufsize); } 497268 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 498 linux_umode_t mode); } 499269 STD { int|linux_sys||faccessat(int fd, const char *path, \ 500 int amode); } 501270 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 502 fd_set *writefds, fd_set *exceptfds, \ 503 struct linux_timespec *timeout, \ 504 linux_sized_sigset_t *ss); } 505271 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 506 struct linux_timespec *timeout, \ 507 linux_sigset_t *sigset); } 508272 UNIMPL unshare 509 ; 510 ; The NetBSD native robust list calls have different 511 ; argument names / types, but they are ABI-compatible 512 ; with Linux. 513 ; 514273 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 515 size_t len); } 516274 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 517 void **headp, size_t *lenp); } 518275 UNIMPL splice 519276 UNIMPL tee 520277 UNIMPL sync_file_range 521278 UNIMPL vmsplice 522279 UNIMPL move_pages 523280 STD { int|linux_sys||utimensat(int fd, const char *path, \ 524 struct linux_timespec *times, int flag); } 525281 STD { int|linux_sys||epoll_pwait(int epfd, \ 526 struct linux_epoll_event *events, int maxevents, \ 527 int timeout, const linux_sigset_t *sigmask); } 528282 UNIMPL signalfd 529283 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 530 int flags); } 531284 STD { int|linux_sys||eventfd(unsigned int initval); } 532285 STD { int|linux_sys||fallocate(int fd, int mode, \ 533 off_t offset, off_t len); } 534286 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 535 const struct linux_itimerspec *tim, \ 536 struct linux_itimerspec *otim); } 537287 STD { int|linux_sys||timerfd_gettime(int fd, \ 538 struct linux_itimerspec *tim); } 539288 STD { int|linux_sys||accept4(int s, \ 540 struct osockaddr *name, \ 541 int *anamelen, int flags); } 542289 UNIMPL signalfd4 543290 STD { int|linux_sys||eventfd2(unsigned int initval, \ 544 int flags); } 545291 STD { int|linux_sys||epoll_create1(int flags); } 546292 STD { int|linux_sys||dup3(int from, int to, int flags); } 547293 STD { int|linux_sys||pipe2(int *pfds, int flags); } 548294 UNIMPL inotify_init1 549295 STD { int|linux_sys||preadv(int fd, \ 550 const struct iovec *iovp, int iovcnt, \ 551 unsigned long off_lo, unsigned long off_hi); } 552296 STD { int|linux_sys||pwritev(int fd, \ 553 const struct iovcnt *iovp, int iovcnt, \ 554 unsigned long off_lo, unsigned long off_hi); } 555297 UNIMPL rt_tgsigqueueinfo 556298 UNIMPL perf_counter_open 557299 STD { int|linux_sys||recvmmsg(int s, \ 558 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 559 unsigned int flags, struct timespec *timeout); } 560300 UNIMPL fanotify_init 561301 UNIMPL fanotify_mark 562302 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 563 struct rlimit *new_rlp, struct rlimit *old_rlp); } 564303 UNIMPL name_to_handle_at 565304 UNIMPL open_by_handle_at 566305 UNIMPL clock_adjtime 567306 UNIMPL syncfs 568307 STD { int|linux_sys||sendmmsg(int s, \ 569 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 570 unsigned int flags); } 571308 UNIMPL setns 572309 UNIMPL getcpu 573310 UNIMPL process_vm_readv 574311 UNIMPL process_vm_writev 575312 UNIMPL kcmp 576313 UNIMPL finit_module 577314 UNIMPL sched_setattr 578315 UNIMPL sched_getattr 579316 UNIMPL renameat2 580317 UNIMPL seccomp 581318 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 582 unsigned int flags); } 583319 STD { int|linux_sys||memfd_create(const char *name, \ 584 unsigned int flags); } 585320 UNIMPL kexec_file_load 586321 UNIMPL bpf 587322 UNIMPL execveat 588323 UNIMPL userfaultfd 589324 UNIMPL membarrier 590325 UNIMPL mlock2 591326 UNIMPL copy_file_range 592327 UNIMPL preadv2 593328 UNIMPL pwritev2 594329 UNIMPL pkey_mprotect 595330 UNIMPL pkey_alloc 596331 UNIMPL pkey_free 597332 STD { int|linux_sys||statx(int fd, const char *path, \ 598 int flag, unsigned int mask, \ 599 struct linux_statx *sp); } 600333 UNIMPL io_pgetevents 601334 UNIMPL rseq 602335 UNIMPL 603336 UNIMPL 604337 UNIMPL 605338 UNIMPL 606339 UNIMPL 607340 UNIMPL 608341 UNIMPL 609342 UNIMPL 610343 UNIMPL 611344 UNIMPL 612345 UNIMPL 613346 UNIMPL 614347 UNIMPL 615348 UNIMPL 616349 UNIMPL 617350 UNIMPL 618351 UNIMPL 619352 UNIMPL 620353 UNIMPL 621354 UNIMPL 622355 UNIMPL 623356 UNIMPL 624357 UNIMPL 625358 UNIMPL 626359 UNIMPL 627360 UNIMPL 628361 UNIMPL 629362 UNIMPL 630363 UNIMPL 631364 UNIMPL 632365 UNIMPL 633366 UNIMPL 634367 UNIMPL 635368 UNIMPL 636369 UNIMPL 637370 UNIMPL 638371 UNIMPL 639372 UNIMPL 640373 UNIMPL 641374 UNIMPL 642375 UNIMPL 643376 UNIMPL 644377 UNIMPL 645378 UNIMPL 646379 UNIMPL 647380 UNIMPL 648381 UNIMPL 649382 UNIMPL 650383 UNIMPL 651384 UNIMPL 652385 UNIMPL 653386 UNIMPL 654387 UNIMPL 655388 UNIMPL 656389 UNIMPL 657390 UNIMPL 658391 UNIMPL 659392 UNIMPL 660393 UNIMPL 661394 UNIMPL 662395 UNIMPL 663396 UNIMPL 664397 UNIMPL 665398 UNIMPL 666399 UNIMPL 667400 UNIMPL 668401 UNIMPL 669402 UNIMPL 670403 UNIMPL 671404 UNIMPL 672405 UNIMPL 673406 UNIMPL 674407 UNIMPL 675408 UNIMPL 676409 UNIMPL 677410 UNIMPL 678411 UNIMPL 679412 UNIMPL 680413 UNIMPL 681414 UNIMPL 682415 UNIMPL 683416 UNIMPL 684417 UNIMPL 685418 UNIMPL 686419 UNIMPL 687420 UNIMPL 688421 UNIMPL 689422 UNIMPL 690423 UNIMPL 691424 UNIMPL pidfd_send_signal 692425 UNIMPL io_uring_setup 693426 UNIMPL io_uring_enter 694427 UNIMPL io_uring_register 695428 UNIMPL open_tree 696429 UNIMPL move_mount 697430 UNIMPL fsopen 698431 UNIMPL fsconfig 699432 UNIMPL fsmount 700433 UNIMPL fspick 701434 UNIMPL pidfd_open 702435 UNIMPL clone3 703436 STD { int|linux_sys||close_range(unsigned int first, \ 704 unsigned int last, unsigned int flags); } 705437 UNIMPL openat2 706438 UNIMPL pidfd_getfd 707439 UNIMPL faccessat2 708440 UNIMPL process_madvise 709441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 710 struct linux_epoll_event *events, int maxevents, \ 711 const struct linux_timespec *timeout, \ 712 const linux_sigset_t *sigmask); } 713442 UNIMPL mount_setattr 714443 UNIMPL quotactl_fd 715444 UNIMPL landlock_create_ruleset 716445 UNIMPL landlock_add_rule 717446 UNIMPL landlock_restrict_self 718447 UNIMPL memfd_secret 719448 UNIMPL process_mrelease 720449 UNIMPL futex_waitv 721450 UNIMPL set_mempolicy_home_node 722 723; we want a "nosys" syscall, we'll just add an extra entry for it. 724451 STD { int|linux_sys||nosys(void); } 725