syscalls.master revision 1.83
1 $NetBSD: syscalls.master,v 1.83 2023/08/18 19:41:19 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 STD { int|linux_sys||waitid(int idtype, id_t id, \ 482 linux_siginfo_t *infop, int options, \ 483 struct rusage50 *rusage); } 484273 UNIMPL ioprio_set 485274 UNIMPL ioprio_get 486275 UNIMPL inotify_init 487276 UNIMPL inotify_add_watch 488277 UNIMPL inotify_rm_watch 489278 UNIMPL spu_run 490279 UNIMPL spu_create 491280 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 492 fd_set *writefds, fd_set *exceptfds, \ 493 struct linux_timespec *timeout, \ 494 linux_sized_sigset_t *ss); } 495281 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 496 struct linux_timespec *timeout, \ 497 linux_sigset_t *sigset); } 498282 UNIMPL unshare 499283 UNIMPL splice 500284 UNIMPL tee 501285 UNIMPL vmsplice 502286 STD { int|linux_sys||openat(int fd, const char *path, \ 503 int flags, ... linux_umode_t mode); } 504287 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 505 linux_umode_t mode); } 506288 STD { int|linux_sys||mknodat(int fd, const char *path, \ 507 linux_umode_t mode, unsigned dev); } 508289 STD { int|linux_sys||fchownat(int fd, const char *path, \ 509 uid_t owner, gid_t group, int flag); } 510290 UNIMPL futimesat 511291 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 512 struct linux_stat64 *sp, int flag); } 513292 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 514 int flag); } 515293 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 516 int tofd, const char *to); } 517294 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 518 int fd2, const char *name2, int flags); } 519295 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 520 const char *path2); } 521296 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 522 char *buf, size_t bufsize); } 523297 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 524 linux_umode_t mode); } 525298 STD { int|linux_sys||faccessat(int fd, const char *path, \ 526 int amode); } 527 ; 528 ; The NetBSD native robust list calls have different 529 ; argument names / types, but they are ABI-compatible 530 ; with Linux. 531 ; 532299 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 533 size_t len); } 534300 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 535 void **headp, size_t *lenp); } 536301 UNIMPL move_pages 537302 UNIMPL getcpu 538303 STD { int|linux_sys||epoll_pwait(int epfd, \ 539 struct linux_epoll_event *events, int maxevents, \ 540 int timeout, const linux_sigset_t *sigmask); } 541304 STD { int|linux_sys||utimensat(int fd, const char *path, \ 542 struct linux_timespec *times, int flag); } 543305 UNIMPL signalfd 544306 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 545 int flags); } 546307 STD { int|linux_sys||eventfd(unsigned int initval); } 547308 UNIMPL sync_file_range2 548309 STD { int|linux_sys||fallocate(int fd, int mode, \ 549 off_t offset, off_t len); } 550310 UNIMPL subpage_prot 551311 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 552 const struct linux_itimerspec *tim, \ 553 struct linux_itimerspec *otim); } 554312 STD { int|linux_sys||timerfd_gettime(int fd, \ 555 struct linux_itimerspec *tim); } 556313 UNIMPL signalfd4 557314 STD { int|linux_sys||eventfd2(unsigned int initval, \ 558 int flags); } 559315 STD { int|linux_sys||epoll_create1(int flags); } 560316 STD { int|linux_sys||dup3(int from, int to, int flags); } 561317 STD { int|linux_sys||pipe2(int *pfds, int flags); } 562318 UNIMPL inotify_init1 563319 UNIMPL perf_event_open 564320 STD { int|linux_sys||preadv(int fd, \ 565 const struct iovec *iovp, int iovcnt, \ 566 unsigned long off_lo, unsigned long off_hi); } 567321 STD { int|linux_sys||pwritev(int fd, \ 568 const struct iovcnt *iovp, int iovcnt, \ 569 unsigned long off_lo, unsigned long off_hi); } 570322 UNIMPL rt_tgsigqueueinfo 571323 UNIMPL fanotify_init 572324 UNIMPL fanotify_mark 573325 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 574 struct rlimit *new_rlp, struct rlimit *old_rlp); } 575326 UNIMPL socket 576327 UNIMPL bind 577328 UNIMPL connect 578329 UNIMPL listen 579330 UNIMPL accept 580331 UNIMPL getsockname 581332 UNIMPL getpeername 582333 UNIMPL socketpair 583334 UNIMPL send 584335 UNIMPL sendto 585336 UNIMPL recv 586337 UNIMPL recvfrom 587338 UNIMPL shutdown 588339 UNIMPL setsockopt 589340 UNIMPL getsockopt 590341 UNIMPL sendmsg 591342 UNIMPL recvmsg 592343 STD { int|linux_sys||recvmmsg(int s, \ 593 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 594 unsigned int flags, struct timespec *timeout); } 595344 STD { int|linux_sys||accept4(int s, \ 596 struct osockaddr *name, \ 597 int *anamelen, int flags); } 598345 UNIMPL name_to_handle_at 599346 UNIMPL open_by_handle_at 600347 UNIMPL clock_adjtime 601348 UNIMPL syncfs 602349 STD { int|linux_sys||sendmmsg(int s, \ 603 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 604 unsigned int flags); } 605350 UNIMPL setns 606351 UNIMPL process_vm_readv 607352 UNIMPL process_vm_writev 608353 UNIMPL finit_module 609354 UNIMPL kcmp 610355 UNIMPL sched_setattr 611356 UNIMPL sched_getattr 612357 UNIMPL renameat2 613358 UNIMPL seccomp 614359 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 615 unsigned int flags); } 616360 UNIMPL memfd_create 617361 UNIMPL bpf 618362 UNIMPL execveat 619363 UNIMPL switch_endian 620364 UNIMPL userfaultfd 621365 UNIMPL membarrier 622366 UNIMPL 623367 UNIMPL 624368 UNIMPL 625369 UNIMPL 626370 UNIMPL 627371 UNIMPL 628372 UNIMPL 629373 UNIMPL 630374 UNIMPL 631375 UNIMPL 632376 UNIMPL 633377 UNIMPL 634378 UNIMPL mlock2 635379 UNIMPL copy_file_range 636380 UNIMPL preadv2 637381 UNIMPL pwritev2 638382 UNIMPL kexec_file_load 639383 STD { int|linux_sys||statx(int fd, const char *path, \ 640 int flag, unsigned int mask, \ 641 struct linux_statx *sp); } 642384 UNIMPL 643385 UNIMPL 644386 UNIMPL 645387 UNIMPL 646388 UNIMPL 647389 UNIMPL 648390 UNIMPL 649391 UNIMPL 650392 UNIMPL 651393 UNIMPL 652394 UNIMPL 653395 UNIMPL 654396 UNIMPL 655397 UNIMPL 656398 UNIMPL 657399 UNIMPL 658400 UNIMPL 659401 UNIMPL 660402 UNIMPL 661403 UNIMPL 662404 UNIMPL 663405 UNIMPL 664406 UNIMPL 665407 UNIMPL 666408 UNIMPL 667409 UNIMPL 668410 UNIMPL 669411 UNIMPL 670412 UNIMPL 671413 UNIMPL 672414 UNIMPL 673415 UNIMPL 674416 UNIMPL 675417 UNIMPL 676418 UNIMPL 677419 UNIMPL 678420 UNIMPL 679421 UNIMPL 680422 UNIMPL 681423 UNIMPL 682424 UNIMPL 683425 UNIMPL 684426 UNIMPL 685427 UNIMPL 686428 UNIMPL 687429 UNIMPL 688430 UNIMPL 689431 UNIMPL 690432 UNIMPL 691433 UNIMPL 692434 UNIMPL 693435 UNIMPL 694436 STD { int|linux_sys||close_range(unsigned int first, \ 695 unsigned int last, unsigned int flags); } 696437 UNIMPL 697438 UNIMPL 698439 UNIMPL 699440 UNIMPL 700441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 701 struct linux_epoll_event *events, int maxevents, \ 702 const struct linux_timespec *timeout, \ 703 const linux_sigset_t *sigmask); } 704