1 $NetBSD: syscalls.master,v 1.82 2023/07/29 15:04:29 christos Exp $ 2 3; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 4 5; Derived from NetBSD's sys/compat/linux/arch/i386/syscalls.master 6; sys/compat/linux/arch/m68k/syscalls.master 7; and from Linux's arch/ppc/kernel/misc.S 8; 9; We have problems for a few syscalls, specially: 10; 142 ppc_select -> sys_new_select -> sys_select (Conflicts with 82 ???). 11; 12; Expect problems with the following, which have an architecture dependent 13; implementation in Linux/powerpc: 14; 29 pause 15; 42 pipe tested. no problem. 16; 59 olduname 17; 101 ioperm 18; 109 uname 19; 117 ipc 20; 21; Most of syscalls after 182 that were introduced in Linux-2.4 are UNIMPL. 22; 23; The following are UNIMPL here. The Linux kernel implements them but just logs 24; a kernel error and returns -ENOSYS. 25; 110 iopl 26; 113 vm86 27; 123 modify_ldt 28; 198 sys_pciconfig_read 29; 199 sys_pciconfig_write 30; 200 sys_pciconfig_iobase 31; 32; Emmanuel Dreyfus <p99dreyf@criens.u-psud.fr> 33 34; NetBSD powerpc COMPAT_LINUX system call name/number "master" file. 35; (See syscalls.conf to see what it is processed into.) 36; 37; Fields: number type [type-dependent ...] 38; number system call number, must be in order 39; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of 40; the compatibility options defined in syscalls.conf. 41; 42; types: 43; STD always included 44; OBSOL obsolete, not included in system 45; UNIMPL unimplemented, not included in system 46; NODEF included, but don't define the syscall number 47; NOARGS included, but don't define the syscall args structure 48; INDIR included, but don't define the syscall args structure 49; and allow it to be "really" varargs. 50; 51; The compat options are defined in the syscalls.conf file, and the 52; compat option name is prefixed to the syscall name. Other than 53; that, they're like NODEF (for 'compat' options), or STD (for 54; 'libcompat' options). 55; 56; The type-dependent arguments are as follows: 57; For STD, NODEF, NOARGS, and compat syscalls: 58; { pseudo-proto } [alias] 59; For other syscalls: 60; [comment] 61; 62; #ifdef's, etc. may be included, and are copied to the output files. 63; #include's are copied to the syscall names and switch definition files only. 64 65#include <sys/param.h> 66#include <sys/poll.h> 67#include <sys/systm.h> 68#include <sys/signal.h> 69#include <sys/mount.h> 70#include <sys/syscallargs.h> 71 72#include <compat/linux/common/linux_types.h> 73#include <compat/linux/common/linux_signal.h> 74#include <compat/linux/common/linux_siginfo.h> 75#include <compat/linux/common/linux_machdep.h> 76#include <compat/linux/common/linux_mmap.h> 77 78#include <compat/linux/linux_syscallargs.h> 79 80%% 81 820 NOARGS { int|linux_sys||nosys(void); } syscall 831 STD { int|linux_sys||exit(int rval); } 842 NOARGS { int|sys||fork(void); } 853 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 864 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 87 size_t nbyte); } 885 STD { int|linux_sys||open(const char *path, int flags, \ 89 linux_umode_t mode); } 906 NOARGS { int|sys||close(int fd); } 917 STD { int|linux_sys||waitpid(int pid, int *status, \ 92 int options);} 938 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 949 NOARGS { int|sys||link(const char *path, const char *link); } 9510 STD { int|linux_sys||unlink(const char *path); } 9611 NOARGS { int|sys||execve(const char *path, char **argp, \ 97 char **envp); } 9812 NOARGS { int|sys||chdir(const char *path); } 9913 STD { int|linux_sys||time(linux_time_t *t); } 10014 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 101 unsigned dev); } 10215 NOARGS { int|sys||chmod(const char *path, int mode); } 10316 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 104 gid_t gid); } 10517 OBSOL break 10618 OBSOL ostat 10719 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 108 int whence); } 10920 NOARGS { pid_t|sys||getpid(void); } 11021 UNIMPL mount 11122 OBSOL umount 11223 NOARGS { int|sys||setuid(uid_t uid); } 11324 NOARGS { uid_t|sys||getuid(void); } 11425 STD { int|linux_sys||stime(linux_time_t *t); } 11526 STD { int|linux_sys||ptrace(int request, int pid, \ 116 long addr, long data); } 11727 STD { int|linux_sys||alarm(unsigned int secs); } 11828 OBSOL ofstat 11929 STD { int|linux_sys||pause(void); } 12030 STD { int|linux_sys||utime(const char *path, \ 121 struct linux_utimbuf *times); } 12231 OBSOL stty 12332 OBSOL gtty 12433 NOARGS { int|sys||access(const char *path, int flags); } 12534 STD { int|linux_sys||nice(int incr); } 12635 OBSOL ftime 12736 NOARGS { int|sys||sync(void); } 12837 STD { int|linux_sys||kill(int pid, int signum); } 12938 NOARGS { int|sys||__posix_rename(const char *from, \ 130 const char *to); } 13139 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 13240 NOARGS { int|sys||rmdir(const char *path); } 13341 NOARGS { int|sys||dup(int fd); } 13442 STD { int|linux_sys||pipe(int *pfds); } 13543 STD { int|linux_sys||times(struct times *tms); } 13644 OBSOL prof 13745 STD { int|linux_sys||brk(char *nsize); } 13846 NOARGS { int|sys||setgid(gid_t gid); } 13947 NOARGS { gid_t|sys||getgid(void); } 14048 STD { int|linux_sys||signal(int signum, \ 141 linux_handler_t handler); } 14249 NOARGS { uid_t|sys||geteuid(void); } 14350 NOARGS { gid_t|sys||getegid(void); } 14451 NOARGS { int|sys||acct(char *path); } 14552 UNIMPL umount 14653 OBSOL lock 14754 STD { int|linux_sys||ioctl(int fd, u_long com, \ 148 void *data); } 14955 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 15056 OBSOL mpx 15157 NOARGS { int|sys||setpgid(int pid, int pgid); } 15258 OBSOL ulimit 15359 STD { int|linux_sys||olduname(struct linux_old_utsname \ 154 *up); } 15560 NOARGS { int|sys||umask(int newmask); } 15661 NOARGS { int|sys||chroot(char *path); } 15762 UNIMPL ustat 15863 NOARGS { int|sys||dup2(int from, int to); } 15964 NOARGS { pid_t|sys||getppid(void); } 16065 NOARGS { int|sys||getpgrp(void); } 16166 NOARGS { int|sys||setsid(void); } 16267 STD { int|linux_sys||sigaction(int signum, \ 163 const struct linux_old_sigaction *nsa, \ 164 struct linux_old_sigaction *osa); } 16568 STD { int|linux_sys||siggetmask(void); } 16669 STD { int|linux_sys||sigsetmask(linux_old_sigset_t mask); } 16770 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); } 16871 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); } 16972 STD { int|linux_sys||sigsuspend(void *restart, \ 170 int oldmask, int mask); } 17173 STD { int|linux_sys||sigpending(linux_old_sigset_t *set); } 17274 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 173 u_int len);} 17475 STD { int|linux_sys||setrlimit(u_int which, \ 175 struct orlimit *rlp); } 17676 STD { int|linux_sys||getrlimit(u_int which, \ 177 struct orlimit *rlp); } 17877 NOARGS { int|compat_50_sys||getrusage(int who, \ 179 struct rusage50 *rusage); } 18078 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 181 struct timezone *tzp); } 18279 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 183 struct timezone *tzp); } 18480 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); } 18581 NOARGS { int|sys||setgroups(int gidsetsize, gid_t *gidset); } 18682 STD { int|linux_sys||select(int nfds, fd_set* readfds, \ 187 fd_set* writefds, fd_set* exceptfds, \ 188 struct timeval50 *timeout); } 18983 NOARGS { int|sys||symlink(const char *path, const char *to); } 19084 NOARGS { int|compat_43_sys||lstat(const char *path, \ 191 struct stat43 *up); } oolstat 19285 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 193 int count); } 194#ifdef EXEC_AOUT 19586 STD { int|linux_sys||uselib(const char *path); } 196#else 19786 UNIMPL sys_uselib 198#endif 19987 STD { int|linux_sys||swapon(char *name); } 20088 STD { int|linux_sys||reboot(int magic1, int magic2, \ 201 int cmd, void *arg); } 20289 STD { int|linux_sys||readdir(int fd, void *dent, \ 203 unsigned int count); } 20490 NOARGS { int|linux_sys||mmap(unsigned long addr, size_t len, \ 205 int prot, int flags, int fd, linux_off_t offset); } 20691 NOARGS { int|sys||munmap(void *addr, size_t len); } 20792 NOARGS { int|compat_43_sys||truncate(const char *path, \ 208 long length); } 20993 NOARGS { int|compat_43_sys||ftruncate(int fd, long length); } 21094 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 21195 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \ 212 gid_t gid); } 21396 STD { int|linux_sys||getpriority(int which, int who); } 21497 NOARGS { int|sys||setpriority(int which, int who, int prio); } 21598 NOARGS { int|sys||profil(void *samples, u_int size, \ 216 u_int offset, u_int scale); } 21799 STD { int|linux_sys||statfs(const char *path, \ 218 struct linux_statfs *sp); } 219100 STD { int|linux_sys||fstatfs(int fd, \ 220 struct linux_statfs *sp); } 221101 UNIMPL ioperm 222102 STD { int|linux_sys||socketcall(int what, void *args); } 223103 UNIMPL syslog 224104 NOARGS { int|compat_50_sys||setitimer(int which, \ 225 struct itimerval50 *itv, \ 226 struct itimerval50 *oitv); } 227105 NOARGS { int|compat_50_sys||getitimer(int which, \ 228 struct itimerval50 *itv); } 229106 STD { int|linux_sys||stat(const char *path, \ 230 struct linux_stat *sp); } 231107 STD { int|linux_sys||lstat(const char *path, \ 232 struct linux_stat *sp); } 233108 STD { int|linux_sys||fstat(int fd, struct linux_stat *sp); } 234109 STD { int|linux_sys||uname(struct linux_utsname *up); } 235110 UNIMPL iopl 236111 UNIMPL vhangup 237112 UNIMPL idle 238113 UNIMPL vm86old 239114 STD { int|linux_sys||wait4(int pid, int *status, \ 240 int options, struct rusage50 *rusage); } 241115 STD { int|linux_sys||swapoff(const char *path); } 242116 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 243117 STD { int|linux_sys||ipc(int what, int a1, int a2, int a3, \ 244 void *ptr); } 245118 NOARGS { int|sys||fsync(int fd); } 246119 STD { int|linux_sys||sigreturn(struct linux_sigcontext *scp); } 247120 STD { int|linux_sys||clone(int flags, void *stack, \ 248 void *parent_tidptr, void *tls, void *child_tidptr); } 249121 STD { int|linux_sys||setdomainname(char *domainname, \ 250 int len); } 251122 STD { int|linux_sys||new_uname(struct linux_utsname *up); } 252123 UNIMPL modify_ldt 253124 UNIMPL adjtimex 254125 STD { int|linux_sys||mprotect(const void *start, \ 255 unsigned long len, int prot); } 256126 STD { int|linux_sys||sigprocmask(int how, \ 257 const linux_old_sigset_t *set, \ 258 linux_old_sigset_t *oset); } 259127 UNIMPL create_module 260128 UNIMPL init_module 261129 UNIMPL delete_module 262130 UNIMPL get_kernel_syms 263131 UNIMPL quotactl 264132 NOARGS { pid_t|sys||getpgid(pid_t pid); } 265133 NOARGS { int|sys||fchdir(int fd); } 266134 UNIMPL bdflush 267135 UNIMPL sysfs 268136 STD { int|linux_sys||personality(unsigned long per); } 269137 UNIMPL afs_syscall 270138 STD { int|linux_sys||setfsuid(uid_t uid); } 271139 STD { int|linux_sys||setfsgid(gid_t gid); } 272140 STD { int|linux_sys||llseek(int fd, u_int32_t ohigh, \ 273 u_int32_t olow, void *res, int whence); } 274141 STD { int|linux_sys||getdents(int fd, \ 275 struct linux_dirent *dent, unsigned int count); } 276142 STD { int|linux_sys||new_select(int nfds, fd_set *readfds, \ 277 fd_set *writefds, fd_set *exceptfds, \ 278 struct timeval50 *timeout); } 279143 NOARGS { int|sys||flock(int fd, int how); } 280144 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 281145 NOARGS { ssize_t|sys||readv(int fd, \ 282 const struct iovec *iovp, int iovcnt); } 283146 NOARGS { ssize_t|sys||writev(int fd, \ 284 const struct iovec *iovp, int iovcnt); } 285147 NOARGS { pid_t|sys||getsid(pid_t pid); } 286148 STD { int|linux_sys||fdatasync(int fd); } 287149 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 288150 NOARGS { int|sys||mlock(void *addr, size_t len); } 289151 NOARGS { int|sys||munlock(void *addr, size_t len); } 290152 NOARGS { int|sys||mlockall(int flags); } 291153 NOARGS { int|sys||munlockall(void); } 292154 STD { int|linux_sys||sched_setparam(pid_t pid, \ 293 const struct linux_sched_param *sp); } 294155 STD { int|linux_sys||sched_getparam(pid_t pid, \ 295 struct linux_sched_param *sp); } 296156 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 297 int policy, const struct linux_sched_param *sp); } 298157 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 299158 STD { int|linux_sys||sched_yield(void); } 300159 STD { int|linux_sys||sched_get_priority_max(int policy); } 301160 STD { int|linux_sys||sched_get_priority_min(int policy); } 302161 UNIMPL sched_rr_get_interval 303162 STD { int|linux_sys||nanosleep( \ 304 const struct linux_timespec *rqtp, \ 305 struct linux_timespec *rmtp); } 306163 STD { void *|linux_sys||mremap(void *old_address, \ 307 size_t old_size, size_t new_size, u_long flags); } 308164 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \ 309 uid_t suid); } 310165 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \ 311 uid_t *suid); } 312166 UNIMPL query_module 313167 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 314 int timeout); } 315168 UNIMPL nfsservctl 316169 STD { int|linux_sys||setresgid(gid_t rgid, gid_t egid, \ 317 gid_t sgid); } 318170 STD { int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \ 319 gid_t *sgid); } 320171 UNIMPL prctl 321172 STD { int|linux_sys||rt_sigreturn( \ 322 struct linux_rt_sigframe *sfp); } 323173 STD { int|linux_sys||rt_sigaction(int signum, \ 324 const struct linux_sigaction *nsa, \ 325 struct linux_sigaction *osa, \ 326 size_t sigsetsize); } 327174 STD { int|linux_sys||rt_sigprocmask(int how, \ 328 const linux_sigset_t *set, \ 329 linux_sigset_t *oset, \ 330 size_t sigsetsize); } 331175 STD { int|linux_sys||rt_sigpending( \ 332 linux_sigset_t *set, \ 333 size_t sigsetsize); } 334176 STD { int|linux_sys||rt_sigtimedwait( \ 335 const linux_sigset_t *set, \ 336 linux_siginfo_t *info, \ 337 const struct linux_timespec *timeout); } 338177 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 339 linux_siginfo_t *uinfo); } 340178 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 341 size_t sigsetsize); } 342179 STD { int|linux_sys||pread(int fd, char *buf, \ 343 size_t nbyte, off_t offset); } 344180 STD { int|linux_sys||pwrite(int fd, char *buf, \ 345 size_t nbyte, off_t offset); } 346181 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \ 347 gid_t gid); } 348182 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 349183 UNIMPL capget 350184 UNIMPL capset 351185 STD { int|linux_sys||sigaltstack( \ 352 const struct linux_sigaltstack *ss, \ 353 struct linux_sigaltstack *oss); } 354186 UNIMPL sendfile 355187 UNIMPL getpmsg 356188 UNIMPL putpmsg 357189 NOARGS { int|sys|14|vfork(void); } 358190 STD { int|linux_sys||ugetrlimit(int which, \ 359 struct rlimit *rlp); } 360191 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 361 size_t count); } 362#define linux_sys_mmap2_args linux_sys_mmap_args 363192 NOARGS { linux_off_t|linux_sys||mmap2(unsigned long addr, \ 364 size_t len, int prot, int flags, int fd, \ 365 linux_off_t offset); } 366193 STD { int|linux_sys||truncate64(const char *path, \ 367 off_t length); } 368194 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 369 off_t length); } 370195 STD { int|linux_sys||stat64(const char *path, \ 371 struct linux_stat64 *sp); } 372196 STD { int|linux_sys||lstat64(const char *path, \ 373 struct linux_stat64 *sp); } 374197 STD { int|linux_sys||fstat64(int fd, \ 375 struct linux_stat64 *sp); } 376198 UNIMPL sys_pciconfig_read 377199 UNIMPL sys_pciconfig_write 378200 UNIMPL sys_pciconfig_iobase 379201 UNIMPL /* Unused (MacOnLinux project) */ 380202 STD { int|linux_sys||getdents64(int fd, \ 381 struct linux_dirent64 *dent, unsigned int count); } 382203 UNIMPL pivot_root 383204 STD { int|linux_sys||fcntl64(int fd, int cmd, void *arg); } 384205 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 385206 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 386207 NOARGS { pid_t|linux_sys||gettid(void); } 387208 STD { int|linux_sys||tkill(int tid, int sig); } 388209 STD { int|linux_sys||setxattr(char *path, char *name, \ 389 void *value, size_t size, int flags); } 390210 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 391 void *value, size_t size, int flags); } 392211 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 393 void *value, size_t size, int flags); } 394212 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 395 void *value, size_t size); } 396213 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 397 void *value, size_t size); } 398214 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 399 void *value, size_t size); } 400215 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 401 size_t size); } 402216 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 403 size_t size); } 404217 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 405 size_t size); } 406218 STD { int|linux_sys||removexattr(char *path, char *name); } 407219 STD { int|linux_sys||lremovexattr(char *path, char *name); } 408220 STD { int|linux_sys||fremovexattr(int fd, char *name); } 409221 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 410 const struct linux_timespec *timeout, int *uaddr2, \ 411 int val3); } 412222 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 413 unsigned int len, unsigned long *mask); } 414223 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 415 unsigned int len, unsigned long *mask); } 416224 UNIMPL /* unused */ 417225 UNIMPL tuxcall 418226 UNIMPL sendfile64 419227 UNIMPL io_setup 420228 UNIMPL io_destroy 421229 UNIMPL io_getevents 422230 UNIMPL io_submit 423231 UNIMPL io_cancel 424232 STD { int|linux_sys||set_tid_address(int *tid); } 425233 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 426 size_t len, int advice); } 427234 STD { int|linux_sys||exit_group(int error_code); } 428235 UNIMPL lookup_dcookie 429236 STD { int|linux_sys||epoll_create(int size); } 430237 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 431 struct linux_epoll_event *event); } 432238 STD { int|linux_sys||epoll_wait(int epfd, \ 433 struct linux_epoll_event *events, int maxevents, \ 434 int timeout); } 435239 UNIMPL remap_file_pages 436240 STD { int|linux_sys||timer_create(clockid_t clockid, \ 437 struct linux_sigevent *evp, timer_t *timerid); } 438241 STD { int|linux_sys||timer_settime(timer_t timerid, \ 439 int flags, const struct linux_itimerspec *tim, \ 440 struct linux_itimerspec *otim); } 441242 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 442 struct linux_itimerspec *tim); } 443243 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 444244 NOARGS { int|sys||timer_delete(timer_t timerid); } 445245 STD { int|linux_sys||clock_settime(clockid_t which, \ 446 struct linux_timespec *tp); } 447246 STD { int|linux_sys||clock_gettime(clockid_t which, \ 448 struct linux_timespec *tp); } 449247 STD { int|linux_sys||clock_getres(clockid_t which, \ 450 struct linux_timespec *tp); } 451248 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 452 int flags, struct linux_timespec *rqtp, \ 453 struct linux_timespec *rmtp); } 454249 UNIMPL swapcontext 455250 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 456251 NOARGS { int|compat_50_sys||utimes(const char *path, \ 457 const struct timeval50 *tptr); } 458252 STD { int|linux_sys||statfs64(const char *path, \ 459 size_t sz, struct linux_statfs64 *sp); } 460253 STD { int|linux_sys||fstatfs64(int fd, \ 461 size_t sz, struct linux_statfs64 *sp); } 462254 STD { int|linux_sys||fadvise64_64(int fd, off_t offset, \ 463 off_t len, int advice); } 464255 UNIMPL rtas 465256 UNIMPL /* reserved for sys_debug_setcontext */ 466257 UNIMPL /* reserved for vserver */ 467258 UNIMPL /* reserved for new sys_remap_file_pages */ 468259 UNIMPL /* reserved for new sys_mbind */ 469260 UNIMPL /* reserved for new sys_get_mempolicy */ 470261 UNIMPL /* reserved for new sys_set_mempolicy */ 471262 UNIMPL mq_open 472263 UNIMPL mq_unlink 473264 UNIMPL mq_timedsend 474265 UNIMPL mq_timedreceive 475266 UNIMPL mq_notify 476267 UNIMPL mq_getsetattr 477268 UNIMPL kexec_load 478269 UNIMPL add_key 479270 UNIMPL request_key 480271 UNIMPL keyctl 481272 UNIMPL waitid 482273 UNIMPL ioprio_set 483274 UNIMPL ioprio_get 484275 UNIMPL inotify_init 485276 UNIMPL inotify_add_watch 486277 UNIMPL inotify_rm_watch 487278 UNIMPL spu_run 488279 UNIMPL spu_create 489280 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 490 fd_set *writefds, fd_set *exceptfds, \ 491 struct linux_timespec *timeout, \ 492 linux_sized_sigset_t *ss); } 493281 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 494 struct linux_timespec *timeout, \ 495 linux_sigset_t *sigset); } 496282 UNIMPL unshare 497283 UNIMPL splice 498284 UNIMPL tee 499285 UNIMPL vmsplice 500286 STD { int|linux_sys||openat(int fd, const char *path, \ 501 int flags, ... linux_umode_t mode); } 502287 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 503 linux_umode_t mode); } 504288 STD { int|linux_sys||mknodat(int fd, const char *path, \ 505 linux_umode_t mode, unsigned dev); } 506289 STD { int|linux_sys||fchownat(int fd, const char *path, \ 507 uid_t owner, gid_t group, int flag); } 508290 UNIMPL futimesat 509291 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 510 struct linux_stat64 *sp, int flag); } 511292 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 512 int flag); } 513293 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 514 int tofd, const char *to); } 515294 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 516 int fd2, const char *name2, int flags); } 517295 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 518 const char *path2); } 519296 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 520 char *buf, size_t bufsize); } 521297 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 522 linux_umode_t mode); } 523298 STD { int|linux_sys||faccessat(int fd, const char *path, \ 524 int amode); } 525 ; 526 ; The NetBSD native robust list calls have different 527 ; argument names / types, but they are ABI-compatible 528 ; with Linux. 529 ; 530299 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 531 size_t len); } 532300 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 533 void **headp, size_t *lenp); } 534301 UNIMPL move_pages 535302 UNIMPL getcpu 536303 STD { int|linux_sys||epoll_pwait(int epfd, \ 537 struct linux_epoll_event *events, int maxevents, \ 538 int timeout, const linux_sigset_t *sigmask); } 539304 STD { int|linux_sys||utimensat(int fd, const char *path, \ 540 struct linux_timespec *times, int flag); } 541305 UNIMPL signalfd 542306 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 543 int flags); } 544307 STD { int|linux_sys||eventfd(unsigned int initval); } 545308 UNIMPL sync_file_range2 546309 STD { int|linux_sys||fallocate(int fd, int mode, \ 547 off_t offset, off_t len); } 548310 UNIMPL subpage_prot 549311 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 550 const struct linux_itimerspec *tim, \ 551 struct linux_itimerspec *otim); } 552312 STD { int|linux_sys||timerfd_gettime(int fd, \ 553 struct linux_itimerspec *tim); } 554313 UNIMPL signalfd4 555314 STD { int|linux_sys||eventfd2(unsigned int initval, \ 556 int flags); } 557315 STD { int|linux_sys||epoll_create1(int flags); } 558316 STD { int|linux_sys||dup3(int from, int to, int flags); } 559317 STD { int|linux_sys||pipe2(int *pfds, int flags); } 560318 UNIMPL inotify_init1 561319 UNIMPL perf_event_open 562320 STD { int|linux_sys||preadv(int fd, \ 563 const struct iovec *iovp, int iovcnt, \ 564 unsigned long off_lo, unsigned long off_hi); } 565321 STD { int|linux_sys||pwritev(int fd, \ 566 const struct iovcnt *iovp, int iovcnt, \ 567 unsigned long off_lo, unsigned long off_hi); } 568322 UNIMPL rt_tgsigqueueinfo 569323 UNIMPL fanotify_init 570324 UNIMPL fanotify_mark 571325 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 572 struct rlimit *new_rlp, struct rlimit *old_rlp); } 573326 UNIMPL socket 574327 UNIMPL bind 575328 UNIMPL connect 576329 UNIMPL listen 577330 UNIMPL accept 578331 UNIMPL getsockname 579332 UNIMPL getpeername 580333 UNIMPL socketpair 581334 UNIMPL send 582335 UNIMPL sendto 583336 UNIMPL recv 584337 UNIMPL recvfrom 585338 UNIMPL shutdown 586339 UNIMPL setsockopt 587340 UNIMPL getsockopt 588341 UNIMPL sendmsg 589342 UNIMPL recvmsg 590343 STD { int|linux_sys||recvmmsg(int s, \ 591 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 592 unsigned int flags, struct timespec *timeout); } 593344 STD { int|linux_sys||accept4(int s, \ 594 struct osockaddr *name, \ 595 int *anamelen, int flags); } 596345 UNIMPL name_to_handle_at 597346 UNIMPL open_by_handle_at 598347 UNIMPL clock_adjtime 599348 UNIMPL syncfs 600349 STD { int|linux_sys||sendmmsg(int s, \ 601 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 602 unsigned int flags); } 603350 UNIMPL setns 604351 UNIMPL process_vm_readv 605352 UNIMPL process_vm_writev 606353 UNIMPL finit_module 607354 UNIMPL kcmp 608355 UNIMPL sched_setattr 609356 UNIMPL sched_getattr 610357 UNIMPL renameat2 611358 UNIMPL seccomp 612359 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 613 unsigned int flags); } 614360 UNIMPL memfd_create 615361 UNIMPL bpf 616362 UNIMPL execveat 617363 UNIMPL switch_endian 618364 UNIMPL userfaultfd 619365 UNIMPL membarrier 620366 UNIMPL 621367 UNIMPL 622368 UNIMPL 623369 UNIMPL 624370 UNIMPL 625371 UNIMPL 626372 UNIMPL 627373 UNIMPL 628374 UNIMPL 629375 UNIMPL 630376 UNIMPL 631377 UNIMPL 632378 UNIMPL mlock2 633379 UNIMPL copy_file_range 634380 UNIMPL preadv2 635381 UNIMPL pwritev2 636382 UNIMPL kexec_file_load 637383 STD { int|linux_sys||statx(int fd, const char *path, \ 638 int flag, unsigned int mask, \ 639 struct linux_statx *sp); } 640384 UNIMPL 641385 UNIMPL 642386 UNIMPL 643387 UNIMPL 644388 UNIMPL 645389 UNIMPL 646390 UNIMPL 647391 UNIMPL 648392 UNIMPL 649393 UNIMPL 650394 UNIMPL 651395 UNIMPL 652396 UNIMPL 653397 UNIMPL 654398 UNIMPL 655399 UNIMPL 656400 UNIMPL 657401 UNIMPL 658402 UNIMPL 659403 UNIMPL 660404 UNIMPL 661405 UNIMPL 662406 UNIMPL 663407 UNIMPL 664408 UNIMPL 665409 UNIMPL 666410 UNIMPL 667411 UNIMPL 668412 UNIMPL 669413 UNIMPL 670414 UNIMPL 671415 UNIMPL 672416 UNIMPL 673417 UNIMPL 674418 UNIMPL 675419 UNIMPL 676420 UNIMPL 677421 UNIMPL 678422 UNIMPL 679423 UNIMPL 680424 UNIMPL 681425 UNIMPL 682426 UNIMPL 683427 UNIMPL 684428 UNIMPL 685429 UNIMPL 686430 UNIMPL 687431 UNIMPL 688432 UNIMPL 689433 UNIMPL 690434 UNIMPL 691435 UNIMPL 692436 STD { int|linux_sys||close_range(unsigned int first, \ 693 unsigned int last, unsigned int flags); } 694437 UNIMPL 695438 UNIMPL 696439 UNIMPL 697440 UNIMPL 698441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 699 struct linux_epoll_event *events, int maxevents, \ 700 const struct linux_timespec *timeout, \ 701 const linux_sigset_t *sigmask); } 702