xref: /freebsd/sys/i386/linux/syscalls.master (revision 63d45d7da0eac8efdeb765ac5caddfc2c5ca021e)
1 $FreeBSD$
2
3;	@(#)syscalls.master	8.1 (Berkeley) 7/19/93
4; System call name/number master file (or rather, slave, from LINUX).
5; Processed to create linux_sysent.c, linux_proto.h and linux_syscall.h.
6
7; Columns: number type nargs name alt{name,tag,rtyp}/comments
8;	number	system call number, must be in order
9;	type	one of STD, OBSOL, UNIMPL, COMPAT
10;	name	psuedo-prototype of syscall routine
11;		If one of the following alts is different, then all appear:
12;	altname	name of system call if different
13;	alttag	name of args struct tag if different from [o]`name'"_args"
14;	altrtyp	return type if not int (bogus - syscalls always return int)
15;		for UNIMPL/OBSOL, name continues with comments
16
17; types:
18;	STD	always included
19;	COMPAT	included on COMPAT #ifdef
20;	LIBCOMPAT included on COMPAT #ifdef, and placed in syscall.h
21;	OBSOL	obsolete, not included in system, only specifies name
22;	UNIMPL	not implemented, placeholder only
23
24#include "opt_compat.h"
25#include <sys/param.h>
26#include <sys/sysent.h>
27#include <sys/sysproto.h>
28#include <compat/linux/linux_sysproto.h>
29#include <i386/linux/linux.h>
30#include <i386/linux/linux_proto.h>
31
32; Isn't pretty, but there seems to be no other way to trap nosys
33#define	nosys	linux_nosys
34
35; #ifdef's, etc. may be included, and are copied to the output files.
36
370	UNIMPL	setup
381	MNOPROTO { void sys_exit(int rval); } exit sys_exit_args void
392	MSTD	{ int linux_fork(void); }
403	MNOPROTO { int read(int fd, char *buf, u_int nbyte); }
414	MNOPROTO { int write(int fd, char *buf, u_int nbyte); }
425	STD	{ int linux_open(char *path, l_int flags, l_int mode); }
436	MNOPROTO { int close(int fd); }
447	MSTD	{ int linux_waitpid(l_pid_t pid, l_int *status, l_int options); }
458	STD	{ int linux_creat(char *path, l_int mode); }
469	STD	{ int linux_link(char *path, char *to); }
4710	STD	{ int linux_unlink(char *path); }
4811	STD	{ int linux_execve(char *path, char **argp, char **envp); }
4912	STD	{ int linux_chdir(char *path); }
5013	STD	{ int linux_time(l_time_t *tm); }
5114	STD	{ int linux_mknod(char *path, l_int mode, l_dev_t dev); }
5215	STD	{ int linux_chmod(char *path, l_mode_t mode); }
5316	STD	{ int linux_lchown16(char *path, l_uid16_t uid, \
54				l_gid16_t gid); }
5517	UNIMPL	break
5618	STD	{ int linux_stat(char *path, struct ostat *up); }
5719	STD	{ int linux_lseek(l_uint fdes, l_off_t off, l_int whence); }
5820	MSTD	{ int linux_getpid(void); }
5921	STD	{ int linux_mount(char *specialfile, char *dir, \
60				char *filesystemtype, l_ulong rwflag, \
61				void *data); }
6222	STD	{ int linux_oldumount(char *path); }
6323	MSTD	{ int linux_setuid16(l_uid16_t uid); }
6424	MSTD	{ int linux_getuid16(void); }
6525	STD	{ int linux_stime(void); }
6626	MSTD	{ int linux_ptrace(l_long req, l_long pid, l_long addr, \
67                            l_long data); }
6827	STD	{ int linux_alarm(l_uint secs); }
6928	STD	{ int linux_fstat(l_uint fd, struct ostat *up); }
7029	MSTD	{ int linux_pause(void); }
7130	STD	{ int linux_utime(char *fname, struct l_utimbuf *times); }
7231	UNIMPL	stty
7332	UNIMPL	gtty
7433	STD	{ int linux_access(char *path, l_int flags); }
7534	MSTD	{ int linux_nice(l_int inc); }
7635	UNIMPL	ftime
7736	NOPROTO	{ int sync(void); }
7837	MSTD	{ int linux_kill(l_int pid, l_int signum); }
7938	STD	{ int linux_rename(char *from, char *to); }
8039	STD	{ int linux_mkdir(char *path, l_int mode); }
8140	STD	{ int linux_rmdir(char *path); }
8241	MNOPROTO { int dup(u_int fd); }
8342	MSTD	{ int linux_pipe(l_ulong *pipefds); }
8443	STD	{ int linux_times(struct l_times_argv *buf); }
8544	UNIMPL	prof
8645	STD	{ int linux_brk(l_ulong dsend); }
8746	MSTD	{ int linux_setgid16(l_gid16_t gid); }
8847	MSTD	{ int linux_getgid16(void); }
8948	MSTD	{ int linux_signal(l_int sig, l_handler_t handler); }
9049	MSTD	{ int linux_geteuid16(void); }
9150	MSTD	{ int linux_getegid16(void); }
9251	MNOPROTO { int acct(char *path); }
9352	STD	{ int linux_umount(char *path, l_int flags); }
9453	UNIMPL	lock
9554	STD	{ int linux_ioctl(l_uint fd, l_uint cmd, l_ulong arg); }
9655	MSTD	{ int linux_fcntl(l_uint fd, l_uint cmd, l_ulong arg); }
9756	UNIMPL	mpx
9857	MNOPROTO { int setpgid(int pid, int pgid); }
9958	UNIMPL	ulimit
10059	STD	{ int linux_olduname(void); }
10160	MNOPROTO { int umask(int newmask); }
10261	NOPROTO	{ int chroot(char *path); }
10362	STD	{ int linux_ustat(l_dev_t dev, struct l_ustat *ubuf); }
10463	MNOPROTO { int dup2(u_int from, u_int to); }
10564	MNOPROTO { int getppid(void); }
10665	MNOPROTO { int getpgrp(void); }
10766	MNOPROTO { int setsid(void); }
10867	MSTD	{ int linux_sigaction(l_int sig, l_osigaction_t *nsa, \
109				l_osigaction_t *osa); }
11068	MSTD	{ int linux_sgetmask(void); }
11169	MSTD	{ int linux_ssetmask(l_osigset_t mask); }
11270	MSTD	{ int linux_setreuid16(l_uid16_t ruid, l_uid16_t euid); }
11371	MSTD	{ int linux_setregid16(l_gid16_t rgid, l_gid16_t egid); }
11472	MSTD	{ int linux_sigsuspend(l_int hist0, l_int hist1, \
115				l_osigset_t mask); }
11673	MSTD	{ int linux_sigpending(l_osigset_t *mask); }
11774	MNOPROTO { int osethostname(char *hostname, u_int len); } \
118			    osethostname sethostname_args int
11975	MSTD	{ int linux_setrlimit(l_uint resource, struct l_rlimit *rlim); }
12076	MSTD	{ int linux_old_getrlimit(l_uint resource, \
121				struct l_rlimit *rlim); }
12277	MNOPROTO { int getrusage(int who, struct rusage *rusage); }
12378	MNOPROTO { int gettimeofday(struct timeval *tp, struct timezone *tzp); }
12479	MNOPROTO { int settimeofday(struct timeval *tp, struct timezone *tzp); }
12580	MSTD	{ int linux_getgroups16(l_uint gidsetsize, l_gid16_t *gidset); }
12681	MSTD	{ int linux_setgroups16(l_uint gidsetsize, l_gid16_t *gidset); }
12782	STD	{ int linux_old_select(struct l_old_select_argv *ptr); }
12883	STD	{ int linux_symlink(char *path, char *to); }
12984	NOPROTO	{ int ostat(char *path, struct ostat *up); }
13085	STD	{ int linux_readlink(char *name, char *buf, l_int count); }
13186	STD	{ int linux_uselib(char *library); }
13287	NOPROTO	{ int swapon(char *name); }
13388	STD	{ int linux_reboot(l_int magic1, l_int magic2, l_uint cmd, \
134				void *arg); }
13589	STD	{ int linux_readdir(l_uint fd, struct l_dirent *dent, \
136				l_uint count); }
13790	STD	{ int linux_mmap(struct l_mmap_argv *ptr); }
13891	NOPROTO	{ int munmap(caddr_t addr, int len); }
13992	STD	{ int linux_truncate(char *path, l_ulong length); }
14093	NOPROTO	{ int oftruncate(int fd, long length); }
14194	NOPROTO	{ int fchmod(int fd, int mode); }
14295	NOPROTO	{ int fchown(int fd, int uid, int gid); }
14396	MNOPROTO { int getpriority(int which, int who); }
14497	MNOPROTO { int setpriority(int which, int who, int prio); }
14598	UNIMPL	profil
14699	STD	{ int linux_statfs(char *path, struct l_statfs_buf *buf); }
147100	STD	{ int linux_fstatfs(l_uint fd, struct l_statfs_buf *buf); }
148101	STD	{ int linux_ioperm(l_ulong start, l_ulong length, \
149				l_int enable); }
150102	STD	{ int linux_socketcall(l_int what, l_ulong args); }
151103	STD	{ int linux_syslog(l_int type, char *buf, l_int len); }
152104	STD	{ int linux_setitimer(l_int which, struct l_itimerval *itv, \
153				struct l_itimerval *oitv); }
154105	STD	{ int linux_getitimer(l_int which, struct l_itimerval *itv); }
155106	STD	{ int linux_newstat(char *path, struct l_newstat *buf); }
156107	STD	{ int linux_newlstat(char *path, struct l_newstat *buf); }
157108	STD	{ int linux_newfstat(l_uint fd, struct l_newstat *buf); }
158109	STD	{ int linux_uname(void); }
159110	STD	{ int linux_iopl(l_ulong level); }
160111	STD	{ int linux_vhangup(void); }
161112	UNIMPL	idle
162113	STD	{ int linux_vm86old(void); }
163114	MSTD	{ int linux_wait4(l_pid_t pid, l_uint *status, \
164				l_int options, struct l_rusage *rusage); }
165115	STD	{ int linux_swapoff(void); }
166116	STD	{ int linux_sysinfo(struct l_sysinfo *info); }
167117	STD	{ int linux_ipc(l_uint what, l_int arg1, l_int arg2, \
168				l_int arg3, void *ptr, l_long arg5); }
169118	NOPROTO	{ int fsync(int fd); }
170119	MSTD	{ int linux_sigreturn(struct l_sigframe *sfp); }
171120	MSTD	{ int linux_clone(l_int flags, void *stack); }
172121	MNOPROTO { int setdomainname(char *name, int len); }
173122	STD	{ int linux_newuname(struct l_new_utsname *buf); }
174123	STD	{ int linux_modify_ldt(l_int func, void *ptr, \
175				l_ulong bytecount); }
176124	STD	{ int linux_adjtimex(void); }
177125	NOPROTO	{ int mprotect(caddr_t addr, int len, int prot); }
178126	MSTD	{ int linux_sigprocmask(l_int how, l_osigset_t *mask, \
179				l_osigset_t *omask); }
180127	STD	{ int linux_create_module(void); }
181128	STD	{ int linux_init_module(void); }
182129	STD	{ int linux_delete_module(void); }
183130	STD	{ int linux_get_kernel_syms(void); }
184131	STD	{ int linux_quotactl(void); }
185132	NOPROTO	{ int getpgid(int pid); }
186133	NOPROTO	{ int fchdir(int fd); }
187134	STD	{ int linux_bdflush(void); }
188135	STD	{ int linux_sysfs(l_int option, l_ulong arg1, l_ulong arg2); }
189136	STD	{ int linux_personality(l_ulong per); }
190137	UNIMPL	afs_syscall
191138	STD	{ int linux_setfsuid16(l_uid16_t uid); }
192139	STD	{ int linux_setfsgid16(l_gid16_t gid); }
193140	STD	{ int linux_llseek(l_int fd, l_ulong ohigh, l_ulong olow, \
194				l_loff_t *res, l_uint whence); }
195141	STD	{ int linux_getdents(l_uint fd, void *dent, l_uint count); }
196142	STD	{ int linux_select(l_int nfds, l_fd_set *readfds, \
197				l_fd_set *writefds, l_fd_set *exceptfds, \
198				struct l_timeval *timeout); }
199143	NOPROTO	{ int flock(int fd, int how); }
200144	STD	{ int linux_msync(l_ulong addr, l_size_t len, l_int fl); }
201145	NOPROTO	{ int readv(int fd, struct iovec *iovp, u_int iovcnt); }
202146	NOPROTO	{ int writev(int fd, struct iovec *iovp, u_int iovcnt); }
203147	MSTD	{ int linux_getsid(l_pid_t pid); }
204148	STD	{ int linux_fdatasync(l_uint fd); }
205149	STD	{ int linux_sysctl(struct l___sysctl_args *args); }
206150	MNOPROTO { int mlock(const void *addr, size_t len); }
207151	MNOPROTO { int munlock(const void *addr, size_t len); }
208152	MNOPROTO { int mlockall(int how); }
209153	MNOPROTO { int munlockall(void); }
210154	MNOPROTO { int sched_setparam(pid_t pid, \
211				const struct sched_param *param); }
212155	MNOPROTO { int sched_getparam(pid_t pid, \
213				struct sched_param *param); }
214156	MSTD	{ int linux_sched_setscheduler(l_pid_t pid, \
215				l_int policy, struct l_sched_param *param); }
216157	MSTD	{ int linux_sched_getscheduler(l_pid_t pid); }
217158	NOPROTO	{ int sched_yield(void); }
218159	MSTD	{ int linux_sched_get_priority_max(l_int policy); }
219160	MSTD	{ int linux_sched_get_priority_min(l_int policy); }
220161	MNOPROTO { int sched_rr_get_interval(l_pid_t pid, \
221				struct l_timespec *interval); }
222162	MNOPROTO { int nanosleep(const struct timespec *rqtp, \
223				struct timespec *rmtp); }
224163	STD	{ int linux_mremap(l_ulong addr, l_ulong old_len, \
225				l_ulong new_len, l_ulong flags, \
226				l_ulong new_addr); }
227164	MSTD	{ int linux_setresuid16(l_uid16_t ruid, \
228				l_uid16_t euid, l_uid16_t suid); }
229165	MSTD	{ int linux_getresuid16(l_uid16_t *ruid, \
230				l_uid16_t *euid, l_uid16_t *suid); }
231166	STD	{ int linux_vm86(void); }
232167	STD	{ int linux_query_module(void); }
233168	NOPROTO	{ int poll(struct pollfd*, unsigned int nfds, long timeout); }
234169	STD	{ int linux_nfsservctl(void); }
235170	MSTD	{ int linux_setresgid16(l_gid16_t rgid, \
236				l_gid16_t egid, l_gid16_t sgid); }
237171	MSTD	{ int linux_getresgid16(l_gid16_t *rgid, \
238				l_gid16_t *egid, l_gid16_t *sgid); }
239172	STD	{ int linux_prctl(void); }
240173	STD	{ int linux_rt_sigreturn(struct l_ucontext *ucp); }
241174	MSTD	{ int linux_rt_sigaction(l_int sig, \
242				l_sigaction_t *act, l_sigaction_t *oact, \
243				l_size_t sigsetsize); }
244175	MSTD	{ int linux_rt_sigprocmask(l_int how, \
245				l_sigset_t *mask, l_sigset_t *omask, \
246				l_size_t sigsetsize); }
247176	STD	{ int linux_rt_sigpending(void); }
248177	STD	{ int linux_rt_sigtimedwait(void); }
249178	STD	{ int linux_rt_sigqueueinfo(void); }
250179	MSTD	{ int linux_rt_sigsuspend(l_sigset_t *newset, \
251				l_size_t sigsetsize); }
252180	STD	{ int linux_pread(l_uint fd, char *buf, \
253				l_size_t nbyte, l_loff_t offset); }
254181	STD	{ int linux_pwrite(l_uint fd, char *buf, \
255				l_size_t nbyte, l_loff_t offset); }
256182	STD	{ int linux_chown16(char *path, l_uid16_t uid, l_gid16_t gid); }
257183	STD	{ int linux_getcwd(char *buf, l_ulong bufsize); }
258184	STD	{ int linux_capget(void); }
259185	STD	{ int linux_capset(void); }
260186	STD	{ int linux_sigaltstack(l_stack_t *uss, l_stack_t *uoss); }
261187	STD	{ int linux_sendfile(void); }
262188	UNIMPL	getpmsg
263189	UNIMPL	putpmsg
264190	MSTD	{ int linux_vfork(void); }
265191	MSTD	{ int linux_getrlimit(l_uint resource, struct l_rlimit *rlim); }
266192	STD	{ int linux_mmap2(l_ulong addr, l_ulong len, \
267				l_ulong prot, l_ulong flags, l_ulong fd, \
268				l_ulong pgoff); }
269193	STD	{ int linux_truncate64(char *path, l_loff_t length); }
270194	STD	{ int linux_ftruncate64(l_uint fd, l_loff_t length); }
271195	STD	{ int linux_stat64(char *filename, \
272				struct l_stat64 *statbuf, l_long flags); }
273196	STD	{ int linux_lstat64(char *filename, \
274				struct l_stat64 *statbuf, l_long flags); }
275197	STD	{ int linux_fstat64(l_ulong fd, \
276				struct l_stat64 *statbuf, l_long flags); }
277198	STD	{ int linux_lchown(char *path, l_uid_t uid, \
278				l_gid_t gid); }
279199	MSTD	{ int linux_getuid(void); }
280200	MSTD	{ int linux_getgid(void); }
281201	MNOPROTO { int geteuid(void); }
282202	MNOPROTO { int getegid(void); }
283203	MNOPROTO { int setreuid(uid_t ruid, uid_t euid); }
284204	MNOPROTO { int setregid(gid_t rgid, gid_t egid); }
285205	MSTD	{ int linux_getgroups(l_int gidsetsize, l_gid_t *grouplist); }
286206	MSTD	{ int linux_setgroups(l_int gidsetsize, l_gid_t *grouplist); }
287207	NODEF	fchown fchown fchown_args int
288208	MNOPROTO { int setresuid(uid_t ruid, uid_t euid, uid_t suid); }
289209	MNOPROTO { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
290210	MNOPROTO { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
291211	MNOPROTO { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
292212	STD	{ int linux_chown(char *path, l_uid_t uid, l_gid_t gid); }
293213	MNOPROTO { int setuid(uid_t uid); }
294214	MNOPROTO { int setgid(gid_t gid); }
295215	STD	{ int linux_setfsuid(l_uid_t uid); }
296216	STD	{ int linux_setfsgid(l_gid_t gid); }
297217	STD	{ int linux_pivot_root(char *new_root, char *put_old); }
298218	STD	{ int linux_mincore(l_ulong start, l_size_t len, u_char *vec); }
299219	MNOPROTO { int madvise(void *addr, size_t len, int behav); }
300220	STD	{ int linux_getdents64(l_uint fd, void *dirent, l_uint count); }
301221	MSTD	{ int linux_fcntl64(l_uint fd, l_uint cmd, l_ulong arg); }
302222	UNIMPL
303223	UNIMPL
304224	STD	{ long linux_gettid(void); }
305225	UNIMPL	linux_readahead
306226	STD	{ int linux_setxattr(void); }
307227	STD	{ int linux_lsetxattr(void); }
308228	STD	{ int linux_fsetxattr(void); }
309229	STD	{ int linux_getxattr(void); }
310230	STD	{ int linux_lgetxattr(void); }
311231	STD	{ int linux_fgetxattr(void); }
312232	STD	{ int linux_listxattr(void); }
313233	STD	{ int linux_llistxattr(void); }
314234	STD	{ int linux_flistxattr(void); }
315235	STD	{ int linux_removexattr(void); }
316236	STD	{ int linux_lremovexattr(void); }
317237	STD	{ int linux_fremovexattr(void); }
318238	STD	{ int linux_tkill(int tid, int sig); }
319239	UNIMPL	linux_sendfile64
320240	UNIMPL	linux_futex
321241	UNIMPL	linux_sched_setaffinity
322242	UNIMPL	linux_sched_getaffinity
323243	STD	{ int linux_set_thread_area(void *entry); }
324244	UNIMPL	linux_get_thread_area
325245	UNIMPL	linux_io_setup
326246	UNIMPL	linux_io_destroy
327247	UNIMPL	linux_io_getevents
328248	UNIMPL	linux_io_submit
329249	UNIMPL	linux_io_cancel
330250	STD	{ int linux_fadvise64(void); }
331251	UNIMPL
332252	MNOPROTO { void sys_exit(int rval); } exit_group sys_exit_args void
333253	UNIMPL	linux_lookup_dcookie
334254	UNIMPL	linux_epoll_create
335255	UNIMPL	linux_epoll_ctl
336256	UNIMPL	linux_epoll_wait
337257	UNIMPL	linux_remap_file_pages
338258	UNIMPL	linux_set_tid_address
339259	UNIMPL	linux_timer_create
340260	UNIMPL	linux_timer_settime
341261	UNIMPL	linux_timer_gettime
342262	UNIMPL	linux_timer_getoverrun
343263	UNIMPL	linux_timer_delete
344264	UNIMPL	linux_clock_settime
345265	UNIMPL	linux_clock_gettime
346266	UNIMPL	linux_clock_getres
347267	UNIMPL	linux_clock_nanosleep
348