syscalls.master revision 1.90
1 $NetBSD: syscalls.master,v 1.90 2025/11/10 15:41:38 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_mqueue.h> 78#include <compat/linux/common/linux_sched.h> 79 80#include <compat/linux/linux_syscallargs.h> 81 82%% 83 840 NOARGS { int|linux_sys||nosys(void); } syscall 851 STD { int|linux_sys||exit(int rval); } 862 NOARGS { int|sys||fork(void); } 873 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 884 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 89 size_t nbyte); } 905 STD { int|linux_sys||open(const char *path, int flags, \ 91 linux_umode_t mode); } 926 NOARGS { int|sys||close(int fd); } 937 STD { int|linux_sys||waitpid(int pid, int *status, \ 94 int options);} 958 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 969 NOARGS { int|sys||link(const char *path, const char *link); } 9710 STD { int|linux_sys||unlink(const char *path); } 9811 NOARGS { int|sys||execve(const char *path, char **argp, \ 99 char **envp); } 10012 NOARGS { int|sys||chdir(const char *path); } 10113 STD { int|linux_sys||time(linux_time_t *t); } 10214 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 103 unsigned dev); } 10415 NOARGS { int|sys||chmod(const char *path, int mode); } 10516 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 106 gid_t gid); } 10717 OBSOL break 10818 OBSOL ostat 10919 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 110 int whence); } 11120 NOARGS { pid_t|sys||getpid(void); } 11221 UNIMPL mount 11322 OBSOL umount 11423 NOARGS { int|sys||setuid(uid_t uid); } 11524 NOARGS { uid_t|sys||getuid(void); } 11625 STD { int|linux_sys||stime(linux_time_t *t); } 11726 STD { int|linux_sys||ptrace(int request, int pid, \ 118 long addr, long data); } 11927 STD { int|linux_sys||alarm(unsigned int secs); } 12028 OBSOL ofstat 12129 STD { int|linux_sys||pause(void); } 12230 STD { int|linux_sys||utime(const char *path, \ 123 struct linux_utimbuf *times); } 12431 OBSOL stty 12532 OBSOL gtty 12633 NOARGS { int|sys||access(const char *path, int flags); } 12734 STD { int|linux_sys||nice(int incr); } 12835 OBSOL ftime 12936 NOARGS { int|sys||sync(void); } 13037 STD { int|linux_sys||kill(int pid, int signum); } 13138 NOARGS { int|sys||__posix_rename(const char *from, \ 132 const char *to); } 13339 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 13440 NOARGS { int|sys||rmdir(const char *path); } 13541 NOARGS { int|sys||dup(int fd); } 13642 STD { int|linux_sys||pipe(int *pfds); } 13743 STD { int|linux_sys||times(struct times *tms); } 13844 OBSOL prof 13945 STD { int|linux_sys||brk(char *nsize); } 14046 NOARGS { int|sys||setgid(gid_t gid); } 14147 NOARGS { gid_t|sys||getgid(void); } 14248 STD { int|linux_sys||signal(int signum, \ 143 linux_handler_t handler); } 14449 NOARGS { uid_t|sys||geteuid(void); } 14550 NOARGS { gid_t|sys||getegid(void); } 14651 NOARGS { int|sys||acct(char *path); } 14752 UNIMPL umount 14853 OBSOL lock 14954 STD { int|linux_sys||ioctl(int fd, u_long com, \ 150 void *data); } 15155 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 15256 OBSOL mpx 15357 NOARGS { int|sys||setpgid(int pid, int pgid); } 15458 OBSOL ulimit 15559 STD { int|linux_sys||olduname(struct linux_old_utsname \ 156 *up); } 15760 NOARGS { int|sys||umask(int newmask); } 15861 NOARGS { int|sys||chroot(char *path); } 15962 UNIMPL ustat 16063 NOARGS { int|sys||dup2(int from, int to); } 16164 NOARGS { pid_t|sys||getppid(void); } 16265 NOARGS { int|sys||getpgrp(void); } 16366 NOARGS { int|sys||setsid(void); } 16467 STD { int|linux_sys||sigaction(int signum, \ 165 const struct linux_old_sigaction *nsa, \ 166 struct linux_old_sigaction *osa); } 16768 STD { int|linux_sys||siggetmask(void); } 16869 STD { int|linux_sys||sigsetmask(linux_old_sigset_t mask); } 16970 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); } 17071 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); } 17172 STD { int|linux_sys||sigsuspend(void *restart, \ 172 int oldmask, int mask); } 17373 STD { int|linux_sys||sigpending(linux_old_sigset_t *set); } 17474 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 175 u_int len);} 17675 STD { int|linux_sys||setrlimit(u_int which, \ 177 struct orlimit *rlp); } 17876 STD { int|linux_sys||getrlimit(u_int which, \ 179 struct orlimit *rlp); } 18077 NOARGS { int|compat_50_sys||getrusage(int who, \ 181 struct rusage50 *rusage); } 18278 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 183 struct timezone *tzp); } 18479 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 185 struct timezone *tzp); } 18680 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); } 18781 NOARGS { int|sys||setgroups(int gidsetsize, gid_t *gidset); } 18882 STD { int|linux_sys||select(int nfds, fd_set* readfds, \ 189 fd_set* writefds, fd_set* exceptfds, \ 190 struct timeval50 *timeout); } 19183 NOARGS { int|sys||symlink(const char *path, const char *to); } 19284 NOARGS { int|compat_43_sys||lstat(const char *path, \ 193 struct stat43 *up); } oolstat 19485 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 195 int count); } 196#ifdef EXEC_AOUT 19786 STD { int|linux_sys||uselib(const char *path); } 198#else 19986 UNIMPL sys_uselib 200#endif 20187 STD { int|linux_sys||swapon(char *name); } 20288 STD { int|linux_sys||reboot(int magic1, int magic2, \ 203 int cmd, void *arg); } 20489 STD { int|linux_sys||readdir(int fd, void *dent, \ 205 unsigned int count); } 20690 NOARGS { int|linux_sys||mmap(unsigned long addr, size_t len, \ 207 int prot, int flags, int fd, linux_off_t offset); } 20891 NOARGS { int|sys||munmap(void *addr, size_t len); } 20992 NOARGS { int|compat_43_sys||truncate(const char *path, \ 210 long length); } 21193 NOARGS { int|compat_43_sys||ftruncate(int fd, long length); } 21294 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 21395 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \ 214 gid_t gid); } 21596 STD { int|linux_sys||getpriority(int which, int who); } 21697 NOARGS { int|sys||setpriority(int which, int who, int prio); } 21798 NOARGS { int|sys||profil(void *samples, u_int size, \ 218 u_int offset, u_int scale); } 21999 STD { int|linux_sys||statfs(const char *path, \ 220 struct linux_statfs *sp); } 221100 STD { int|linux_sys||fstatfs(int fd, \ 222 struct linux_statfs *sp); } 223101 UNIMPL ioperm 224102 STD { int|linux_sys||socketcall(int what, void *args); } 225103 UNIMPL syslog 226104 NOARGS { int|compat_50_sys||setitimer(int which, \ 227 struct itimerval50 *itv, \ 228 struct itimerval50 *oitv); } 229105 NOARGS { int|compat_50_sys||getitimer(int which, \ 230 struct itimerval50 *itv); } 231106 STD { int|linux_sys||stat(const char *path, \ 232 struct linux_stat *sp); } 233107 STD { int|linux_sys||lstat(const char *path, \ 234 struct linux_stat *sp); } 235108 STD { int|linux_sys||fstat(int fd, struct linux_stat *sp); } 236109 STD { int|linux_sys||uname(struct linux_utsname *up); } 237110 UNIMPL iopl 238111 UNIMPL vhangup 239112 UNIMPL idle 240113 UNIMPL vm86old 241114 STD { int|linux_sys||wait4(int pid, int *status, \ 242 int options, struct rusage50 *rusage); } 243115 STD { int|linux_sys||swapoff(const char *path); } 244116 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 245117 STD { int|linux_sys||ipc(int what, int a1, int a2, int a3, \ 246 void *ptr); } 247118 NOARGS { int|sys||fsync(int fd); } 248119 STD { int|linux_sys||sigreturn(struct linux_sigcontext *scp); } 249120 STD { int|linux_sys||clone(int flags, void *stack, \ 250 void *parent_tidptr, void *tls, void *child_tidptr); } 251121 STD { int|linux_sys||setdomainname(char *domainname, \ 252 int len); } 253122 STD { int|linux_sys||new_uname(struct linux_utsname *up); } 254123 UNIMPL modify_ldt 255124 UNIMPL adjtimex 256125 STD { int|linux_sys||mprotect(const void *start, \ 257 unsigned long len, int prot); } 258126 STD { int|linux_sys||sigprocmask(int how, \ 259 const linux_old_sigset_t *set, \ 260 linux_old_sigset_t *oset); } 261127 UNIMPL create_module 262128 UNIMPL init_module 263129 UNIMPL delete_module 264130 UNIMPL get_kernel_syms 265131 UNIMPL quotactl 266132 NOARGS { pid_t|sys||getpgid(pid_t pid); } 267133 NOARGS { int|sys||fchdir(int fd); } 268134 UNIMPL bdflush 269135 UNIMPL sysfs 270136 STD { int|linux_sys||personality(unsigned long per); } 271137 UNIMPL afs_syscall 272138 STD { int|linux_sys||setfsuid(uid_t uid); } 273139 STD { int|linux_sys||setfsgid(gid_t gid); } 274140 STD { int|linux_sys||llseek(int fd, u_int32_t ohigh, \ 275 u_int32_t olow, void *res, int whence); } 276141 STD { int|linux_sys||getdents(int fd, \ 277 struct linux_dirent *dent, unsigned int count); } 278142 STD { int|linux_sys||new_select(int nfds, fd_set *readfds, \ 279 fd_set *writefds, fd_set *exceptfds, \ 280 struct timeval50 *timeout); } 281143 NOARGS { int|sys||flock(int fd, int how); } 282144 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 283145 NOARGS { ssize_t|sys||readv(int fd, \ 284 const struct iovec *iovp, int iovcnt); } 285146 NOARGS { ssize_t|sys||writev(int fd, \ 286 const struct iovec *iovp, int iovcnt); } 287147 NOARGS { pid_t|sys||getsid(pid_t pid); } 288148 STD { int|linux_sys||fdatasync(int fd); } 289149 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 290150 NOARGS { int|sys||mlock(void *addr, size_t len); } 291151 NOARGS { int|sys||munlock(void *addr, size_t len); } 292152 NOARGS { int|sys||mlockall(int flags); } 293153 NOARGS { int|sys||munlockall(void); } 294154 STD { int|linux_sys||sched_setparam(pid_t pid, \ 295 const struct linux_sched_param *sp); } 296155 STD { int|linux_sys||sched_getparam(pid_t pid, \ 297 struct linux_sched_param *sp); } 298156 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 299 int policy, const struct linux_sched_param *sp); } 300157 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 301158 STD { int|linux_sys||sched_yield(void); } 302159 STD { int|linux_sys||sched_get_priority_max(int policy); } 303160 STD { int|linux_sys||sched_get_priority_min(int policy); } 304161 UNIMPL sched_rr_get_interval 305162 STD { int|linux_sys||nanosleep( \ 306 const struct linux_timespec *rqtp, \ 307 struct linux_timespec *rmtp); } 308163 STD { void *|linux_sys||mremap(void *old_address, \ 309 size_t old_size, size_t new_size, u_long flags); } 310164 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \ 311 uid_t suid); } 312165 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \ 313 uid_t *suid); } 314166 UNIMPL query_module 315167 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 316 int timeout); } 317168 UNIMPL nfsservctl 318169 STD { int|linux_sys||setresgid(gid_t rgid, gid_t egid, \ 319 gid_t sgid); } 320170 STD { int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \ 321 gid_t *sgid); } 322171 INDIR { int|linux_sys||__prctl(int code, \ 323 ... void * args[LINUX_SYS_MAXSYSARGS]); } 324172 STD { int|linux_sys||rt_sigreturn( \ 325 struct linux_rt_sigframe *sfp); } 326173 STD { int|linux_sys||rt_sigaction(int signum, \ 327 const struct linux_sigaction *nsa, \ 328 struct linux_sigaction *osa, \ 329 size_t sigsetsize); } 330174 STD { int|linux_sys||rt_sigprocmask(int how, \ 331 const linux_sigset_t *set, \ 332 linux_sigset_t *oset, \ 333 size_t sigsetsize); } 334175 STD { int|linux_sys||rt_sigpending( \ 335 linux_sigset_t *set, \ 336 size_t sigsetsize); } 337176 STD { int|linux_sys||rt_sigtimedwait( \ 338 const linux_sigset_t *set, \ 339 linux_siginfo_t *info, \ 340 const struct linux_timespec *timeout); } 341177 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 342 linux_siginfo_t *uinfo); } 343178 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 344 size_t sigsetsize); } 345179 STD { int|linux_sys||pread(int fd, char *buf, \ 346 size_t nbyte, off_t offset); } 347180 STD { int|linux_sys||pwrite(int fd, char *buf, \ 348 size_t nbyte, off_t offset); } 349181 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \ 350 gid_t gid); } 351182 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 352183 UNIMPL capget 353184 UNIMPL capset 354185 STD { int|linux_sys||sigaltstack( \ 355 const struct linux_sigaltstack *ss, \ 356 struct linux_sigaltstack *oss); } 357186 UNIMPL sendfile 358187 UNIMPL getpmsg 359188 UNIMPL putpmsg 360189 NOARGS { int|sys|14|vfork(void); } 361190 STD { int|linux_sys||ugetrlimit(int which, \ 362 struct rlimit *rlp); } 363191 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 364 size_t count); } 365#define linux_sys_mmap2_args linux_sys_mmap_args 366192 NOARGS { linux_off_t|linux_sys||mmap2(unsigned long addr, \ 367 size_t len, int prot, int flags, int fd, \ 368 linux_off_t offset); } 369193 STD { int|linux_sys||truncate64(const char *path, \ 370 off_t length); } 371194 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 372 off_t length); } 373195 STD { int|linux_sys||stat64(const char *path, \ 374 struct linux_stat64 *sp); } 375196 STD { int|linux_sys||lstat64(const char *path, \ 376 struct linux_stat64 *sp); } 377197 STD { int|linux_sys||fstat64(int fd, \ 378 struct linux_stat64 *sp); } 379198 UNIMPL sys_pciconfig_read 380199 UNIMPL sys_pciconfig_write 381200 UNIMPL sys_pciconfig_iobase 382201 UNIMPL /* Unused (MacOnLinux project) */ 383202 STD { int|linux_sys||getdents64(int fd, \ 384 struct linux_dirent64 *dent, unsigned int count); } 385203 UNIMPL pivot_root 386204 STD { int|linux_sys||fcntl64(int fd, int cmd, void *arg); } 387205 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 388206 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 389207 NOARGS { pid_t|linux_sys||gettid(void); } 390208 STD { int|linux_sys||tkill(int tid, int sig); } 391209 STD { int|linux_sys||setxattr(char *path, char *name, \ 392 void *value, size_t size, int flags); } 393210 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 394 void *value, size_t size, int flags); } 395211 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 396 void *value, size_t size, int flags); } 397212 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 398 void *value, size_t size); } 399213 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 400 void *value, size_t size); } 401214 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 402 void *value, size_t size); } 403215 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 404 size_t size); } 405216 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 406 size_t size); } 407217 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 408 size_t size); } 409218 STD { int|linux_sys||removexattr(char *path, char *name); } 410219 STD { int|linux_sys||lremovexattr(char *path, char *name); } 411220 STD { int|linux_sys||fremovexattr(int fd, char *name); } 412221 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 413 const struct linux_timespec *timeout, int *uaddr2, \ 414 int val3); } 415222 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 416 unsigned int len, unsigned long *mask); } 417223 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 418 unsigned int len, unsigned long *mask); } 419224 UNIMPL /* unused */ 420225 UNIMPL tuxcall 421226 UNIMPL sendfile64 422227 UNIMPL io_setup 423228 UNIMPL io_destroy 424229 UNIMPL io_getevents 425230 UNIMPL io_submit 426231 UNIMPL io_cancel 427232 STD { int|linux_sys||set_tid_address(int *tid); } 428233 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 429 size_t len, int advice); } 430234 STD { int|linux_sys||exit_group(int error_code); } 431235 UNIMPL lookup_dcookie 432236 STD { int|linux_sys||epoll_create(int size); } 433237 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 434 struct linux_epoll_event *event); } 435238 STD { int|linux_sys||epoll_wait(int epfd, \ 436 struct linux_epoll_event *events, int maxevents, \ 437 int timeout); } 438239 UNIMPL remap_file_pages 439240 STD { int|linux_sys||timer_create(clockid_t clockid, \ 440 struct linux_sigevent *evp, timer_t *timerid); } 441241 STD { int|linux_sys||timer_settime(timer_t timerid, \ 442 int flags, const struct linux_itimerspec *tim, \ 443 struct linux_itimerspec *otim); } 444242 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 445 struct linux_itimerspec *tim); } 446243 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 447244 NOARGS { int|sys||timer_delete(timer_t timerid); } 448245 STD { int|linux_sys||clock_settime(clockid_t which, \ 449 struct linux_timespec *tp); } 450246 STD { int|linux_sys||clock_gettime(clockid_t which, \ 451 struct linux_timespec *tp); } 452247 STD { int|linux_sys||clock_getres(clockid_t which, \ 453 struct linux_timespec *tp); } 454248 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 455 int flags, struct linux_timespec *rqtp, \ 456 struct linux_timespec *rmtp); } 457249 UNIMPL swapcontext 458250 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 459251 NOARGS { int|compat_50_sys||utimes(const char *path, \ 460 const struct timeval50 *tptr); } 461252 STD { int|linux_sys||statfs64(const char *path, \ 462 size_t sz, struct linux_statfs64 *sp); } 463253 STD { int|linux_sys||fstatfs64(int fd, \ 464 size_t sz, struct linux_statfs64 *sp); } 465254 STD { int|linux_sys||fadvise64_64(int fd, off_t offset, \ 466 off_t len, int advice); } 467255 UNIMPL rtas 468256 UNIMPL /* reserved for sys_debug_setcontext */ 469257 UNIMPL /* reserved for vserver */ 470258 UNIMPL /* reserved for new sys_remap_file_pages */ 471259 UNIMPL /* reserved for new sys_mbind */ 472260 UNIMPL /* reserved for new sys_get_mempolicy */ 473261 UNIMPL /* reserved for new sys_set_mempolicy */ 474262 STD { linux_mqd_t|linux_sys||mq_open(const char *name, \ 475 int oflag, linux_umode_t mode, \ 476 struct linux_mq_attr *attr); } 477263 STD { int|linux_sys||mq_unlink(const char *name); } 478264 STD { int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \ 479 const char *msg_ptr, size_t msg_len, \ 480 unsigned int msg_prio, \ 481 const struct linux_timespec *abs_timeout); } 482265 STD { ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \ 483 char *msg_ptr, size_t msg_len, \ 484 unsigned int *msg_prio, \ 485 const struct linux_timespec *abs_timeout); } 486266 STD { int|linux_sys||mq_notify(linux_mqd_t mqdes, \ 487 const struct linux_sigevent *sevp); } 488267 STD { int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \ 489 const struct linux_mq_attr *newattr, \ 490 struct linux_mq_attr *oldattr); } 491268 UNIMPL kexec_load 492269 UNIMPL add_key 493270 UNIMPL request_key 494271 UNIMPL keyctl 495272 STD { int|linux_sys||waitid(int idtype, id_t id, \ 496 linux_siginfo_t *infop, int options, \ 497 struct rusage50 *rusage); } 498273 UNIMPL ioprio_set 499274 UNIMPL ioprio_get 500275 STD { int|linux_sys||inotify_init(void); } 501276 STD { int|linux_sys||inotify_add_watch(int fd, \ 502 const char *pathname, uint32_t mask); } 503277 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); } 504278 UNIMPL spu_run 505279 UNIMPL spu_create 506280 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 507 fd_set *writefds, fd_set *exceptfds, \ 508 struct linux_timespec *timeout, \ 509 linux_sized_sigset_t *ss); } 510281 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 511 struct linux_timespec *timeout, \ 512 linux_sigset_t *sigset); } 513282 UNIMPL unshare 514283 UNIMPL splice 515284 UNIMPL tee 516285 UNIMPL vmsplice 517286 STD { int|linux_sys||openat(int fd, const char *path, \ 518 int flags, ... linux_umode_t mode); } 519287 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 520 linux_umode_t mode); } 521288 STD { int|linux_sys||mknodat(int fd, const char *path, \ 522 linux_umode_t mode, unsigned dev); } 523289 STD { int|linux_sys||fchownat(int fd, const char *path, \ 524 uid_t owner, gid_t group, int flag); } 525290 UNIMPL futimesat 526291 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 527 struct linux_stat64 *sp, int flag); } 528292 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 529 int flag); } 530293 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 531 int tofd, const char *to); } 532294 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 533 int fd2, const char *name2, int flags); } 534295 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 535 const char *path2); } 536296 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 537 char *buf, size_t bufsize); } 538297 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 539 linux_umode_t mode); } 540298 STD { int|linux_sys||faccessat(int fd, const char *path, \ 541 int amode); } 542 ; 543 ; The NetBSD native robust list calls have different 544 ; argument names / types, but they are ABI-compatible 545 ; with Linux. 546 ; 547299 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 548 size_t len); } 549300 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 550 void **headp, size_t *lenp); } 551301 UNIMPL move_pages 552302 STD { int|linux_sys||getcpu(unsigned int *cpu, \ 553 unsigned int *node, \ 554 struct linux_getcpu_cache *tcache); } 555303 STD { int|linux_sys||epoll_pwait(int epfd, \ 556 struct linux_epoll_event *events, int maxevents, \ 557 int timeout, const linux_sigset_t *sigmask); } 558304 STD { int|linux_sys||utimensat(int fd, const char *path, \ 559 struct linux_timespec *times, int flag); } 560305 UNIMPL signalfd 561306 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 562 int flags); } 563307 STD { int|linux_sys||eventfd(unsigned int initval); } 564308 STD { int|linux_sys||sync_file_range(int fd, \ 565 off_t offset, off_t nbytes, unsigned int flags); } 566309 STD { int|linux_sys||fallocate(int fd, int mode, \ 567 off_t offset, off_t len); } 568310 UNIMPL subpage_prot 569311 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 570 const struct linux_itimerspec *tim, \ 571 struct linux_itimerspec *otim); } 572312 STD { int|linux_sys||timerfd_gettime(int fd, \ 573 struct linux_itimerspec *tim); } 574313 UNIMPL signalfd4 575314 STD { int|linux_sys||eventfd2(unsigned int initval, \ 576 int flags); } 577315 STD { int|linux_sys||epoll_create1(int flags); } 578316 STD { int|linux_sys||dup3(int from, int to, int flags); } 579317 STD { int|linux_sys||pipe2(int *pfds, int flags); } 580318 STD { int|linux_sys||inotify_init1(int flags); } 581319 UNIMPL perf_event_open 582320 STD { int|linux_sys||preadv(int fd, \ 583 const struct iovec *iovp, int iovcnt, \ 584 unsigned long off_lo, unsigned long off_hi); } 585321 STD { int|linux_sys||pwritev(int fd, \ 586 const struct iovcnt *iovp, int iovcnt, \ 587 unsigned long off_lo, unsigned long off_hi); } 588322 UNIMPL rt_tgsigqueueinfo 589323 UNIMPL fanotify_init 590324 UNIMPL fanotify_mark 591325 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 592 struct rlimit *new_rlp, struct rlimit *old_rlp); } 593326 UNIMPL socket 594327 UNIMPL bind 595328 UNIMPL connect 596329 UNIMPL listen 597330 UNIMPL accept 598331 UNIMPL getsockname 599332 UNIMPL getpeername 600333 UNIMPL socketpair 601334 UNIMPL send 602335 UNIMPL sendto 603336 UNIMPL recv 604337 UNIMPL recvfrom 605338 UNIMPL shutdown 606339 UNIMPL setsockopt 607340 UNIMPL getsockopt 608341 UNIMPL sendmsg 609342 UNIMPL recvmsg 610343 STD { int|linux_sys||recvmmsg(int s, \ 611 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 612 unsigned int flags, struct timespec *timeout); } 613344 STD { int|linux_sys||accept4(int s, \ 614 struct osockaddr *name, \ 615 int *anamelen, int flags); } 616345 UNIMPL name_to_handle_at 617346 UNIMPL open_by_handle_at 618347 UNIMPL clock_adjtime 619348 STD { int|linux_sys||syncfs(int fd); } 620349 STD { int|linux_sys||sendmmsg(int s, \ 621 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 622 unsigned int flags); } 623350 UNIMPL setns 624351 UNIMPL process_vm_readv 625352 UNIMPL process_vm_writev 626353 UNIMPL finit_module 627354 UNIMPL kcmp 628355 UNIMPL sched_setattr 629356 UNIMPL sched_getattr 630357 STD { int|linux_sys||renameat2(int fromfd, \ 631 const char *from, int tofd, const char *to, \ 632 unsigned int flags); } 633358 UNIMPL seccomp 634359 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 635 unsigned int flags); } 636360 UNIMPL memfd_create 637361 UNIMPL bpf 638362 UNIMPL execveat 639363 UNIMPL switch_endian 640364 UNIMPL userfaultfd 641365 UNIMPL membarrier 642366 UNIMPL 643367 UNIMPL 644368 UNIMPL 645369 UNIMPL 646370 UNIMPL 647371 UNIMPL 648372 UNIMPL 649373 UNIMPL 650374 UNIMPL 651375 UNIMPL 652376 UNIMPL 653377 UNIMPL 654378 UNIMPL mlock2 655379 STD { ssize_t|linux_sys||copy_file_range(int fd_in, \ 656 off_t * off_in, int fd_out, off_t * off_out, \ 657 size_t len, unsigned int flags); } 658380 UNIMPL preadv2 659381 UNIMPL pwritev2 660382 UNIMPL kexec_file_load 661383 STD { int|linux_sys||statx(int fd, const char *path, \ 662 int flag, unsigned int mask, \ 663 struct linux_statx *sp); } 664384 UNIMPL 665385 UNIMPL 666386 UNIMPL 667387 UNIMPL 668388 UNIMPL 669389 UNIMPL 670390 UNIMPL 671391 UNIMPL 672392 UNIMPL 673393 UNIMPL 674394 UNIMPL 675395 UNIMPL 676396 UNIMPL 677397 UNIMPL 678398 UNIMPL 679399 UNIMPL 680400 UNIMPL 681401 UNIMPL 682402 UNIMPL 683403 UNIMPL 684404 UNIMPL 685405 UNIMPL 686406 UNIMPL 687407 UNIMPL 688408 UNIMPL 689409 UNIMPL 690410 UNIMPL 691411 UNIMPL 692412 UNIMPL 693413 UNIMPL 694414 UNIMPL 695415 UNIMPL 696416 UNIMPL 697417 UNIMPL 698418 UNIMPL 699419 UNIMPL 700420 UNIMPL 701421 UNIMPL 702422 UNIMPL 703423 UNIMPL 704424 UNIMPL 705425 UNIMPL 706426 UNIMPL 707427 UNIMPL 708428 UNIMPL 709429 UNIMPL 710430 UNIMPL 711431 UNIMPL 712432 UNIMPL 713433 UNIMPL 714434 UNIMPL 715435 STD { int|linux_sys||clone3( \ 716 struct linux_user_clone3_args *cl_args, \ 717 size_t size); } 718436 STD { int|linux_sys||close_range(unsigned int first, \ 719 unsigned int last, unsigned int flags); } 720437 UNIMPL 721438 UNIMPL 722439 STD { int|linux_sys||faccessat2(int fd, const char *path, \ 723 int amode, int flags); } 724440 UNIMPL 725441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 726 struct linux_epoll_event *events, int maxevents, \ 727 const struct linux_timespec *timeout, \ 728 const linux_sigset_t *sigmask); } 729