blob: b7ad67cd08b111115f05a9c659dd849320369a51 [file] [log] [blame]
Wichert Akkerman76baf7c1999-02-19 00:21:36 +00001/*
2 * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
3 * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * $Id$
29 */
30
31#include "dummy.h"
32
33/* primary syscalls */
34
Roland McGrath79dcd7a2006-01-12 22:34:50 +000035int sys_restart_syscall();
Wichert Akkerman76baf7c1999-02-19 00:21:36 +000036int sys_setup(), sys_exit(), sys_fork(), sys_read(), sys_write();
37int sys_open(), sys_close(), sys_waitpid(), sys_creat(), sys_link();
38int sys_unlink(), sys_execve(), sys_chdir(), sys_time(), sys_mknod();
39int sys_chmod(), sys_chown(), sys_break(), sys_oldstat();
Wichert Akkermandacfb6e1999-06-03 14:21:07 +000040int sys_lseek(), sys_getpid(), sys_mount(), sys_umount(), sys_umount2();
Wichert Akkerman76baf7c1999-02-19 00:21:36 +000041int sys_setuid(), sys_getuid(), sys_stime(), sys_ptrace();
42int sys_alarm(), sys_oldfstat(), sys_pause(), sys_utime();
43int sys_stty(), sys_gtty(), sys_access(), sys_nice(), sys_ftime();
44int sys_sync(), sys_kill(), sys_rename(), sys_mkdir(), sys_rmdir();
45int sys_dup(), sys_pipe(), sys_times(), sys_prof(), sys_brk();
46int sys_setgid(), sys_getgid(), sys_signal(), sys_geteuid();
47int sys_getegid(), sys_acct(), sys_phys(), sys_lock(), sys_ioctl();
48int sys_fcntl(), sys_mpx(), sys_setpgid(), sys_ulimit();
49int sys_olduname(), sys_umask(), sys_chroot(), sys_ustat();
50int sys_dup2(), sys_getppid(), sys_getpgrp(), sys_setsid();
51int sys_sigaction(), sys_siggetmask(), sys_sigsetmask();
52int sys_setreuid(), sys_setregid(), sys_sigsuspend();
53int sys_sigpending(), sys_sethostname(), sys_setrlimit();
54int sys_getrlimit(), sys_getrusage(), sys_gettimeofday();
55int sys_settimeofday(), sys_getgroups(), sys_setgroups();
Roland McGratha44c82a2003-11-13 22:32:25 +000056int sys_setgroups32(), sys_getgroups32();
Wichert Akkerman76baf7c1999-02-19 00:21:36 +000057int sys_oldselect(), sys_symlink(), sys_oldlstat(), sys_readlink();
58int sys_uselib(), sys_swapon(), sys_reboot(), sys_readdir();
59int sys_mmap(), sys_munmap(), sys_truncate(), sys_ftruncate();
60int sys_fchmod(), sys_fchown(), sys_getpriority();
61int sys_setpriority(), sys_profil(), sys_statfs(), sys_fstatfs();
62int sys_ioperm(), sys_socketcall(), sys_syslog(), sys_setitimer();
63int sys_getitimer(), sys_stat(), sys_lstat(), sys_fstat();
64int sys_uname(), sys_iopl(), sys_vhangup(), sys_idle(), sys_vm86();
65int sys_wait4(), sys_swapoff(), sys_ipc(), sys_sigreturn();
66int sys_fsync(), sys_clone(), sys_setdomainname(), sys_sysinfo();
67int sys_modify_ldt(), sys_adjtimex(), sys_mprotect();
68int sys_sigprocmask(), sys_create_module(), sys_init_module();
69int sys_delete_module(), sys_get_kernel_syms(), sys_quotactl();
70int sys_getpgid(), sys_fchdir(), sys_bdflush();
71int sys_sysfs(), sys_personality(), sys_afs_syscall();
72int sys_setfsuid(), sys_setfsgid(), sys_llseek();
73int sys_getdents(), sys_flock(), sys_msync();
74int sys_readv(), sys_writev(), sys_select();
75int sys_getsid(), sys_fdatasync(), sys_sysctl();
Wichert Akkermanc7926982000-04-10 22:22:31 +000076int sys_mlock(), sys_munlock(), sys_mlockall(), sys_munlockall(), sys_madvise();
Wichert Akkerman76baf7c1999-02-19 00:21:36 +000077int sys_sched_setparam(), sys_sched_getparam();
78int sys_sched_setscheduler(), sys_sched_getscheduler(), sys_sched_yield();
79int sys_sched_get_priority_max(), sys_sched_get_priority_min();
80int sys_sched_rr_get_interval(), sys_nanosleep(), sys_mremap();
81int sys_sendmsg(), sys_recvmsg(), sys_setresuid(), sys_setresgid();
82int sys_getresuid(), sys_getresgid(), sys_pread(), sys_pwrite(), sys_getcwd();
Damir Shayhutdinov3087dd62011-05-12 16:57:40 +040083int sys_preadv(), sys_pwritev();
Wichert Akkerman76baf7c1999-02-19 00:21:36 +000084int sys_sigaltstack(), sys_rt_sigprocmask(), sys_rt_sigaction();
85int sys_rt_sigpending(), sys_rt_sigsuspend(), sys_rt_sigqueueinfo();
86int sys_rt_sigtimedwait(), sys_prctl(), sys_poll(), sys_vfork();
Ulrich Drepper75bb37c1999-12-24 07:59:50 +000087int sys_sendfile(), sys_old_mmap(), sys_stat64(), sys_lstat64(), sys_fstat64();
Wichert Akkermanc7926982000-04-10 22:22:31 +000088int sys_truncate64(), sys_ftruncate64(), sys_pivotroot();
Roland McGrath9677b3a2003-03-12 09:54:36 +000089int sys_getdents64();
Roland McGrath2c71e0d2002-12-15 23:58:19 +000090int sys_getpmsg(), sys_putpmsg(), sys_readahead(), sys_sendfile64();
91int sys_setxattr(), sys_fsetxattr(), sys_getxattr(), sys_fgetxattr();
92int sys_listxattr(), sys_flistxattr(), sys_removexattr(), sys_fremovexattr();
93int sys_sched_setaffinity(), sys_sched_getaffinity(), sys_futex();
Roland McGrath72c5b7b2003-03-05 04:08:00 +000094int sys_set_thread_area(), sys_get_thread_area(), sys_remap_file_pages();
Roland McGrath1e356792003-03-30 23:52:28 +000095int sys_timer_create(), sys_timer_delete(), sys_timer_getoverrun();
96int sys_timer_gettime(), sys_timer_settime(), sys_clock_settime();
97int sys_clock_gettime(), sys_clock_getres(), sys_clock_nanosleep();
Roland McGrathab147c52003-07-17 09:03:02 +000098int sys_semtimedop(), sys_statfs64(), sys_fstatfs64(), sys_tgkill();
Roland McGrathd4c85eb2004-04-16 21:48:44 +000099int sys_mq_open(), sys_mq_timedsend(), sys_mq_timedreceive();
100int sys_mq_notify(), sys_mq_getsetattr();
Roland McGrath93817bf2004-10-06 22:23:31 +0000101int sys_epoll_create(), sys_epoll_ctl(), sys_epoll_wait();
Roland McGrathdf13e8f2004-10-07 18:51:19 +0000102int sys_waitid(), sys_fadvise64(), sys_fadvise64_64();
Roland McGrath2c00a4a2007-07-24 01:52:58 +0000103int sys_mbind(), sys_get_mempolicy(), sys_set_mempolicy(), sys_move_pages();
Roland McGrath1f1c54a2005-02-02 04:16:52 +0000104int sys_arch_prctl();
Roland McGrath37b9f842005-05-09 08:02:00 +0000105int sys_io_setup(), sys_io_submit(), sys_io_cancel(), sys_io_getevents(), sys_io_destroy();
Roland McGrathe7c39672007-08-02 01:32:17 +0000106int sys_utimensat(), sys_epoll_pwait(), sys_signalfd(), sys_timerfd(), sys_eventfd();
Roland McGrathdb8319f2007-08-02 01:37:55 +0000107int sys_getcpu();
Roland McGrath30713be2008-05-20 04:56:22 +0000108int sys_fallocate(), sys_timerfd_create(), sys_timerfd_settime(), sys_timerfd_gettime();
Dmitry V. Levin4371b102008-11-10 22:53:02 +0000109int sys_signalfd4(), sys_eventfd2(), sys_epoll_create1(), sys_dup3(), sys_pipe2();
Wichert Akkerman76baf7c1999-02-19 00:21:36 +0000110
111/* sys_socketcall subcalls */
112
Paolo Bonzini705ff102009-08-14 12:34:05 +0200113int sys_socket(), sys_bind(), sys_connect(), sys_listen(), sys_accept4();
Wichert Akkerman76baf7c1999-02-19 00:21:36 +0000114int sys_accept(), sys_getsockname(), sys_getpeername(), sys_socketpair();
115int sys_send(), sys_recv(), sys_sendto(), sys_recvfrom();
116int sys_shutdown(), sys_setsockopt(), sys_getsockopt();
Andreas Schwab0873f292010-02-12 21:39:12 +0100117int sys_recvmmsg();
Wichert Akkerman76baf7c1999-02-19 00:21:36 +0000118
Dmitry V. Levin95ebf5a2006-10-13 20:25:12 +0000119/* *at syscalls */
120int sys_fchmodat();
121int sys_newfstatat();
122int sys_unlinkat();
123int sys_fchownat();
124int sys_openat();
125int sys_renameat();
126int sys_symlinkat();
127int sys_readlinkat();
128int sys_linkat();
129int sys_faccessat();
130int sys_mkdirat();
131int sys_mknodat();
132int sys_futimesat();
133
Wichert Akkerman76baf7c1999-02-19 00:21:36 +0000134/* new ones */
135int sys_query_module();
136int sys_poll();
Michal Ludvig10a88d02002-10-07 14:31:00 +0000137int sys_mincore();
Dmitry V. Levin95ebf5a2006-10-13 20:25:12 +0000138int sys_inotify_add_watch();
139int sys_inotify_rm_watch();
Mark Wielaardbab89402010-03-21 14:41:26 +0100140int sys_inotify_init1();
Dmitry V. Levin95ebf5a2006-10-13 20:25:12 +0000141int sys_pselect6();
142int sys_ppoll();
143int sys_unshare();
Dmitry V. Levind99e48c2011-10-11 17:07:05 +0000144int sys_tee();
145int sys_splice();
146int sys_vmsplice();
Wichert Akkerman76baf7c1999-02-19 00:21:36 +0000147
Wichert Akkerman0ae852b1999-11-18 17:12:55 +0000148/* architecture-specific calls */
149#ifdef ALPHA
Wichert Akkerman221f54f1999-11-18 17:26:45 +0000150int sys_osf_select();
151int sys_osf_gettimeofday();
152int sys_osf_settimeofday();
153int sys_osf_getitimer();
154int sys_osf_setitimer();
155int sys_osf_getrusage();
156int sys_osf_wait4();
157int sys_osf_utimes();
Wichert Akkerman0ae852b1999-11-18 17:12:55 +0000158#endif
159
160
Roland McGrathe69b6272005-06-07 23:21:28 +0000161#ifndef SYS_waitid
162# ifdef I386
163# define SYS_waitid 284
164# elif defined ALPHA
165# define SYS_waitid 438
166# elif defined ARM
167# define SYS_waitid (NR_SYSCALL_BASE + 280)
168# elif defined IA64
169# define SYS_waitid 1270
170# elif defined M68K
171# define SYS_waitid 277
172# elif defined POWERPC
173# define SYS_waitid 272
174# elif defined S390 || defined S390X
175# define SYS_waitid 281
176# elif defined SH64
177# define SYS_waitid 312
178# elif defined SH64
179# define SYS_waitid 312
180# elif defined SH
181# define SYS_waitid 284
182# elif defined SPARC || defined SPARC64
183# define SYS_waitid 279
184# elif defined X86_64
185# define SYS_waitid 247
186# endif
187#endif
188
Roland McGrathd94020f2008-08-25 03:15:43 +0000189#if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA) && \
190 !defined(__ARM_EABI__)
Wichert Akkerman7b3346b2001-10-09 23:47:38 +0000191# ifdef IA64
192/*
193 * IA64 syscall numbers (the only ones available from standard header
194 * files) are disjoint from IA32 syscall numbers. We need to define
195 * the IA32 socket call number here.
196 */
197# define SYS_socketcall 102
198
199# undef SYS_socket
200# undef SYS_bind
201# undef SYS_connect
202# undef SYS_listen
203# undef SYS_accept
204# undef SYS_getsockname
205# undef SYS_getpeername
206# undef SYS_socketpair
207# undef SYS_send
208# undef SYS_recv
209# undef SYS_sendto
210# undef SYS_recvfrom
211# undef SYS_shutdown
212# undef SYS_setsockopt
213# undef SYS_getsockopt
214# undef SYS_sendmsg
215# undef SYS_recvmsg
Roland McGrath09f0d1d2002-12-22 03:34:39 +0000216# endif /* IA64 */
Mike Frysinger330a8952011-02-19 15:48:52 -0500217# if defined(SPARC) || defined(SPARC64)
218# define SYS_socket_subcall 353
219# else
Roland McGrathfeb83812006-08-22 06:06:12 +0000220# define SYS_socket_subcall 400
Mike Frysinger330a8952011-02-19 15:48:52 -0500221# endif
Roland McGrathe69b6272005-06-07 23:21:28 +0000222#define SYS_sub_socket (SYS_socket_subcall + 1)
223#define SYS_sub_bind (SYS_socket_subcall + 2)
224#define SYS_sub_connect (SYS_socket_subcall + 3)
225#define SYS_sub_listen (SYS_socket_subcall + 4)
226#define SYS_sub_accept (SYS_socket_subcall + 5)
227#define SYS_sub_getsockname (SYS_socket_subcall + 6)
228#define SYS_sub_getpeername (SYS_socket_subcall + 7)
229#define SYS_sub_socketpair (SYS_socket_subcall + 8)
230#define SYS_sub_send (SYS_socket_subcall + 9)
231#define SYS_sub_recv (SYS_socket_subcall + 10)
232#define SYS_sub_sendto (SYS_socket_subcall + 11)
233#define SYS_sub_recvfrom (SYS_socket_subcall + 12)
234#define SYS_sub_shutdown (SYS_socket_subcall + 13)
235#define SYS_sub_setsockopt (SYS_socket_subcall + 14)
236#define SYS_sub_getsockopt (SYS_socket_subcall + 15)
237#define SYS_sub_sendmsg (SYS_socket_subcall + 16)
238#define SYS_sub_recvmsg (SYS_socket_subcall + 17)
Paolo Bonzini8a56b8a2009-08-14 12:34:06 +0200239#define SYS_sub_accept4 (SYS_socket_subcall + 18)
Andreas Schwab0873f292010-02-12 21:39:12 +0100240#define SYS_sub_recvmmsg (SYS_socket_subcall + 19)
Wichert Akkerman76baf7c1999-02-19 00:21:36 +0000241
Andreas Schwab0873f292010-02-12 21:39:12 +0100242#define SYS_socket_nsubcalls 20
Roland McGrathe69b6272005-06-07 23:21:28 +0000243#endif /* !(ALPHA || MIPS || HPPA) */
Wichert Akkerman76baf7c1999-02-19 00:21:36 +0000244
245/* sys_ipc subcalls */
246
Wichert Akkermane5be0de1999-12-14 10:46:18 +0000247int sys_semget(), sys_semctl(), sys_semop();
Wichert Akkerman76baf7c1999-02-19 00:21:36 +0000248int sys_msgsnd(), sys_msgrcv(), sys_msgget(), sys_msgctl();
249int sys_shmat(), sys_shmdt(), sys_shmget(), sys_shmctl();
250
Mike Frysinger330a8952011-02-19 15:48:52 -0500251#if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA) && \
Roland McGrathd94020f2008-08-25 03:15:43 +0000252 !defined(__ARM_EABI__)
Wichert Akkerman7b3346b2001-10-09 23:47:38 +0000253# ifdef IA64
254 /*
255 * IA64 syscall numbers (the only ones available from standard
256 * header files) are disjoint from IA32 syscall numbers. We need
257 * to define the IA32 socket call number here. Fortunately, this
258 * symbol, `SYS_ipc', is not used by any of the IA64 code so
259 * re-defining this symbol will not cause a problem.
260 */
261# undef SYS_ipc
262# define SYS_ipc 117
263# undef SYS_semop
264# undef SYS_semget
265# undef SYS_semctl
Roland McGrathf01185e2005-02-02 03:42:51 +0000266# undef SYS_semtimedop
Wichert Akkerman7b3346b2001-10-09 23:47:38 +0000267# undef SYS_msgsnd
268# undef SYS_msgrcv
269# undef SYS_msgget
270# undef SYS_msgctl
271# undef SYS_shmat
272# undef SYS_shmdt
273# undef SYS_shmget
274# undef SYS_shmctl
275# endif /* IA64 */
Roland McGrath2c71e0d2002-12-15 23:58:19 +0000276#define SYS_ipc_subcall ((SYS_socket_subcall)+(SYS_socket_nsubcalls))
Roland McGrathe69b6272005-06-07 23:21:28 +0000277#define SYS_sub_semop (SYS_ipc_subcall + 1)
278#define SYS_sub_semget (SYS_ipc_subcall + 2)
279#define SYS_sub_semctl (SYS_ipc_subcall + 3)
280#define SYS_sub_semtimedop (SYS_ipc_subcall + 4)
281#define SYS_sub_msgsnd (SYS_ipc_subcall + 11)
282#define SYS_sub_msgrcv (SYS_ipc_subcall + 12)
283#define SYS_sub_msgget (SYS_ipc_subcall + 13)
284#define SYS_sub_msgctl (SYS_ipc_subcall + 14)
285#define SYS_sub_shmat (SYS_ipc_subcall + 21)
286#define SYS_sub_shmdt (SYS_ipc_subcall + 22)
287#define SYS_sub_shmget (SYS_ipc_subcall + 23)
288#define SYS_sub_shmctl (SYS_ipc_subcall + 24)
Wichert Akkerman76baf7c1999-02-19 00:21:36 +0000289
290#define SYS_ipc_nsubcalls 25
Mike Frysinger330a8952011-02-19 15:48:52 -0500291#endif /* !(ALPHA || MIPS || HPPA) */
Roland McGrathe69b6272005-06-07 23:21:28 +0000292
293#if defined SYS_ipc_subcall && !defined SYS_ipc
294# define SYS_ipc SYS_ipc_subcall
295#endif
296#if defined SYS_socket_subcall && !defined SYS_socketcall
297# define SYS_socketcall SYS_socket_subcall
298#endif
Wichert Akkerman7b3346b2001-10-09 23:47:38 +0000299
300#ifdef IA64
301 /*
302 * IA64 syscall numbers (the only ones available from standard header
303 * files) are disjoint from IA32 syscall numbers. We need to define
304 * some IA32 specific syscalls here.
305 */
306# define SYS_fork 2
307# define SYS_vfork 190
308# define SYS32_exit 1
309# define SYS_waitpid 7
310# define SYS32_wait4 114
311# define SYS32_execve 11
312#endif /* IA64 */
Wichert Akkerman8b1b40c2000-02-03 21:58:30 +0000313
314#if defined(ALPHA) || defined(IA64)
315int sys_getpagesize();
316#endif
Wichert Akkerman76baf7c1999-02-19 00:21:36 +0000317
318#ifdef ALPHA
Wichert Akkermanc7926982000-04-10 22:22:31 +0000319int osf_statfs(), osf_fstatfs();
Wichert Akkerman8b1b40c2000-02-03 21:58:30 +0000320#endif
321
322#ifdef IA64
323int sys_getpmsg(), sys_putpmsg(); /* STREAMS stuff */
Wichert Akkerman76baf7c1999-02-19 00:21:36 +0000324#endif
325
Wichert Akkerman0cbfb322001-02-19 13:35:53 +0000326#ifdef MIPS
Wichert Akkermand6b92492001-04-07 21:37:12 +0000327int sys_sysmips();
Wichert Akkerman0cbfb322001-02-19 13:35:53 +0000328#endif
329
Wichert Akkerman76baf7c1999-02-19 00:21:36 +0000330int sys_setpgrp(), sys_gethostname(), sys_getdtablesize(), sys_utimes();
331int sys_capget(), sys_capset();
332
Carmelo AMOROSOf8e56502010-12-01 14:27:07 +0100333#if defined M68K || defined SH
Wichert Akkerman2e2553a1999-05-09 00:29:58 +0000334int sys_cacheflush();
335#endif
Roland McGrath542c2c62008-05-20 01:11:56 +0000336
337int sys_pread64(), sys_pwrite64();
Roland McGrath4a6f6522008-08-25 03:09:16 +0000338
339#ifdef POWERPC
340int sys_subpage_prot();
341#endif
Dmitry V. Levin87ea1f42008-11-10 22:21:41 +0000342
343#ifdef BFIN
344int sys_sram_alloc();
Mike Frysinger260e5712010-09-11 15:04:18 -0400345int sys_cacheflush();
Dmitry V. Levin87ea1f42008-11-10 22:21:41 +0000346#endif
Mike Frysinger330a8952011-02-19 15:48:52 -0500347
348#if defined SPARC || defined SPARC64
349#include "sparc/syscall1.h"
350int sys_execv();
351int sys_getpagesize();
352int sys_getmsg(), sys_putmsg();
353
354int sys_semsys(), sys_semctl(), sys_semget();
355#define SYS_semsys_subcall 200
356#define SYS_semsys_nsubcalls 3
357#define SYS_semctl (SYS_semsys_subcall + 0)
358#define SYS_semget (SYS_semsys_subcall + 1)
359#define SYS_semop (SYS_semsys_subcall + 2)
360int sys_msgsys(), sys_msgget(), sys_msgctl(), sys_msgrcv(), sys_msgsnd();
361#define SYS_msgsys_subcall 203
362#define SYS_msgsys_nsubcalls 4
363#define SYS_msgget (SYS_msgsys_subcall + 0)
364#define SYS_msgctl (SYS_msgsys_subcall + 1)
365#define SYS_msgrcv (SYS_msgsys_subcall + 2)
366#define SYS_msgsnd (SYS_msgsys_subcall + 3)
367int sys_shmsys(), sys_shmat(), sys_shmctl(), sys_shmdt(), sys_shmget();
368#define SYS_shmsys_subcall 207
369#define SYS_shmsys_nsubcalls 4
370#define SYS_shmat (SYS_shmsys_subcall + 0)
371#define SYS_shmctl (SYS_shmsys_subcall + 1)
372#define SYS_shmdt (SYS_shmsys_subcall + 2)
373#define SYS_shmget (SYS_shmsys_subcall + 3)
374#endif