1 $NetBSD: syscalls.master,v 1.74 2020/04/26 18:53:32 thorpej 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 UNIMPL /* unused */ 361#define linux_sys_mmap2_args linux_sys_mmap_args 362192 NOARGS { linux_off_t|linux_sys||mmap2(unsigned long addr, \ 363 size_t len, int prot, int flags, int fd, \ 364 linux_off_t offset); } 365193 STD { int|linux_sys||truncate64(const char *path, \ 366 off_t length); } 367194 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 368 off_t length); } 369195 STD { int|linux_sys||stat64(const char *path, \ 370 struct linux_stat64 *sp); } 371196 STD { int|linux_sys||lstat64(const char *path, \ 372 struct linux_stat64 *sp); } 373197 STD { int|linux_sys||fstat64(int fd, \ 374 struct linux_stat64 *sp); } 375198 UNIMPL sys_pciconfig_read 376199 UNIMPL sys_pciconfig_write 377200 UNIMPL sys_pciconfig_iobase 378201 UNIMPL /* Unused (MacOnLinux project) */ 379202 STD { int|linux_sys||getdents64(int fd, \ 380 struct linux_dirent64 *dent, unsigned int count); } 381203 UNIMPL pivot_root 382204 STD { int|linux_sys||fcntl64(int fd, int cmd, void *arg); } 383205 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 384206 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 385207 NOARGS { pid_t|linux_sys||gettid(void); } 386208 STD { int|linux_sys||tkill(int tid, int sig); } 387209 STD { int|linux_sys||setxattr(char *path, char *name, \ 388 void *value, size_t size, int flags); } 389210 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 390 void *value, size_t size, int flags); } 391211 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 392 void *value, size_t size, int flags); } 393212 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 394 void *value, size_t size); } 395213 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 396 void *value, size_t size); } 397214 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 398 void *value, size_t size); } 399215 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 400 size_t size); } 401216 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 402 size_t size); } 403217 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 404 size_t size); } 405218 STD { int|linux_sys||removexattr(char *path, char *name); } 406219 STD { int|linux_sys||lremovexattr(char *path, char *name); } 407220 STD { int|linux_sys||fremovexattr(int fd, char *name); } 408221 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 409 const struct linux_timespec *timeout, int *uaddr2, \ 410 int val3); } 411222 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 412 unsigned int len, unsigned long *mask); } 413223 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 414 unsigned int len, unsigned long *mask); } 415224 UNIMPL /* unused */ 416225 UNIMPL tuxcall 417226 UNIMPL sendfile64 418227 UNIMPL io_setup 419228 UNIMPL io_destroy 420229 UNIMPL io_getevents 421230 UNIMPL io_submit 422231 UNIMPL io_cancel 423232 STD { int|linux_sys||set_tid_address(int *tid); } 424233 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 425 size_t len, int advice); } 426234 STD { int|linux_sys||exit_group(int error_code); } 427235 UNIMPL lookup_dcookie 428236 UNIMPL epoll_create 429237 UNIMPL epoll_ctl 430238 UNIMPL epoll_wait 431239 UNIMPL remap_file_pages 432240 UNIMPL timer_create 433241 UNIMPL timer_settime 434242 UNIMPL timer_gettime 435243 UNIMPL timer_getoverrun 436244 UNIMPL timer_delete 437245 STD { int|linux_sys||clock_settime(clockid_t which, \ 438 struct linux_timespec *tp); } 439246 STD { int|linux_sys||clock_gettime(clockid_t which, \ 440 struct linux_timespec *tp); } 441247 STD { int|linux_sys||clock_getres(clockid_t which, \ 442 struct linux_timespec *tp); } 443248 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 444 int flags, struct linux_timespec *rqtp, \ 445 struct linux_timespec *rmtp); } 446249 UNIMPL swapcontext 447250 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 448251 NOARGS { int|compat_50_sys||utimes(const char *path, \ 449 const struct timeval50 *tptr); } 450252 STD { int|linux_sys||statfs64(const char *path, \ 451 size_t sz, struct linux_statfs64 *sp); } 452253 STD { int|linux_sys||fstatfs64(int fd, \ 453 size_t sz, struct linux_statfs64 *sp); } 454254 STD { int|linux_sys||fadvise64_64(int fd, off_t offset, \ 455 off_t len, int advice); } 456255 UNIMPL rtas 457256 UNIMPL /* reserved for sys_debug_setcontext */ 458257 UNIMPL /* reserved for vserver */ 459258 UNIMPL /* reserved for new sys_remap_file_pages */ 460259 UNIMPL /* reserved for new sys_mbind */ 461260 UNIMPL /* reserved for new sys_get_mempolicy */ 462261 UNIMPL /* reserved for new sys_set_mempolicy */ 463262 UNIMPL mq_open 464263 UNIMPL mq_unlink 465264 UNIMPL mq_timedsend 466265 UNIMPL mq_timedreceive 467266 UNIMPL mq_notify 468267 UNIMPL mq_getsetattr 469268 UNIMPL kexec_load 470269 UNIMPL add_key 471270 UNIMPL request_key 472271 UNIMPL keyctl 473272 UNIMPL waitid 474273 UNIMPL ioprio_set 475274 UNIMPL ioprio_get 476275 UNIMPL inotify_init 477276 UNIMPL inotify_add_watch 478277 UNIMPL inotify_rm_watch 479278 UNIMPL spu_run 480279 UNIMPL spu_create 481280 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 482 fd_set *writefds, fd_set *exceptfds, \ 483 struct linux_timespec *timeout, \ 484 linux_sized_sigset_t *ss); } 485281 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 486 struct linux_timespec *timeout, \ 487 linux_sigset_t *sigset); } 488282 UNIMPL unshare 489283 UNIMPL splice 490284 UNIMPL tee 491285 UNIMPL vmsplice 492286 STD { int|linux_sys||openat(int fd, const char *path, \ 493 int flags, ... linux_umode_t mode); } 494287 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 495 linux_umode_t mode); } 496288 STD { int|linux_sys||mknodat(int fd, const char *path, \ 497 linux_umode_t mode, unsigned dev); } 498289 STD { int|linux_sys||fchownat(int fd, const char *path, \ 499 uid_t owner, gid_t group, int flag); } 500290 UNIMPL futimesat 501291 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 502 struct linux_stat64 *sp, int flag); } 503292 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 504 int flag); } 505293 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 506 int tofd, const char *to); } 507294 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 508 int fd2, const char *name2, int flags); } 509295 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 510 const char *path2); } 511296 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 512 char *buf, size_t bufsize); } 513297 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 514 linux_umode_t mode); } 515298 STD { int|linux_sys||faccessat(int fd, const char *path, \ 516 int amode); } 517 ; 518 ; The NetBSD native robust list calls have different 519 ; argument names / types, but they are ABI-compatible 520 ; with Linux. 521 ; 522299 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 523 size_t len); } 524300 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 525 void **headp, size_t *lenp); } 526301 UNIMPL move_pages 527302 UNIMPL getcpu 528303 UNIMPL epoll_wait 529304 STD { int|linux_sys||utimensat(int fd, const char *path, \ 530 struct linux_timespec *times, int flag); } 531305 UNIMPL signalfd 532306 UNIMPL timerfd_create 533307 UNIMPL eventfd 534308 UNIMPL sync_file_range2 535309 STD { int|linux_sys||fallocate(int fd, int mode, \ 536 off_t offset, off_t len); } 537310 UNIMPL subpage_prot 538311 UNIMPL timerfd_settime 539312 UNIMPL timerfd_gettime 540313 UNIMPL signalfd4 541314 UNIMPL eventfd2 542315 UNIMPL epoll_create1 543316 STD { int|linux_sys||dup3(int from, int to, int flags); } 544317 STD { int|linux_sys||pipe2(int *pfds, int flags); } 545318 UNIMPL inotify_init1 546319 UNIMPL perf_event_open 547320 UNIMPL preadv 548321 UNIMPL pwritev 549322 UNIMPL rt_tgsigqueueinfo 550323 UNIMPL fanotify_init 551324 UNIMPL fanotify_mark 552325 UNIMPL prlimit64 553326 UNIMPL socket 554327 UNIMPL bind 555328 UNIMPL connect 556329 UNIMPL listen 557330 UNIMPL accept 558331 UNIMPL getsockname 559332 UNIMPL getpeername 560333 UNIMPL socketpair 561334 UNIMPL send 562335 UNIMPL sendto 563336 UNIMPL recv 564337 UNIMPL recvfrom 565338 UNIMPL shutdown 566339 UNIMPL setsockopt 567340 UNIMPL getsockopt 568341 UNIMPL sendmsg 569342 UNIMPL recvmsg 570343 STD { int|linux_sys||recvmmsg(int s, \ 571 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 572 unsigned int flags, struct timespec *timeout); } 573344 STD { int|linux_sys||accept4(int s, \ 574 struct osockaddr *name, \ 575 int *anamelen, int flags); } 576345 UNIMPL name_to_handle_at 577346 UNIMPL open_by_handle_at 578347 UNIMPL clock_adjtime 579348 UNIMPL syncfs 580349 STD { int|linux_sys||sendmmsg(int s, \ 581 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 582 unsigned int flags); } 583350 UNIMPL setns 584351 UNIMPL process_vm_readv 585352 UNIMPL process_vm_writev 586353 UNIMPL finit_module 587354 UNIMPL kcmp 588355 UNIMPL sched_setattr 589356 UNIMPL sched_getattr 590357 UNIMPL renameat2 591358 UNIMPL seccomp 592359 UNIMPL getrandom 593360 UNIMPL memfd_create 594361 UNIMPL bpf 595362 UNIMPL execveat 596363 UNIMPL switch_endian 597364 UNIMPL userfaultfd 598365 UNIMPL membarrier 599366 UNIMPL 600367 UNIMPL 601368 UNIMPL 602369 UNIMPL 603370 UNIMPL 604371 UNIMPL 605372 UNIMPL 606373 UNIMPL 607374 UNIMPL 608375 UNIMPL 609376 UNIMPL 610377 UNIMPL 611378 UNIMPL mlock2 612379 UNIMPL copy_file_range 613380 UNIMPL preadv2 614381 UNIMPL pwritev2 615382 UNIMPL kexec_file_load 616