1 $NetBSD: syscalls.master,v 1.86 2024/07/01 01:35:53 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 UNIMPL prctl 323172 STD { int|linux_sys||rt_sigreturn( \ 324 struct linux_rt_sigframe *sfp); } 325173 STD { int|linux_sys||rt_sigaction(int signum, \ 326 const struct linux_sigaction *nsa, \ 327 struct linux_sigaction *osa, \ 328 size_t sigsetsize); } 329174 STD { int|linux_sys||rt_sigprocmask(int how, \ 330 const linux_sigset_t *set, \ 331 linux_sigset_t *oset, \ 332 size_t sigsetsize); } 333175 STD { int|linux_sys||rt_sigpending( \ 334 linux_sigset_t *set, \ 335 size_t sigsetsize); } 336176 STD { int|linux_sys||rt_sigtimedwait( \ 337 const linux_sigset_t *set, \ 338 linux_siginfo_t *info, \ 339 const struct linux_timespec *timeout); } 340177 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 341 linux_siginfo_t *uinfo); } 342178 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 343 size_t sigsetsize); } 344179 STD { int|linux_sys||pread(int fd, char *buf, \ 345 size_t nbyte, off_t offset); } 346180 STD { int|linux_sys||pwrite(int fd, char *buf, \ 347 size_t nbyte, off_t offset); } 348181 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \ 349 gid_t gid); } 350182 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 351183 UNIMPL capget 352184 UNIMPL capset 353185 STD { int|linux_sys||sigaltstack( \ 354 const struct linux_sigaltstack *ss, \ 355 struct linux_sigaltstack *oss); } 356186 UNIMPL sendfile 357187 UNIMPL getpmsg 358188 UNIMPL putpmsg 359189 NOARGS { int|sys|14|vfork(void); } 360190 STD { int|linux_sys||ugetrlimit(int which, \ 361 struct rlimit *rlp); } 362191 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 363 size_t count); } 364#define linux_sys_mmap2_args linux_sys_mmap_args 365192 NOARGS { linux_off_t|linux_sys||mmap2(unsigned long addr, \ 366 size_t len, int prot, int flags, int fd, \ 367 linux_off_t offset); } 368193 STD { int|linux_sys||truncate64(const char *path, \ 369 off_t length); } 370194 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 371 off_t length); } 372195 STD { int|linux_sys||stat64(const char *path, \ 373 struct linux_stat64 *sp); } 374196 STD { int|linux_sys||lstat64(const char *path, \ 375 struct linux_stat64 *sp); } 376197 STD { int|linux_sys||fstat64(int fd, \ 377 struct linux_stat64 *sp); } 378198 UNIMPL sys_pciconfig_read 379199 UNIMPL sys_pciconfig_write 380200 UNIMPL sys_pciconfig_iobase 381201 UNIMPL /* Unused (MacOnLinux project) */ 382202 STD { int|linux_sys||getdents64(int fd, \ 383 struct linux_dirent64 *dent, unsigned int count); } 384203 UNIMPL pivot_root 385204 STD { int|linux_sys||fcntl64(int fd, int cmd, void *arg); } 386205 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 387206 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 388207 NOARGS { pid_t|linux_sys||gettid(void); } 389208 STD { int|linux_sys||tkill(int tid, int sig); } 390209 STD { int|linux_sys||setxattr(char *path, char *name, \ 391 void *value, size_t size, int flags); } 392210 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 393 void *value, size_t size, int flags); } 394211 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 395 void *value, size_t size, int flags); } 396212 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 397 void *value, size_t size); } 398213 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 399 void *value, size_t size); } 400214 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 401 void *value, size_t size); } 402215 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 403 size_t size); } 404216 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 405 size_t size); } 406217 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 407 size_t size); } 408218 STD { int|linux_sys||removexattr(char *path, char *name); } 409219 STD { int|linux_sys||lremovexattr(char *path, char *name); } 410220 STD { int|linux_sys||fremovexattr(int fd, char *name); } 411221 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 412 const struct linux_timespec *timeout, int *uaddr2, \ 413 int val3); } 414222 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 415 unsigned int len, unsigned long *mask); } 416223 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 417 unsigned int len, unsigned long *mask); } 418224 UNIMPL /* unused */ 419225 UNIMPL tuxcall 420226 UNIMPL sendfile64 421227 UNIMPL io_setup 422228 UNIMPL io_destroy 423229 UNIMPL io_getevents 424230 UNIMPL io_submit 425231 UNIMPL io_cancel 426232 STD { int|linux_sys||set_tid_address(int *tid); } 427233 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 428 size_t len, int advice); } 429234 STD { int|linux_sys||exit_group(int error_code); } 430235 UNIMPL lookup_dcookie 431236 STD { int|linux_sys||epoll_create(int size); } 432237 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 433 struct linux_epoll_event *event); } 434238 STD { int|linux_sys||epoll_wait(int epfd, \ 435 struct linux_epoll_event *events, int maxevents, \ 436 int timeout); } 437239 UNIMPL remap_file_pages 438240 STD { int|linux_sys||timer_create(clockid_t clockid, \ 439 struct linux_sigevent *evp, timer_t *timerid); } 440241 STD { int|linux_sys||timer_settime(timer_t timerid, \ 441 int flags, const struct linux_itimerspec *tim, \ 442 struct linux_itimerspec *otim); } 443242 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 444 struct linux_itimerspec *tim); } 445243 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 446244 NOARGS { int|sys||timer_delete(timer_t timerid); } 447245 STD { int|linux_sys||clock_settime(clockid_t which, \ 448 struct linux_timespec *tp); } 449246 STD { int|linux_sys||clock_gettime(clockid_t which, \ 450 struct linux_timespec *tp); } 451247 STD { int|linux_sys||clock_getres(clockid_t which, \ 452 struct linux_timespec *tp); } 453248 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 454 int flags, struct linux_timespec *rqtp, \ 455 struct linux_timespec *rmtp); } 456249 UNIMPL swapcontext 457250 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 458251 NOARGS { int|compat_50_sys||utimes(const char *path, \ 459 const struct timeval50 *tptr); } 460252 STD { int|linux_sys||statfs64(const char *path, \ 461 size_t sz, struct linux_statfs64 *sp); } 462253 STD { int|linux_sys||fstatfs64(int fd, \ 463 size_t sz, struct linux_statfs64 *sp); } 464254 STD { int|linux_sys||fadvise64_64(int fd, off_t offset, \ 465 off_t len, int advice); } 466255 UNIMPL rtas 467256 UNIMPL /* reserved for sys_debug_setcontext */ 468257 UNIMPL /* reserved for vserver */ 469258 UNIMPL /* reserved for new sys_remap_file_pages */ 470259 UNIMPL /* reserved for new sys_mbind */ 471260 UNIMPL /* reserved for new sys_get_mempolicy */ 472261 UNIMPL /* reserved for new sys_set_mempolicy */ 473262 STD { linux_mqd_t|linux_sys||mq_open(const char *name, \ 474 int oflag, linux_umode_t mode, \ 475 struct linux_mq_attr *attr); } 476263 STD { int|linux_sys||mq_unlink(const char *name); } 477264 STD { int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \ 478 const char *msg_ptr, size_t msg_len, \ 479 unsigned int msg_prio, \ 480 const struct linux_timespec *abs_timeout); } 481265 STD { ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \ 482 char *msg_ptr, size_t msg_len, \ 483 unsigned int *msg_prio, \ 484 const struct linux_timespec *abs_timeout); } 485266 STD { int|linux_sys||mq_notify(linux_mqd_t mqdes, \ 486 const struct linux_sigevent *sevp); } 487267 STD { int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \ 488 const struct linux_mq_attr *newattr, \ 489 struct linux_mq_attr *oldattr); } 490268 UNIMPL kexec_load 491269 UNIMPL add_key 492270 UNIMPL request_key 493271 UNIMPL keyctl 494272 STD { int|linux_sys||waitid(int idtype, id_t id, \ 495 linux_siginfo_t *infop, int options, \ 496 struct rusage50 *rusage); } 497273 UNIMPL ioprio_set 498274 UNIMPL ioprio_get 499275 STD { int|linux_sys||inotify_init(void); } 500276 STD { int|linux_sys||inotify_add_watch(int fd, \ 501 const char *pathname, uint32_t mask); } 502277 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); } 503278 UNIMPL spu_run 504279 UNIMPL spu_create 505280 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 506 fd_set *writefds, fd_set *exceptfds, \ 507 struct linux_timespec *timeout, \ 508 linux_sized_sigset_t *ss); } 509281 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 510 struct linux_timespec *timeout, \ 511 linux_sigset_t *sigset); } 512282 UNIMPL unshare 513283 UNIMPL splice 514284 UNIMPL tee 515285 UNIMPL vmsplice 516286 STD { int|linux_sys||openat(int fd, const char *path, \ 517 int flags, ... linux_umode_t mode); } 518287 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 519 linux_umode_t mode); } 520288 STD { int|linux_sys||mknodat(int fd, const char *path, \ 521 linux_umode_t mode, unsigned dev); } 522289 STD { int|linux_sys||fchownat(int fd, const char *path, \ 523 uid_t owner, gid_t group, int flag); } 524290 UNIMPL futimesat 525291 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 526 struct linux_stat64 *sp, int flag); } 527292 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 528 int flag); } 529293 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 530 int tofd, const char *to); } 531294 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 532 int fd2, const char *name2, int flags); } 533295 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 534 const char *path2); } 535296 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 536 char *buf, size_t bufsize); } 537297 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 538 linux_umode_t mode); } 539298 STD { int|linux_sys||faccessat(int fd, const char *path, \ 540 int amode); } 541 ; 542 ; The NetBSD native robust list calls have different 543 ; argument names / types, but they are ABI-compatible 544 ; with Linux. 545 ; 546299 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 547 size_t len); } 548300 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 549 void **headp, size_t *lenp); } 550301 UNIMPL move_pages 551302 STD { int|linux_sys||getcpu(unsigned int *cpu, \ 552 unsigned int *node, \ 553 struct linux_getcpu_cache *tcache); } 554303 STD { int|linux_sys||epoll_pwait(int epfd, \ 555 struct linux_epoll_event *events, int maxevents, \ 556 int timeout, const linux_sigset_t *sigmask); } 557304 STD { int|linux_sys||utimensat(int fd, const char *path, \ 558 struct linux_timespec *times, int flag); } 559305 UNIMPL signalfd 560306 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 561 int flags); } 562307 STD { int|linux_sys||eventfd(unsigned int initval); } 563308 UNIMPL sync_file_range2 564309 STD { int|linux_sys||fallocate(int fd, int mode, \ 565 off_t offset, off_t len); } 566310 UNIMPL subpage_prot 567311 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 568 const struct linux_itimerspec *tim, \ 569 struct linux_itimerspec *otim); } 570312 STD { int|linux_sys||timerfd_gettime(int fd, \ 571 struct linux_itimerspec *tim); } 572313 UNIMPL signalfd4 573314 STD { int|linux_sys||eventfd2(unsigned int initval, \ 574 int flags); } 575315 STD { int|linux_sys||epoll_create1(int flags); } 576316 STD { int|linux_sys||dup3(int from, int to, int flags); } 577317 STD { int|linux_sys||pipe2(int *pfds, int flags); } 578318 STD { int|linux_sys||inotify_init1(int flags); } 579319 UNIMPL perf_event_open 580320 STD { int|linux_sys||preadv(int fd, \ 581 const struct iovec *iovp, int iovcnt, \ 582 unsigned long off_lo, unsigned long off_hi); } 583321 STD { int|linux_sys||pwritev(int fd, \ 584 const struct iovcnt *iovp, int iovcnt, \ 585 unsigned long off_lo, unsigned long off_hi); } 586322 UNIMPL rt_tgsigqueueinfo 587323 UNIMPL fanotify_init 588324 UNIMPL fanotify_mark 589325 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 590 struct rlimit *new_rlp, struct rlimit *old_rlp); } 591326 UNIMPL socket 592327 UNIMPL bind 593328 UNIMPL connect 594329 UNIMPL listen 595330 UNIMPL accept 596331 UNIMPL getsockname 597332 UNIMPL getpeername 598333 UNIMPL socketpair 599334 UNIMPL send 600335 UNIMPL sendto 601336 UNIMPL recv 602337 UNIMPL recvfrom 603338 UNIMPL shutdown 604339 UNIMPL setsockopt 605340 UNIMPL getsockopt 606341 UNIMPL sendmsg 607342 UNIMPL recvmsg 608343 STD { int|linux_sys||recvmmsg(int s, \ 609 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 610 unsigned int flags, struct timespec *timeout); } 611344 STD { int|linux_sys||accept4(int s, \ 612 struct osockaddr *name, \ 613 int *anamelen, int flags); } 614345 UNIMPL name_to_handle_at 615346 UNIMPL open_by_handle_at 616347 UNIMPL clock_adjtime 617348 UNIMPL syncfs 618349 STD { int|linux_sys||sendmmsg(int s, \ 619 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 620 unsigned int flags); } 621350 UNIMPL setns 622351 UNIMPL process_vm_readv 623352 UNIMPL process_vm_writev 624353 UNIMPL finit_module 625354 UNIMPL kcmp 626355 UNIMPL sched_setattr 627356 UNIMPL sched_getattr 628357 UNIMPL renameat2 629358 UNIMPL seccomp 630359 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 631 unsigned int flags); } 632360 UNIMPL memfd_create 633361 UNIMPL bpf 634362 UNIMPL execveat 635363 UNIMPL switch_endian 636364 UNIMPL userfaultfd 637365 UNIMPL membarrier 638366 UNIMPL 639367 UNIMPL 640368 UNIMPL 641369 UNIMPL 642370 UNIMPL 643371 UNIMPL 644372 UNIMPL 645373 UNIMPL 646374 UNIMPL 647375 UNIMPL 648376 UNIMPL 649377 UNIMPL 650378 UNIMPL mlock2 651379 UNIMPL copy_file_range 652380 UNIMPL preadv2 653381 UNIMPL pwritev2 654382 UNIMPL kexec_file_load 655383 STD { int|linux_sys||statx(int fd, const char *path, \ 656 int flag, unsigned int mask, \ 657 struct linux_statx *sp); } 658384 UNIMPL 659385 UNIMPL 660386 UNIMPL 661387 UNIMPL 662388 UNIMPL 663389 UNIMPL 664390 UNIMPL 665391 UNIMPL 666392 UNIMPL 667393 UNIMPL 668394 UNIMPL 669395 UNIMPL 670396 UNIMPL 671397 UNIMPL 672398 UNIMPL 673399 UNIMPL 674400 UNIMPL 675401 UNIMPL 676402 UNIMPL 677403 UNIMPL 678404 UNIMPL 679405 UNIMPL 680406 UNIMPL 681407 UNIMPL 682408 UNIMPL 683409 UNIMPL 684410 UNIMPL 685411 UNIMPL 686412 UNIMPL 687413 UNIMPL 688414 UNIMPL 689415 UNIMPL 690416 UNIMPL 691417 UNIMPL 692418 UNIMPL 693419 UNIMPL 694420 UNIMPL 695421 UNIMPL 696422 UNIMPL 697423 UNIMPL 698424 UNIMPL 699425 UNIMPL 700426 UNIMPL 701427 UNIMPL 702428 UNIMPL 703429 UNIMPL 704430 UNIMPL 705431 UNIMPL 706432 UNIMPL 707433 UNIMPL 708434 UNIMPL 709435 UNIMPL 710436 STD { int|linux_sys||close_range(unsigned int first, \ 711 unsigned int last, unsigned int flags); } 712437 UNIMPL 713438 UNIMPL 714439 STD { int|linux_sys||faccessat2(int fd, const char *path, \ 715 int amode, int flags); } 716440 UNIMPL 717441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 718 struct linux_epoll_event *events, int maxevents, \ 719 const struct linux_timespec *timeout, \ 720 const linux_sigset_t *sigmask); } 721