xref: /netbsd-src/sys/compat/linux/arch/powerpc/syscalls.master (revision de1dfb1250df962f1ff3a011772cf58e605aed11)
1	$NetBSD: syscalls.master,v 1.19 2004/09/08 19:45:22 jdolecek Exp $
2
3;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
4
5; Derived from NetBSD's sys/compat/linux/arch/i386/syscalls.master
6; sys/compat/linux/arch/m68k/syscalls.master
7; and from Linux's arch/ppc/kernel/misc.S
8;
9; We have problems for a few syscalls, specially:
10; 142 ppc_select -> sys_new_select -> sys_select (Conflicts with 82 ???).
11;
12; Expect problems with the following, which have an architecture dependent
13; implementation in Linux/powerpc:
14; 29  pause
15; 42  pipe      tested. no problem.
16; 59  olduname
17; 101 ioperm
18; 109 uname
19; 117 ipc
20;
21; Most of syscalls after 182 that were introduced in Linux-2.4 are UNIMPL.
22;
23; The following are UNIMPL here. The Linux kernel implements them but just logs
24; a kernel error and returns -ENOSYS.
25; 110 iopl
26; 113 vm86
27; 123 modify_ldt
28; 198 sys_pciconfig_read
29; 199 sys_pciconfig_write
30; 200 sys_pciconfig_iobase
31;
32; Emmanuel Dreyfus <p99dreyf@criens.u-psud.fr>
33
34; NetBSD powerpc COMPAT_LINUX system call name/number "master" file.
35; (See syscalls.conf to see what it is processed into.)
36;
37; Fields: number type [type-dependent ...]
38;	number	system call number, must be in order
39;	type	one of STD, OBSOL, UNIMPL, NODEF, NOARGS, or one of
40;		the compatibility options defined in syscalls.conf.
41;
42; types:
43;	STD	always included
44;	OBSOL	obsolete, not included in system
45;	UNIMPL	unimplemented, not included in system
46;	NODEF	included, but don't define the syscall number
47;	NOARGS	included, but don't define the syscall args structure
48;	INDIR	included, but don't define the syscall args structure
49;		and allow it to be "really" varargs.
50;
51; The compat options are defined in the syscalls.conf file, and the
52; compat option name is prefixed to the syscall name.  Other than
53; that, they're like NODEF (for 'compat' options), or STD (for
54; 'libcompat' options).
55;
56; The type-dependent arguments are as follows:
57; For STD, NODEF, NOARGS, and compat syscalls:
58;	{ pseudo-proto } [alias]
59; For other syscalls:
60;	[comment]
61;
62; #ifdef's, etc. may be included, and are copied to the output files.
63; #include's are copied to the syscall names and switch definition files only.
64
65#if defined(_KERNEL_OPT)
66#include "opt_compat_netbsd.h"
67#include "opt_compat_43.h"
68#endif
69
70#include <sys/param.h>
71#include <sys/poll.h>
72#include <sys/systm.h>
73#include <sys/signal.h>
74#include <sys/mount.h>
75#include <sys/sa.h>
76#include <sys/syscallargs.h>
77
78#include <compat/linux/common/linux_types.h>
79#include <compat/linux/common/linux_signal.h>
80#include <compat/linux/common/linux_siginfo.h>
81#include <compat/linux/common/linux_machdep.h>
82#include <compat/linux/common/linux_mmap.h>
83
84#include <compat/linux/linux_syscallargs.h>
85
860	NOARGS		{ int linux_sys_nosys(void); } syscall
871	NOARGS		{ int sys_exit(int rval); }
882	NOARGS		{ int sys_fork(void); }
893	NOARGS		{ int sys_read(int fd, char *buf, u_int nbyte); }
904	NOARGS		{ int sys_write(int fd, char *buf, u_int nbyte); }
915	STD		{ int linux_sys_open(const char *path, int flags, \
92			    int mode); }
936	NOARGS		{ int sys_close(int fd); }
947	STD		{ int linux_sys_waitpid(int pid, int *status, \
95			    int options);}
968	STD		{ int linux_sys_creat(const char *path, int mode); }
979	STD		{ int linux_sys_link(const char *path, const \
98			    char *link); }
9910	STD		{ int linux_sys_unlink(const char *path); }
10011	STD		{ int linux_sys_execve(const char *path, char **argp, \
101			    char **envp); }
10212	STD		{ int linux_sys_chdir(const char *path); }
10313	STD		{ int linux_sys_time(linux_time_t *t); }
10414	STD		{ int linux_sys_mknod(const char *path, int mode, \
105			    int dev); }
10615	STD		{ int linux_sys_chmod(const char *path, int mode); }
10716	STD		{ int linux_sys_lchown(const char *path, int uid, \
108			    int gid); }
10917	OBSOL		break
11018	OBSOL		ostat
11119	NOARGS		{ long compat_43_sys_lseek(int fd, long offset, \
112			    int whence); }
11320	NOARGS MPSAFE	{ pid_t sys_getpid(void); }
11421	UNIMPL		mount
11522	OBSOL		umount
11623	NOARGS		{ int sys_setuid(uid_t uid); }
11724	NOARGS		{ uid_t sys_getuid(void); }
11825	STD		{ int linux_sys_stime(linux_time_t *t); }
11926	STD		{ int linux_sys_ptrace(int request, int pid, \
120			    int addr, int data); }
12127	STD		{ int linux_sys_alarm(unsigned int secs); }
12228	OBSOL		ofstat
12329	STD		{ int linux_sys_pause(void); }
12430	STD		{ int linux_sys_utime(const char *path, \
125			    struct linux_utimbuf *times); }
12631	OBSOL		stty
12732	OBSOL		gtty
12833	STD		{ int linux_sys_access(const char *path, int flags); }
12934	STD		{ int linux_sys_nice(int incr); }
13035	OBSOL		ftime
13136	NOARGS		{ int sys_sync(void); }
13237	STD		{ int linux_sys_kill(int pid, int signum); }
13338	STD		{ int linux_sys_rename(const char *from, \
134			    const char *to); }
13539	STD		{ int linux_sys_mkdir(const char *path, int mode); }
13640	STD		{ int linux_sys_rmdir(const char *path); }
13741	NOARGS		{ int sys_dup(u_int fd); }
13842	STD		{ int linux_sys_pipe(int *pfds); }
13943	STD		{ int linux_sys_times(struct times *tms); }
14044	OBSOL		prof
14145	STD		{ int linux_sys_brk(char *nsize); }
14246	NOARGS		{ int sys_setgid(gid_t gid); }
14347	NOARGS		{ gid_t sys_getgid(void); }
14448	STD		{ int linux_sys_signal(int signum, \
145			    linux_handler_t handler); }
14649	NOARGS		{ uid_t sys_geteuid(void); }
14750	NOARGS		{ gid_t sys_getegid(void); }
14851	NOARGS		{ int sys_acct(char *path); }
14952	UNIMPL		umount
15053	OBSOL		lock
15154	STD		{ int linux_sys_ioctl(int fd, u_long com, \
152			    caddr_t data); }
15355	STD		{ int linux_sys_fcntl(int fd, int cmd, void *arg); }
15456	OBSOL		mpx
15557	NOARGS		{ int sys_setpgid(int pid, int pgid); }
15658	OBSOL		ulimit
15759 	STD		{ int linux_sys_olduname(struct linux_old_utsname \
158			   *up); }
15960	NOARGS		{ int sys_umask(int newmask); }
16061	NOARGS		{ int sys_chroot(char *path); }
16162	UNIMPL		ustat
16263	NOARGS		{ int sys_dup2(u_int from, u_int to); }
16364	NOARGS		{ pid_t sys_getppid(void); }
16465	NOARGS		{ int sys_getpgrp(void); }
16566	NOARGS		{ int sys_setsid(void); }
16667	STD		{ int linux_sys_sigaction(int signum, \
167			    const struct linux_old_sigaction *nsa, \
168			    struct linux_old_sigaction *osa); }
16968	STD		{ int linux_sys_siggetmask(void); }
17069	STD		{ int linux_sys_sigsetmask(linux_old_sigset_t mask); }
17170	NOARGS		{ int sys_setreuid(uid_t ruid, uid_t euid); }
17271	NOARGS		{ int sys_setregid(gid_t rgid, gid_t egid); }
17372	STD		{ int linux_sys_sigsuspend(caddr_t restart, \
174			    int oldmask, int mask); }
17573	STD		{ int linux_sys_sigpending(linux_old_sigset_t *set); }
17674	NOARGS		{ int compat_43_sys_sethostname(char *hostname, \
177			    u_int len);}
17875	STD		{ int linux_sys_setrlimit(u_int which, \
179			    struct orlimit *rlp); }
18076	STD		{ int linux_sys_getrlimit(u_int which, \
181			    struct orlimit *rlp); }
18277	NOARGS		{ int sys_getrusage(int who, struct rusage *rusage); }
18378	STD		{ int linux_sys_gettimeofday(struct timeval *tp, \
184			    struct timezone *tzp); }
18579	STD		{ int linux_sys_settimeofday(struct timeval *tp, \
186			    struct timezone *tzp); }
18780	NOARGS		{ int sys_getgroups(u_int gidsetsize, gid_t *gidset); }
18881	NOARGS		{ int sys_setgroups(u_int gidsetsize, gid_t *gidset); }
18982	STD		{ int linux_sys_select(int nfds, fd_set* readfds, \
190					fd_set* writefds, fd_set* exceptfds, \
191					struct timeval *timeout); }
19283	STD		{ int linux_sys_symlink(const char *path, \
193			    const char *to); }
19484	NOARGS		{ int compat_43_sys_lstat(const char *path, \
195			    struct stat43 *up); } oolstat
19685	STD		{ int linux_sys_readlink(const char *name, char *buf, \
197			    int count); }
19886	STD		{ int linux_sys_uselib(const char *path); }
19987	STD		{ int linux_sys_swapon(char *name); }
20088	STD		{ int linux_sys_reboot(int magic1, int magic2, \
201			    int cmd, void *arg); }
20289	STD		{ int linux_sys_readdir(int fd, caddr_t dent, \
203			    unsigned int count); }
20490	NOARGS		{ int linux_sys_mmap(unsigned long addr, size_t len, \
205			    int prot, int flags, int fd, linux_off_t offset); }
20691	NOARGS		{ int sys_munmap(caddr_t addr, int len); }
20792	STD		{ int linux_sys_truncate(const char *path, \
208			    long length); }
20993	NOARGS		{ int compat_43_sys_ftruncate(int fd, long length); }
21094	NOARGS		{ int sys_fchmod(int fd, int mode); }
21195	NOARGS		{ int sys___posix_fchown(int fd, int uid, int gid); }
21296	NOARGS		{ int sys_getpriority(int which, int who); }
21397	NOARGS		{ int sys_setpriority(int which, int who, int prio); }
21498	NOARGS		{ int sys_profil(caddr_t samples, u_int size, \
215			    u_int offset, u_int scale); }
21699	STD		{ int linux_sys_statfs(const char *path, \
217			    struct linux_statfs *sp); }
218100	STD		{ int linux_sys_fstatfs(int fd, \
219			    struct linux_statfs *sp); }
220101	STD		{ int linux_sys_ioperm(unsigned int lo, \
221			    unsigned int hi, int val); }
222102	STD		{ int linux_sys_socketcall(int what, void *args); }
223103	UNIMPL		syslog
224104	NOARGS		{ int sys_setitimer(u_int which, \
225			    struct itimerval *itv, struct itimerval *oitv); }
226105	NOARGS		{ int sys_getitimer(u_int which, \
227			    struct itimerval *itv); }
228106	STD		{ int linux_sys_stat(const char *path, \
229			    struct linux_stat *sp); }
230107	STD		{ int linux_sys_lstat(const char *path, \
231			    struct linux_stat *sp); }
232108	STD		{ int linux_sys_fstat(int fd, struct linux_stat *sp); }
233109	STD		{ int linux_sys_uname(struct linux_utsname *up); }
234110	UNIMPL		iopl
235111	UNIMPL		vhangup
236112	UNIMPL		idle
237113	UNIMPL		vm86old
238114	STD		{ int linux_sys_wait4(int pid, int *status, \
239			    int options, struct rusage *rusage); }
240115	STD		{ int linux_sys_swapoff(const char *path); }
241116	STD		{ int linux_sys_sysinfo(struct linux_sysinfo *arg); }
242117	STD		{ int linux_sys_ipc(int what, int a1, int a2, int a3, \
243			    caddr_t ptr); }
244118	NOARGS		{ int sys_fsync(int fd); }
245119	STD		{ int linux_sys_sigreturn(struct linux_sigcontext *scp); }
246120	STD		{ int linux_sys_clone(int flags, void *stack); }
247121	STD		{ int linux_sys_setdomainname(char *domainname, \
248			    int len); }
249122	STD		{ int linux_sys_new_uname(struct linux_utsname *up); }
250123	UNIMPL		modify_ldt
251124	UNIMPL		adjtimex
252125	STD		{ int linux_sys_mprotect(const void *start, \
253			    unsigned long len, int prot); }
254126	STD		{ int linux_sys_sigprocmask(int how, \
255			    const linux_old_sigset_t *set, \
256			    linux_old_sigset_t *oset); }
257127	UNIMPL		create_module
258128	UNIMPL		init_module
259129	UNIMPL		delete_module
260130	UNIMPL		get_kernel_syms
261131	UNIMPL		quotactl
262132	STD		{ int linux_sys_getpgid(int pid); }
263133	NOARGS		{ int sys_fchdir(int fd); }
264134	UNIMPL		bdflush
265135	UNIMPL		sysfs
266136	STD		{ int linux_sys_personality(int per); }
267137	UNIMPL		afs_syscall
268138	STD		{ int linux_sys_setfsuid(uid_t uid); }
269139	NOARGS		{ int linux_sys_getfsuid(void); }
270140	STD		{ int linux_sys_llseek(int fd, u_int32_t ohigh, \
271			    u_int32_t olow, caddr_t res, int whence); }
272141	STD		{ int linux_sys_getdents(int fd, \
273			    struct linux_dirent *dent, unsigned int count); }
274142	STD		{ int linux_sys_new_select(int nfds, fd_set *readfds, \
275			    fd_set *writefds, fd_set *exceptfds, \
276			    struct timeval *timeout); }
277143	NOARGS		{ int sys_flock(int fd, int how); }
278144	STD		{ int linux_sys_msync(caddr_t addr, int len, int fl); }
279145	NOARGS		{ int sys_readv(int fd, struct iovec *iovp, \
280				u_int iovcnt); }
281146	NOARGS		{ int sys_writev(int fd, struct iovec *iovp, \
282				u_int iovcnt); }
283147	NOARGS		{ pid_t sys_getsid(pid_t pid); }
284148	STD		{ int linux_sys_fdatasync(int fd); }
285149	STD		{ int linux_sys___sysctl(struct linux___sysctl *lsp); }
286150	NOARGS		{ int sys_mlock(caddr_t addr, size_t len); }
287151	NOARGS		{ int sys_munlock(caddr_t addr, size_t len); }
288152	NOARGS		{ int sys_mlockall(int flags); }
289153	NOARGS		{ int sys_munlockall(void); }
290154	STD		{ int linux_sys_sched_setparam(pid_t pid, \
291			    const struct linux_sched_param *sp); }
292155	STD		{ int linux_sys_sched_getparam(pid_t pid, \
293			    struct linux_sched_param *sp); }
294156	STD		{ int linux_sys_sched_setscheduler(pid_t pid, \
295			    int policy, const struct linux_sched_param *sp); }
296157	STD		{ int linux_sys_sched_getscheduler(pid_t pid); }
297158	STD		{ int linux_sys_sched_yield(void); }
298159	STD		{ int linux_sys_sched_get_priority_max(int policy); }
299160	STD		{ int linux_sys_sched_get_priority_min(int policy); }
300161	UNIMPL		sched_rr_get_interval
301162	NOARGS		{ int sys_nanosleep(const struct timespec *rqtp, \
302				struct timespec *rmtp); }
303163	STD		{ void *linux_sys_mremap(void *old_address, \
304			    size_t old_size, size_t new_size, u_long flags); }
305164	STD		{ int linux_sys_setresuid(uid_t ruid, uid_t euid, \
306			    uid_t suid); }
307165	STD		{ int linux_sys_getresuid(uid_t *ruid, uid_t *euid, \
308			    uid_t *suid); }
309166	UNIMPL		query_module
310167	NOARGS		{ int sys_poll(struct pollfd *fds, u_int nfds, \
311			    int timeout); }
312168	UNIMPL		nfsservctl
313169	STD		{ int linux_sys_setresgid(gid_t rgid, gid_t egid, \
314			    gid_t sgid); }
315170	STD		{ int linux_sys_getresgid(gid_t *rgid, gid_t *egid, \
316			    gid_t *sgid); }
317171	UNIMPL		prctl
318172	STD		{ int linux_sys_rt_sigreturn( \
319			    struct linux_rt_sigframe *sfp); }
320173	STD		{ int linux_sys_rt_sigaction(int signum, \
321			    const struct linux_sigaction *nsa, \
322			    struct linux_sigaction *osa, \
323			    size_t sigsetsize); }
324174	STD		{ int linux_sys_rt_sigprocmask(int how, \
325			    const linux_sigset_t *set, \
326			    linux_sigset_t *oset, \
327			    size_t sigsetsize); }
328175	STD		{ int linux_sys_rt_sigpending( \
329			    linux_sigset_t *set, \
330			    size_t sigsetsize); }
331176	UNIMPL		rt_sigtimedwait
332; XXX XAX int here?  sigset_t here?  siginfo_t
333177	STD		{ int linux_sys_rt_queueinfo(int pid, int signum, \
334			    void *uinfo); }
335178	STD		{ int linux_sys_rt_sigsuspend(linux_sigset_t *unewset, \
336			    size_t sigsetsize); }
337179	STD		{ int linux_sys_pread(int fd, char *buf, \
338			    size_t nbyte, linux_off_t offset); }
339180	STD		{ int linux_sys_pwrite(int fd, char *buf, \
340			    size_t nbyte, linux_off_t offset); }
341181	STD		{ int linux_sys_chown(const char *path, \
342			    int uid, int gid); }
343182	NOARGS		{ int sys___getcwd(char *bufp, size_t length); }
344183	UNIMPL		capget
345184	UNIMPL		capset
346185	STD		{ int linux_sys_sigaltstack( \
347			    const struct linux_sigaltstack *ss, \
348			    struct linux_sigaltstack *oss); }
349186	UNIMPL		sendfile
350187	UNIMPL		getpmsg
351188	UNIMPL		putpmsg
352189	NOARGS		{ int sys___vfork14(void); }
353190	STD		{ int linux_sys_ugetrlimit(int which, \
354			    struct rlimit *rlp); }
355191	UNIMPL		/* unused */
356192	NOARGS		{ linux_off_t linux_sys_mmap2(unsigned long addr, \
357			    size_t len, int prot, int flags, int fd, \
358			    linux_off_t offset); }
359193	STD		{ int linux_sys_truncate64(const char *path, \
360			    off_t length); }
361194	STD		{ int linux_sys_ftruncate64(unsigned int fd, \
362			    off_t length); }
363195	STD		{ int linux_sys_stat64(const char *path, \
364			    struct linux_stat64 *sp); }
365196	STD		{ int linux_sys_lstat64(const char *path, \
366			    struct linux_stat64 *sp); }
367197	STD		{ int linux_sys_fstat64(int fd, \
368			    struct linux_stat64 *sp); }
369198	UNIMPL		sys_pciconfig_read
370199	UNIMPL		sys_pciconfig_write
371200	UNIMPL		sys_pciconfig_iobase
372201	UNIMPL		/* Unused (MacOnLinux project) */
373202	STD		{ int linux_sys_getdents64(int fd, \
374			    struct linux_dirent64 *dent, unsigned int count); }
375203	UNIMPL		pivot_root
376204	STD		{ int linux_sys_fcntl64(int fd, int cmd, void *arg); }
377205	NOARGS		{ int sys_mincore(void *addr, size_t len, char *vec); }
378206	NOARGS		{ int sys_madvise(void *addr, size_t len, int behav); }
379207	UNIMPL		gettid
380208	UNIMPL		tkill
381209	UNIMPL		setxattr
382210	UNIMPL		lsetxattr
383211	UNIMPL		fsetxattr
384212	UNIMPL		getxattr
385213	UNIMPL		lgetxattr
386214	UNIMPL		fgetxattr
387215	UNIMPL		listxattr
388216	UNIMPL		llistxattr
389217	UNIMPL		flistxattr
390218	UNIMPL		removexattr
391219	UNIMPL		lremovexattr
392220	UNIMPL		fremovexattr
393221	UNIMPL		futex
394222	UNIMPL		sched_setaffinity
395223	UNIMPL		sched_getaffinity
396224	UNIMPL		/* unused */
397225	UNIMPL		tuxcall
398226	UNIMPL		sendfile64
399227	UNIMPL		io_setup
400228	UNIMPL		io_destroy
401229	UNIMPL		io_getevents
402230	UNIMPL		io_submit
403231	UNIMPL		io_cancel
404232	UNIMPL		set_tid_address
405233	UNIMPL		fadvise64
406234	STD		{ int linux_sys_exit_group(int error_code); }
407235	UNIMPL		lookup_dcookie
408236	UNIMPL		epoll_create
409237	UNIMPL		epoll_ctl
410238	UNIMPL		epoll_wait
411239	UNIMPL		remap_file_pages
412240	UNIMPL		timer_create
413241	UNIMPL		timer_settime
414242	UNIMPL		timer_gettime
415243	UNIMPL		timer_getoverrun
416244	UNIMPL		timer_delete
417245	UNIMPL		clock_settime
418246	UNIMPL		clock_gettime
419247	UNIMPL		clock_getres
420248	UNIMPL		clock_nanosleep
421249	UNIMPL		swapcontext
422250	UNIMPL		tgkill
423251	UNIMPL		utimes
424252	UNIMPL		statfs64
425253	UNIMPL		fstatfs64
426254	UNIMPL		fadvise64_64
427255	UNIMPL		rtas
428256	UNIMPL		/* reserved for sys_debug_setcontext */
429257	UNIMPL		/* reserved for vserver */
430258	UNIMPL		/* reserved for new sys_remap_file_pages */
431259	UNIMPL		/* reserved for new sys_mbind */
432260	UNIMPL		/* reserved for new sys_get_mempolicy */
433261	UNIMPL		/* reserved for new sys_set_mempolicy */
434262	UNIMPL		mq_open
435263	UNIMPL		mq_unlink
436264	UNIMPL		mq_timedsend
437265	UNIMPL		mq_timedreceive
438266	UNIMPL		mq_notify
439267	UNIMPL		mq_getsetattr
440268	UNIMPL		kexec_load
441