syscalls.master revision 1.90
11.90Schristos $NetBSD: syscalls.master,v 1.90 2025/11/10 15:41:38 christos Exp $ 21.1Smanu 31.1Smanu; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 41.1Smanu 51.1Smanu; Derived from NetBSD's sys/compat/linux/arch/i386/syscalls.master 61.21Sperry; sys/compat/linux/arch/m68k/syscalls.master 71.21Sperry; and from Linux's arch/ppc/kernel/misc.S 81.1Smanu; 91.1Smanu; We have problems for a few syscalls, specially: 101.1Smanu; 142 ppc_select -> sys_new_select -> sys_select (Conflicts with 82 ???). 111.1Smanu; 121.1Smanu; Expect problems with the following, which have an architecture dependent 131.1Smanu; implementation in Linux/powerpc: 141.1Smanu; 29 pause 151.1Smanu; 42 pipe tested. no problem. 161.1Smanu; 59 olduname 171.1Smanu; 101 ioperm 181.1Smanu; 109 uname 191.1Smanu; 117 ipc 201.21Sperry; 211.1Smanu; Most of syscalls after 182 that were introduced in Linux-2.4 are UNIMPL. 221.1Smanu; 231.21Sperry; The following are UNIMPL here. The Linux kernel implements them but just logs 241.21Sperry; a kernel error and returns -ENOSYS. 251.1Smanu; 110 iopl 261.1Smanu; 113 vm86 271.1Smanu; 123 modify_ldt 281.1Smanu; 198 sys_pciconfig_read 291.1Smanu; 199 sys_pciconfig_write 301.1Smanu; 200 sys_pciconfig_iobase 311.1Smanu; 321.1Smanu; Emmanuel Dreyfus <p99dreyf@criens.u-psud.fr> 331.1Smanu 341.1Smanu; NetBSD powerpc COMPAT_LINUX system call name/number "master" file. 351.1Smanu; (See syscalls.conf to see what it is processed into.) 361.1Smanu; 371.1Smanu; Fields: number type [type-dependent ...] 381.1Smanu; number system call number, must be in order 391.1Smanu; type one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of 401.1Smanu; the compatibility options defined in syscalls.conf. 411.1Smanu; 421.1Smanu; types: 431.1Smanu; STD always included 441.1Smanu; OBSOL obsolete, not included in system 451.1Smanu; UNIMPL unimplemented, not included in system 461.1Smanu; NODEF included, but don't define the syscall number 471.1Smanu; NOARGS included, but don't define the syscall args structure 481.1Smanu; INDIR included, but don't define the syscall args structure 491.1Smanu; and allow it to be "really" varargs. 501.1Smanu; 511.1Smanu; The compat options are defined in the syscalls.conf file, and the 521.1Smanu; compat option name is prefixed to the syscall name. Other than 531.1Smanu; that, they're like NODEF (for 'compat' options), or STD (for 541.1Smanu; 'libcompat' options). 551.1Smanu; 561.1Smanu; The type-dependent arguments are as follows: 571.1Smanu; For STD, NODEF, NOARGS, and compat syscalls: 581.1Smanu; { pseudo-proto } [alias] 591.1Smanu; For other syscalls: 601.1Smanu; [comment] 611.1Smanu; 621.1Smanu; #ifdef's, etc. may be included, and are copied to the output files. 631.1Smanu; #include's are copied to the syscall names and switch definition files only. 641.1Smanu 651.1Smanu#include <sys/param.h> 661.1Smanu#include <sys/poll.h> 671.1Smanu#include <sys/systm.h> 681.1Smanu#include <sys/signal.h> 691.1Smanu#include <sys/mount.h> 701.1Smanu#include <sys/syscallargs.h> 711.1Smanu 721.1Smanu#include <compat/linux/common/linux_types.h> 731.1Smanu#include <compat/linux/common/linux_signal.h> 741.1Smanu#include <compat/linux/common/linux_siginfo.h> 751.1Smanu#include <compat/linux/common/linux_machdep.h> 761.1Smanu#include <compat/linux/common/linux_mmap.h> 771.86Schristos#include <compat/linux/common/linux_mqueue.h> 781.85Schristos#include <compat/linux/common/linux_sched.h> 791.1Smanu 801.1Smanu#include <compat/linux/linux_syscallargs.h> 811.1Smanu 821.25Schristos%% 831.25Schristos 841.40Spooka0 NOARGS { int|linux_sys||nosys(void); } syscall 851.45Schs1 STD { int|linux_sys||exit(int rval); } 861.40Spooka2 NOARGS { int|sys||fork(void); } 871.59Snjoly3 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 881.59Snjoly4 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 891.59Snjoly size_t nbyte); } 901.40Spooka5 STD { int|linux_sys||open(const char *path, int flags, \ 911.57Snjoly linux_umode_t mode); } 921.40Spooka6 NOARGS { int|sys||close(int fd); } 931.40Spooka7 STD { int|linux_sys||waitpid(int pid, int *status, \ 941.1Smanu int options);} 951.57Snjoly8 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 961.40Spooka9 NOARGS { int|sys||link(const char *path, const char *link); } 971.40Spooka10 STD { int|linux_sys||unlink(const char *path); } 981.40Spooka11 NOARGS { int|sys||execve(const char *path, char **argp, \ 991.1Smanu char **envp); } 1001.40Spooka12 NOARGS { int|sys||chdir(const char *path); } 1011.40Spooka13 STD { int|linux_sys||time(linux_time_t *t); } 1021.57Snjoly14 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 1031.61Snjoly unsigned dev); } 1041.40Spooka15 NOARGS { int|sys||chmod(const char *path, int mode); } 1051.67Snjoly16 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 1061.67Snjoly gid_t gid); } 1071.1Smanu17 OBSOL break 1081.1Smanu18 OBSOL ostat 1091.40Spooka19 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 1101.1Smanu int whence); } 1111.40Spooka20 NOARGS { pid_t|sys||getpid(void); } 1121.1Smanu21 UNIMPL mount 1131.1Smanu22 OBSOL umount 1141.40Spooka23 NOARGS { int|sys||setuid(uid_t uid); } 1151.40Spooka24 NOARGS { uid_t|sys||getuid(void); } 1161.40Spooka25 STD { int|linux_sys||stime(linux_time_t *t); } 1171.40Spooka26 STD { int|linux_sys||ptrace(int request, int pid, \ 1181.54Spooka long addr, long data); } 1191.40Spooka27 STD { int|linux_sys||alarm(unsigned int secs); } 1201.1Smanu28 OBSOL ofstat 1211.40Spooka29 STD { int|linux_sys||pause(void); } 1221.40Spooka30 STD { int|linux_sys||utime(const char *path, \ 1231.1Smanu struct linux_utimbuf *times); } 1241.1Smanu31 OBSOL stty 1251.1Smanu32 OBSOL gtty 1261.40Spooka33 NOARGS { int|sys||access(const char *path, int flags); } 1271.40Spooka34 STD { int|linux_sys||nice(int incr); } 1281.1Smanu35 OBSOL ftime 1291.40Spooka36 NOARGS { int|sys||sync(void); } 1301.40Spooka37 STD { int|linux_sys||kill(int pid, int signum); } 1311.40Spooka38 NOARGS { int|sys||__posix_rename(const char *from, \ 1321.1Smanu const char *to); } 1331.57Snjoly39 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 1341.40Spooka40 NOARGS { int|sys||rmdir(const char *path); } 1351.56Snjoly41 NOARGS { int|sys||dup(int fd); } 1361.40Spooka42 STD { int|linux_sys||pipe(int *pfds); } 1371.40Spooka43 STD { int|linux_sys||times(struct times *tms); } 1381.1Smanu44 OBSOL prof 1391.40Spooka45 STD { int|linux_sys||brk(char *nsize); } 1401.40Spooka46 NOARGS { int|sys||setgid(gid_t gid); } 1411.40Spooka47 NOARGS { gid_t|sys||getgid(void); } 1421.40Spooka48 STD { int|linux_sys||signal(int signum, \ 1431.1Smanu linux_handler_t handler); } 1441.40Spooka49 NOARGS { uid_t|sys||geteuid(void); } 1451.40Spooka50 NOARGS { gid_t|sys||getegid(void); } 1461.40Spooka51 NOARGS { int|sys||acct(char *path); } 1471.1Smanu52 UNIMPL umount 1481.1Smanu53 OBSOL lock 1491.40Spooka54 STD { int|linux_sys||ioctl(int fd, u_long com, \ 1501.31Schristos void *data); } 1511.40Spooka55 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 1521.1Smanu56 OBSOL mpx 1531.40Spooka57 NOARGS { int|sys||setpgid(int pid, int pgid); } 1541.1Smanu58 OBSOL ulimit 1551.84Schristos59 STD { int|linux_sys||olduname(struct linux_old_utsname \ 1561.7Smanu *up); } 1571.40Spooka60 NOARGS { int|sys||umask(int newmask); } 1581.40Spooka61 NOARGS { int|sys||chroot(char *path); } 1591.1Smanu62 UNIMPL ustat 1601.56Snjoly63 NOARGS { int|sys||dup2(int from, int to); } 1611.40Spooka64 NOARGS { pid_t|sys||getppid(void); } 1621.40Spooka65 NOARGS { int|sys||getpgrp(void); } 1631.40Spooka66 NOARGS { int|sys||setsid(void); } 1641.40Spooka67 STD { int|linux_sys||sigaction(int signum, \ 1651.1Smanu const struct linux_old_sigaction *nsa, \ 1661.1Smanu struct linux_old_sigaction *osa); } 1671.40Spooka68 STD { int|linux_sys||siggetmask(void); } 1681.40Spooka69 STD { int|linux_sys||sigsetmask(linux_old_sigset_t mask); } 1691.40Spooka70 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); } 1701.40Spooka71 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); } 1711.40Spooka72 STD { int|linux_sys||sigsuspend(void *restart, \ 1721.1Smanu int oldmask, int mask); } 1731.40Spooka73 STD { int|linux_sys||sigpending(linux_old_sigset_t *set); } 1741.40Spooka74 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 1751.1Smanu u_int len);} 1761.40Spooka75 STD { int|linux_sys||setrlimit(u_int which, \ 1771.1Smanu struct orlimit *rlp); } 1781.40Spooka76 STD { int|linux_sys||getrlimit(u_int which, \ 1791.1Smanu struct orlimit *rlp); } 1801.41Snjoly77 NOARGS { int|compat_50_sys||getrusage(int who, \ 1811.41Snjoly struct rusage50 *rusage); } 1821.41Snjoly78 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 1831.1Smanu struct timezone *tzp); } 1841.41Snjoly79 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 1851.1Smanu struct timezone *tzp); } 1861.63Snjoly80 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); } 1871.63Snjoly81 NOARGS { int|sys||setgroups(int gidsetsize, gid_t *gidset); } 1881.40Spooka82 STD { int|linux_sys||select(int nfds, fd_set* readfds, \ 1891.1Smanu fd_set* writefds, fd_set* exceptfds, \ 1901.41Snjoly struct timeval50 *timeout); } 1911.40Spooka83 NOARGS { int|sys||symlink(const char *path, const char *to); } 1921.40Spooka84 NOARGS { int|compat_43_sys||lstat(const char *path, \ 1931.1Smanu struct stat43 *up); } oolstat 1941.69Snjoly85 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 1951.1Smanu int count); } 1961.24Sjoerg#ifdef EXEC_AOUT 1971.40Spooka86 STD { int|linux_sys||uselib(const char *path); } 1981.24Sjoerg#else 1991.24Sjoerg86 UNIMPL sys_uselib 2001.24Sjoerg#endif 2011.40Spooka87 STD { int|linux_sys||swapon(char *name); } 2021.40Spooka88 STD { int|linux_sys||reboot(int magic1, int magic2, \ 2031.1Smanu int cmd, void *arg); } 2041.40Spooka89 STD { int|linux_sys||readdir(int fd, void *dent, \ 2051.1Smanu unsigned int count); } 2061.40Spooka90 NOARGS { int|linux_sys||mmap(unsigned long addr, size_t len, \ 2071.7Smanu int prot, int flags, int fd, linux_off_t offset); } 2081.65Snjoly91 NOARGS { int|sys||munmap(void *addr, size_t len); } 2091.40Spooka92 NOARGS { int|compat_43_sys||truncate(const char *path, \ 2101.1Smanu long length); } 2111.40Spooka93 NOARGS { int|compat_43_sys||ftruncate(int fd, long length); } 2121.57Snjoly94 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 2131.67Snjoly95 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \ 2141.68Snjoly gid_t gid); } 2151.40Spooka96 STD { int|linux_sys||getpriority(int which, int who); } 2161.40Spooka97 NOARGS { int|sys||setpriority(int which, int who, int prio); } 2171.40Spooka98 NOARGS { int|sys||profil(void *samples, u_int size, \ 2181.1Smanu u_int offset, u_int scale); } 2191.40Spooka99 STD { int|linux_sys||statfs(const char *path, \ 2201.1Smanu struct linux_statfs *sp); } 2211.40Spooka100 STD { int|linux_sys||fstatfs(int fd, \ 2221.1Smanu struct linux_statfs *sp); } 2231.45Schs101 UNIMPL ioperm 2241.40Spooka102 STD { int|linux_sys||socketcall(int what, void *args); } 2251.1Smanu103 UNIMPL syslog 2261.49Schristos104 NOARGS { int|compat_50_sys||setitimer(int which, \ 2271.41Snjoly struct itimerval50 *itv, \ 2281.41Snjoly struct itimerval50 *oitv); } 2291.49Schristos105 NOARGS { int|compat_50_sys||getitimer(int which, \ 2301.41Snjoly struct itimerval50 *itv); } 2311.40Spooka106 STD { int|linux_sys||stat(const char *path, \ 2321.1Smanu struct linux_stat *sp); } 2331.40Spooka107 STD { int|linux_sys||lstat(const char *path, \ 2341.1Smanu struct linux_stat *sp); } 2351.40Spooka108 STD { int|linux_sys||fstat(int fd, struct linux_stat *sp); } 2361.40Spooka109 STD { int|linux_sys||uname(struct linux_utsname *up); } 2371.21Sperry110 UNIMPL iopl 2381.1Smanu111 UNIMPL vhangup 2391.1Smanu112 UNIMPL idle 2401.21Sperry113 UNIMPL vm86old 2411.40Spooka114 STD { int|linux_sys||wait4(int pid, int *status, \ 2421.42Snjoly int options, struct rusage50 *rusage); } 2431.40Spooka115 STD { int|linux_sys||swapoff(const char *path); } 2441.40Spooka116 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 2451.40Spooka117 STD { int|linux_sys||ipc(int what, int a1, int a2, int a3, \ 2461.31Schristos void *ptr); } 2471.40Spooka118 NOARGS { int|sys||fsync(int fd); } 2481.40Spooka119 STD { int|linux_sys||sigreturn(struct linux_sigcontext *scp); } 2491.45Schs120 STD { int|linux_sys||clone(int flags, void *stack, \ 2501.45Schs void *parent_tidptr, void *tls, void *child_tidptr); } 2511.40Spooka121 STD { int|linux_sys||setdomainname(char *domainname, \ 2521.7Smanu int len); } 2531.40Spooka122 STD { int|linux_sys||new_uname(struct linux_utsname *up); } 2541.21Sperry123 UNIMPL modify_ldt 2551.1Smanu124 UNIMPL adjtimex 2561.40Spooka125 STD { int|linux_sys||mprotect(const void *start, \ 2571.10Schristos unsigned long len, int prot); } 2581.40Spooka126 STD { int|linux_sys||sigprocmask(int how, \ 2591.1Smanu const linux_old_sigset_t *set, \ 2601.1Smanu linux_old_sigset_t *oset); } 2611.1Smanu127 UNIMPL create_module 2621.1Smanu128 UNIMPL init_module 2631.1Smanu129 UNIMPL delete_module 2641.1Smanu130 UNIMPL get_kernel_syms 2651.1Smanu131 UNIMPL quotactl 2661.40Spooka132 NOARGS { pid_t|sys||getpgid(pid_t pid); } 2671.40Spooka133 NOARGS { int|sys||fchdir(int fd); } 2681.1Smanu134 UNIMPL bdflush 2691.1Smanu135 UNIMPL sysfs 2701.44Snjoly136 STD { int|linux_sys||personality(unsigned long per); } 2711.1Smanu137 UNIMPL afs_syscall 2721.40Spooka138 STD { int|linux_sys||setfsuid(uid_t uid); } 2731.40Spooka139 STD { int|linux_sys||setfsgid(gid_t gid); } 2741.40Spooka140 STD { int|linux_sys||llseek(int fd, u_int32_t ohigh, \ 2751.31Schristos u_int32_t olow, void *res, int whence); } 2761.40Spooka141 STD { int|linux_sys||getdents(int fd, \ 2771.1Smanu struct linux_dirent *dent, unsigned int count); } 2781.40Spooka142 STD { int|linux_sys||new_select(int nfds, fd_set *readfds, \ 2791.1Smanu fd_set *writefds, fd_set *exceptfds, \ 2801.41Snjoly struct timeval50 *timeout); } 2811.40Spooka143 NOARGS { int|sys||flock(int fd, int how); } 2821.40Spooka144 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 2831.59Snjoly145 NOARGS { ssize_t|sys||readv(int fd, \ 2841.59Snjoly const struct iovec *iovp, int iovcnt); } 2851.59Snjoly146 NOARGS { ssize_t|sys||writev(int fd, \ 2861.59Snjoly const struct iovec *iovp, int iovcnt); } 2871.40Spooka147 NOARGS { pid_t|sys||getsid(pid_t pid); } 2881.40Spooka148 STD { int|linux_sys||fdatasync(int fd); } 2891.40Spooka149 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 2901.40Spooka150 NOARGS { int|sys||mlock(void *addr, size_t len); } 2911.40Spooka151 NOARGS { int|sys||munlock(void *addr, size_t len); } 2921.40Spooka152 NOARGS { int|sys||mlockall(int flags); } 2931.40Spooka153 NOARGS { int|sys||munlockall(void); } 2941.40Spooka154 STD { int|linux_sys||sched_setparam(pid_t pid, \ 2951.1Smanu const struct linux_sched_param *sp); } 2961.40Spooka155 STD { int|linux_sys||sched_getparam(pid_t pid, \ 2971.1Smanu struct linux_sched_param *sp); } 2981.40Spooka156 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 2991.1Smanu int policy, const struct linux_sched_param *sp); } 3001.40Spooka157 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 3011.40Spooka158 STD { int|linux_sys||sched_yield(void); } 3021.40Spooka159 STD { int|linux_sys||sched_get_priority_max(int policy); } 3031.40Spooka160 STD { int|linux_sys||sched_get_priority_min(int policy); } 3041.1Smanu161 UNIMPL sched_rr_get_interval 3051.40Spooka162 STD { int|linux_sys||nanosleep( \ 3061.38Snjoly const struct linux_timespec *rqtp, \ 3071.38Snjoly struct linux_timespec *rmtp); } 3081.40Spooka163 STD { void *|linux_sys||mremap(void *old_address, \ 3091.1Smanu size_t old_size, size_t new_size, u_long flags); } 3101.40Spooka164 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \ 3111.1Smanu uid_t suid); } 3121.40Spooka165 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \ 3131.1Smanu uid_t *suid); } 3141.1Smanu166 UNIMPL query_module 3151.40Spooka167 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 3161.1Smanu int timeout); } 3171.1Smanu168 UNIMPL nfsservctl 3181.40Spooka169 STD { int|linux_sys||setresgid(gid_t rgid, gid_t egid, \ 3191.1Smanu gid_t sgid); } 3201.40Spooka170 STD { int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \ 3211.1Smanu gid_t *sgid); } 3221.89Schristos171 INDIR { int|linux_sys||__prctl(int code, \ 3231.90Schristos ... void * args[LINUX_SYS_MAXSYSARGS]); } 3241.40Spooka172 STD { int|linux_sys||rt_sigreturn( \ 3251.7Smanu struct linux_rt_sigframe *sfp); } 3261.40Spooka173 STD { int|linux_sys||rt_sigaction(int signum, \ 3271.1Smanu const struct linux_sigaction *nsa, \ 3281.1Smanu struct linux_sigaction *osa, \ 3291.1Smanu size_t sigsetsize); } 3301.40Spooka174 STD { int|linux_sys||rt_sigprocmask(int how, \ 3311.1Smanu const linux_sigset_t *set, \ 3321.1Smanu linux_sigset_t *oset, \ 3331.1Smanu size_t sigsetsize); } 3341.40Spooka175 STD { int|linux_sys||rt_sigpending( \ 3351.1Smanu linux_sigset_t *set, \ 3361.1Smanu size_t sigsetsize); } 3371.50Schristos176 STD { int|linux_sys||rt_sigtimedwait( \ 3381.50Schristos const linux_sigset_t *set, \ 3391.50Schristos linux_siginfo_t *info, \ 3401.50Schristos const struct linux_timespec *timeout); } 3411.40Spooka177 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 3421.43Snjoly linux_siginfo_t *uinfo); } 3431.40Spooka178 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 3441.1Smanu size_t sigsetsize); } 3451.40Spooka179 STD { int|linux_sys||pread(int fd, char *buf, \ 3461.60Snjoly size_t nbyte, off_t offset); } 3471.40Spooka180 STD { int|linux_sys||pwrite(int fd, char *buf, \ 3481.60Snjoly size_t nbyte, off_t offset); } 3491.67Snjoly181 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \ 3501.67Snjoly gid_t gid); } 3511.40Spooka182 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 3521.1Smanu183 UNIMPL capget 3531.1Smanu184 UNIMPL capset 3541.40Spooka185 STD { int|linux_sys||sigaltstack( \ 3551.1Smanu const struct linux_sigaltstack *ss, \ 3561.1Smanu struct linux_sigaltstack *oss); } 3571.1Smanu186 UNIMPL sendfile 3581.1Smanu187 UNIMPL getpmsg 3591.1Smanu188 UNIMPL putpmsg 3601.40Spooka189 NOARGS { int|sys|14|vfork(void); } 3611.40Spooka190 STD { int|linux_sys||ugetrlimit(int which, \ 3621.8Schristos struct rlimit *rlp); } 3631.82Schristos191 STD { ssize_t|linux_sys||readahead(int fd, off_t offset, \ 3641.82Schristos size_t count); } 3651.33Sdsl#define linux_sys_mmap2_args linux_sys_mmap_args 3661.40Spooka192 NOARGS { linux_off_t|linux_sys||mmap2(unsigned long addr, \ 3671.15Schristos size_t len, int prot, int flags, int fd, \ 3681.15Schristos linux_off_t offset); } 3691.40Spooka193 STD { int|linux_sys||truncate64(const char *path, \ 3701.13Sjdolecek off_t length); } 3711.40Spooka194 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 3721.13Sjdolecek off_t length); } 3731.40Spooka195 STD { int|linux_sys||stat64(const char *path, \ 3741.12Sjdolecek struct linux_stat64 *sp); } 3751.40Spooka196 STD { int|linux_sys||lstat64(const char *path, \ 3761.12Sjdolecek struct linux_stat64 *sp); } 3771.40Spooka197 STD { int|linux_sys||fstat64(int fd, \ 3781.12Sjdolecek struct linux_stat64 *sp); } 3791.21Sperry198 UNIMPL sys_pciconfig_read 3801.1Smanu199 UNIMPL sys_pciconfig_write 3811.1Smanu200 UNIMPL sys_pciconfig_iobase 3821.1Smanu201 UNIMPL /* Unused (MacOnLinux project) */ 3831.40Spooka202 STD { int|linux_sys||getdents64(int fd, \ 3841.11Schristos struct linux_dirent64 *dent, unsigned int count); } 3851.4Sjdolecek203 UNIMPL pivot_root 3861.40Spooka204 STD { int|linux_sys||fcntl64(int fd, int cmd, void *arg); } 3871.40Spooka205 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 3881.40Spooka206 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 3891.45Schs207 NOARGS { pid_t|linux_sys||gettid(void); } 3901.45Schs208 STD { int|linux_sys||tkill(int tid, int sig); } 3911.40Spooka209 STD { int|linux_sys||setxattr(char *path, char *name, \ 3921.22Sfvdl void *value, size_t size, int flags); } 3931.40Spooka210 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 3941.22Sfvdl void *value, size_t size, int flags); } 3951.40Spooka211 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 3961.22Sfvdl void *value, size_t size, int flags); } 3971.40Spooka212 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 3981.22Sfvdl void *value, size_t size); } 3991.40Spooka213 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 4001.22Sfvdl void *value, size_t size); } 4011.40Spooka214 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 4021.22Sfvdl void *value, size_t size); } 4031.40Spooka215 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 4041.22Sfvdl size_t size); } 4051.40Spooka216 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 4061.22Sfvdl size_t size); } 4071.40Spooka217 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 4081.22Sfvdl size_t size); } 4091.40Spooka218 STD { int|linux_sys||removexattr(char *path, char *name); } 4101.40Spooka219 STD { int|linux_sys||lremovexattr(char *path, char *name); } 4111.40Spooka220 STD { int|linux_sys||fremovexattr(int fd, char *name); } 4121.45Schs221 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 4131.45Schs const struct linux_timespec *timeout, int *uaddr2, \ 4141.45Schs int val3); } 4151.45Schs222 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 4161.45Schs unsigned int len, unsigned long *mask); } 4171.45Schs223 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 4181.45Schs unsigned int len, unsigned long *mask); } 4191.18Sjdolecek224 UNIMPL /* unused */ 4201.18Sjdolecek225 UNIMPL tuxcall 4211.18Sjdolecek226 UNIMPL sendfile64 4221.18Sjdolecek227 UNIMPL io_setup 4231.18Sjdolecek228 UNIMPL io_destroy 4241.18Sjdolecek229 UNIMPL io_getevents 4251.18Sjdolecek230 UNIMPL io_submit 4261.18Sjdolecek231 UNIMPL io_cancel 4271.45Schs232 STD { int|linux_sys||set_tid_address(int *tid); } 4281.62Snjoly233 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 4291.62Snjoly size_t len, int advice); } 4301.40Spooka234 STD { int|linux_sys||exit_group(int error_code); } 4311.18Sjdolecek235 UNIMPL lookup_dcookie 4321.81Schristos236 STD { int|linux_sys||epoll_create(int size); } 4331.81Schristos237 STD { int|linux_sys||epoll_ctl(int epfd, int op, int fd, \ 4341.81Schristos struct linux_epoll_event *event); } 4351.81Schristos238 STD { int|linux_sys||epoll_wait(int epfd, \ 4361.81Schristos struct linux_epoll_event *events, int maxevents, \ 4371.81Schristos int timeout); } 4381.18Sjdolecek239 UNIMPL remap_file_pages 4391.75Sthorpej240 STD { int|linux_sys||timer_create(clockid_t clockid, \ 4401.75Sthorpej struct linux_sigevent *evp, timer_t *timerid); } 4411.75Sthorpej241 STD { int|linux_sys||timer_settime(timer_t timerid, \ 4421.75Sthorpej int flags, const struct linux_itimerspec *tim, \ 4431.75Sthorpej struct linux_itimerspec *otim); } 4441.75Sthorpej242 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 4451.75Sthorpej struct linux_itimerspec *tim); } 4461.75Sthorpej243 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 4471.75Sthorpej244 NOARGS { int|sys||timer_delete(timer_t timerid); } 4481.40Spooka245 STD { int|linux_sys||clock_settime(clockid_t which, \ 4491.23Sfvdl struct linux_timespec *tp); } 4501.40Spooka246 STD { int|linux_sys||clock_gettime(clockid_t which, \ 4511.23Sfvdl struct linux_timespec *tp); } 4521.40Spooka247 STD { int|linux_sys||clock_getres(clockid_t which, \ 4531.23Sfvdl struct linux_timespec *tp); } 4541.40Spooka248 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 4551.23Sfvdl int flags, struct linux_timespec *rqtp, \ 4561.23Sfvdl struct linux_timespec *rmtp); } 4571.18Sjdolecek249 UNIMPL swapcontext 4581.45Schs250 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 4591.64Snjoly251 NOARGS { int|compat_50_sys||utimes(const char *path, \ 4601.64Snjoly const struct timeval50 *tptr); } 4611.40Spooka252 STD { int|linux_sys||statfs64(const char *path, \ 4621.20Sjdolecek size_t sz, struct linux_statfs64 *sp); } 4631.40Spooka253 STD { int|linux_sys||fstatfs64(int fd, \ 4641.20Sjdolecek size_t sz, struct linux_statfs64 *sp); } 4651.62Snjoly254 STD { int|linux_sys||fadvise64_64(int fd, off_t offset, \ 4661.62Snjoly off_t len, int advice); } 4671.18Sjdolecek255 UNIMPL rtas 4681.18Sjdolecek256 UNIMPL /* reserved for sys_debug_setcontext */ 4691.18Sjdolecek257 UNIMPL /* reserved for vserver */ 4701.18Sjdolecek258 UNIMPL /* reserved for new sys_remap_file_pages */ 4711.18Sjdolecek259 UNIMPL /* reserved for new sys_mbind */ 4721.18Sjdolecek260 UNIMPL /* reserved for new sys_get_mempolicy */ 4731.18Sjdolecek261 UNIMPL /* reserved for new sys_set_mempolicy */ 4741.86Schristos262 STD { linux_mqd_t|linux_sys||mq_open(const char *name, \ 4751.86Schristos int oflag, linux_umode_t mode, \ 4761.86Schristos struct linux_mq_attr *attr); } 4771.86Schristos263 STD { int|linux_sys||mq_unlink(const char *name); } 4781.86Schristos264 STD { int|linux_sys||mq_timedsend(linux_mqd_t mqdes, \ 4791.86Schristos const char *msg_ptr, size_t msg_len, \ 4801.86Schristos unsigned int msg_prio, \ 4811.86Schristos const struct linux_timespec *abs_timeout); } 4821.86Schristos265 STD { ssize_t|linux_sys||mq_timedreceive(linux_mqd_t mqdes, \ 4831.86Schristos char *msg_ptr, size_t msg_len, \ 4841.86Schristos unsigned int *msg_prio, \ 4851.86Schristos const struct linux_timespec *abs_timeout); } 4861.86Schristos266 STD { int|linux_sys||mq_notify(linux_mqd_t mqdes, \ 4871.86Schristos const struct linux_sigevent *sevp); } 4881.86Schristos267 STD { int|linux_sys||mq_getsetattr(linux_mqd_t mqdes, \ 4891.86Schristos const struct linux_mq_attr *newattr, \ 4901.86Schristos struct linux_mq_attr *oldattr); } 4911.18Sjdolecek268 UNIMPL kexec_load 4921.45Schs269 UNIMPL add_key 4931.45Schs270 UNIMPL request_key 4941.45Schs271 UNIMPL keyctl 4951.84Schristos272 STD { int|linux_sys||waitid(int idtype, id_t id, \ 4961.83Schristos linux_siginfo_t *infop, int options, \ 4971.83Schristos struct rusage50 *rusage); } 4981.45Schs273 UNIMPL ioprio_set 4991.45Schs274 UNIMPL ioprio_get 5001.84Schristos275 STD { int|linux_sys||inotify_init(void); } 5011.84Schristos276 STD { int|linux_sys||inotify_add_watch(int fd, \ 5021.84Schristos const char *pathname, uint32_t mask); } 5031.84Schristos277 STD { int|linux_sys||inotify_rm_watch(int fd, int wd); } 5041.45Schs278 UNIMPL spu_run 5051.45Schs279 UNIMPL spu_create 5061.70Smanu280 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 5071.70Smanu fd_set *writefds, fd_set *exceptfds, \ 5081.70Smanu struct linux_timespec *timeout, \ 5091.70Smanu linux_sized_sigset_t *ss); } 5101.66Snjoly281 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 5111.51Spooka struct linux_timespec *timeout, \ 5121.51Spooka linux_sigset_t *sigset); } 5131.45Schs282 UNIMPL unshare 5141.45Schs283 UNIMPL splice 5151.45Schs284 UNIMPL tee 5161.45Schs285 UNIMPL vmsplice 5171.58Snjoly286 STD { int|linux_sys||openat(int fd, const char *path, \ 5181.58Snjoly int flags, ... linux_umode_t mode); } 5191.58Snjoly287 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 5201.58Snjoly linux_umode_t mode); } 5211.58Snjoly288 STD { int|linux_sys||mknodat(int fd, const char *path, \ 5221.58Snjoly linux_umode_t mode, unsigned dev); } 5231.58Snjoly289 STD { int|linux_sys||fchownat(int fd, const char *path, \ 5241.58Snjoly uid_t owner, gid_t group, int flag); } 5251.45Schs290 UNIMPL futimesat 5261.58Snjoly291 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 5271.58Snjoly struct linux_stat64 *sp, int flag); } 5281.58Snjoly292 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 5291.58Snjoly int flag); } 5301.58Snjoly293 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 5311.58Snjoly int tofd, const char *to); } 5321.58Snjoly294 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 5331.58Snjoly int fd2, const char *name2, int flags); } 5341.58Snjoly295 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 5351.58Snjoly const char *path2); } 5361.69Snjoly296 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 5371.58Snjoly char *buf, size_t bufsize); } 5381.58Snjoly297 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 5391.58Snjoly linux_umode_t mode); } 5401.58Snjoly298 STD { int|linux_sys||faccessat(int fd, const char *path, \ 5411.58Snjoly int amode); } 5421.74Sthorpej ; 5431.74Sthorpej ; The NetBSD native robust list calls have different 5441.74Sthorpej ; argument names / types, but they are ABI-compatible 5451.74Sthorpej ; with Linux. 5461.74Sthorpej ; 5471.74Sthorpej299 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 5481.74Sthorpej size_t len); } 5491.74Sthorpej300 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 5501.74Sthorpej void **headp, size_t *lenp); } 5511.45Schs301 UNIMPL move_pages 5521.85Schristos302 STD { int|linux_sys||getcpu(unsigned int *cpu, \ 5531.85Schristos unsigned int *node, \ 5541.85Schristos struct linux_getcpu_cache *tcache); } 5551.81Schristos303 STD { int|linux_sys||epoll_pwait(int epfd, \ 5561.81Schristos struct linux_epoll_event *events, int maxevents, \ 5571.81Schristos int timeout, const linux_sigset_t *sigmask); } 5581.55Snjoly304 STD { int|linux_sys||utimensat(int fd, const char *path, \ 5591.55Snjoly struct linux_timespec *times, int flag); } 5601.45Schs305 UNIMPL signalfd 5611.76Sthorpej306 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 5621.76Sthorpej int flags); } 5631.77Sthorpej307 STD { int|linux_sys||eventfd(unsigned int initval); } 5641.87Schristos308 STD { int|linux_sys||sync_file_range(int fd, \ 5651.87Schristos off_t offset, off_t nbytes, unsigned int flags); } 5661.73Sjdolecek309 STD { int|linux_sys||fallocate(int fd, int mode, \ 5671.73Sjdolecek off_t offset, off_t len); } 5681.45Schs310 UNIMPL subpage_prot 5691.76Sthorpej311 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 5701.76Sthorpej const struct linux_itimerspec *tim, \ 5711.76Sthorpej struct linux_itimerspec *otim); } 5721.76Sthorpej312 STD { int|linux_sys||timerfd_gettime(int fd, \ 5731.76Sthorpej struct linux_itimerspec *tim); } 5741.45Schs313 UNIMPL signalfd4 5751.77Sthorpej314 STD { int|linux_sys||eventfd2(unsigned int initval, \ 5761.77Sthorpej int flags); } 5771.81Schristos315 STD { int|linux_sys||epoll_create1(int flags); } 5781.46She316 STD { int|linux_sys||dup3(int from, int to, int flags); } 5791.46She317 STD { int|linux_sys||pipe2(int *pfds, int flags); } 5801.84Schristos318 STD { int|linux_sys||inotify_init1(int flags); } 5811.45Schs319 UNIMPL perf_event_open 5821.78Sthorpej320 STD { int|linux_sys||preadv(int fd, \ 5831.78Sthorpej const struct iovec *iovp, int iovcnt, \ 5841.78Sthorpej unsigned long off_lo, unsigned long off_hi); } 5851.78Sthorpej321 STD { int|linux_sys||pwritev(int fd, \ 5861.78Sthorpej const struct iovcnt *iovp, int iovcnt, \ 5871.78Sthorpej unsigned long off_lo, unsigned long off_hi); } 5881.45Schs322 UNIMPL rt_tgsigqueueinfo 5891.72Schristos323 UNIMPL fanotify_init 5901.72Schristos324 UNIMPL fanotify_mark 5911.80Sryo325 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 5921.80Sryo struct rlimit *new_rlp, struct rlimit *old_rlp); } 5931.72Schristos326 UNIMPL socket 5941.72Schristos327 UNIMPL bind 5951.72Schristos328 UNIMPL connect 5961.72Schristos329 UNIMPL listen 5971.72Schristos330 UNIMPL accept 5981.72Schristos331 UNIMPL getsockname 5991.72Schristos332 UNIMPL getpeername 6001.72Schristos333 UNIMPL socketpair 6011.72Schristos334 UNIMPL send 6021.72Schristos335 UNIMPL sendto 6031.72Schristos336 UNIMPL recv 6041.72Schristos337 UNIMPL recvfrom 6051.72Schristos338 UNIMPL shutdown 6061.72Schristos339 UNIMPL setsockopt 6071.72Schristos340 UNIMPL getsockopt 6081.72Schristos341 UNIMPL sendmsg 6091.72Schristos342 UNIMPL recvmsg 6101.72Schristos343 STD { int|linux_sys||recvmmsg(int s, \ 6111.72Schristos struct linux_mmsghdr *msgvec, unsigned int vlen, \ 6121.72Schristos unsigned int flags, struct timespec *timeout); } 6131.71Smartin344 STD { int|linux_sys||accept4(int s, \ 6141.71Smartin struct osockaddr *name, \ 6151.71Smartin int *anamelen, int flags); } 6161.72Schristos345 UNIMPL name_to_handle_at 6171.72Schristos346 UNIMPL open_by_handle_at 6181.72Schristos347 UNIMPL clock_adjtime 6191.87Schristos348 STD { int|linux_sys||syncfs(int fd); } 6201.72Schristos349 STD { int|linux_sys||sendmmsg(int s, \ 6211.72Schristos struct linux_mmsghdr *msgvec, unsigned int vlen, \ 6221.72Schristos unsigned int flags); } 6231.72Schristos350 UNIMPL setns 6241.72Schristos351 UNIMPL process_vm_readv 6251.72Schristos352 UNIMPL process_vm_writev 6261.72Schristos353 UNIMPL finit_module 6271.72Schristos354 UNIMPL kcmp 6281.72Schristos355 UNIMPL sched_setattr 6291.72Schristos356 UNIMPL sched_getattr 6301.87Schristos357 STD { int|linux_sys||renameat2(int fromfd, \ 6311.87Schristos const char *from, int tofd, const char *to, \ 6321.87Schristos unsigned int flags); } 6331.72Schristos358 UNIMPL seccomp 6341.79Sryo359 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 6351.79Sryo unsigned int flags); } 6361.72Schristos360 UNIMPL memfd_create 6371.72Schristos361 UNIMPL bpf 6381.72Schristos362 UNIMPL execveat 6391.72Schristos363 UNIMPL switch_endian 6401.72Schristos364 UNIMPL userfaultfd 6411.72Schristos365 UNIMPL membarrier 6421.72Schristos366 UNIMPL 6431.72Schristos367 UNIMPL 6441.72Schristos368 UNIMPL 6451.72Schristos369 UNIMPL 6461.72Schristos370 UNIMPL 6471.72Schristos371 UNIMPL 6481.72Schristos372 UNIMPL 6491.72Schristos373 UNIMPL 6501.72Schristos374 UNIMPL 6511.72Schristos375 UNIMPL 6521.72Schristos376 UNIMPL 6531.72Schristos377 UNIMPL 6541.72Schristos378 UNIMPL mlock2 6551.87Schristos379 STD { ssize_t|linux_sys||copy_file_range(int fd_in, \ 6561.87Schristos off_t * off_in, int fd_out, off_t * off_out, \ 6571.87Schristos size_t len, unsigned int flags); } 6581.72Schristos380 UNIMPL preadv2 6591.72Schristos381 UNIMPL pwritev2 6601.72Schristos382 UNIMPL kexec_file_load 6611.84Schristos383 STD { int|linux_sys||statx(int fd, const char *path, \ 6621.82Schristos int flag, unsigned int mask, \ 6631.82Schristos struct linux_statx *sp); } 6641.81Schristos384 UNIMPL 6651.81Schristos385 UNIMPL 6661.81Schristos386 UNIMPL 6671.81Schristos387 UNIMPL 6681.81Schristos388 UNIMPL 6691.81Schristos389 UNIMPL 6701.81Schristos390 UNIMPL 6711.81Schristos391 UNIMPL 6721.81Schristos392 UNIMPL 6731.81Schristos393 UNIMPL 6741.81Schristos394 UNIMPL 6751.81Schristos395 UNIMPL 6761.81Schristos396 UNIMPL 6771.81Schristos397 UNIMPL 6781.81Schristos398 UNIMPL 6791.81Schristos399 UNIMPL 6801.81Schristos400 UNIMPL 6811.81Schristos401 UNIMPL 6821.81Schristos402 UNIMPL 6831.81Schristos403 UNIMPL 6841.81Schristos404 UNIMPL 6851.81Schristos405 UNIMPL 6861.81Schristos406 UNIMPL 6871.81Schristos407 UNIMPL 6881.81Schristos408 UNIMPL 6891.81Schristos409 UNIMPL 6901.81Schristos410 UNIMPL 6911.81Schristos411 UNIMPL 6921.81Schristos412 UNIMPL 6931.81Schristos413 UNIMPL 6941.81Schristos414 UNIMPL 6951.81Schristos415 UNIMPL 6961.81Schristos416 UNIMPL 6971.81Schristos417 UNIMPL 6981.81Schristos418 UNIMPL 6991.81Schristos419 UNIMPL 7001.81Schristos420 UNIMPL 7011.81Schristos421 UNIMPL 7021.81Schristos422 UNIMPL 7031.81Schristos423 UNIMPL 7041.81Schristos424 UNIMPL 7051.81Schristos425 UNIMPL 7061.81Schristos426 UNIMPL 7071.81Schristos427 UNIMPL 7081.81Schristos428 UNIMPL 7091.81Schristos429 UNIMPL 7101.81Schristos430 UNIMPL 7111.81Schristos431 UNIMPL 7121.81Schristos432 UNIMPL 7131.81Schristos433 UNIMPL 7141.81Schristos434 UNIMPL 7151.87Schristos435 STD { int|linux_sys||clone3( \ 7161.87Schristos struct linux_user_clone3_args *cl_args, \ 7171.87Schristos size_t size); } 7181.82Schristos436 STD { int|linux_sys||close_range(unsigned int first, \ 7191.82Schristos unsigned int last, unsigned int flags); } 7201.81Schristos437 UNIMPL 7211.81Schristos438 UNIMPL 7221.85Schristos439 STD { int|linux_sys||faccessat2(int fd, const char *path, \ 7231.85Schristos int amode, int flags); } 7241.81Schristos440 UNIMPL 7251.81Schristos441 STD { int|linux_sys||epoll_pwait2(int epfd, \ 7261.81Schristos struct linux_epoll_event *events, int maxevents, \ 7271.81Schristos const struct linux_timespec *timeout, \ 7281.81Schristos const linux_sigset_t *sigmask); } 729