syscalls.master revision 1.80
11.80Sryo $NetBSD: syscalls.master,v 1.80 2021/12/02 04:29:48 ryo 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.1Smanu 781.1Smanu#include <compat/linux/linux_syscallargs.h> 791.1Smanu 801.25Schristos%% 811.25Schristos 821.40Spooka0 NOARGS { int|linux_sys||nosys(void); } syscall 831.45Schs1 STD { int|linux_sys||exit(int rval); } 841.40Spooka2 NOARGS { int|sys||fork(void); } 851.59Snjoly3 NOARGS { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } 861.59Snjoly4 NOARGS { ssize_t|sys||write(int fd, const void *buf, \ 871.59Snjoly size_t nbyte); } 881.40Spooka5 STD { int|linux_sys||open(const char *path, int flags, \ 891.57Snjoly linux_umode_t mode); } 901.40Spooka6 NOARGS { int|sys||close(int fd); } 911.40Spooka7 STD { int|linux_sys||waitpid(int pid, int *status, \ 921.1Smanu int options);} 931.57Snjoly8 STD { int|linux_sys||creat(const char *path, linux_umode_t mode); } 941.40Spooka9 NOARGS { int|sys||link(const char *path, const char *link); } 951.40Spooka10 STD { int|linux_sys||unlink(const char *path); } 961.40Spooka11 NOARGS { int|sys||execve(const char *path, char **argp, \ 971.1Smanu char **envp); } 981.40Spooka12 NOARGS { int|sys||chdir(const char *path); } 991.40Spooka13 STD { int|linux_sys||time(linux_time_t *t); } 1001.57Snjoly14 STD { int|linux_sys||mknod(const char *path, linux_umode_t mode, \ 1011.61Snjoly unsigned dev); } 1021.40Spooka15 NOARGS { int|sys||chmod(const char *path, int mode); } 1031.67Snjoly16 NOARGS { int|sys||__posix_lchown(const char *path, uid_t uid, \ 1041.67Snjoly gid_t gid); } 1051.1Smanu17 OBSOL break 1061.1Smanu18 OBSOL ostat 1071.40Spooka19 NOARGS { long|compat_43_sys||lseek(int fd, long offset, \ 1081.1Smanu int whence); } 1091.40Spooka20 NOARGS { pid_t|sys||getpid(void); } 1101.1Smanu21 UNIMPL mount 1111.1Smanu22 OBSOL umount 1121.40Spooka23 NOARGS { int|sys||setuid(uid_t uid); } 1131.40Spooka24 NOARGS { uid_t|sys||getuid(void); } 1141.40Spooka25 STD { int|linux_sys||stime(linux_time_t *t); } 1151.40Spooka26 STD { int|linux_sys||ptrace(int request, int pid, \ 1161.54Spooka long addr, long data); } 1171.40Spooka27 STD { int|linux_sys||alarm(unsigned int secs); } 1181.1Smanu28 OBSOL ofstat 1191.40Spooka29 STD { int|linux_sys||pause(void); } 1201.40Spooka30 STD { int|linux_sys||utime(const char *path, \ 1211.1Smanu struct linux_utimbuf *times); } 1221.1Smanu31 OBSOL stty 1231.1Smanu32 OBSOL gtty 1241.40Spooka33 NOARGS { int|sys||access(const char *path, int flags); } 1251.40Spooka34 STD { int|linux_sys||nice(int incr); } 1261.1Smanu35 OBSOL ftime 1271.40Spooka36 NOARGS { int|sys||sync(void); } 1281.40Spooka37 STD { int|linux_sys||kill(int pid, int signum); } 1291.40Spooka38 NOARGS { int|sys||__posix_rename(const char *from, \ 1301.1Smanu const char *to); } 1311.57Snjoly39 NOARGS { int|sys||mkdir(const char *path, linux_umode_t mode); } 1321.40Spooka40 NOARGS { int|sys||rmdir(const char *path); } 1331.56Snjoly41 NOARGS { int|sys||dup(int fd); } 1341.40Spooka42 STD { int|linux_sys||pipe(int *pfds); } 1351.40Spooka43 STD { int|linux_sys||times(struct times *tms); } 1361.1Smanu44 OBSOL prof 1371.40Spooka45 STD { int|linux_sys||brk(char *nsize); } 1381.40Spooka46 NOARGS { int|sys||setgid(gid_t gid); } 1391.40Spooka47 NOARGS { gid_t|sys||getgid(void); } 1401.40Spooka48 STD { int|linux_sys||signal(int signum, \ 1411.1Smanu linux_handler_t handler); } 1421.40Spooka49 NOARGS { uid_t|sys||geteuid(void); } 1431.40Spooka50 NOARGS { gid_t|sys||getegid(void); } 1441.40Spooka51 NOARGS { int|sys||acct(char *path); } 1451.1Smanu52 UNIMPL umount 1461.1Smanu53 OBSOL lock 1471.40Spooka54 STD { int|linux_sys||ioctl(int fd, u_long com, \ 1481.31Schristos void *data); } 1491.40Spooka55 STD { int|linux_sys||fcntl(int fd, int cmd, void *arg); } 1501.1Smanu56 OBSOL mpx 1511.40Spooka57 NOARGS { int|sys||setpgid(int pid, int pgid); } 1521.1Smanu58 OBSOL ulimit 1531.40Spooka59 STD { int|linux_sys||olduname(struct linux_old_utsname \ 1541.7Smanu *up); } 1551.40Spooka60 NOARGS { int|sys||umask(int newmask); } 1561.40Spooka61 NOARGS { int|sys||chroot(char *path); } 1571.1Smanu62 UNIMPL ustat 1581.56Snjoly63 NOARGS { int|sys||dup2(int from, int to); } 1591.40Spooka64 NOARGS { pid_t|sys||getppid(void); } 1601.40Spooka65 NOARGS { int|sys||getpgrp(void); } 1611.40Spooka66 NOARGS { int|sys||setsid(void); } 1621.40Spooka67 STD { int|linux_sys||sigaction(int signum, \ 1631.1Smanu const struct linux_old_sigaction *nsa, \ 1641.1Smanu struct linux_old_sigaction *osa); } 1651.40Spooka68 STD { int|linux_sys||siggetmask(void); } 1661.40Spooka69 STD { int|linux_sys||sigsetmask(linux_old_sigset_t mask); } 1671.40Spooka70 NOARGS { int|sys||setreuid(uid_t ruid, uid_t euid); } 1681.40Spooka71 NOARGS { int|sys||setregid(gid_t rgid, gid_t egid); } 1691.40Spooka72 STD { int|linux_sys||sigsuspend(void *restart, \ 1701.1Smanu int oldmask, int mask); } 1711.40Spooka73 STD { int|linux_sys||sigpending(linux_old_sigset_t *set); } 1721.40Spooka74 NOARGS { int|compat_43_sys||sethostname(char *hostname, \ 1731.1Smanu u_int len);} 1741.40Spooka75 STD { int|linux_sys||setrlimit(u_int which, \ 1751.1Smanu struct orlimit *rlp); } 1761.40Spooka76 STD { int|linux_sys||getrlimit(u_int which, \ 1771.1Smanu struct orlimit *rlp); } 1781.41Snjoly77 NOARGS { int|compat_50_sys||getrusage(int who, \ 1791.41Snjoly struct rusage50 *rusage); } 1801.41Snjoly78 STD { int|linux_sys||gettimeofday(struct timeval50 *tp, \ 1811.1Smanu struct timezone *tzp); } 1821.41Snjoly79 STD { int|linux_sys||settimeofday(struct timeval50 *tp, \ 1831.1Smanu struct timezone *tzp); } 1841.63Snjoly80 NOARGS { int|sys||getgroups(int gidsetsize, gid_t *gidset); } 1851.63Snjoly81 NOARGS { int|sys||setgroups(int gidsetsize, gid_t *gidset); } 1861.40Spooka82 STD { int|linux_sys||select(int nfds, fd_set* readfds, \ 1871.1Smanu fd_set* writefds, fd_set* exceptfds, \ 1881.41Snjoly struct timeval50 *timeout); } 1891.40Spooka83 NOARGS { int|sys||symlink(const char *path, const char *to); } 1901.40Spooka84 NOARGS { int|compat_43_sys||lstat(const char *path, \ 1911.1Smanu struct stat43 *up); } oolstat 1921.69Snjoly85 NOARGS { ssize_t|sys||readlink(const char *path, char *buf, \ 1931.1Smanu int count); } 1941.24Sjoerg#ifdef EXEC_AOUT 1951.40Spooka86 STD { int|linux_sys||uselib(const char *path); } 1961.24Sjoerg#else 1971.24Sjoerg86 UNIMPL sys_uselib 1981.24Sjoerg#endif 1991.40Spooka87 STD { int|linux_sys||swapon(char *name); } 2001.40Spooka88 STD { int|linux_sys||reboot(int magic1, int magic2, \ 2011.1Smanu int cmd, void *arg); } 2021.40Spooka89 STD { int|linux_sys||readdir(int fd, void *dent, \ 2031.1Smanu unsigned int count); } 2041.40Spooka90 NOARGS { int|linux_sys||mmap(unsigned long addr, size_t len, \ 2051.7Smanu int prot, int flags, int fd, linux_off_t offset); } 2061.65Snjoly91 NOARGS { int|sys||munmap(void *addr, size_t len); } 2071.40Spooka92 NOARGS { int|compat_43_sys||truncate(const char *path, \ 2081.1Smanu long length); } 2091.40Spooka93 NOARGS { int|compat_43_sys||ftruncate(int fd, long length); } 2101.57Snjoly94 NOARGS { int|sys||fchmod(int fd, linux_umode_t mode); } 2111.67Snjoly95 NOARGS { int|sys||__posix_fchown(int fd, uid_t uid, \ 2121.68Snjoly gid_t gid); } 2131.40Spooka96 STD { int|linux_sys||getpriority(int which, int who); } 2141.40Spooka97 NOARGS { int|sys||setpriority(int which, int who, int prio); } 2151.40Spooka98 NOARGS { int|sys||profil(void *samples, u_int size, \ 2161.1Smanu u_int offset, u_int scale); } 2171.40Spooka99 STD { int|linux_sys||statfs(const char *path, \ 2181.1Smanu struct linux_statfs *sp); } 2191.40Spooka100 STD { int|linux_sys||fstatfs(int fd, \ 2201.1Smanu struct linux_statfs *sp); } 2211.45Schs101 UNIMPL ioperm 2221.40Spooka102 STD { int|linux_sys||socketcall(int what, void *args); } 2231.1Smanu103 UNIMPL syslog 2241.49Schristos104 NOARGS { int|compat_50_sys||setitimer(int which, \ 2251.41Snjoly struct itimerval50 *itv, \ 2261.41Snjoly struct itimerval50 *oitv); } 2271.49Schristos105 NOARGS { int|compat_50_sys||getitimer(int which, \ 2281.41Snjoly struct itimerval50 *itv); } 2291.40Spooka106 STD { int|linux_sys||stat(const char *path, \ 2301.1Smanu struct linux_stat *sp); } 2311.40Spooka107 STD { int|linux_sys||lstat(const char *path, \ 2321.1Smanu struct linux_stat *sp); } 2331.40Spooka108 STD { int|linux_sys||fstat(int fd, struct linux_stat *sp); } 2341.40Spooka109 STD { int|linux_sys||uname(struct linux_utsname *up); } 2351.21Sperry110 UNIMPL iopl 2361.1Smanu111 UNIMPL vhangup 2371.1Smanu112 UNIMPL idle 2381.21Sperry113 UNIMPL vm86old 2391.40Spooka114 STD { int|linux_sys||wait4(int pid, int *status, \ 2401.42Snjoly int options, struct rusage50 *rusage); } 2411.40Spooka115 STD { int|linux_sys||swapoff(const char *path); } 2421.40Spooka116 STD { int|linux_sys||sysinfo(struct linux_sysinfo *arg); } 2431.40Spooka117 STD { int|linux_sys||ipc(int what, int a1, int a2, int a3, \ 2441.31Schristos void *ptr); } 2451.40Spooka118 NOARGS { int|sys||fsync(int fd); } 2461.40Spooka119 STD { int|linux_sys||sigreturn(struct linux_sigcontext *scp); } 2471.45Schs120 STD { int|linux_sys||clone(int flags, void *stack, \ 2481.45Schs void *parent_tidptr, void *tls, void *child_tidptr); } 2491.40Spooka121 STD { int|linux_sys||setdomainname(char *domainname, \ 2501.7Smanu int len); } 2511.40Spooka122 STD { int|linux_sys||new_uname(struct linux_utsname *up); } 2521.21Sperry123 UNIMPL modify_ldt 2531.1Smanu124 UNIMPL adjtimex 2541.40Spooka125 STD { int|linux_sys||mprotect(const void *start, \ 2551.10Schristos unsigned long len, int prot); } 2561.40Spooka126 STD { int|linux_sys||sigprocmask(int how, \ 2571.1Smanu const linux_old_sigset_t *set, \ 2581.1Smanu linux_old_sigset_t *oset); } 2591.1Smanu127 UNIMPL create_module 2601.1Smanu128 UNIMPL init_module 2611.1Smanu129 UNIMPL delete_module 2621.1Smanu130 UNIMPL get_kernel_syms 2631.1Smanu131 UNIMPL quotactl 2641.40Spooka132 NOARGS { pid_t|sys||getpgid(pid_t pid); } 2651.40Spooka133 NOARGS { int|sys||fchdir(int fd); } 2661.1Smanu134 UNIMPL bdflush 2671.1Smanu135 UNIMPL sysfs 2681.44Snjoly136 STD { int|linux_sys||personality(unsigned long per); } 2691.1Smanu137 UNIMPL afs_syscall 2701.40Spooka138 STD { int|linux_sys||setfsuid(uid_t uid); } 2711.40Spooka139 STD { int|linux_sys||setfsgid(gid_t gid); } 2721.40Spooka140 STD { int|linux_sys||llseek(int fd, u_int32_t ohigh, \ 2731.31Schristos u_int32_t olow, void *res, int whence); } 2741.40Spooka141 STD { int|linux_sys||getdents(int fd, \ 2751.1Smanu struct linux_dirent *dent, unsigned int count); } 2761.40Spooka142 STD { int|linux_sys||new_select(int nfds, fd_set *readfds, \ 2771.1Smanu fd_set *writefds, fd_set *exceptfds, \ 2781.41Snjoly struct timeval50 *timeout); } 2791.40Spooka143 NOARGS { int|sys||flock(int fd, int how); } 2801.40Spooka144 NOARGS { int|sys|13|msync(void *addr, size_t len, int flags); } 2811.59Snjoly145 NOARGS { ssize_t|sys||readv(int fd, \ 2821.59Snjoly const struct iovec *iovp, int iovcnt); } 2831.59Snjoly146 NOARGS { ssize_t|sys||writev(int fd, \ 2841.59Snjoly const struct iovec *iovp, int iovcnt); } 2851.40Spooka147 NOARGS { pid_t|sys||getsid(pid_t pid); } 2861.40Spooka148 STD { int|linux_sys||fdatasync(int fd); } 2871.40Spooka149 STD { int|linux_sys||__sysctl(struct linux___sysctl *lsp); } 2881.40Spooka150 NOARGS { int|sys||mlock(void *addr, size_t len); } 2891.40Spooka151 NOARGS { int|sys||munlock(void *addr, size_t len); } 2901.40Spooka152 NOARGS { int|sys||mlockall(int flags); } 2911.40Spooka153 NOARGS { int|sys||munlockall(void); } 2921.40Spooka154 STD { int|linux_sys||sched_setparam(pid_t pid, \ 2931.1Smanu const struct linux_sched_param *sp); } 2941.40Spooka155 STD { int|linux_sys||sched_getparam(pid_t pid, \ 2951.1Smanu struct linux_sched_param *sp); } 2961.40Spooka156 STD { int|linux_sys||sched_setscheduler(pid_t pid, \ 2971.1Smanu int policy, const struct linux_sched_param *sp); } 2981.40Spooka157 STD { int|linux_sys||sched_getscheduler(pid_t pid); } 2991.40Spooka158 STD { int|linux_sys||sched_yield(void); } 3001.40Spooka159 STD { int|linux_sys||sched_get_priority_max(int policy); } 3011.40Spooka160 STD { int|linux_sys||sched_get_priority_min(int policy); } 3021.1Smanu161 UNIMPL sched_rr_get_interval 3031.40Spooka162 STD { int|linux_sys||nanosleep( \ 3041.38Snjoly const struct linux_timespec *rqtp, \ 3051.38Snjoly struct linux_timespec *rmtp); } 3061.40Spooka163 STD { void *|linux_sys||mremap(void *old_address, \ 3071.1Smanu size_t old_size, size_t new_size, u_long flags); } 3081.40Spooka164 STD { int|linux_sys||setresuid(uid_t ruid, uid_t euid, \ 3091.1Smanu uid_t suid); } 3101.40Spooka165 STD { int|linux_sys||getresuid(uid_t *ruid, uid_t *euid, \ 3111.1Smanu uid_t *suid); } 3121.1Smanu166 UNIMPL query_module 3131.40Spooka167 NOARGS { int|sys||poll(struct pollfd *fds, u_int nfds, \ 3141.1Smanu int timeout); } 3151.1Smanu168 UNIMPL nfsservctl 3161.40Spooka169 STD { int|linux_sys||setresgid(gid_t rgid, gid_t egid, \ 3171.1Smanu gid_t sgid); } 3181.40Spooka170 STD { int|linux_sys||getresgid(gid_t *rgid, gid_t *egid, \ 3191.1Smanu gid_t *sgid); } 3201.1Smanu171 UNIMPL prctl 3211.40Spooka172 STD { int|linux_sys||rt_sigreturn( \ 3221.7Smanu struct linux_rt_sigframe *sfp); } 3231.40Spooka173 STD { int|linux_sys||rt_sigaction(int signum, \ 3241.1Smanu const struct linux_sigaction *nsa, \ 3251.1Smanu struct linux_sigaction *osa, \ 3261.1Smanu size_t sigsetsize); } 3271.40Spooka174 STD { int|linux_sys||rt_sigprocmask(int how, \ 3281.1Smanu const linux_sigset_t *set, \ 3291.1Smanu linux_sigset_t *oset, \ 3301.1Smanu size_t sigsetsize); } 3311.40Spooka175 STD { int|linux_sys||rt_sigpending( \ 3321.1Smanu linux_sigset_t *set, \ 3331.1Smanu size_t sigsetsize); } 3341.50Schristos176 STD { int|linux_sys||rt_sigtimedwait( \ 3351.50Schristos const linux_sigset_t *set, \ 3361.50Schristos linux_siginfo_t *info, \ 3371.50Schristos const struct linux_timespec *timeout); } 3381.40Spooka177 STD { int|linux_sys||rt_queueinfo(int pid, int signum, \ 3391.43Snjoly linux_siginfo_t *uinfo); } 3401.40Spooka178 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ 3411.1Smanu size_t sigsetsize); } 3421.40Spooka179 STD { int|linux_sys||pread(int fd, char *buf, \ 3431.60Snjoly size_t nbyte, off_t offset); } 3441.40Spooka180 STD { int|linux_sys||pwrite(int fd, char *buf, \ 3451.60Snjoly size_t nbyte, off_t offset); } 3461.67Snjoly181 NOARGS { int|sys||__posix_chown(const char *path, uid_t uid, \ 3471.67Snjoly gid_t gid); } 3481.40Spooka182 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } 3491.1Smanu183 UNIMPL capget 3501.1Smanu184 UNIMPL capset 3511.40Spooka185 STD { int|linux_sys||sigaltstack( \ 3521.1Smanu const struct linux_sigaltstack *ss, \ 3531.1Smanu struct linux_sigaltstack *oss); } 3541.1Smanu186 UNIMPL sendfile 3551.1Smanu187 UNIMPL getpmsg 3561.1Smanu188 UNIMPL putpmsg 3571.40Spooka189 NOARGS { int|sys|14|vfork(void); } 3581.40Spooka190 STD { int|linux_sys||ugetrlimit(int which, \ 3591.8Schristos struct rlimit *rlp); } 3601.1Smanu191 UNIMPL /* unused */ 3611.33Sdsl#define linux_sys_mmap2_args linux_sys_mmap_args 3621.40Spooka192 NOARGS { linux_off_t|linux_sys||mmap2(unsigned long addr, \ 3631.15Schristos size_t len, int prot, int flags, int fd, \ 3641.15Schristos linux_off_t offset); } 3651.40Spooka193 STD { int|linux_sys||truncate64(const char *path, \ 3661.13Sjdolecek off_t length); } 3671.40Spooka194 STD { int|linux_sys||ftruncate64(unsigned int fd, \ 3681.13Sjdolecek off_t length); } 3691.40Spooka195 STD { int|linux_sys||stat64(const char *path, \ 3701.12Sjdolecek struct linux_stat64 *sp); } 3711.40Spooka196 STD { int|linux_sys||lstat64(const char *path, \ 3721.12Sjdolecek struct linux_stat64 *sp); } 3731.40Spooka197 STD { int|linux_sys||fstat64(int fd, \ 3741.12Sjdolecek struct linux_stat64 *sp); } 3751.21Sperry198 UNIMPL sys_pciconfig_read 3761.1Smanu199 UNIMPL sys_pciconfig_write 3771.1Smanu200 UNIMPL sys_pciconfig_iobase 3781.1Smanu201 UNIMPL /* Unused (MacOnLinux project) */ 3791.40Spooka202 STD { int|linux_sys||getdents64(int fd, \ 3801.11Schristos struct linux_dirent64 *dent, unsigned int count); } 3811.4Sjdolecek203 UNIMPL pivot_root 3821.40Spooka204 STD { int|linux_sys||fcntl64(int fd, int cmd, void *arg); } 3831.40Spooka205 NOARGS { int|sys||mincore(void *addr, size_t len, char *vec); } 3841.40Spooka206 NOARGS { int|sys||madvise(void *addr, size_t len, int behav); } 3851.45Schs207 NOARGS { pid_t|linux_sys||gettid(void); } 3861.45Schs208 STD { int|linux_sys||tkill(int tid, int sig); } 3871.40Spooka209 STD { int|linux_sys||setxattr(char *path, char *name, \ 3881.22Sfvdl void *value, size_t size, int flags); } 3891.40Spooka210 STD { int|linux_sys||lsetxattr(char *path, char *name, \ 3901.22Sfvdl void *value, size_t size, int flags); } 3911.40Spooka211 STD { int|linux_sys||fsetxattr(int fd, char *name, \ 3921.22Sfvdl void *value, size_t size, int flags); } 3931.40Spooka212 STD { ssize_t|linux_sys||getxattr(char *path, char *name, \ 3941.22Sfvdl void *value, size_t size); } 3951.40Spooka213 STD { ssize_t|linux_sys||lgetxattr(char *path, char *name, \ 3961.22Sfvdl void *value, size_t size); } 3971.40Spooka214 STD { ssize_t|linux_sys||fgetxattr(int fd, char *name, \ 3981.22Sfvdl void *value, size_t size); } 3991.40Spooka215 STD { ssize_t|linux_sys||listxattr(char *path, char *list, \ 4001.22Sfvdl size_t size); } 4011.40Spooka216 STD { ssize_t|linux_sys||llistxattr(char *path, char *list, \ 4021.22Sfvdl size_t size); } 4031.40Spooka217 STD { ssize_t|linux_sys||flistxattr(int fd, char *list, \ 4041.22Sfvdl size_t size); } 4051.40Spooka218 STD { int|linux_sys||removexattr(char *path, char *name); } 4061.40Spooka219 STD { int|linux_sys||lremovexattr(char *path, char *name); } 4071.40Spooka220 STD { int|linux_sys||fremovexattr(int fd, char *name); } 4081.45Schs221 STD { int|linux_sys||futex(int *uaddr, int op, int val, \ 4091.45Schs const struct linux_timespec *timeout, int *uaddr2, \ 4101.45Schs int val3); } 4111.45Schs222 STD { int|linux_sys||sched_setaffinity(pid_t pid, \ 4121.45Schs unsigned int len, unsigned long *mask); } 4131.45Schs223 STD { int|linux_sys||sched_getaffinity(pid_t pid, \ 4141.45Schs unsigned int len, unsigned long *mask); } 4151.18Sjdolecek224 UNIMPL /* unused */ 4161.18Sjdolecek225 UNIMPL tuxcall 4171.18Sjdolecek226 UNIMPL sendfile64 4181.18Sjdolecek227 UNIMPL io_setup 4191.18Sjdolecek228 UNIMPL io_destroy 4201.18Sjdolecek229 UNIMPL io_getevents 4211.18Sjdolecek230 UNIMPL io_submit 4221.18Sjdolecek231 UNIMPL io_cancel 4231.45Schs232 STD { int|linux_sys||set_tid_address(int *tid); } 4241.62Snjoly233 STD { int|linux_sys||fadvise64(int fd, off_t offset, \ 4251.62Snjoly size_t len, int advice); } 4261.40Spooka234 STD { int|linux_sys||exit_group(int error_code); } 4271.18Sjdolecek235 UNIMPL lookup_dcookie 4281.18Sjdolecek236 UNIMPL epoll_create 4291.18Sjdolecek237 UNIMPL epoll_ctl 4301.18Sjdolecek238 UNIMPL epoll_wait 4311.18Sjdolecek239 UNIMPL remap_file_pages 4321.75Sthorpej240 STD { int|linux_sys||timer_create(clockid_t clockid, \ 4331.75Sthorpej struct linux_sigevent *evp, timer_t *timerid); } 4341.75Sthorpej241 STD { int|linux_sys||timer_settime(timer_t timerid, \ 4351.75Sthorpej int flags, const struct linux_itimerspec *tim, \ 4361.75Sthorpej struct linux_itimerspec *otim); } 4371.75Sthorpej242 STD { int|linux_sys||timer_gettime(timer_t timerid, \ 4381.75Sthorpej struct linux_itimerspec *tim); } 4391.75Sthorpej243 NOARGS { int|sys||timer_getoverrun(timer_t timerid); } 4401.75Sthorpej244 NOARGS { int|sys||timer_delete(timer_t timerid); } 4411.40Spooka245 STD { int|linux_sys||clock_settime(clockid_t which, \ 4421.23Sfvdl struct linux_timespec *tp); } 4431.40Spooka246 STD { int|linux_sys||clock_gettime(clockid_t which, \ 4441.23Sfvdl struct linux_timespec *tp); } 4451.40Spooka247 STD { int|linux_sys||clock_getres(clockid_t which, \ 4461.23Sfvdl struct linux_timespec *tp); } 4471.40Spooka248 STD { int|linux_sys||clock_nanosleep(clockid_t which, \ 4481.23Sfvdl int flags, struct linux_timespec *rqtp, \ 4491.23Sfvdl struct linux_timespec *rmtp); } 4501.18Sjdolecek249 UNIMPL swapcontext 4511.45Schs250 STD { int|linux_sys||tgkill(int tgid, int tid, int sig); } 4521.64Snjoly251 NOARGS { int|compat_50_sys||utimes(const char *path, \ 4531.64Snjoly const struct timeval50 *tptr); } 4541.40Spooka252 STD { int|linux_sys||statfs64(const char *path, \ 4551.20Sjdolecek size_t sz, struct linux_statfs64 *sp); } 4561.40Spooka253 STD { int|linux_sys||fstatfs64(int fd, \ 4571.20Sjdolecek size_t sz, struct linux_statfs64 *sp); } 4581.62Snjoly254 STD { int|linux_sys||fadvise64_64(int fd, off_t offset, \ 4591.62Snjoly off_t len, int advice); } 4601.18Sjdolecek255 UNIMPL rtas 4611.18Sjdolecek256 UNIMPL /* reserved for sys_debug_setcontext */ 4621.18Sjdolecek257 UNIMPL /* reserved for vserver */ 4631.18Sjdolecek258 UNIMPL /* reserved for new sys_remap_file_pages */ 4641.18Sjdolecek259 UNIMPL /* reserved for new sys_mbind */ 4651.18Sjdolecek260 UNIMPL /* reserved for new sys_get_mempolicy */ 4661.18Sjdolecek261 UNIMPL /* reserved for new sys_set_mempolicy */ 4671.18Sjdolecek262 UNIMPL mq_open 4681.18Sjdolecek263 UNIMPL mq_unlink 4691.18Sjdolecek264 UNIMPL mq_timedsend 4701.18Sjdolecek265 UNIMPL mq_timedreceive 4711.18Sjdolecek266 UNIMPL mq_notify 4721.18Sjdolecek267 UNIMPL mq_getsetattr 4731.18Sjdolecek268 UNIMPL kexec_load 4741.45Schs269 UNIMPL add_key 4751.45Schs270 UNIMPL request_key 4761.45Schs271 UNIMPL keyctl 4771.45Schs272 UNIMPL waitid 4781.45Schs273 UNIMPL ioprio_set 4791.45Schs274 UNIMPL ioprio_get 4801.45Schs275 UNIMPL inotify_init 4811.45Schs276 UNIMPL inotify_add_watch 4821.45Schs277 UNIMPL inotify_rm_watch 4831.45Schs278 UNIMPL spu_run 4841.45Schs279 UNIMPL spu_create 4851.70Smanu280 STD { int|linux_sys||pselect6(int nfds, fd_set *readfds, \ 4861.70Smanu fd_set *writefds, fd_set *exceptfds, \ 4871.70Smanu struct linux_timespec *timeout, \ 4881.70Smanu linux_sized_sigset_t *ss); } 4891.66Snjoly281 STD { int|linux_sys||ppoll(struct pollfd *fds, u_int nfds, \ 4901.51Spooka struct linux_timespec *timeout, \ 4911.51Spooka linux_sigset_t *sigset); } 4921.45Schs282 UNIMPL unshare 4931.45Schs283 UNIMPL splice 4941.45Schs284 UNIMPL tee 4951.45Schs285 UNIMPL vmsplice 4961.58Snjoly286 STD { int|linux_sys||openat(int fd, const char *path, \ 4971.58Snjoly int flags, ... linux_umode_t mode); } 4981.58Snjoly287 NOARGS { int|sys||mkdirat(int fd, const char *path, \ 4991.58Snjoly linux_umode_t mode); } 5001.58Snjoly288 STD { int|linux_sys||mknodat(int fd, const char *path, \ 5011.58Snjoly linux_umode_t mode, unsigned dev); } 5021.58Snjoly289 STD { int|linux_sys||fchownat(int fd, const char *path, \ 5031.58Snjoly uid_t owner, gid_t group, int flag); } 5041.45Schs290 UNIMPL futimesat 5051.58Snjoly291 STD { int|linux_sys||fstatat64(int fd, const char *path, \ 5061.58Snjoly struct linux_stat64 *sp, int flag); } 5071.58Snjoly292 STD { int|linux_sys||unlinkat(int fd, const char *path, \ 5081.58Snjoly int flag); } 5091.58Snjoly293 NOARGS { int|sys||renameat(int fromfd, const char *from, \ 5101.58Snjoly int tofd, const char *to); } 5111.58Snjoly294 STD { int|linux_sys||linkat(int fd1, const char *name1, \ 5121.58Snjoly int fd2, const char *name2, int flags); } 5131.58Snjoly295 NOARGS { int|sys||symlinkat(const char *path1, int fd, \ 5141.58Snjoly const char *path2); } 5151.69Snjoly296 NOARGS { ssize_t|sys||readlinkat(int fd, const char *path, \ 5161.58Snjoly char *buf, size_t bufsize); } 5171.58Snjoly297 STD { int|linux_sys||fchmodat(int fd, const char *path, \ 5181.58Snjoly linux_umode_t mode); } 5191.58Snjoly298 STD { int|linux_sys||faccessat(int fd, const char *path, \ 5201.58Snjoly int amode); } 5211.74Sthorpej ; 5221.74Sthorpej ; The NetBSD native robust list calls have different 5231.74Sthorpej ; argument names / types, but they are ABI-compatible 5241.74Sthorpej ; with Linux. 5251.74Sthorpej ; 5261.74Sthorpej299 NOARGS { int|sys||__futex_set_robust_list(void *head, \ 5271.74Sthorpej size_t len); } 5281.74Sthorpej300 NOARGS { int|sys||__futex_get_robust_list(lwpid_t lwpid, \ 5291.74Sthorpej void **headp, size_t *lenp); } 5301.45Schs301 UNIMPL move_pages 5311.45Schs302 UNIMPL getcpu 5321.45Schs303 UNIMPL epoll_wait 5331.55Snjoly304 STD { int|linux_sys||utimensat(int fd, const char *path, \ 5341.55Snjoly struct linux_timespec *times, int flag); } 5351.45Schs305 UNIMPL signalfd 5361.76Sthorpej306 STD { int|linux_sys||timerfd_create(clockid_t clock_id, \ 5371.76Sthorpej int flags); } 5381.77Sthorpej307 STD { int|linux_sys||eventfd(unsigned int initval); } 5391.45Schs308 UNIMPL sync_file_range2 5401.73Sjdolecek309 STD { int|linux_sys||fallocate(int fd, int mode, \ 5411.73Sjdolecek off_t offset, off_t len); } 5421.45Schs310 UNIMPL subpage_prot 5431.76Sthorpej311 STD { int|linux_sys||timerfd_settime(int fd, int flags, \ 5441.76Sthorpej const struct linux_itimerspec *tim, \ 5451.76Sthorpej struct linux_itimerspec *otim); } 5461.76Sthorpej312 STD { int|linux_sys||timerfd_gettime(int fd, \ 5471.76Sthorpej struct linux_itimerspec *tim); } 5481.45Schs313 UNIMPL signalfd4 5491.77Sthorpej314 STD { int|linux_sys||eventfd2(unsigned int initval, \ 5501.77Sthorpej int flags); } 5511.45Schs315 UNIMPL epoll_create1 5521.46She316 STD { int|linux_sys||dup3(int from, int to, int flags); } 5531.46She317 STD { int|linux_sys||pipe2(int *pfds, int flags); } 5541.45Schs318 UNIMPL inotify_init1 5551.45Schs319 UNIMPL perf_event_open 5561.78Sthorpej320 STD { int|linux_sys||preadv(int fd, \ 5571.78Sthorpej const struct iovec *iovp, int iovcnt, \ 5581.78Sthorpej unsigned long off_lo, unsigned long off_hi); } 5591.78Sthorpej321 STD { int|linux_sys||pwritev(int fd, \ 5601.78Sthorpej const struct iovcnt *iovp, int iovcnt, \ 5611.78Sthorpej unsigned long off_lo, unsigned long off_hi); } 5621.45Schs322 UNIMPL rt_tgsigqueueinfo 5631.72Schristos323 UNIMPL fanotify_init 5641.72Schristos324 UNIMPL fanotify_mark 5651.80Sryo325 STD { int|linux_sys||prlimit64(pid_t pid, int which, \ 5661.80Sryo struct rlimit *new_rlp, struct rlimit *old_rlp); } 5671.72Schristos326 UNIMPL socket 5681.72Schristos327 UNIMPL bind 5691.72Schristos328 UNIMPL connect 5701.72Schristos329 UNIMPL listen 5711.72Schristos330 UNIMPL accept 5721.72Schristos331 UNIMPL getsockname 5731.72Schristos332 UNIMPL getpeername 5741.72Schristos333 UNIMPL socketpair 5751.72Schristos334 UNIMPL send 5761.72Schristos335 UNIMPL sendto 5771.72Schristos336 UNIMPL recv 5781.72Schristos337 UNIMPL recvfrom 5791.72Schristos338 UNIMPL shutdown 5801.72Schristos339 UNIMPL setsockopt 5811.72Schristos340 UNIMPL getsockopt 5821.72Schristos341 UNIMPL sendmsg 5831.72Schristos342 UNIMPL recvmsg 5841.72Schristos343 STD { int|linux_sys||recvmmsg(int s, \ 5851.72Schristos struct linux_mmsghdr *msgvec, unsigned int vlen, \ 5861.72Schristos unsigned int flags, struct timespec *timeout); } 5871.71Smartin344 STD { int|linux_sys||accept4(int s, \ 5881.71Smartin struct osockaddr *name, \ 5891.71Smartin int *anamelen, int flags); } 5901.72Schristos345 UNIMPL name_to_handle_at 5911.72Schristos346 UNIMPL open_by_handle_at 5921.72Schristos347 UNIMPL clock_adjtime 5931.72Schristos348 UNIMPL syncfs 5941.72Schristos349 STD { int|linux_sys||sendmmsg(int s, \ 5951.72Schristos struct linux_mmsghdr *msgvec, unsigned int vlen, \ 5961.72Schristos unsigned int flags); } 5971.72Schristos350 UNIMPL setns 5981.72Schristos351 UNIMPL process_vm_readv 5991.72Schristos352 UNIMPL process_vm_writev 6001.72Schristos353 UNIMPL finit_module 6011.72Schristos354 UNIMPL kcmp 6021.72Schristos355 UNIMPL sched_setattr 6031.72Schristos356 UNIMPL sched_getattr 6041.72Schristos357 UNIMPL renameat2 6051.72Schristos358 UNIMPL seccomp 6061.79Sryo359 NOARGS { ssize_t|sys||getrandom(void *buf, size_t buflen, \ 6071.79Sryo unsigned int flags); } 6081.72Schristos360 UNIMPL memfd_create 6091.72Schristos361 UNIMPL bpf 6101.72Schristos362 UNIMPL execveat 6111.72Schristos363 UNIMPL switch_endian 6121.72Schristos364 UNIMPL userfaultfd 6131.72Schristos365 UNIMPL membarrier 6141.72Schristos366 UNIMPL 6151.72Schristos367 UNIMPL 6161.72Schristos368 UNIMPL 6171.72Schristos369 UNIMPL 6181.72Schristos370 UNIMPL 6191.72Schristos371 UNIMPL 6201.72Schristos372 UNIMPL 6211.72Schristos373 UNIMPL 6221.72Schristos374 UNIMPL 6231.72Schristos375 UNIMPL 6241.72Schristos376 UNIMPL 6251.72Schristos377 UNIMPL 6261.72Schristos378 UNIMPL mlock2 6271.72Schristos379 UNIMPL copy_file_range 6281.72Schristos380 UNIMPL preadv2 6291.72Schristos381 UNIMPL pwritev2 6301.72Schristos382 UNIMPL kexec_file_load 631