1 $NetBSD: syscalls.master,v 1.75 2024/09/28 19:35: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_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_sched.h> 59#include <compat/linux/common/linux_sem.h> 60#include <compat/linux/common/linux_shm.h> 61#include <compat/linux/common/linux_signal.h> 62#include <compat/linux/common/linux_siginfo.h> 63#include <compat/linux/common/linux_mqueue.h> 64#include <compat/linux/common/linux_machdep.h> 65#include <compat/linux/common/linux_sched.h> 66 67#include <compat/linux/linux_syscallargs.h> 68 69%% 70 710 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 721 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 73 size_t nbyte); } 742 STD { int|linux_sys||open(const char *path, int flags, \ 75 linux_umode_t mode); } 763 NOARGS { int|sys||close(int fd); } 774 STD { int|linux_sys||stat64(const char *path, \ 78 struct linux_stat64 *sp); } 795 STD { int|linux_sys||fstat64(int fd, \ 80 struct linux_stat64 *sp); } 816 STD { int|linux_sys||lstat64(const char *path, \ 82 struct linux_stat64 *sp); } 837 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 84 int timeout); } 858 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 86 int whence); } 879 NOARGS { linux_off_t|linux_sys||mmap(unsigned long addr, \ 88 size_t len, int prot, int flags, int fd, \ 89 linux_off_t offset); } 9010 STD { int|linux_sys||mprotect(const void *start, \ 91 unsigned long len, int prot); } 9211 NOARGS { int|sys||munmap(void *addr, size_t len); } 9312 STD { int|linux_sys||brk(char *nsize); } 9413 STD { int|linux_sys||rt_sigaction(int signum, \ 95 const struct linux_sigaction *nsa, \ 96 struct linux_sigaction *osa, \ 97 size_t sigsetsize); } 9814 STD { int|linux_sys||rt_sigprocmask(int how, \ 99 const linux_sigset_t *set, \ 100 linux_sigset_t *oset, \ 101 size_t sigsetsize); } 10215 NOARGS { int|linux_sys||rt_sigreturn(void); } 10316 STD { int|linux_sys||ioctl(int fd, u_long com, \ 104 void *data); } 10517 STD { int|linux_sys||pread(int fd, char *buf, \ 106 size_t nbyte, off_t offset); } 10718 STD { int|linux_sys||pwrite(int fd, char *buf, \ 108 size_t nbyte, off_t offset); } 10919 NOARGS { ssize_t|sys||readv(int fd, \ 110 const struct iovec *iovp, int iovcnt); } 11120 NOARGS { ssize_t|sys||writev(int fd, \ 112 const struct iovec *iovp, int iovcnt); } 11321 NOARGS { int|sys||access(const char *path, int flags); } 11422 STD { int|linux_sys||pipe(int *pfds); } 11523 STD { int|linux_sys||select(int nfds, fd_set *readfds, \ 116 fd_set *writefds, fd_set *exceptfds, \ 117 struct timeval50 *timeout); } 11824 STD { int|linux_sys||sched_yield(void); } 11925 STD { void *|linux_sys||mremap(void *old_address, \ 120 size_t old_size, size_t new_size, u_long flags); } 12126 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 12227 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 12328 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 124#ifdef SYSVSHM 12529 NOARGS { int|linux_sys||shmget(key_t key, size_t size, \ 126 int shmflg); } 12730 NOARGS { int|sys||shmat(int shmid, void *shmaddr, int shmflg); } 12831 NOARGS { int|linux_sys||shmctl(int shmid, int cmd, \ 129 struct linux_shmid_ds *buf); } 130#else 13129 UNIMPL shmget 13230 UNIMPL shmat 13331 UNIMPL shmctl 134#endif 13532 NOARGS { int|sys||dup(int fd); } 13633 NOARGS { int|sys||dup2(int from, int to); } 13734 STD { int|linux_sys||pause(void); } 13835 STD { int|linux_sys||nanosleep( \ 139 const struct linux_timespec *rqtp, \ 140 struct linux_timespec *rmtp); } 14136 NOARGS { int|compat_50_sys||getitimer(int which, \ 142 struct itimerval50 *itv); } 14337 STD { int|linux_sys||alarm(unsigned int secs); } 14438 NOARGS { int|compat_50_sys||setitimer(int which, \ 145 struct itimerval50 *itv, \ 146 struct itimerval50 *oitv); } 14739 STD { pid_t|sys||getpid(void); } 14840 UNIMPL sendfile 14941 STD { int|linux_sys||socket(int domain, \ 150 int type, int protocol); } 15142 STD { int|linux_sys||connect(int s, \ 152 const struct osockaddr *name, \ 153 unsigned int namelen); } 15443 STD { int|linux_sys||accept(int s, struct osockaddr *name, \ 155 int *anamelen); } oaccept 15644 STD { ssize_t|linux_sys||sendto(int s, void *msg, int len, \ 157 int flags, struct osockaddr *to, int tolen); } 15845 STD { ssize_t|linux_sys||recvfrom(int s, void *buf, \ 159 size_t len, int flags, struct osockaddr *from, \ 160 unsigned int *fromlenaddr); } 16146 STD { int|linux_sys||sendmsg(int s, \ 162 const struct linux_msghdr *msg, int flags); } 16347 STD { ssize_t|linux_sys||recvmsg(int s, \ 164 struct linux_msghdr *msg, int flags); } 16548 NOARGS { int|sys||shutdown(int s, int how); } 16649 STD { int|linux_sys||bind(int s, \ 167 const struct osockaddr *name, \ 168 unsigned int namelen); } 16950 NOARGS { int|sys||listen(int s, int backlog); } 17051 STD { int|linux_sys||getsockname(int fdec, void *asa, \ 171 int *alen); } 17252 STD { int|linux_sys||getpeername(int fdes, \ 173 struct sockaddr *asa, unsigned int *alen); } 17453 STD { int|linux_sys||socketpair(int domain, int type, \ 175 int protocol, int *rsv); } 17654 STD { int|linux_sys||setsockopt(int s, int level, \ 177 int optname, void *optval, int optlen); } 17855 STD { int|linux_sys||getsockopt(int s, int level, \ 179 int optname, void *optval, int *optlen); } 18056 STD { int|linux_sys||clone(int flags, void *stack, \ 181 void *parent_tidptr, void *child_tidptr, void *tls); } 18257 NOARGS { int|sys||fork(void); } 18358 NOARGS { int|sys|14|vfork(void); } 18459 NOARGS { int|sys||execve(const char *path, char **argp, \ 185 char **envp); } 18660 STD { int|linux_sys||exit(int rval); } 18761 STD { int|linux_sys||wait4(int pid, int *status, \ 188 int options, struct rusage50 *rusage); } 18962 STD { int|linux_sys||kill(int pid, int signum); } 19063 STD { int|linux_sys||uname(struct linux_utsname *up); } 191#ifdef SYSVSEM 19264 NOARGS { int|sys||semget(key_t key, int nsems, int semflg); } 19365 NOARGS { int|sys||semop(int semid, struct sembuf *sops, \ 194 size_t nsops); } 19566 STD { int|linux_sys||semctl(int semid, int semnum, \ 196 int cmd, union linux_semun arg); } 197#else 19864 UNIMPL semget 19965 UNIMPL semop 20066 UNIMPL semctl 201#endif 202#ifdef SYSVSHM 20367 NOARGS { int|sys||shmdt(const void *shmaddr); } 204#else 20567 UNIMPL shmdt 206#endif 207#ifdef SYSVMSG 20868 NOARGS { int|sys||msgget(key_t key, int msgflg); } 20969 NOARGS { int|sys||msgsnd(int msqid, void *msgp, size_t msgsz, \ 210 int msgflg); } 21170 NOARGS { ssize_t|sys||msgrcv(int msqid, void *msgp, \ 212 size_t msgsz, long msgtyp, int msgflg); } 21371 NOARGS { int|linux_sys||msgctl(int msqid, int cmd, \ 214 struct linux_msqid_ds *buf); } 215#else 21668 UNIMPL msgget 21769 UNIMPL msgsnd 21870 UNIMPL msgrcv 21971 UNIMPL msgctl 220#endif 22172 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 22273 NOARGS { int|sys||flock(int fd, int how); } 22374 NOARGS { int|sys||fsync(int fd); } 22475 STD { int|linux_sys||fdatasync(int fd); } 22576 STD { int|linux_sys||truncate64(const char *path, \ 226 off_t length); } 22777 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 228 off_t length); } 22978 STD { int|linux_sys||getdents(int fd, \ 230 struct linux_dirent *dent, unsigned int count); } 23179 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 23280 NOARGS { int|sys||chdir(const char *path); } 23381 NOARGS { int|sys||fchdir(int fd); } 23482 NOARGS { int|sys||__posix_rename(const char *from, \ 235 const char *to); } 23683 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 23784 NOARGS { int|sys||rmdir(const char *path); } 23885 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 23986 NOARGS { int|sys||link(const char *path, const char *link); } 24087 STD { int|linux_sys||unlink(const char *path); } 24188 NOARGS { int|sys||symlink(const char *path, const char *link); } 24289 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 243 int count); } 24490 NOARGS { int|sys||chmod(const char *path, linux_umode_t mode); } 24591 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 24692 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \ 247 gid_t gid); } 24893 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \ 249 gid_t gid); } 25094 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 251 gid_t gid); } 25295 NOARGS { int|sys||umask(int newmask); } 25396 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 254 struct timezone *tzp); } 25597 STD { int|linux_sys||getrlimit(int which, \ 256 struct rlimit *rlp); } 25798 NOARGS { int|compat_50_sys||getrusage(int who, \ 258 struct rusage50 *rusage); } 25999 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 260100 STD { int|linux_sys||times(struct times *tms); } 261101 STD { int|linux_sys||ptrace(long request, long pid, \ 262 long addr, long data); } 263102 NOARGS { uid_t|sys||getuid(void); } 264103 UNIMPL syslog 265104 NOARGS { gid_t|sys||getgid(void); } 266105 NOARGS { int|sys||setuid(uid_t uid); } 267106 NOARGS { int|sys||setgid(gid_t gid); } 268107 NOARGS { uid_t|sys||geteuid(void); } 269108 NOARGS { gid_t|sys||getegid(void); } 270109 NOARGS { int|sys||setpgid(int pid, int pgid); } 271110 STD { pid_t|sys||getppid(void); } 272111 NOARGS { int|sys||getpgrp(void); } 273112 NOARGS { int|sys||setsid(void); } 274113 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); } 275114 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); } 276115 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); } 277116 NOARGS { int|sys||setgroups(int gidsetsize, gid_t *gidset); } 278117 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \ 279 uid_t suid); } 280118 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \ 281 uid_t *suid); } 282119 STD { int|linux_sys||setresgid(gid_t rgid, gid_t egid, \ 283 gid_t sgid); } 284120 STD { int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \ 285 gid_t *sgid); } 286121 NOARGS { pid_t|sys||getpgid(pid_t pid); } 287122 STD { int|linux_sys||setfsuid(uid_t uid); } 288123 STD { int|linux_sys||setfsgid(gid_t gid); } 289124 NOARGS { pid_t|sys||getsid(pid_t pid); } 290125 UNIMPL capget 291126 UNIMPL capset 292127 STD { int|linux_sys||rt_sigpending( \ 293 linux_sigset_t *set, \ 294 size_t sigsetsize); } 295128 STD { int|linux_sys||rt_sigtimedwait( \ 296 const linux_sigset_t *set, \ 297 linux_siginfo_t *info, \ 298 const struct linux_timespec *timeout); } 299129 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 300 linux_siginfo_t *uinfo); } 301130 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 302 size_t sigsetsize); } 303131 STD { int|linux_sys||sigaltstack( \ 304 const struct linux_sigaltstack *ss, \ 305 struct linux_sigaltstack *oss); } 306132 STD { int|linux_sys||utime(const char *path, \ 307 struct linux_utimbuf *times); } 308133 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 309 unsigned dev); } 310#ifdef EXEC_AOUT 311134 STD { int|linux_sys||uselib(const char *path); } 312#else 313134 UNIMPL sys_uselib 314#endif 315135 STD { int|linux_sys||personality(unsigned long per); } 316136 UNIMPL ustat 317137 STD { int|linux_sys||statfs(const char *path, \ 318 struct linux_statfs *sp); } 319138 STD { int|linux_sys||fstatfs(int fd, \ 320 struct linux_statfs *sp); } 321139 UNIMPL sysfs 322140 STD { int|linux_sys||getpriority(int which, int who); } 323141 NOARGS { int|sys||setpriority(int which, int who, int prio); } 324142 STD { int|linux_sys||sched_setparam(pid_t pid, \ 325 const struct linux_sched_param *sp); } 326143 STD { int|linux_sys||sched_getparam(pid_t pid, \ 327 struct linux_sched_param *sp); } 328144 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 329 int policy, const struct linux_sched_param *sp); } 330145 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 331146 STD { int|linux_sys||sched_get_priority_max(int policy); } 332147 STD { int|linux_sys||sched_get_priority_min(int policy); } 333148 UNIMPL sys_sched_rr_get_interval 334149 NOARGS { int|sys||mlock(void *addr, size_t len); } 335150 NOARGS { int|sys||munlock(void *addr, size_t len); } 336151 NOARGS { int|sys||mlockall(int flags); } 337152 NOARGS { int|sys||munlockall(void); } 338153 UNIMPL vhangup 339154 STD { int|linux_sys||modify_ldt(int func, void *ptr, \ 340 size_t bytecount); } 341155 UNIMPL pivot_root 342156 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 343157 UNIMPL prctl 344158 STD { int|linux_sys||arch_prctl(int code, \ 345 unsigned long addr); } 346159 UNIMPL adjtimex 347160 STD { int|linux_sys||setrlimit(u_int which, \ 348 struct rlimit *rlp); } 349161 NOARGS { int|sys||chroot(char *path); } 350162 NOARGS { int|sys||sync(void); } 351163 NOARGS { int|sys||acct(char *path); } 352164 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 353 struct timezone *tzp); } 354165 UNIMPL mount 355166 UNIMPL umount2 356167 STD { int|linux_sys||swapon(char *name); } 357168 STD { int|linux_sys||swapoff(const char *path); } 358169 STD { int|linux_sys||reboot(int magic1, int magic2, \ 359 int cmd, void *arg); } 360170 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 361 u_int len);} 362171 STD { int|linux_sys||setdomainname(char *domainname, \ 363 int len); } 364172 STD { int|linux_sys||iopl(int level); } 365173 STD { int|linux_sys||ioperm(unsigned int lo, \ 366 unsigned int hi, int val); } 367174 UNIMPL create_module 368175 UNIMPL init_module 369176 UNIMPL delete_module 370177 UNIMPL get_kernel_syms 371178 UNIMPL query_module 372179 UNIMPL quotactl 373180 UNIMPL nfsservctl 374181 UNIMPL getpmsg 375182 UNIMPL putpmsg 376183 UNIMPL afs_syscall 377184 UNIMPL tuxcall 378185 UNIMPL security 379186 STD { pid_t|linux_sys||gettid(void); } 380187 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 381 size_t count); } 382188 STD { int|linux_sys||setxattr(char *path, char *name, \ 383 void *value, size_t size, int flags); } 384189 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 385 void *value, size_t size, int flags); } 386190 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 387 void *value, size_t size, int flags); } 388191 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 389 void *value, size_t size); } 390192 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 391 void *value, size_t size); } 392193 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 393 void *value, size_t size); } 394194 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 395 size_t size); } 396195 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 397 size_t size); } 398196 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 399 size_t size); } 400197 STD { int|linux_sys||removexattr(char *path, char *name); } 401198 STD { int|linux_sys||lremovexattr(char *path, char *name); } 402199 STD { int|linux_sys||fremovexattr(int fd, char *name); } 403200 STD { int|linux_sys||tkill(int tid, int sig); } 404201 STD { int|linux_sys||time(linux_time_t *t); } 405202 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 406 const struct linux_timespec *timeout, int *uaddr2, \ 407 int val3); } 408203 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 409 unsigned int len, unsigned long *mask); } 410204 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 411 unsigned int len, unsigned long *mask); } 412205 UNIMPL set_thread_area 413206 UNIMPL io_setup 414207 UNIMPL io_destroy 415208 UNIMPL io_getevents 416209 UNIMPL io_submit 417210 UNIMPL io_cancel 418211 UNIMPL get_thread_area 419212 UNIMPL lookup_dcookie 420213 STD { int|linux_sys||epoll_create(int size); } 421214 UNIMPL epoll_ctl_old 422215 UNIMPL epoll_wait_old 423216 UNIMPL remap_file_pages 424217 STD { int|linux_sys||getdents64(int fd, \ 425 struct linux_dirent64 *dent, unsigned int count); } 426218 STD { int|linux_sys||set_tid_address(int *tid); } 427219 UNIMPL restart_syscall 428220 UNIMPL semtimedop 429221 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 430 size_t len, int advice); } 431222 STD { int|linux_sys||timer_create(clockid_t clockid, \ 432 struct linux_sigevent *evp, timer_t *timerid); } 433223 STD { int|linux_sys||timer_settime(timer_t timerid, \ 434 int flags, const struct linux_itimerspec *tim, \ 435 struct linux_itimerspec *otim); } 436224 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 437 struct linux_itimerspec *tim); } 438225 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 439226 NOARGS { int|sys||timer_delete(timer_t timerid); } 440227 STD { int|linux_sys||clock_settime(clockid_t which, \ 441 struct linux_timespec *tp); } 442228 STD { int|linux_sys||clock_gettime(clockid_t which, \ 443 struct linux_timespec *tp); } 444229 STD { int|linux_sys||clock_getres(clockid_t which, \ 445 struct linux_timespec *tp); } 446230 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 447 int flags, struct linux_timespec *rqtp, \ 448 struct linux_timespec *rmtp); } 449231 STD { int|linux_sys||exit_group(int error_code); } 450232 STD { int|linux_sys||epoll_wait(int epfd, \ 451 struct linux_epoll_event *events, int maxevents, \ 452 int timeout); } 453233 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 454 struct linux_epoll_event *event); } 455234 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 456235 NOARGS { int|compat_50_sys||utimes(const char *path, \ 457 const struct timeval50 *tptr); } 458236 UNIMPL vserver 459237 UNIMPL mbind 460238 UNIMPL set_mempolicy 461239 UNIMPL get_mempolicy 462240 STD { linux_mqd_t|linux_sys||mq_open(const char *name, \ 463 int oflag, linux_umode_t mode, \ 464 struct linux_mq_attr *attr); } 465241 STD { int|linux_sys||mq_unlink(const char *name); } 466242 STD { int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \ 467 const char *msg_ptr, size_t msg_len, \ 468 unsigned int msg_prio, \ 469 const struct linux_timespec *abs_timeout); } 470243 STD { ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \ 471 char *msg_ptr, size_t msg_len, \ 472 unsigned int *msg_prio, \ 473 const struct linux_timespec *abs_timeout); } 474244 STD { int|linux_sys||mq_notify(linux_mqd_t mqdes, \ 475 const struct linux_sigevent *sevp); } 476245 STD { int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \ 477 const struct linux_mq_attr *newattr, \ 478 struct linux_mq_attr *oldattr); } 479246 UNIMPL kexec_load 480247 STD { int|linux_sys||waitid(int idtype, id_t id, \ 481 linux_siginfo_t *infop, int options, \ 482 struct rusage50 *rusage); } 483248 UNIMPL add_key 484249 UNIMPL request_key 485250 UNIMPL keyctl 486251 UNIMPL ioprio_set 487252 UNIMPL ioprio_get 488253 STD { int|linux_sys||inotify_init(void); } 489254 STD { int|linux_sys||inotify_add_watch(int fd, \ 490 const char *pathname, uint32_t mask); } 491255 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); } 492256 UNIMPL migrate_pages 493257 STD { int|linux_sys||openat(int fd, const char *path, \ 494 int flags, ... linux_umode_t mode); } 495258 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 496 linux_umode_t mode); } 497259 STD { int|linux_sys||mknodat(int fd, const char *path, \ 498 linux_umode_t mode, unsigned dev); } 499260 STD { int|linux_sys||fchownat(int fd, const char *path, \ 500 uid_t owner, gid_t group, int flag); } 501261 UNIMPL futimesat 502262 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 503 struct linux_stat *sp, int flag); } 504263 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 505 int flag); } 506264 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 507 int tofd, const char *to); } 508265 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 509 int fd2, const char *name2, int flags); } 510266 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 511 const char *path2); } 512267 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 513 char *buf, size_t bufsize); } 514268 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 515 linux_umode_t mode); } 516269 STD { int|linux_sys||faccessat(int fd, const char *path, \ 517 int amode); } 518270 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 519 fd_set *writefds, fd_set *exceptfds, \ 520 struct linux_timespec *timeout, \ 521 linux_sized_sigset_t *ss); } 522271 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 523 struct linux_timespec *timeout, \ 524 linux_sigset_t *sigset); } 525272 UNIMPL unshare 526 ; 527 ; The NetBSD native robust list calls have different 528 ; argument names / types, but they are ABI-compatible 529 ; with Linux. 530 ; 531273 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 532 size_t len); } 533274 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 534 void **headp, size_t *lenp); } 535275 UNIMPL splice 536276 UNIMPL tee 537277 STD { int|linux_sys||sync_file_range(int fd, \ 538 off_t offset, off_t nbytes, unsigned int flags); } 539278 UNIMPL vmsplice 540279 UNIMPL move_pages 541280 STD { int|linux_sys||utimensat(int fd, const char *path, \ 542 struct linux_timespec *times, int flag); } 543281 STD { int|linux_sys||epoll_pwait(int epfd, \ 544 struct linux_epoll_event *events, int maxevents, \ 545 int timeout, const linux_sigset_t *sigmask); } 546282 UNIMPL signalfd 547283 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 548 int flags); } 549284 STD { int|linux_sys||eventfd(unsigned int initval); } 550285 STD { int|linux_sys||fallocate(int fd, int mode, \ 551 off_t offset, off_t len); } 552286 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 553 const struct linux_itimerspec *tim, \ 554 struct linux_itimerspec *otim); } 555287 STD { int|linux_sys||timerfd_gettime(int fd, \ 556 struct linux_itimerspec *tim); } 557288 STD { int|linux_sys||accept4(int s, \ 558 struct osockaddr *name, \ 559 int *anamelen, int flags); } 560289 UNIMPL signalfd4 561290 STD { int|linux_sys||eventfd2(unsigned int initval, \ 562 int flags); } 563291 STD { int|linux_sys||epoll_create1(int flags); } 564292 STD { int|linux_sys||dup3(int from, int to, int flags); } 565293 STD { int|linux_sys||pipe2(int *pfds, int flags); } 566294 STD { int|linux_sys||inotify_init1(int flags); } 567295 STD { int|linux_sys||preadv(int fd, \ 568 const struct iovec *iovp, int iovcnt, \ 569 unsigned long off_lo, unsigned long off_hi); } 570296 STD { int|linux_sys||pwritev(int fd, \ 571 const struct iovcnt *iovp, int iovcnt, \ 572 unsigned long off_lo, unsigned long off_hi); } 573297 UNIMPL rt_tgsigqueueinfo 574298 UNIMPL perf_counter_open 575299 STD { int|linux_sys||recvmmsg(int s, \ 576 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 577 unsigned int flags, struct timespec *timeout); } 578300 UNIMPL fanotify_init 579301 UNIMPL fanotify_mark 580302 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 581 struct rlimit *new_rlp, struct rlimit *old_rlp); } 582303 UNIMPL name_to_handle_at 583304 UNIMPL open_by_handle_at 584305 UNIMPL clock_adjtime 585306 STD { int|linux_sys||syncfs(int fd); } 586307 STD { int|linux_sys||sendmmsg(int s, \ 587 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 588 unsigned int flags); } 589308 UNIMPL setns 590309 STD { int|linux_sys||getcpu(unsigned int *cpu, \ 591 unsigned int *node, \ 592 struct linux_getcpu_cache *tcache); } 593310 UNIMPL process_vm_readv 594311 UNIMPL process_vm_writev 595312 UNIMPL kcmp 596313 UNIMPL finit_module 597314 UNIMPL sched_setattr 598315 UNIMPL sched_getattr 599316 STD { int|linux_sys||renameat2(int fromfd, \ 600 const char *from, int tofd, const char *to, \ 601 unsigned int flags); } 602317 UNIMPL seccomp 603318 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 604 unsigned int flags); } 605319 STD { int|linux_sys||memfd_create(const char *name, \ 606 unsigned int flags); } 607320 UNIMPL kexec_file_load 608321 UNIMPL bpf 609322 UNIMPL execveat 610323 UNIMPL userfaultfd 611324 UNIMPL membarrier 612325 UNIMPL mlock2 613326 STD { ssize_t|linux_sys||copy_file_range(int fd_in, \ 614 off_t * off_in, int fd_out, off_t * off_out, \ 615 size_t len, unsigned int flags); } 616327 UNIMPL preadv2 617328 UNIMPL pwritev2 618329 UNIMPL pkey_mprotect 619330 UNIMPL pkey_alloc 620331 UNIMPL pkey_free 621332 STD { int|linux_sys||statx(int fd, const char *path, \ 622 int flag, unsigned int mask, \ 623 struct linux_statx *sp); } 624333 UNIMPL io_pgetevents 625334 UNIMPL rseq 626335 UNIMPL 627336 UNIMPL 628337 UNIMPL 629338 UNIMPL 630339 UNIMPL 631340 UNIMPL 632341 UNIMPL 633342 UNIMPL 634343 UNIMPL 635344 UNIMPL 636345 UNIMPL 637346 UNIMPL 638347 UNIMPL 639348 UNIMPL 640349 UNIMPL 641350 UNIMPL 642351 UNIMPL 643352 UNIMPL 644353 UNIMPL 645354 UNIMPL 646355 UNIMPL 647356 UNIMPL 648357 UNIMPL 649358 UNIMPL 650359 UNIMPL 651360 UNIMPL 652361 UNIMPL 653362 UNIMPL 654363 UNIMPL 655364 UNIMPL 656365 UNIMPL 657366 UNIMPL 658367 UNIMPL 659368 UNIMPL 660369 UNIMPL 661370 UNIMPL 662371 UNIMPL 663372 UNIMPL 664373 UNIMPL 665374 UNIMPL 666375 UNIMPL 667376 UNIMPL 668377 UNIMPL 669378 UNIMPL 670379 UNIMPL 671380 UNIMPL 672381 UNIMPL 673382 UNIMPL 674383 UNIMPL 675384 UNIMPL 676385 UNIMPL 677386 UNIMPL 678387 UNIMPL 679388 UNIMPL 680389 UNIMPL 681390 UNIMPL 682391 UNIMPL 683392 UNIMPL 684393 UNIMPL 685394 UNIMPL 686395 UNIMPL 687396 UNIMPL 688397 UNIMPL 689398 UNIMPL 690399 UNIMPL 691400 UNIMPL 692401 UNIMPL 693402 UNIMPL 694403 UNIMPL 695404 UNIMPL 696405 UNIMPL 697406 UNIMPL 698407 UNIMPL 699408 UNIMPL 700409 UNIMPL 701410 UNIMPL 702411 UNIMPL 703412 UNIMPL 704413 UNIMPL 705414 UNIMPL 706415 UNIMPL 707416 UNIMPL 708417 UNIMPL 709418 UNIMPL 710419 UNIMPL 711420 UNIMPL 712421 UNIMPL 713422 UNIMPL 714423 UNIMPL 715424 UNIMPL pidfd_send_signal 716425 UNIMPL io_uring_setup 717426 UNIMPL io_uring_enter 718427 UNIMPL io_uring_register 719428 UNIMPL open_tree 720429 UNIMPL move_mount 721430 UNIMPL fsopen 722431 UNIMPL fsconfig 723432 UNIMPL fsmount 724433 UNIMPL fspick 725434 UNIMPL pidfd_open 726435 STD { int|linux_sys||clone3( \ 727 struct linux_user_clone3_args *cl_args, \ 728 size_t size); } 729436 STD { int|linux_sys||close_range(unsigned int first, \ 730 unsigned int last, unsigned int flags); } 731437 UNIMPL openat2 732438 UNIMPL pidfd_getfd 733439 STD { int|linux_sys||faccessat2(int fd, const char *path, \ 734 int amode, int flags); } 735440 UNIMPL process_madvise 736441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 737 struct linux_epoll_event *events, int maxevents, \ 738 const struct linux_timespec *timeout, \ 739 const linux_sigset_t *sigmask); } 740442 UNIMPL mount_setattr 741443 UNIMPL quotactl_fd 742444 UNIMPL landlock_create_ruleset 743445 UNIMPL landlock_add_rule 744446 UNIMPL landlock_restrict_self 745447 UNIMPL memfd_secret 746448 UNIMPL process_mrelease 747449 UNIMPL futex_waitv 748450 UNIMPL set_mempolicy_home_node 749 750; we want a "nosys" syscall, we'll just add an extra entry for it. 751451 STD { int|linux_sys||nosys(void); } 752