syscalls.master revision 1.75
11.75Sthorpej	$NetBSD: syscalls.master,v 1.75 2021/09/19 23:01:50 thorpej 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.45Schs306	UNIMPL		timerfd_create
5371.45Schs307	UNIMPL		eventfd
5381.45Schs308	UNIMPL		sync_file_range2
5391.73Sjdolecek309	STD		{ int|linux_sys||fallocate(int fd, int mode, \
5401.73Sjdolecek			    off_t offset, off_t len); }
5411.45Schs310	UNIMPL		subpage_prot
5421.45Schs311	UNIMPL		timerfd_settime
5431.45Schs312	UNIMPL		timerfd_gettime
5441.45Schs313	UNIMPL		signalfd4
5451.45Schs314	UNIMPL		eventfd2
5461.45Schs315	UNIMPL		epoll_create1
5471.46She316	STD		{ int|linux_sys||dup3(int from, int to, int flags); }
5481.46She317	STD		{ int|linux_sys||pipe2(int *pfds, int flags); }
5491.45Schs318	UNIMPL		inotify_init1
5501.45Schs319	UNIMPL		perf_event_open
5511.45Schs320	UNIMPL		preadv
5521.45Schs321	UNIMPL		pwritev
5531.45Schs322	UNIMPL		rt_tgsigqueueinfo
5541.72Schristos323	UNIMPL		fanotify_init
5551.72Schristos324	UNIMPL		fanotify_mark
5561.72Schristos325	UNIMPL		prlimit64
5571.72Schristos326	UNIMPL		socket
5581.72Schristos327	UNIMPL		bind
5591.72Schristos328	UNIMPL		connect
5601.72Schristos329	UNIMPL		listen
5611.72Schristos330	UNIMPL		accept
5621.72Schristos331	UNIMPL		getsockname
5631.72Schristos332	UNIMPL		getpeername
5641.72Schristos333	UNIMPL		socketpair
5651.72Schristos334	UNIMPL		send
5661.72Schristos335	UNIMPL		sendto
5671.72Schristos336	UNIMPL		recv
5681.72Schristos337	UNIMPL		recvfrom
5691.72Schristos338	UNIMPL		shutdown
5701.72Schristos339	UNIMPL		setsockopt
5711.72Schristos340	UNIMPL		getsockopt
5721.72Schristos341	UNIMPL		sendmsg
5731.72Schristos342	UNIMPL		recvmsg
5741.72Schristos343	STD		{ int|linux_sys||recvmmsg(int s, \
5751.72Schristos			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
5761.72Schristos			    unsigned int flags, struct timespec *timeout); }
5771.71Smartin344	STD		{ int|linux_sys||accept4(int s, \
5781.71Smartin			    struct osockaddr *name, \
5791.71Smartin			    int *anamelen, int flags); }
5801.72Schristos345	UNIMPL		name_to_handle_at
5811.72Schristos346	UNIMPL		open_by_handle_at
5821.72Schristos347	UNIMPL		clock_adjtime
5831.72Schristos348	UNIMPL		syncfs
5841.72Schristos349	STD		{ int|linux_sys||sendmmsg(int s, \
5851.72Schristos			    struct linux_mmsghdr *msgvec, unsigned int vlen, \
5861.72Schristos			    unsigned int flags); }
5871.72Schristos350	UNIMPL		setns
5881.72Schristos351	UNIMPL		process_vm_readv
5891.72Schristos352	UNIMPL		process_vm_writev
5901.72Schristos353	UNIMPL		finit_module
5911.72Schristos354	UNIMPL		kcmp
5921.72Schristos355	UNIMPL		sched_setattr
5931.72Schristos356	UNIMPL		sched_getattr
5941.72Schristos357	UNIMPL		renameat2
5951.72Schristos358	UNIMPL		seccomp
5961.72Schristos359	UNIMPL		getrandom
5971.72Schristos360	UNIMPL		memfd_create
5981.72Schristos361	UNIMPL		bpf
5991.72Schristos362	UNIMPL		execveat
6001.72Schristos363	UNIMPL		switch_endian
6011.72Schristos364	UNIMPL		userfaultfd
6021.72Schristos365	UNIMPL		membarrier
6031.72Schristos366	UNIMPL
6041.72Schristos367	UNIMPL
6051.72Schristos368	UNIMPL
6061.72Schristos369	UNIMPL
6071.72Schristos370	UNIMPL
6081.72Schristos371	UNIMPL
6091.72Schristos372	UNIMPL
6101.72Schristos373	UNIMPL
6111.72Schristos374	UNIMPL
6121.72Schristos375	UNIMPL
6131.72Schristos376	UNIMPL
6141.72Schristos377	UNIMPL
6151.72Schristos378	UNIMPL		mlock2
6161.72Schristos379	UNIMPL		copy_file_range
6171.72Schristos380	UNIMPL		preadv2
6181.72Schristos381	UNIMPL		pwritev2
6191.72Schristos382	UNIMPL		kexec_file_load
620