syscalls.master revision 1.85
1 $NetBSD: syscalls.master,v 1.85 2024/06/29 13:46:10 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#include <compat/linux/common/linux_sched.h> 78 79#include <compat/linux/linux_syscallargs.h> 80 81%% 82 830 NOARGS { int|linux_sys||nosys(void); } syscall 841 STD { int|linux_sys||exit(int rval); } 852 NOARGS { int|sys||fork(void); } 863 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 874 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 88 size_t nbyte); } 895 STD { int|linux_sys||open(const char *path, int flags, \ 90 linux_umode_t mode); } 916 NOARGS { int|sys||close(int fd); } 927 STD { int|linux_sys||waitpid(int pid, int *status, \ 93 int options);} 948 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 959 NOARGS { int|sys||link(const char *path, const char *link); } 9610 STD { int|linux_sys||unlink(const char *path); } 9711 NOARGS { int|sys||execve(const char *path, char **argp, \ 98 char **envp); } 9912 NOARGS { int|sys||chdir(const char *path); } 10013 STD { int|linux_sys||time(linux_time_t *t); } 10114 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 102 unsigned dev); } 10315 NOARGS { int|sys||chmod(const char *path, int mode); } 10416 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 105 gid_t gid); } 10617 OBSOL break 10718 OBSOL ostat 10819 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 109 int whence); } 11020 NOARGS { pid_t|sys||getpid(void); } 11121 UNIMPL mount 11222 OBSOL umount 11323 NOARGS { int|sys||setuid(uid_t uid); } 11424 NOARGS { uid_t|sys||getuid(void); } 11525 STD { int|linux_sys||stime(linux_time_t *t); } 11626 STD { int|linux_sys||ptrace(int request, int pid, \ 117 long addr, long data); } 11827 STD { int|linux_sys||alarm(unsigned int secs); } 11928 OBSOL ofstat 12029 STD { int|linux_sys||pause(void); } 12130 STD { int|linux_sys||utime(const char *path, \ 122 struct linux_utimbuf *times); } 12331 OBSOL stty 12432 OBSOL gtty 12533 NOARGS { int|sys||access(const char *path, int flags); } 12634 STD { int|linux_sys||nice(int incr); } 12735 OBSOL ftime 12836 NOARGS { int|sys||sync(void); } 12937 STD { int|linux_sys||kill(int pid, int signum); } 13038 NOARGS { int|sys||__posix_rename(const char *from, \ 131 const char *to); } 13239 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 13340 NOARGS { int|sys||rmdir(const char *path); } 13441 NOARGS { int|sys||dup(int fd); } 13542 STD { int|linux_sys||pipe(int *pfds); } 13643 STD { int|linux_sys||times(struct times *tms); } 13744 OBSOL prof 13845 STD { int|linux_sys||brk(char *nsize); } 13946 NOARGS { int|sys||setgid(gid_t gid); } 14047 NOARGS { gid_t|sys||getgid(void); } 14148 STD { int|linux_sys||signal(int signum, \ 142 linux_handler_t handler); } 14349 NOARGS { uid_t|sys||geteuid(void); } 14450 NOARGS { gid_t|sys||getegid(void); } 14551 NOARGS { int|sys||acct(char *path); } 14652 UNIMPL umount 14753 OBSOL lock 14854 STD { int|linux_sys||ioctl(int fd, u_long com, \ 149 void *data); } 15055 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 15156 OBSOL mpx 15257 NOARGS { int|sys||setpgid(int pid, int pgid); } 15358 OBSOL ulimit 15459 STD { int|linux_sys||olduname(struct linux_old_utsname \ 155 *up); } 15660 NOARGS { int|sys||umask(int newmask); } 15761 NOARGS { int|sys||chroot(char *path); } 15862 UNIMPL ustat 15963 NOARGS { int|sys||dup2(int from, int to); } 16064 NOARGS { pid_t|sys||getppid(void); } 16165 NOARGS { int|sys||getpgrp(void); } 16266 NOARGS { int|sys||setsid(void); } 16367 STD { int|linux_sys||sigaction(int signum, \ 164 const struct linux_old_sigaction *nsa, \ 165 struct linux_old_sigaction *osa); } 16668 STD { int|linux_sys||siggetmask(void); } 16769 STD { int|linux_sys||sigsetmask(linux_old_sigset_t mask); } 16870 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); } 16971 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); } 17072 STD { int|linux_sys||sigsuspend(void *restart, \ 171 int oldmask, int mask); } 17273 STD { int|linux_sys||sigpending(linux_old_sigset_t *set); } 17374 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 174 u_int len);} 17575 STD { int|linux_sys||setrlimit(u_int which, \ 176 struct orlimit *rlp); } 17776 STD { int|linux_sys||getrlimit(u_int which, \ 178 struct orlimit *rlp); } 17977 NOARGS { int|compat_50_sys||getrusage(int who, \ 180 struct rusage50 *rusage); } 18178 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 182 struct timezone *tzp); } 18379 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 184 struct timezone *tzp); } 18580 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); } 18681 NOARGS { int|sys||setgroups(int gidsetsize, gid_t *gidset); } 18782 STD { int|linux_sys||select(int nfds, fd_set* readfds, \ 188 fd_set* writefds, fd_set* exceptfds, \ 189 struct timeval50 *timeout); } 19083 NOARGS { int|sys||symlink(const char *path, const char *to); } 19184 NOARGS { int|compat_43_sys||lstat(const char *path, \ 192 struct stat43 *up); } oolstat 19385 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 194 int count); } 195#ifdef EXEC_AOUT 19686 STD { int|linux_sys||uselib(const char *path); } 197#else 19886 UNIMPL sys_uselib 199#endif 20087 STD { int|linux_sys||swapon(char *name); } 20188 STD { int|linux_sys||reboot(int magic1, int magic2, \ 202 int cmd, void *arg); } 20389 STD { int|linux_sys||readdir(int fd, void *dent, \ 204 unsigned int count); } 20590 NOARGS { int|linux_sys||mmap(unsigned long addr, size_t len, \ 206 int prot, int flags, int fd, linux_off_t offset); } 20791 NOARGS { int|sys||munmap(void *addr, size_t len); } 20892 NOARGS { int|compat_43_sys||truncate(const char *path, \ 209 long length); } 21093 NOARGS { int|compat_43_sys||ftruncate(int fd, long length); } 21194 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 21295 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \ 213 gid_t gid); } 21496 STD { int|linux_sys||getpriority(int which, int who); } 21597 NOARGS { int|sys||setpriority(int which, int who, int prio); } 21698 NOARGS { int|sys||profil(void *samples, u_int size, \ 217 u_int offset, u_int scale); } 21899 STD { int|linux_sys||statfs(const char *path, \ 219 struct linux_statfs *sp); } 220100 STD { int|linux_sys||fstatfs(int fd, \ 221 struct linux_statfs *sp); } 222101 UNIMPL ioperm 223102 STD { int|linux_sys||socketcall(int what, void *args); } 224103 UNIMPL syslog 225104 NOARGS { int|compat_50_sys||setitimer(int which, \ 226 struct itimerval50 *itv, \ 227 struct itimerval50 *oitv); } 228105 NOARGS { int|compat_50_sys||getitimer(int which, \ 229 struct itimerval50 *itv); } 230106 STD { int|linux_sys||stat(const char *path, \ 231 struct linux_stat *sp); } 232107 STD { int|linux_sys||lstat(const char *path, \ 233 struct linux_stat *sp); } 234108 STD { int|linux_sys||fstat(int fd, struct linux_stat *sp); } 235109 STD { int|linux_sys||uname(struct linux_utsname *up); } 236110 UNIMPL iopl 237111 UNIMPL vhangup 238112 UNIMPL idle 239113 UNIMPL vm86old 240114 STD { int|linux_sys||wait4(int pid, int *status, \ 241 int options, struct rusage50 *rusage); } 242115 STD { int|linux_sys||swapoff(const char *path); } 243116 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 244117 STD { int|linux_sys||ipc(int what, int a1, int a2, int a3, \ 245 void *ptr); } 246118 NOARGS { int|sys||fsync(int fd); } 247119 STD { int|linux_sys||sigreturn(struct linux_sigcontext *scp); } 248120 STD { int|linux_sys||clone(int flags, void *stack, \ 249 void *parent_tidptr, void *tls, void *child_tidptr); } 250121 STD { int|linux_sys||setdomainname(char *domainname, \ 251 int len); } 252122 STD { int|linux_sys||new_uname(struct linux_utsname *up); } 253123 UNIMPL modify_ldt 254124 UNIMPL adjtimex 255125 STD { int|linux_sys||mprotect(const void *start, \ 256 unsigned long len, int prot); } 257126 STD { int|linux_sys||sigprocmask(int how, \ 258 const linux_old_sigset_t *set, \ 259 linux_old_sigset_t *oset); } 260127 UNIMPL create_module 261128 UNIMPL init_module 262129 UNIMPL delete_module 263130 UNIMPL get_kernel_syms 264131 UNIMPL quotactl 265132 NOARGS { pid_t|sys||getpgid(pid_t pid); } 266133 NOARGS { int|sys||fchdir(int fd); } 267134 UNIMPL bdflush 268135 UNIMPL sysfs 269136 STD { int|linux_sys||personality(unsigned long per); } 270137 UNIMPL afs_syscall 271138 STD { int|linux_sys||setfsuid(uid_t uid); } 272139 STD { int|linux_sys||setfsgid(gid_t gid); } 273140 STD { int|linux_sys||llseek(int fd, u_int32_t ohigh, \ 274 u_int32_t olow, void *res, int whence); } 275141 STD { int|linux_sys||getdents(int fd, \ 276 struct linux_dirent *dent, unsigned int count); } 277142 STD { int|linux_sys||new_select(int nfds, fd_set *readfds, \ 278 fd_set *writefds, fd_set *exceptfds, \ 279 struct timeval50 *timeout); } 280143 NOARGS { int|sys||flock(int fd, int how); } 281144 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 282145 NOARGS { ssize_t|sys||readv(int fd, \ 283 const struct iovec *iovp, int iovcnt); } 284146 NOARGS { ssize_t|sys||writev(int fd, \ 285 const struct iovec *iovp, int iovcnt); } 286147 NOARGS { pid_t|sys||getsid(pid_t pid); } 287148 STD { int|linux_sys||fdatasync(int fd); } 288149 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 289150 NOARGS { int|sys||mlock(void *addr, size_t len); } 290151 NOARGS { int|sys||munlock(void *addr, size_t len); } 291152 NOARGS { int|sys||mlockall(int flags); } 292153 NOARGS { int|sys||munlockall(void); } 293154 STD { int|linux_sys||sched_setparam(pid_t pid, \ 294 const struct linux_sched_param *sp); } 295155 STD { int|linux_sys||sched_getparam(pid_t pid, \ 296 struct linux_sched_param *sp); } 297156 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 298 int policy, const struct linux_sched_param *sp); } 299157 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 300158 STD { int|linux_sys||sched_yield(void); } 301159 STD { int|linux_sys||sched_get_priority_max(int policy); } 302160 STD { int|linux_sys||sched_get_priority_min(int policy); } 303161 UNIMPL sched_rr_get_interval 304162 STD { int|linux_sys||nanosleep( \ 305 const struct linux_timespec *rqtp, \ 306 struct linux_timespec *rmtp); } 307163 STD { void *|linux_sys||mremap(void *old_address, \ 308 size_t old_size, size_t new_size, u_long flags); } 309164 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \ 310 uid_t suid); } 311165 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \ 312 uid_t *suid); } 313166 UNIMPL query_module 314167 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 315 int timeout); } 316168 UNIMPL nfsservctl 317169 STD { int|linux_sys||setresgid(gid_t rgid, gid_t egid, \ 318 gid_t sgid); } 319170 STD { int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \ 320 gid_t *sgid); } 321171 UNIMPL prctl 322172 STD { int|linux_sys||rt_sigreturn( \ 323 struct linux_rt_sigframe *sfp); } 324173 STD { int|linux_sys||rt_sigaction(int signum, \ 325 const struct linux_sigaction *nsa, \ 326 struct linux_sigaction *osa, \ 327 size_t sigsetsize); } 328174 STD { int|linux_sys||rt_sigprocmask(int how, \ 329 const linux_sigset_t *set, \ 330 linux_sigset_t *oset, \ 331 size_t sigsetsize); } 332175 STD { int|linux_sys||rt_sigpending( \ 333 linux_sigset_t *set, \ 334 size_t sigsetsize); } 335176 STD { int|linux_sys||rt_sigtimedwait( \ 336 const linux_sigset_t *set, \ 337 linux_siginfo_t *info, \ 338 const struct linux_timespec *timeout); } 339177 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 340 linux_siginfo_t *uinfo); } 341178 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 342 size_t sigsetsize); } 343179 STD { int|linux_sys||pread(int fd, char *buf, \ 344 size_t nbyte, off_t offset); } 345180 STD { int|linux_sys||pwrite(int fd, char *buf, \ 346 size_t nbyte, off_t offset); } 347181 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \ 348 gid_t gid); } 349182 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 350183 UNIMPL capget 351184 UNIMPL capset 352185 STD { int|linux_sys||sigaltstack( \ 353 const struct linux_sigaltstack *ss, \ 354 struct linux_sigaltstack *oss); } 355186 UNIMPL sendfile 356187 UNIMPL getpmsg 357188 UNIMPL putpmsg 358189 NOARGS { int|sys|14|vfork(void); } 359190 STD { int|linux_sys||ugetrlimit(int which, \ 360 struct rlimit *rlp); } 361191 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 362 size_t count); } 363#define linux_sys_mmap2_args linux_sys_mmap_args 364192 NOARGS { linux_off_t|linux_sys||mmap2(unsigned long addr, \ 365 size_t len, int prot, int flags, int fd, \ 366 linux_off_t offset); } 367193 STD { int|linux_sys||truncate64(const char *path, \ 368 off_t length); } 369194 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 370 off_t length); } 371195 STD { int|linux_sys||stat64(const char *path, \ 372 struct linux_stat64 *sp); } 373196 STD { int|linux_sys||lstat64(const char *path, \ 374 struct linux_stat64 *sp); } 375197 STD { int|linux_sys||fstat64(int fd, \ 376 struct linux_stat64 *sp); } 377198 UNIMPL sys_pciconfig_read 378199 UNIMPL sys_pciconfig_write 379200 UNIMPL sys_pciconfig_iobase 380201 UNIMPL /* Unused (MacOnLinux project) */ 381202 STD { int|linux_sys||getdents64(int fd, \ 382 struct linux_dirent64 *dent, unsigned int count); } 383203 UNIMPL pivot_root 384204 STD { int|linux_sys||fcntl64(int fd, int cmd, void *arg); } 385205 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 386206 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 387207 NOARGS { pid_t|linux_sys||gettid(void); } 388208 STD { int|linux_sys||tkill(int tid, int sig); } 389209 STD { int|linux_sys||setxattr(char *path, char *name, \ 390 void *value, size_t size, int flags); } 391210 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 392 void *value, size_t size, int flags); } 393211 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 394 void *value, size_t size, int flags); } 395212 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 396 void *value, size_t size); } 397213 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 398 void *value, size_t size); } 399214 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 400 void *value, size_t size); } 401215 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 402 size_t size); } 403216 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 404 size_t size); } 405217 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 406 size_t size); } 407218 STD { int|linux_sys||removexattr(char *path, char *name); } 408219 STD { int|linux_sys||lremovexattr(char *path, char *name); } 409220 STD { int|linux_sys||fremovexattr(int fd, char *name); } 410221 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 411 const struct linux_timespec *timeout, int *uaddr2, \ 412 int val3); } 413222 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 414 unsigned int len, unsigned long *mask); } 415223 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 416 unsigned int len, unsigned long *mask); } 417224 UNIMPL /* unused */ 418225 UNIMPL tuxcall 419226 UNIMPL sendfile64 420227 UNIMPL io_setup 421228 UNIMPL io_destroy 422229 UNIMPL io_getevents 423230 UNIMPL io_submit 424231 UNIMPL io_cancel 425232 STD { int|linux_sys||set_tid_address(int *tid); } 426233 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 427 size_t len, int advice); } 428234 STD { int|linux_sys||exit_group(int error_code); } 429235 UNIMPL lookup_dcookie 430236 STD { int|linux_sys||epoll_create(int size); } 431237 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 432 struct linux_epoll_event *event); } 433238 STD { int|linux_sys||epoll_wait(int epfd, \ 434 struct linux_epoll_event *events, int maxevents, \ 435 int timeout); } 436239 UNIMPL remap_file_pages 437240 STD { int|linux_sys||timer_create(clockid_t clockid, \ 438 struct linux_sigevent *evp, timer_t *timerid); } 439241 STD { int|linux_sys||timer_settime(timer_t timerid, \ 440 int flags, const struct linux_itimerspec *tim, \ 441 struct linux_itimerspec *otim); } 442242 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 443 struct linux_itimerspec *tim); } 444243 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 445244 NOARGS { int|sys||timer_delete(timer_t timerid); } 446245 STD { int|linux_sys||clock_settime(clockid_t which, \ 447 struct linux_timespec *tp); } 448246 STD { int|linux_sys||clock_gettime(clockid_t which, \ 449 struct linux_timespec *tp); } 450247 STD { int|linux_sys||clock_getres(clockid_t which, \ 451 struct linux_timespec *tp); } 452248 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 453 int flags, struct linux_timespec *rqtp, \ 454 struct linux_timespec *rmtp); } 455249 UNIMPL swapcontext 456250 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 457251 NOARGS { int|compat_50_sys||utimes(const char *path, \ 458 const struct timeval50 *tptr); } 459252 STD { int|linux_sys||statfs64(const char *path, \ 460 size_t sz, struct linux_statfs64 *sp); } 461253 STD { int|linux_sys||fstatfs64(int fd, \ 462 size_t sz, struct linux_statfs64 *sp); } 463254 STD { int|linux_sys||fadvise64_64(int fd, off_t offset, \ 464 off_t len, int advice); } 465255 UNIMPL rtas 466256 UNIMPL /* reserved for sys_debug_setcontext */ 467257 UNIMPL /* reserved for vserver */ 468258 UNIMPL /* reserved for new sys_remap_file_pages */ 469259 UNIMPL /* reserved for new sys_mbind */ 470260 UNIMPL /* reserved for new sys_get_mempolicy */ 471261 UNIMPL /* reserved for new sys_set_mempolicy */ 472262 UNIMPL mq_open 473263 UNIMPL mq_unlink 474264 UNIMPL mq_timedsend 475265 UNIMPL mq_timedreceive 476266 UNIMPL mq_notify 477267 UNIMPL mq_getsetattr 478268 UNIMPL kexec_load 479269 UNIMPL add_key 480270 UNIMPL request_key 481271 UNIMPL keyctl 482272 STD { int|linux_sys||waitid(int idtype, id_t id, \ 483 linux_siginfo_t *infop, int options, \ 484 struct rusage50 *rusage); } 485273 UNIMPL ioprio_set 486274 UNIMPL ioprio_get 487275 STD { int|linux_sys||inotify_init(void); } 488276 STD { int|linux_sys||inotify_add_watch(int fd, \ 489 const char *pathname, uint32_t mask); } 490277 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); } 491278 UNIMPL spu_run 492279 UNIMPL spu_create 493280 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 494 fd_set *writefds, fd_set *exceptfds, \ 495 struct linux_timespec *timeout, \ 496 linux_sized_sigset_t *ss); } 497281 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 498 struct linux_timespec *timeout, \ 499 linux_sigset_t *sigset); } 500282 UNIMPL unshare 501283 UNIMPL splice 502284 UNIMPL tee 503285 UNIMPL vmsplice 504286 STD { int|linux_sys||openat(int fd, const char *path, \ 505 int flags, ... linux_umode_t mode); } 506287 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 507 linux_umode_t mode); } 508288 STD { int|linux_sys||mknodat(int fd, const char *path, \ 509 linux_umode_t mode, unsigned dev); } 510289 STD { int|linux_sys||fchownat(int fd, const char *path, \ 511 uid_t owner, gid_t group, int flag); } 512290 UNIMPL futimesat 513291 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 514 struct linux_stat64 *sp, int flag); } 515292 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 516 int flag); } 517293 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 518 int tofd, const char *to); } 519294 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 520 int fd2, const char *name2, int flags); } 521295 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 522 const char *path2); } 523296 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 524 char *buf, size_t bufsize); } 525297 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 526 linux_umode_t mode); } 527298 STD { int|linux_sys||faccessat(int fd, const char *path, \ 528 int amode); } 529 ; 530 ; The NetBSD native robust list calls have different 531 ; argument names / types, but they are ABI-compatible 532 ; with Linux. 533 ; 534299 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 535 size_t len); } 536300 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 537 void **headp, size_t *lenp); } 538301 UNIMPL move_pages 539302 STD { int|linux_sys||getcpu(unsigned int *cpu, \ 540 unsigned int *node, \ 541 struct linux_getcpu_cache *tcache); } 542303 STD { int|linux_sys||epoll_pwait(int epfd, \ 543 struct linux_epoll_event *events, int maxevents, \ 544 int timeout, const linux_sigset_t *sigmask); } 545304 STD { int|linux_sys||utimensat(int fd, const char *path, \ 546 struct linux_timespec *times, int flag); } 547305 UNIMPL signalfd 548306 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 549 int flags); } 550307 STD { int|linux_sys||eventfd(unsigned int initval); } 551308 UNIMPL sync_file_range2 552309 STD { int|linux_sys||fallocate(int fd, int mode, \ 553 off_t offset, off_t len); } 554310 UNIMPL subpage_prot 555311 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 556 const struct linux_itimerspec *tim, \ 557 struct linux_itimerspec *otim); } 558312 STD { int|linux_sys||timerfd_gettime(int fd, \ 559 struct linux_itimerspec *tim); } 560313 UNIMPL signalfd4 561314 STD { int|linux_sys||eventfd2(unsigned int initval, \ 562 int flags); } 563315 STD { int|linux_sys||epoll_create1(int flags); } 564316 STD { int|linux_sys||dup3(int from, int to, int flags); } 565317 STD { int|linux_sys||pipe2(int *pfds, int flags); } 566318 STD { int|linux_sys||inotify_init1(int flags); } 567319 UNIMPL perf_event_open 568320 STD { int|linux_sys||preadv(int fd, \ 569 const struct iovec *iovp, int iovcnt, \ 570 unsigned long off_lo, unsigned long off_hi); } 571321 STD { int|linux_sys||pwritev(int fd, \ 572 const struct iovcnt *iovp, int iovcnt, \ 573 unsigned long off_lo, unsigned long off_hi); } 574322 UNIMPL rt_tgsigqueueinfo 575323 UNIMPL fanotify_init 576324 UNIMPL fanotify_mark 577325 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 578 struct rlimit *new_rlp, struct rlimit *old_rlp); } 579326 UNIMPL socket 580327 UNIMPL bind 581328 UNIMPL connect 582329 UNIMPL listen 583330 UNIMPL accept 584331 UNIMPL getsockname 585332 UNIMPL getpeername 586333 UNIMPL socketpair 587334 UNIMPL send 588335 UNIMPL sendto 589336 UNIMPL recv 590337 UNIMPL recvfrom 591338 UNIMPL shutdown 592339 UNIMPL setsockopt 593340 UNIMPL getsockopt 594341 UNIMPL sendmsg 595342 UNIMPL recvmsg 596343 STD { int|linux_sys||recvmmsg(int s, \ 597 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 598 unsigned int flags, struct timespec *timeout); } 599344 STD { int|linux_sys||accept4(int s, \ 600 struct osockaddr *name, \ 601 int *anamelen, int flags); } 602345 UNIMPL name_to_handle_at 603346 UNIMPL open_by_handle_at 604347 UNIMPL clock_adjtime 605348 UNIMPL syncfs 606349 STD { int|linux_sys||sendmmsg(int s, \ 607 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 608 unsigned int flags); } 609350 UNIMPL setns 610351 UNIMPL process_vm_readv 611352 UNIMPL process_vm_writev 612353 UNIMPL finit_module 613354 UNIMPL kcmp 614355 UNIMPL sched_setattr 615356 UNIMPL sched_getattr 616357 UNIMPL renameat2 617358 UNIMPL seccomp 618359 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 619 unsigned int flags); } 620360 UNIMPL memfd_create 621361 UNIMPL bpf 622362 UNIMPL execveat 623363 UNIMPL switch_endian 624364 UNIMPL userfaultfd 625365 UNIMPL membarrier 626366 UNIMPL 627367 UNIMPL 628368 UNIMPL 629369 UNIMPL 630370 UNIMPL 631371 UNIMPL 632372 UNIMPL 633373 UNIMPL 634374 UNIMPL 635375 UNIMPL 636376 UNIMPL 637377 UNIMPL 638378 UNIMPL mlock2 639379 UNIMPL copy_file_range 640380 UNIMPL preadv2 641381 UNIMPL pwritev2 642382 UNIMPL kexec_file_load 643383 STD { int|linux_sys||statx(int fd, const char *path, \ 644 int flag, unsigned int mask, \ 645 struct linux_statx *sp); } 646384 UNIMPL 647385 UNIMPL 648386 UNIMPL 649387 UNIMPL 650388 UNIMPL 651389 UNIMPL 652390 UNIMPL 653391 UNIMPL 654392 UNIMPL 655393 UNIMPL 656394 UNIMPL 657395 UNIMPL 658396 UNIMPL 659397 UNIMPL 660398 UNIMPL 661399 UNIMPL 662400 UNIMPL 663401 UNIMPL 664402 UNIMPL 665403 UNIMPL 666404 UNIMPL 667405 UNIMPL 668406 UNIMPL 669407 UNIMPL 670408 UNIMPL 671409 UNIMPL 672410 UNIMPL 673411 UNIMPL 674412 UNIMPL 675413 UNIMPL 676414 UNIMPL 677415 UNIMPL 678416 UNIMPL 679417 UNIMPL 680418 UNIMPL 681419 UNIMPL 682420 UNIMPL 683421 UNIMPL 684422 UNIMPL 685423 UNIMPL 686424 UNIMPL 687425 UNIMPL 688426 UNIMPL 689427 UNIMPL 690428 UNIMPL 691429 UNIMPL 692430 UNIMPL 693431 UNIMPL 694432 UNIMPL 695433 UNIMPL 696434 UNIMPL 697435 UNIMPL 698436 STD { int|linux_sys||close_range(unsigned int first, \ 699 unsigned int last, unsigned int flags); } 700437 UNIMPL 701438 UNIMPL 702439 STD { int|linux_sys||faccessat2(int fd, const char *path, \ 703 int amode, int flags); } 704440 UNIMPL 705441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 706 struct linux_epoll_event *events, int maxevents, \ 707 const struct linux_timespec *timeout, \ 708 const linux_sigset_t *sigmask); } 709