syscalls.master revision 1.36
11.36Snjoly	$NetBSD: syscalls.master,v 1.36 2008/11/12 18:07:40 njoly Exp $
21.1Sbjh21
31.1Sbjh21; Derived from sys/compat/linux/arch/*/syscalls.master
41.1Sbjh21; and from Linux 2.4.12 arch/arm/kernel/calls.S
51.1Sbjh21
61.1Sbjh21; NetBSD/arm COMPAT_LINUX system call name/number "master" file.
71.1Sbjh21; (See syscalls.conf to see what it is processed into.)
81.1Sbjh21;
91.1Sbjh21; Fields: number type [type-dependent ...]
101.1Sbjh21;	number	system call number, must be in order
111.1Sbjh21;	type	one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
121.1Sbjh21;		the compatibility options defined in syscalls.conf.
131.1Sbjh21;
141.1Sbjh21; types:
151.1Sbjh21;	STD	always included
161.1Sbjh21;	OBSOL	obsolete, not included in system
171.1Sbjh21;	UNIMPL	unimplemented, not included in system
181.1Sbjh21;	NODEF	included, but don't define the syscall number
191.1Sbjh21;	NOARGS	included, but don't define the syscall args structure
201.1Sbjh21;	INDIR	included, but don't define the syscall args structure
211.1Sbjh21;		and allow it to be "really" varargs.
221.1Sbjh21;
231.1Sbjh21; The compat options are defined in the syscalls.conf file, and the
241.1Sbjh21; compat option name is prefixed to the syscall name.  Other than
251.1Sbjh21; that, they're like NODEF (for 'compat' options), or STD (for
261.1Sbjh21; 'libcompat' options).
271.1Sbjh21;
281.1Sbjh21; The type-dependent arguments are as follows:
291.1Sbjh21; For STD, NODEF, NOARGS, and compat syscalls:
301.1Sbjh21;	{ pseudo-proto } [alias]
311.1Sbjh21; For other syscalls:
321.1Sbjh21;	[comment]
331.1Sbjh21;
341.1Sbjh21; #ifdef's, etc. may be included, and are copied to the output files.
351.1Sbjh21; #include's are copied to the syscall names and switch definition files only.
361.1Sbjh21
371.1Sbjh21#if defined(_KERNEL_OPT)
381.1Sbjh21#include "opt_compat_43.h"
391.1Sbjh21#endif
401.1Sbjh21
411.1Sbjh21#include <sys/param.h>
421.1Sbjh21#include <sys/poll.h>
431.1Sbjh21#include <sys/systm.h>
441.1Sbjh21#include <sys/signal.h>
451.1Sbjh21#include <sys/mount.h>
461.1Sbjh21#include <sys/syscallargs.h>
471.1Sbjh21
481.1Sbjh21#include <compat/linux/common/linux_types.h>
491.14She#include <compat/linux/common/linux_mmap.h>
501.1Sbjh21#include <compat/linux/common/linux_signal.h>
511.1Sbjh21#include <compat/linux/common/linux_siginfo.h>
521.1Sbjh21#include <compat/linux/common/linux_machdep.h>
531.1Sbjh21
541.1Sbjh21#include <compat/linux/linux_syscallargs.h>
551.1Sbjh21
561.1Sbjh21%%
571.5Sbjh21; XXX We have to explicitly declare linux_sys_nosys.
581.5Sbjh210	NOARGS		{ int linux_sys_nosys(void); }
591.1Sbjh211	NOARGS		{ int sys_exit(int rval); }
601.1Sbjh212	NOARGS		{ int sys_fork(void); }
611.1Sbjh213	NOARGS		{ int sys_read(int fd, char *buf, u_int nbyte); }
621.1Sbjh214	NOARGS		{ int sys_write(int fd, char *buf, u_int nbyte); }
631.1Sbjh215	STD		{ int linux_sys_open(const char *path, int flags, \
641.1Sbjh21			    int mode); }
651.1Sbjh216	NOARGS		{ int sys_close(int fd); }
661.1Sbjh217	STD		{ int linux_sys_waitpid(int pid, int *status, \
671.1Sbjh21			    int options);}
681.1Sbjh218	STD		{ int linux_sys_creat(const char *path, int mode); }
691.29Snjoly9	NOARGS		{ int sys_link(const char *path, const char *link); }
701.1Sbjh2110	STD		{ int linux_sys_unlink(const char *path); }
711.29Snjoly11	NOARGS		{ int sys_execve(const char *path, char **argp, \
721.1Sbjh21			    char **envp); }
731.29Snjoly12	NOARGS		{ int sys_chdir(const char *path); }
741.1Sbjh2113	STD		{ int linux_sys_time(linux_time_t *t); }
751.1Sbjh2114	STD		{ int linux_sys_mknod(const char *path, int mode, \
761.1Sbjh21			    int dev); }
771.29Snjoly15	NOARGS		{ int sys_chmod(const char *path, int mode); }
781.33Snjoly16	STD		{ int linux_sys_lchown16(const char *path, \
791.33Snjoly			    linux_uid16_t uid, linux_gid16_t gid); }
801.1Sbjh2117	OBSOL		break
811.1Sbjh2118	OBSOL		ostat
821.1Sbjh2119	NOARGS		{ long compat_43_sys_lseek(int fd, long offset, \
831.1Sbjh21			    int whence); }
841.35Sad20	NOARGS 		{ pid_t sys_getpid(void); }
851.1Sbjh2121	UNIMPL		mount
861.1Sbjh2122	OBSOL		umount
871.1Sbjh2123	NOARGS		{ int sys_setuid(uid_t uid); }
881.1Sbjh2124	NOARGS		{ uid_t sys_getuid(void); }
891.1Sbjh2125	STD		{ int linux_sys_stime(linux_time_t *t); }
901.1Sbjh2126	STD		{ int linux_sys_ptrace(int request, int pid, \
911.1Sbjh21			    int addr, int data); }
921.1Sbjh2127	STD		{ int linux_sys_alarm(unsigned int secs); }
931.1Sbjh2128	OBSOL		ofstat
941.1Sbjh2129	STD		{ int linux_sys_pause(void); }
951.1Sbjh2130	STD		{ int linux_sys_utime(const char *path, \
961.1Sbjh21			    struct linux_utimbuf *times); }
971.1Sbjh2131	OBSOL		stty
981.1Sbjh2132	OBSOL		gtty
991.29Snjoly33	NOARGS		{ int sys_access(const char *path, int flags); }
1001.1Sbjh2134	STD		{ int linux_sys_nice(int incr); }
1011.1Sbjh2135	OBSOL		ftime
1021.1Sbjh2136	NOARGS		{ int sys_sync(void); }
1031.1Sbjh2137	STD		{ int linux_sys_kill(int pid, int signum); }
1041.29Snjoly38	NOARGS		{ int sys___posix_rename(const char *from, \
1051.1Sbjh21			    const char *to); }
1061.29Snjoly39	NOARGS		{ int sys_mkdir(const char *path, int mode); }
1071.29Snjoly40	NOARGS		{ int sys_rmdir(const char *path); }
1081.1Sbjh2141	NOARGS		{ int sys_dup(u_int fd); }
1091.1Sbjh2142	STD		{ int linux_sys_pipe(int *pfds); }
1101.1Sbjh2143	STD		{ int linux_sys_times(struct times *tms); }
1111.1Sbjh2144	OBSOL		prof
1121.1Sbjh2145	STD		{ int linux_sys_brk(char *nsize); }
1131.1Sbjh2146	NOARGS		{ int sys_setgid(gid_t gid); }
1141.1Sbjh2147	NOARGS		{ gid_t sys_getgid(void); }
1151.1Sbjh2148	STD		{ int linux_sys_signal(int signum, \
1161.1Sbjh21			    linux_handler_t handler); }
1171.1Sbjh2149	NOARGS		{ uid_t sys_geteuid(void); }
1181.1Sbjh2150	NOARGS		{ gid_t sys_getegid(void); }
1191.1Sbjh2151	NOARGS		{ int sys_acct(char *path); }
1201.1Sbjh2152	UNIMPL		umount
1211.1Sbjh2153	OBSOL		lock
1221.1Sbjh2154	STD		{ int linux_sys_ioctl(int fd, u_long com, \
1231.28Schristos			    void *data); }
1241.1Sbjh2155	STD		{ int linux_sys_fcntl(int fd, int cmd, void *arg); }
1251.1Sbjh2156	OBSOL		mpx
1261.1Sbjh2157	NOARGS		{ int sys_setpgid(int pid, int pgid); }
1271.1Sbjh2158	OBSOL		ulimit
1281.2Sbjh2159 	STD		{ int linux_sys_oldolduname( \
1291.2Sbjh21			   struct linux_oldold_utsname *up); }
1301.1Sbjh2160	NOARGS		{ int sys_umask(int newmask); }
1311.1Sbjh2161	NOARGS		{ int sys_chroot(char *path); }
1321.1Sbjh2162	UNIMPL		ustat
1331.1Sbjh2163	NOARGS		{ int sys_dup2(u_int from, u_int to); }
1341.1Sbjh2164	NOARGS		{ pid_t sys_getppid(void); }
1351.1Sbjh2165	NOARGS		{ int sys_getpgrp(void); }
1361.1Sbjh2166	NOARGS		{ int sys_setsid(void); }
1371.1Sbjh2167	STD		{ int linux_sys_sigaction(int signum, \
1381.1Sbjh21			    const struct linux_old_sigaction *nsa, \
1391.1Sbjh21			    struct linux_old_sigaction *osa); }
1401.1Sbjh2168	STD		{ int linux_sys_siggetmask(void); }
1411.1Sbjh2169	STD		{ int linux_sys_sigsetmask(linux_old_sigset_t mask); }
1421.33Snjoly70	STD		{ int linux_sys_setreuid16(linux_uid16_t ruid, \
1431.33Snjoly			    linux_uid16_t euid); }
1441.33Snjoly71	STD		{ int linux_sys_setregid16(linux_gid16_t rgid, \
1451.33Snjoly			    linux_gid16_t egid); }
1461.28Schristos72	STD		{ int linux_sys_sigsuspend(void *restart, \
1471.1Sbjh21			    int oldmask, int mask); }
1481.1Sbjh2173	STD		{ int linux_sys_sigpending(linux_old_sigset_t *set); }
1491.1Sbjh2174	NOARGS		{ int compat_43_sys_sethostname(char *hostname, \
1501.1Sbjh21			    u_int len);}
1511.8Sbjh2175	STD		{ int linux_sys_setrlimit(u_int which, \
1521.1Sbjh21			    struct orlimit *rlp); }
1531.8Sbjh2176	STD		{ int linux_sys_getrlimit(u_int which, \
1541.1Sbjh21			    struct orlimit *rlp); }
1551.1Sbjh2177	NOARGS		{ int sys_getrusage(int who, struct rusage *rusage); }
1561.1Sbjh2178	STD		{ int linux_sys_gettimeofday(struct timeval *tp, \
1571.1Sbjh21			    struct timezone *tzp); }
1581.1Sbjh2179	STD		{ int linux_sys_settimeofday(struct timeval *tp, \
1591.1Sbjh21			    struct timezone *tzp); }
1601.33Snjoly80	STD		{ int linux_sys_getgroups16(int gidsetsize, \
1611.33Snjoly			    linux_gid16_t *gidset); }
1621.33Snjoly81	STD		{ int linux_sys_setgroups16(int gidsetsize, \
1631.33Snjoly			    linux_gid16_t *gidset); }
1641.1Sbjh2182	STD		{ int linux_sys_oldselect(struct linux_oldselect *lsp); }
1651.29Snjoly83	NOARGS		{ int sys_symlink(const char *path, const char *to); }
1661.1Sbjh2184	NOARGS		{ int compat_43_sys_lstat(const char *path, \
1671.1Sbjh21			    struct stat43 *up); } oolstat
1681.29Snjoly85	NOARGS		{ int sys_readlink(const char *name, char *buf, \
1691.1Sbjh21			    int count); }
1701.1Sbjh21#ifdef EXEC_AOUT
1711.1Sbjh2186	STD		{ int linux_sys_uselib(const char *path); }
1721.1Sbjh21#else
1731.1Sbjh2186	EXCL		uselib
1741.1Sbjh21#endif
1751.1Sbjh2187	STD		{ int linux_sys_swapon(char *name); }
1761.1Sbjh2188	STD		{ int linux_sys_reboot(int magic1, int magic2, \
1771.1Sbjh21			    int cmd, void *arg); }
1781.28Schristos89	STD		{ int linux_sys_readdir(int fd, void *dent, \
1791.1Sbjh21			    unsigned int count); }
1801.1Sbjh2190	STD		{ int linux_sys_old_mmap(struct linux_oldmmap *lmp); }
1811.28Schristos91	NOARGS		{ int sys_munmap(void *addr, int len); }
1821.29Snjoly92	NOARGS		{ int compat_43_sys_truncate(const char *path, \
1831.1Sbjh21			    long length); }
1841.1Sbjh2193	NOARGS		{ int compat_43_sys_ftruncate(int fd, long length); }
1851.1Sbjh2194	NOARGS		{ int sys_fchmod(int fd, int mode); }
1861.33Snjoly95	STD		{ int linux_sys_fchown16(int fd, linux_uid16_t uid, \
1871.33Snjoly			    linux_gid16_t gid); }
1881.24Schristos96	STD		{ int linux_sys_getpriority(int which, int who); }
1891.1Sbjh2197	NOARGS		{ int sys_setpriority(int which, int who, int prio); }
1901.28Schristos98	NOARGS		{ int sys_profil(void *samples, u_int size, \
1911.1Sbjh21			    u_int offset, u_int scale); }
1921.1Sbjh2199	STD		{ int linux_sys_statfs(const char *path, \
1931.1Sbjh21			    struct linux_statfs *sp); }
1941.1Sbjh21100	STD		{ int linux_sys_fstatfs(int fd, \
1951.1Sbjh21			    struct linux_statfs *sp); }
1961.1Sbjh21101	UNIMPL
1971.1Sbjh21102	STD		{ int linux_sys_socketcall(int what, void *args); }
1981.1Sbjh21103	UNIMPL		syslog
1991.1Sbjh21104	NOARGS		{ int sys_setitimer(u_int which, \
2001.1Sbjh21			    struct itimerval *itv, struct itimerval *oitv); }
2011.1Sbjh21105	NOARGS		{ int sys_getitimer(u_int which, \
2021.1Sbjh21			    struct itimerval *itv); }
2031.1Sbjh21106	STD		{ int linux_sys_stat(const char *path, \
2041.1Sbjh21			    struct linux_stat *sp); }
2051.1Sbjh21107	STD		{ int linux_sys_lstat(const char *path, \
2061.1Sbjh21			    struct linux_stat *sp); }
2071.1Sbjh21108	STD		{ int linux_sys_fstat(int fd, struct linux_stat *sp); }
2081.2Sbjh21109	STD		{ int linux_sys_olduname(struct linux_oldutsname *up); }
2091.1Sbjh21110	UNIMPL
2101.1Sbjh21111	UNIMPL		vhangup
2111.1Sbjh21112	UNIMPL		idle
2121.1Sbjh21113	UNIMPL		syscall
2131.1Sbjh21114	STD		{ int linux_sys_wait4(int pid, int *status, \
2141.1Sbjh21			    int options, struct rusage *rusage); }
2151.1Sbjh21115	STD		{ int linux_sys_swapoff(const char *path); }
2161.1Sbjh21116	STD		{ int linux_sys_sysinfo(struct linux_sysinfo *arg); }
2171.1Sbjh21117	STD		{ int linux_sys_ipc(int what, int a1, int a2, int a3, \
2181.28Schristos			    void *ptr); }
2191.1Sbjh21118	NOARGS		{ int sys_fsync(int fd); }
2201.1Sbjh21119	STD		{ int linux_sys_sigreturn(struct linux_sigcontext *scp); }
2211.1Sbjh21120	STD		{ int linux_sys_clone(int flags, void *stack); }
2221.1Sbjh21121	STD		{ int linux_sys_setdomainname(char *domainname, \
2231.1Sbjh21			    int len); }
2241.2Sbjh21122	STD		{ int linux_sys_uname(struct linux_utsname *up); }
2251.20Sperry123	UNIMPL		modify_ldt
2261.1Sbjh21124	UNIMPL		adjtimex
2271.9Schristos125	STD		{ int linux_sys_mprotect(const void *start, \
2281.9Schristos			    unsigned long len, int prot); }
2291.1Sbjh21126	STD		{ int linux_sys_sigprocmask(int how, \
2301.1Sbjh21			    const linux_old_sigset_t *set, \
2311.1Sbjh21			    linux_old_sigset_t *oset); }
2321.1Sbjh21127	UNIMPL		create_module
2331.1Sbjh21128	UNIMPL		init_module
2341.1Sbjh21129	UNIMPL		delete_module
2351.1Sbjh21130	UNIMPL		get_kernel_syms
2361.1Sbjh21131	UNIMPL		quotactl
2371.32Snjoly132	NOARGS		{ pid_t sys_getpgid(pid_t pid); }
2381.1Sbjh21133	NOARGS		{ int sys_fchdir(int fd); }
2391.1Sbjh21134	UNIMPL		bdflush
2401.1Sbjh21135	UNIMPL		sysfs
2411.1Sbjh21136	STD		{ int linux_sys_personality(int per); }
2421.1Sbjh21137	UNIMPL		afs_syscall
2431.1Sbjh21138	STD		{ int linux_sys_setfsuid(uid_t uid); }
2441.31Snjoly139	STD		{ int linux_sys_setfsgid(gid_t gid); }
2451.1Sbjh21140	STD		{ int linux_sys_llseek(int fd, u_int32_t ohigh, \
2461.28Schristos			    u_int32_t olow, void *res, int whence); }
2471.1Sbjh21141	STD		{ int linux_sys_getdents(int fd, \
2481.1Sbjh21			    struct linux_dirent *dent, unsigned int count); }
2491.1Sbjh21142	STD		{ int linux_sys_select(int nfds, fd_set *readfds, \
2501.1Sbjh21			    fd_set *writefds, fd_set *exceptfds, \
2511.1Sbjh21			    struct timeval *timeout); }
2521.1Sbjh21143	NOARGS		{ int sys_flock(int fd, int how); }
2531.34Snjoly144	NOARGS		{ int sys___msync13(void *addr, size_t len, int flags); }
2541.1Sbjh21145	NOARGS		{ int sys_readv(int fd, struct iovec *iovp, \
2551.1Sbjh21				u_int iovcnt); }
2561.1Sbjh21146	NOARGS		{ int sys_writev(int fd, struct iovec *iovp, \
2571.1Sbjh21				u_int iovcnt); }
2581.1Sbjh21147	NOARGS		{ pid_t sys_getsid(pid_t pid); }
2591.1Sbjh21148	STD		{ int linux_sys_fdatasync(int fd); }
2601.1Sbjh21149	STD		{ int linux_sys___sysctl(struct linux___sysctl *lsp); }
2611.28Schristos150	NOARGS		{ int sys_mlock(void *addr, size_t len); }
2621.28Schristos151	NOARGS		{ int sys_munlock(void *addr, size_t len); }
2631.1Sbjh21152	NOARGS		{ int sys_mlockall(int flags); }
2641.1Sbjh21153	NOARGS		{ int sys_munlockall(void); }
2651.1Sbjh21154	STD		{ int linux_sys_sched_setparam(pid_t pid, \
2661.1Sbjh21			    const struct linux_sched_param *sp); }
2671.1Sbjh21155	STD		{ int linux_sys_sched_getparam(pid_t pid, \
2681.1Sbjh21			    struct linux_sched_param *sp); }
2691.1Sbjh21156	STD		{ int linux_sys_sched_setscheduler(pid_t pid, \
2701.1Sbjh21			    int policy, const struct linux_sched_param *sp); }
2711.1Sbjh21157	STD		{ int linux_sys_sched_getscheduler(pid_t pid); }
2721.1Sbjh21158	STD		{ int linux_sys_sched_yield(void); }
2731.1Sbjh21159	STD		{ int linux_sys_sched_get_priority_max(int policy); }
2741.1Sbjh21160	STD		{ int linux_sys_sched_get_priority_min(int policy); }
2751.1Sbjh21161	UNIMPL		sched_rr_get_interval
2761.36Snjoly162	STD		{ int linux_sys_nanosleep( \
2771.36Snjoly			    const struct linux_timespec *rqtp, \
2781.36Snjoly			    struct linux_timespec *rmtp); }
2791.1Sbjh21163	STD		{ void *linux_sys_mremap(void *old_address, \
2801.1Sbjh21			    size_t old_size, size_t new_size, u_long flags); }
2811.33Snjoly164	STD		{ int linux_sys_setresuid16(linux_uid16_t ruid, \
2821.33Snjoly			    linux_uid16_t euid, linux_uid16_t suid); }
2831.33Snjoly165	STD		{ int linux_sys_getresuid16(linux_uid16_t *ruid, \
2841.33Snjoly			    linux_uid16_t *euid, linux_uid16_t *suid); }
2851.1Sbjh21166	UNIMPL
2861.1Sbjh21167	UNIMPL		query_module
2871.1Sbjh21168	NOARGS		{ int sys_poll(struct pollfd *fds, u_int nfds, \
2881.1Sbjh21			    int timeout); }
2891.1Sbjh21169	UNIMPL		nfsservctl
2901.33Snjoly170	STD		{ int linux_sys_setresgid16(linux_gid16_t rgid, \
2911.33Snjoly			    linux_gid16_t egid, linux_gid16_t sgid); }
2921.33Snjoly171	STD		{ int linux_sys_getresgid16(linux_gid16_t *rgid, \
2931.33Snjoly			    linux_gid16_t *egid, linux_gid16_t *sgid); }
2941.1Sbjh21172	UNIMPL		prctl
2951.1Sbjh21173	UNIMPL		rt_sigreturn
2961.1Sbjh21;173	STD		{ int linux_sys_rt_sigreturn( \
2971.1Sbjh21;			    struct linux_rt_sigframe *sfp); }
2981.1Sbjh21174	STD		{ int linux_sys_rt_sigaction(int signum, \
2991.1Sbjh21			    const struct linux_sigaction *nsa, \
3001.1Sbjh21			    struct linux_sigaction *osa, \
3011.1Sbjh21			    size_t sigsetsize); }
3021.1Sbjh21175	STD		{ int linux_sys_rt_sigprocmask(int how, \
3031.1Sbjh21			    const linux_sigset_t *set, \
3041.1Sbjh21			    linux_sigset_t *oset, \
3051.1Sbjh21			    size_t sigsetsize); }
3061.1Sbjh21176	STD		{ int linux_sys_rt_sigpending( \
3071.1Sbjh21			    linux_sigset_t *set, \
3081.1Sbjh21			    size_t sigsetsize); }
3091.1Sbjh21177	UNIMPL		rt_sigtimedwait
3101.1Sbjh21; XXX XAX int here?  sigset_t here?  siginfo_t
3111.1Sbjh21178	STD		{ int linux_sys_rt_queueinfo(int pid, int signum, \
3121.1Sbjh21			    void *uinfo); }
3131.1Sbjh21179	STD		{ int linux_sys_rt_sigsuspend(linux_sigset_t *unewset, \
3141.1Sbjh21			    size_t sigsetsize); }
3151.1Sbjh21180	STD		{ int linux_sys_pread(int fd, char *buf, \
3161.1Sbjh21			    size_t nbyte, linux_off_t offset); }
3171.1Sbjh21181	STD		{ int linux_sys_pwrite(int fd, char *buf, \
3181.1Sbjh21			    size_t nbyte, linux_off_t offset); }
3191.33Snjoly182	STD		{ int linux_sys_chown16(const char *path, \
3201.33Snjoly			    linux_uid16_t uid, linux_gid16_t gid); }
3211.1Sbjh21183	NOARGS		{ int sys___getcwd(char *bufp, size_t length); }
3221.1Sbjh21184	UNIMPL		capget
3231.1Sbjh21185	UNIMPL		capset
3241.1Sbjh21186	STD		{ int linux_sys_sigaltstack( \
3251.1Sbjh21			    const struct linux_sigaltstack *ss, \
3261.1Sbjh21			    struct linux_sigaltstack *oss); }
3271.1Sbjh21187	UNIMPL		sendfile
3281.1Sbjh21188	UNIMPL		getpmsg
3291.1Sbjh21189	UNIMPL		putpmsg
3301.1Sbjh21190	NOARGS		vfork { int sys___vfork14(void); }
3311.7Schristos191	STD		{ int linux_sys_ugetrlimit(int which, \
3321.7Schristos			    struct rlimit *rlp); }
3331.30Sdsl#define linux_sys_mmap2_args linux_sys_mmap_args
3341.13Schristos192	NOARGS		{ linux_off_t linux_sys_mmap2(unsigned long addr, \
3351.13Schristos			    size_t len, int prot, int flags, int fd, \
3361.13Schristos			    linux_off_t offset); }
3371.1Sbjh21193	STD		{ int linux_sys_truncate64(const char *path, \
3381.1Sbjh21				off_t length); }
3391.15Sjdolecek194	STD		{ int linux_sys_ftruncate64(unsigned int fd, \
3401.1Sbjh21				off_t length); }
3411.1Sbjh21195	STD		{ int linux_sys_stat64(const char *path, \
3421.1Sbjh21				struct linux_stat64 *sp); }
3431.1Sbjh21196	STD		{ int linux_sys_lstat64(const char *path, \
3441.1Sbjh21				struct linux_stat64 *sp); }
3451.1Sbjh21197	STD		{ int linux_sys_fstat64(int fd, \
3461.1Sbjh21				struct linux_stat64 *sp); }
3471.29Snjoly198	NOARGS		{ int sys___posix_lchown(const char *path, uid_t uid, \
3481.1Sbjh21				gid_t gid); }
3491.1Sbjh21199	NOARGS		getuid32 { uid_t sys_getuid(void); }
3501.1Sbjh21200	NOARGS		getgid32 { gid_t sys_getgid(void); }
3511.1Sbjh21201	NOARGS		geteuid32 { uid_t sys_geteuid(void); }
3521.1Sbjh21202	NOARGS		getegid32 { gid_t sys_getegid(void); }
3531.1Sbjh21203	NOARGS		setreuid32 { int sys_setreuid(uid_t ruid, \
3541.1Sbjh21				uid_t euid); }
3551.1Sbjh21204	NOARGS		setregid32 { int sys_setregid(gid_t rgid, \
3561.1Sbjh21				gid_t egid); }
3571.1Sbjh21205	NOARGS		getgroups32 { int sys_getgroups(u_int gidsetsize, \
3581.1Sbjh21				gid_t *gidset); }
3591.1Sbjh21206	NOARGS		setgroups32 { int sys_setgroups(u_int gidsetsize, \
3601.1Sbjh21				gid_t *gidset); }
3611.1Sbjh21207	NOARGS		fchown32 { int sys___posix_fchown(int fd, uid_t uid, \
3621.1Sbjh21				gid_t gid); }
3631.33Snjoly208	STD		setresuid32 { int linux_sys_setresuid(uid_t ruid, \
3641.1Sbjh21				uid_t euid, uid_t suid); }
3651.33Snjoly209	STD		getresuid32 { int linux_sys_getresuid(uid_t *ruid, \
3661.1Sbjh21				uid_t *euid, uid_t *suid); }
3671.33Snjoly210	STD		setresgid32 { int linux_sys_setresgid(gid_t rgid, \
3681.1Sbjh21				gid_t egid, gid_t sgid); }
3691.33Snjoly211	STD		getresgid32 { int linux_sys_getresgid(gid_t *rgid, \
3701.1Sbjh21				gid_t *egid, gid_t *sgid); }
3711.29Snjoly212	NOARGS		chown32 { int sys___posix_chown(const char *path, \
3721.1Sbjh21				uid_t uid, gid_t gid); }
3731.1Sbjh21213	NOARGS		setuid32 { int sys_setuid(uid_t uid); }
3741.1Sbjh21214	NOARGS		setgid32 { int sys_setgid(gid_t gid); }
3751.1Sbjh21215	NOARGS		setfsuid32 { int linux_sys_setfsuid(uid_t uid); }
3761.31Snjoly216	NOARGS		setfsgid32 { int linux_sys_setfsgid(gid_t gid); }
3771.10Schristos217	STD		{ int linux_sys_getdents64(int fd, \
3781.10Schristos			    struct linux_dirent64 *dent, unsigned int count); }
3791.1Sbjh21218	UNIMPL		pivot_root
3801.16Sjdolecek219	NOARGS		{ int sys_mincore(void *addr, size_t len, char *vec); }
3811.16Sjdolecek220	NOARGS		{ int sys_madvise(void *addr, size_t len, int behav); }
3821.11Sjdolecek221	STD		{ int linux_sys_fcntl64(int fd, int cmd, void *arg); }
3831.17Sjdolecek222	UNIMPL		/* for tux */
3841.17Sjdolecek223	UNIMPL		/* unused */
3851.17Sjdolecek224	UNIMPL		gettid
3861.17Sjdolecek225	UNIMPL		readahead
3871.21Sfvdl226	STD		{ int linux_sys_setxattr(char *path, char *name, \
3881.21Sfvdl			    void *value, size_t size, int flags); }
3891.21Sfvdl227	STD		{ int linux_sys_lsetxattr(char *path, char *name, \
3901.21Sfvdl			    void *value, size_t size, int flags); }
3911.21Sfvdl228	STD		{ int linux_sys_fsetxattr(int fd, char *name, \
3921.21Sfvdl			    void *value, size_t size, int flags); }
3931.21Sfvdl229	STD		{ ssize_t linux_sys_getxattr(char *path, char *name, \
3941.21Sfvdl			    void *value, size_t size); }
3951.21Sfvdl230	STD		{ ssize_t linux_sys_lgetxattr(char *path, char *name, \
3961.21Sfvdl			    void *value, size_t size); }
3971.21Sfvdl231	STD		{ ssize_t linux_sys_fgetxattr(int fd, char *name, \
3981.21Sfvdl			    void *value, size_t size); }
3991.21Sfvdl232	STD		{ ssize_t linux_sys_listxattr(char *path, char *list, \
4001.21Sfvdl			    size_t size); }
4011.21Sfvdl233	STD		{ ssize_t linux_sys_llistxattr(char *path, char *list, \
4021.21Sfvdl			    size_t size); }
4031.21Sfvdl234	STD		{ ssize_t linux_sys_flistxattr(int fd, char *list, \
4041.21Sfvdl			    size_t size); }
4051.21Sfvdl235	STD		{ int linux_sys_removexattr(char *path, char *name); }
4061.21Sfvdl236	STD		{ int linux_sys_lremovexattr(char *path, char *name); }
4071.21Sfvdl237	STD		{ int linux_sys_fremovexattr(int fd, char *name); }
4081.17Sjdolecek238	UNIMPL		tkill
4091.17Sjdolecek239	UNIMPL		sendfile64
4101.17Sjdolecek240	UNIMPL		futex
4111.17Sjdolecek241	UNIMPL		sched_setaffinity
4121.17Sjdolecek242	UNIMPL		sched_getaffinity
4131.17Sjdolecek243	UNIMPL		io_setup
4141.17Sjdolecek244	UNIMPL		io_destroy
4151.17Sjdolecek245	UNIMPL		io_getevents
4161.17Sjdolecek246	UNIMPL		io_submit
4171.17Sjdolecek247	UNIMPL		io_cancel
4181.18Sjdolecek248	STD		{ int linux_sys_exit_group(int error_code); }
4191.17Sjdolecek249	UNIMPL		lookup_dcookie
4201.17Sjdolecek250	UNIMPL		epoll_create
4211.17Sjdolecek251	UNIMPL		epoll_ctl
4221.17Sjdolecek252	UNIMPL		epoll_wait
4231.17Sjdolecek253	UNIMPL		remap_file_pages
4241.17Sjdolecek254	UNIMPL		/* for set_thread_area */
4251.17Sjdolecek255	UNIMPL		/* for get_thread_area */
4261.17Sjdolecek256	UNIMPL		/* for set_tid_address */
4271.17Sjdolecek257	UNIMPL		timer_create
4281.17Sjdolecek258	UNIMPL		timer_settime
4291.17Sjdolecek259	UNIMPL		timer_gettime
4301.17Sjdolecek260	UNIMPL		timer_getoverrun
4311.17Sjdolecek261	UNIMPL		timer_delete
4321.22Sfvdl262	STD		{ int linux_sys_clock_settime(clockid_t which, \
4331.22Sfvdl			    struct linux_timespec *tp); }
4341.22Sfvdl263	STD		{ int linux_sys_clock_gettime(clockid_t which, \
4351.22Sfvdl			    struct linux_timespec *tp); }
4361.22Sfvdl264	STD		{ int linux_sys_clock_getres(clockid_t which, \
4371.22Sfvdl			    struct linux_timespec *tp); }
4381.22Sfvdl265	STD		{ int linux_sys_clock_nanosleep(clockid_t which, \
4391.22Sfvdl			    int flags, struct linux_timespec *rqtp, \
4401.22Sfvdl			    struct linux_timespec *rmtp); }
4411.19Sjdolecek266	STD		{ int linux_sys_statfs64(const char *path, \
4421.19Sjdolecek			    size_t sz, struct linux_statfs64 *sp); }
4431.19Sjdolecek267	STD		{ int linux_sys_fstatfs64(int fd, \
4441.19Sjdolecek			    size_t sz, struct linux_statfs64 *sp); }
4451.17Sjdolecek268	UNIMPL		tgkill
4461.17Sjdolecek269	UNIMPL		utimes
4471.17Sjdolecek270	UNIMPL		fadvise64_64
4481.17Sjdolecek271	UNIMPL		pciconfig_iobase
4491.17Sjdolecek272	UNIMPL		pciconfig_read
4501.17Sjdolecek273	UNIMPL		pciconfig_write
4511.17Sjdolecek274	UNIMPL
4521.17Sjdolecek275	UNIMPL
4531.17Sjdolecek276	UNIMPL
4541.17Sjdolecek277	UNIMPL
4551.17Sjdolecek278	UNIMPL
4561.17Sjdolecek279	UNIMPL
4571.17Sjdolecek280	UNIMPL
4581.17Sjdolecek281	UNIMPL
4591.17Sjdolecek282	UNIMPL
4601.17Sjdolecek283	UNIMPL
4611.17Sjdolecek284	UNIMPL
4621.17Sjdolecek285	UNIMPL
4631.17Sjdolecek286	UNIMPL
4641.17Sjdolecek287	UNIMPL
4651.17Sjdolecek288	UNIMPL
4661.17Sjdolecek289	UNIMPL
4671.17Sjdolecek290	UNIMPL
4681.17Sjdolecek291	UNIMPL
4691.17Sjdolecek292	UNIMPL
4701.17Sjdolecek293	UNIMPL
4711.17Sjdolecek294	UNIMPL
4721.17Sjdolecek295	UNIMPL
4731.17Sjdolecek296	UNIMPL
4741.17Sjdolecek297	UNIMPL
4751.17Sjdolecek298	UNIMPL
4761.17Sjdolecek299	UNIMPL
4771.17Sjdolecek300	UNIMPL
4781.17Sjdolecek301	UNIMPL
4791.17Sjdolecek302	UNIMPL
4801.17Sjdolecek303	UNIMPL
4811.17Sjdolecek304	UNIMPL
4821.17Sjdolecek305	UNIMPL
4831.17Sjdolecek306	UNIMPL
4841.17Sjdolecek307	UNIMPL
4851.17Sjdolecek308	UNIMPL
4861.17Sjdolecek309	UNIMPL
4871.17Sjdolecek310	UNIMPL
4881.17Sjdolecek311	UNIMPL
4891.17Sjdolecek312	UNIMPL
4901.17Sjdolecek313	UNIMPL
4911.17Sjdolecek314	UNIMPL
4921.17Sjdolecek315	UNIMPL
4931.17Sjdolecek316	UNIMPL
4941.17Sjdolecek317	UNIMPL
4951.17Sjdolecek318	UNIMPL
4961.17Sjdolecek319	UNIMPL
4971.17Sjdolecek320	UNIMPL
4981.17Sjdolecek321	UNIMPL
4991.17Sjdolecek322	UNIMPL
5001.17Sjdolecek323	UNIMPL
5011.17Sjdolecek324	UNIMPL
5021.17Sjdolecek325	UNIMPL
5031.17Sjdolecek326	UNIMPL
5041.17Sjdolecek327	UNIMPL
5051.17Sjdolecek328	UNIMPL
5061.17Sjdolecek329	UNIMPL
5071.17Sjdolecek330	UNIMPL
5081.17Sjdolecek331	UNIMPL
5091.17Sjdolecek332	UNIMPL
5101.17Sjdolecek333	UNIMPL
5111.17Sjdolecek334	UNIMPL
5121.17Sjdolecek335	UNIMPL
5131.17Sjdolecek336	UNIMPL
5141.17Sjdolecek337	UNIMPL
5151.17Sjdolecek338	UNIMPL
5161.17Sjdolecek339	UNIMPL
5171.17Sjdolecek340	UNIMPL
5181.17Sjdolecek341	UNIMPL
5191.17Sjdolecek342	UNIMPL
5201.17Sjdolecek343	UNIMPL
5211.17Sjdolecek344	UNIMPL
5221.17Sjdolecek345	UNIMPL
5231.17Sjdolecek346	UNIMPL
5241.17Sjdolecek347	UNIMPL
5251.17Sjdolecek348	UNIMPL
5261.17Sjdolecek349	UNIMPL
5271.17Sjdolecek350	UNIMPL
5281.17Sjdolecek351	UNIMPL
5291.17Sjdolecek352	UNIMPL
5301.17Sjdolecek353	UNIMPL
5311.17Sjdolecek354	UNIMPL
5321.17Sjdolecek355	UNIMPL
5331.17Sjdolecek356	UNIMPL
5341.17Sjdolecek357	UNIMPL
5351.17Sjdolecek358	UNIMPL
5361.17Sjdolecek359	UNIMPL
5371.17Sjdolecek360	UNIMPL
5381.17Sjdolecek361	UNIMPL
5391.17Sjdolecek362	UNIMPL
5401.17Sjdolecek363	UNIMPL
5411.17Sjdolecek364	UNIMPL
5421.17Sjdolecek365	UNIMPL
5431.17Sjdolecek366	UNIMPL
5441.17Sjdolecek367	UNIMPL
5451.17Sjdolecek368	UNIMPL
5461.17Sjdolecek369	UNIMPL
5471.17Sjdolecek370	UNIMPL
5481.17Sjdolecek371	UNIMPL
5491.17Sjdolecek372	UNIMPL
5501.17Sjdolecek373	UNIMPL
5511.17Sjdolecek374	UNIMPL
5521.17Sjdolecek375	UNIMPL
5531.17Sjdolecek376	UNIMPL
5541.17Sjdolecek377	UNIMPL
5551.17Sjdolecek378	UNIMPL
5561.17Sjdolecek379	UNIMPL
5571.17Sjdolecek380	UNIMPL
5581.17Sjdolecek381	UNIMPL
5591.17Sjdolecek382	UNIMPL
5601.17Sjdolecek383	UNIMPL
5611.3Sbjh21
5621.3Sbjh21; ARMLinux actually has two ranges of syscalls.  Normal syscalls use
5631.3Sbjh21; SWI numbers starting at 0x900000 (__NR_SYSCALL_BASE).  Special
5641.17Sjdolecek; ARM-specific syscalls use SWI numbers starting at 0x9f0000
5651.3Sbjh21; (__ARM_NR_BASE).  linux_syscall() (in arch/arm/arm/linux_syscall.c)
5661.17Sjdolecek; remaps these down to 0x900180 so that we can use one linux_sysent
5671.3Sbjh21; array for the whole lot.
5681.3Sbjh21
5691.17Sjdolecek384	UNIMPL		/* base */
5701.17Sjdolecek385	STD		{ int linux_sys_breakpoint(void); }
5711.17Sjdolecek386	STD		{ int linux_sys_cacheflush(uintptr_t from, \
5721.3Sbjh21				intptr_t to); }
5731.17Sjdolecek387	UNIMPL		usr26
5741.17Sjdolecek388	UNIMPL		usr32
575