1 $NetBSD: syscalls.master,v 1.88 2024/10/01 16:29:15 riastradh 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 STD { int|linux_sys||sync_file_range(int fd, \ 564 off_t offset, off_t nbytes, unsigned int flags); } 565309 STD { int|linux_sys||fallocate(int fd, int mode, \ 566 off_t offset, off_t len); } 567310 UNIMPL subpage_prot 568311 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 569 const struct linux_itimerspec *tim, \ 570 struct linux_itimerspec *otim); } 571312 STD { int|linux_sys||timerfd_gettime(int fd, \ 572 struct linux_itimerspec *tim); } 573313 UNIMPL signalfd4 574314 STD { int|linux_sys||eventfd2(unsigned int initval, \ 575 int flags); } 576315 STD { int|linux_sys||epoll_create1(int flags); } 577316 STD { int|linux_sys||dup3(int from, int to, int flags); } 578317 STD { int|linux_sys||pipe2(int *pfds, int flags); } 579318 STD { int|linux_sys||inotify_init1(int flags); } 580319 UNIMPL perf_event_open 581320 STD { int|linux_sys||preadv(int fd, \ 582 const struct iovec *iovp, int iovcnt, \ 583 unsigned long off_lo, unsigned long off_hi); } 584321 STD { int|linux_sys||pwritev(int fd, \ 585 const struct iovcnt *iovp, int iovcnt, \ 586 unsigned long off_lo, unsigned long off_hi); } 587322 UNIMPL rt_tgsigqueueinfo 588323 UNIMPL fanotify_init 589324 UNIMPL fanotify_mark 590325 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 591 struct rlimit *new_rlp, struct rlimit *old_rlp); } 592326 UNIMPL socket 593327 UNIMPL bind 594328 UNIMPL connect 595329 UNIMPL listen 596330 UNIMPL accept 597331 UNIMPL getsockname 598332 UNIMPL getpeername 599333 UNIMPL socketpair 600334 UNIMPL send 601335 UNIMPL sendto 602336 UNIMPL recv 603337 UNIMPL recvfrom 604338 UNIMPL shutdown 605339 UNIMPL setsockopt 606340 UNIMPL getsockopt 607341 UNIMPL sendmsg 608342 UNIMPL recvmsg 609343 STD { int|linux_sys||recvmmsg(int s, \ 610 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 611 unsigned int flags, struct timespec *timeout); } 612344 STD { int|linux_sys||accept4(int s, \ 613 struct osockaddr *name, \ 614 int *anamelen, int flags); } 615345 UNIMPL name_to_handle_at 616346 UNIMPL open_by_handle_at 617347 UNIMPL clock_adjtime 618348 STD { int|linux_sys||syncfs(int fd); } 619349 STD { int|linux_sys||sendmmsg(int s, \ 620 struct linux_mmsghdr *msgvec, unsigned int vlen, \ 621 unsigned int flags); } 622350 UNIMPL setns 623351 UNIMPL process_vm_readv 624352 UNIMPL process_vm_writev 625353 UNIMPL finit_module 626354 UNIMPL kcmp 627355 UNIMPL sched_setattr 628356 UNIMPL sched_getattr 629357 STD { int|linux_sys||renameat2(int fromfd, \ 630 const char *from, int tofd, const char *to, \ 631 unsigned int flags); } 632358 UNIMPL seccomp 633359 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 634 unsigned int flags); } 635360 UNIMPL memfd_create 636361 UNIMPL bpf 637362 UNIMPL execveat 638363 UNIMPL switch_endian 639364 UNIMPL userfaultfd 640365 UNIMPL membarrier 641366 UNIMPL 642367 UNIMPL 643368 UNIMPL 644369 UNIMPL 645370 UNIMPL 646371 UNIMPL 647372 UNIMPL 648373 UNIMPL 649374 UNIMPL 650375 UNIMPL 651376 UNIMPL 652377 UNIMPL 653378 UNIMPL mlock2 654379 STD { ssize_t|linux_sys||copy_file_range(int fd_in, \ 655 off_t * off_in, int fd_out, off_t * off_out, \ 656 size_t len, unsigned int flags); } 657380 UNIMPL preadv2 658381 UNIMPL pwritev2 659382 UNIMPL kexec_file_load 660383 STD { int|linux_sys||statx(int fd, const char *path, \ 661 int flag, unsigned int mask, \ 662 struct linux_statx *sp); } 663384 UNIMPL 664385 UNIMPL 665386 UNIMPL 666387 UNIMPL 667388 UNIMPL 668389 UNIMPL 669390 UNIMPL 670391 UNIMPL 671392 UNIMPL 672393 UNIMPL 673394 UNIMPL 674395 UNIMPL 675396 UNIMPL 676397 UNIMPL 677398 UNIMPL 678399 UNIMPL 679400 UNIMPL 680401 UNIMPL 681402 UNIMPL 682403 UNIMPL 683404 UNIMPL 684405 UNIMPL 685406 UNIMPL 686407 UNIMPL 687408 UNIMPL 688409 UNIMPL 689410 UNIMPL 690411 UNIMPL 691412 UNIMPL 692413 UNIMPL 693414 UNIMPL 694415 UNIMPL 695416 UNIMPL 696417 UNIMPL 697418 UNIMPL 698419 UNIMPL 699420 UNIMPL 700421 UNIMPL 701422 UNIMPL 702423 UNIMPL 703424 UNIMPL 704425 UNIMPL 705426 UNIMPL 706427 UNIMPL 707428 UNIMPL 708429 UNIMPL 709430 UNIMPL 710431 UNIMPL 711432 UNIMPL 712433 UNIMPL 713434 UNIMPL 714435 STD { int|linux_sys||clone3( \ 715 struct linux_user_clone3_args *cl_args, \ 716 size_t size); } 717436 STD { int|linux_sys||close_range(unsigned int first, \ 718 unsigned int last, unsigned int flags); } 719437 UNIMPL 720438 UNIMPL 721439 STD { int|linux_sys||faccessat2(int fd, const char *path, \ 722 int amode, int flags); } 723440 UNIMPL 724441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 725 struct linux_epoll_event *events, int maxevents, \ 726 const struct linux_timespec *timeout, \ 727 const linux_sigset_t *sigmask); } 728