Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 1 | /* |
| 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 | |
| 35 | int sys_setup(), sys_exit(), sys_fork(), sys_read(), sys_write(); |
| 36 | int sys_open(), sys_close(), sys_waitpid(), sys_creat(), sys_link(); |
| 37 | int sys_unlink(), sys_execve(), sys_chdir(), sys_time(), sys_mknod(); |
| 38 | int sys_chmod(), sys_chown(), sys_break(), sys_oldstat(); |
Wichert Akkerman | dacfb6e | 1999-06-03 14:21:07 +0000 | [diff] [blame] | 39 | int sys_lseek(), sys_getpid(), sys_mount(), sys_umount(), sys_umount2(); |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 40 | int sys_setuid(), sys_getuid(), sys_stime(), sys_ptrace(); |
| 41 | int sys_alarm(), sys_oldfstat(), sys_pause(), sys_utime(); |
| 42 | int sys_stty(), sys_gtty(), sys_access(), sys_nice(), sys_ftime(); |
| 43 | int sys_sync(), sys_kill(), sys_rename(), sys_mkdir(), sys_rmdir(); |
| 44 | int sys_dup(), sys_pipe(), sys_times(), sys_prof(), sys_brk(); |
| 45 | int sys_setgid(), sys_getgid(), sys_signal(), sys_geteuid(); |
| 46 | int sys_getegid(), sys_acct(), sys_phys(), sys_lock(), sys_ioctl(); |
| 47 | int sys_fcntl(), sys_mpx(), sys_setpgid(), sys_ulimit(); |
| 48 | int sys_olduname(), sys_umask(), sys_chroot(), sys_ustat(); |
| 49 | int sys_dup2(), sys_getppid(), sys_getpgrp(), sys_setsid(); |
| 50 | int sys_sigaction(), sys_siggetmask(), sys_sigsetmask(); |
| 51 | int sys_setreuid(), sys_setregid(), sys_sigsuspend(); |
| 52 | int sys_sigpending(), sys_sethostname(), sys_setrlimit(); |
| 53 | int sys_getrlimit(), sys_getrusage(), sys_gettimeofday(); |
| 54 | int sys_settimeofday(), sys_getgroups(), sys_setgroups(); |
Roland McGrath | a44c82a | 2003-11-13 22:32:25 +0000 | [diff] [blame] | 55 | int sys_setgroups32(), sys_getgroups32(); |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 56 | int sys_oldselect(), sys_symlink(), sys_oldlstat(), sys_readlink(); |
| 57 | int sys_uselib(), sys_swapon(), sys_reboot(), sys_readdir(); |
| 58 | int sys_mmap(), sys_munmap(), sys_truncate(), sys_ftruncate(); |
| 59 | int sys_fchmod(), sys_fchown(), sys_getpriority(); |
| 60 | int sys_setpriority(), sys_profil(), sys_statfs(), sys_fstatfs(); |
| 61 | int sys_ioperm(), sys_socketcall(), sys_syslog(), sys_setitimer(); |
| 62 | int sys_getitimer(), sys_stat(), sys_lstat(), sys_fstat(); |
| 63 | int sys_uname(), sys_iopl(), sys_vhangup(), sys_idle(), sys_vm86(); |
| 64 | int sys_wait4(), sys_swapoff(), sys_ipc(), sys_sigreturn(); |
| 65 | int sys_fsync(), sys_clone(), sys_setdomainname(), sys_sysinfo(); |
| 66 | int sys_modify_ldt(), sys_adjtimex(), sys_mprotect(); |
| 67 | int sys_sigprocmask(), sys_create_module(), sys_init_module(); |
| 68 | int sys_delete_module(), sys_get_kernel_syms(), sys_quotactl(); |
| 69 | int sys_getpgid(), sys_fchdir(), sys_bdflush(); |
| 70 | int sys_sysfs(), sys_personality(), sys_afs_syscall(); |
| 71 | int sys_setfsuid(), sys_setfsgid(), sys_llseek(); |
| 72 | int sys_getdents(), sys_flock(), sys_msync(); |
| 73 | int sys_readv(), sys_writev(), sys_select(); |
| 74 | int sys_getsid(), sys_fdatasync(), sys_sysctl(); |
Wichert Akkerman | c792698 | 2000-04-10 22:22:31 +0000 | [diff] [blame] | 75 | int sys_mlock(), sys_munlock(), sys_mlockall(), sys_munlockall(), sys_madvise(); |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 76 | int sys_sched_setparam(), sys_sched_getparam(); |
| 77 | int sys_sched_setscheduler(), sys_sched_getscheduler(), sys_sched_yield(); |
| 78 | int sys_sched_get_priority_max(), sys_sched_get_priority_min(); |
| 79 | int sys_sched_rr_get_interval(), sys_nanosleep(), sys_mremap(); |
| 80 | int sys_sendmsg(), sys_recvmsg(), sys_setresuid(), sys_setresgid(); |
| 81 | int sys_getresuid(), sys_getresgid(), sys_pread(), sys_pwrite(), sys_getcwd(); |
| 82 | int sys_sigaltstack(), sys_rt_sigprocmask(), sys_rt_sigaction(); |
| 83 | int sys_rt_sigpending(), sys_rt_sigsuspend(), sys_rt_sigqueueinfo(); |
| 84 | int sys_rt_sigtimedwait(), sys_prctl(), sys_poll(), sys_vfork(); |
Ulrich Drepper | 75bb37c | 1999-12-24 07:59:50 +0000 | [diff] [blame] | 85 | int sys_sendfile(), sys_old_mmap(), sys_stat64(), sys_lstat64(), sys_fstat64(); |
Wichert Akkerman | c792698 | 2000-04-10 22:22:31 +0000 | [diff] [blame] | 86 | int sys_truncate64(), sys_ftruncate64(), sys_pivotroot(); |
Roland McGrath | 9677b3a | 2003-03-12 09:54:36 +0000 | [diff] [blame] | 87 | int sys_getdents64(); |
Roland McGrath | 2c71e0d | 2002-12-15 23:58:19 +0000 | [diff] [blame] | 88 | int sys_getpmsg(), sys_putpmsg(), sys_readahead(), sys_sendfile64(); |
| 89 | int sys_setxattr(), sys_fsetxattr(), sys_getxattr(), sys_fgetxattr(); |
| 90 | int sys_listxattr(), sys_flistxattr(), sys_removexattr(), sys_fremovexattr(); |
| 91 | int sys_sched_setaffinity(), sys_sched_getaffinity(), sys_futex(); |
Roland McGrath | 72c5b7b | 2003-03-05 04:08:00 +0000 | [diff] [blame] | 92 | int sys_set_thread_area(), sys_get_thread_area(), sys_remap_file_pages(); |
Roland McGrath | 1e35679 | 2003-03-30 23:52:28 +0000 | [diff] [blame] | 93 | int sys_timer_create(), sys_timer_delete(), sys_timer_getoverrun(); |
| 94 | int sys_timer_gettime(), sys_timer_settime(), sys_clock_settime(); |
| 95 | int sys_clock_gettime(), sys_clock_getres(), sys_clock_nanosleep(); |
Roland McGrath | ab147c5 | 2003-07-17 09:03:02 +0000 | [diff] [blame] | 96 | int sys_semtimedop(), sys_statfs64(), sys_fstatfs64(), sys_tgkill(); |
Roland McGrath | d4c85eb | 2004-04-16 21:48:44 +0000 | [diff] [blame] | 97 | int sys_mq_open(), sys_mq_timedsend(), sys_mq_timedreceive(); |
| 98 | int sys_mq_notify(), sys_mq_getsetattr(); |
Roland McGrath | 93817bf | 2004-10-06 22:23:31 +0000 | [diff] [blame] | 99 | int sys_epoll_create(), sys_epoll_ctl(), sys_epoll_wait(); |
Roland McGrath | df13e8f | 2004-10-07 18:51:19 +0000 | [diff] [blame] | 100 | int sys_waitid(), sys_fadvise64(), sys_fadvise64_64(); |
Roland McGrath | b10a335 | 2004-10-07 18:53:12 +0000 | [diff] [blame] | 101 | int sys_mbind(), sys_get_mempolicy(), sys_set_mempolicy(); |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 102 | |
| 103 | /* sys_socketcall subcalls */ |
| 104 | |
| 105 | int sys_socket(), sys_bind(), sys_connect(), sys_listen(); |
| 106 | int sys_accept(), sys_getsockname(), sys_getpeername(), sys_socketpair(); |
| 107 | int sys_send(), sys_recv(), sys_sendto(), sys_recvfrom(); |
| 108 | int sys_shutdown(), sys_setsockopt(), sys_getsockopt(); |
| 109 | |
| 110 | /* new ones */ |
| 111 | int sys_query_module(); |
| 112 | int sys_poll(); |
Michal Ludvig | 10a88d0 | 2002-10-07 14:31:00 +0000 | [diff] [blame] | 113 | int sys_mincore(); |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 114 | |
Wichert Akkerman | 0ae852b | 1999-11-18 17:12:55 +0000 | [diff] [blame] | 115 | /* architecture-specific calls */ |
| 116 | #ifdef ALPHA |
Wichert Akkerman | 221f54f | 1999-11-18 17:26:45 +0000 | [diff] [blame] | 117 | int sys_osf_select(); |
| 118 | int sys_osf_gettimeofday(); |
| 119 | int sys_osf_settimeofday(); |
| 120 | int sys_osf_getitimer(); |
| 121 | int sys_osf_setitimer(); |
| 122 | int sys_osf_getrusage(); |
| 123 | int sys_osf_wait4(); |
| 124 | int sys_osf_utimes(); |
Wichert Akkerman | 0ae852b | 1999-11-18 17:12:55 +0000 | [diff] [blame] | 125 | #endif |
| 126 | |
| 127 | |
Michal Ludvig | 0e03550 | 2002-09-23 15:41:01 +0000 | [diff] [blame] | 128 | #if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA) && !defined(X86_64) |
Wichert Akkerman | 7b3346b | 2001-10-09 23:47:38 +0000 | [diff] [blame] | 129 | # ifdef IA64 |
| 130 | /* |
| 131 | * IA64 syscall numbers (the only ones available from standard header |
| 132 | * files) are disjoint from IA32 syscall numbers. We need to define |
| 133 | * the IA32 socket call number here. |
| 134 | */ |
| 135 | # define SYS_socketcall 102 |
| 136 | |
| 137 | # undef SYS_socket |
| 138 | # undef SYS_bind |
| 139 | # undef SYS_connect |
| 140 | # undef SYS_listen |
| 141 | # undef SYS_accept |
| 142 | # undef SYS_getsockname |
| 143 | # undef SYS_getpeername |
| 144 | # undef SYS_socketpair |
| 145 | # undef SYS_send |
| 146 | # undef SYS_recv |
| 147 | # undef SYS_sendto |
| 148 | # undef SYS_recvfrom |
| 149 | # undef SYS_shutdown |
| 150 | # undef SYS_setsockopt |
| 151 | # undef SYS_getsockopt |
| 152 | # undef SYS_sendmsg |
| 153 | # undef SYS_recvmsg |
Roland McGrath | 09f0d1d | 2002-12-22 03:34:39 +0000 | [diff] [blame] | 154 | # endif /* IA64 */ |
Roland McGrath | bc78376 | 2003-01-14 23:40:52 +0000 | [diff] [blame] | 155 | # define SYS_socket_subcall 300 |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 156 | #define SYS_socket (SYS_socket_subcall + 1) |
| 157 | #define SYS_bind (SYS_socket_subcall + 2) |
| 158 | #define SYS_connect (SYS_socket_subcall + 3) |
| 159 | #define SYS_listen (SYS_socket_subcall + 4) |
| 160 | #define SYS_accept (SYS_socket_subcall + 5) |
| 161 | #define SYS_getsockname (SYS_socket_subcall + 6) |
| 162 | #define SYS_getpeername (SYS_socket_subcall + 7) |
| 163 | #define SYS_socketpair (SYS_socket_subcall + 8) |
| 164 | #define SYS_send (SYS_socket_subcall + 9) |
| 165 | #define SYS_recv (SYS_socket_subcall + 10) |
| 166 | #define SYS_sendto (SYS_socket_subcall + 11) |
| 167 | #define SYS_recvfrom (SYS_socket_subcall + 12) |
| 168 | #define SYS_shutdown (SYS_socket_subcall + 13) |
| 169 | #define SYS_setsockopt (SYS_socket_subcall + 14) |
| 170 | #define SYS_getsockopt (SYS_socket_subcall + 15) |
Wichert Akkerman | 0ae852b | 1999-11-18 17:12:55 +0000 | [diff] [blame] | 171 | #define SYS_sendmsg (SYS_socket_subcall + 16) |
| 172 | #define SYS_recvmsg (SYS_socket_subcall + 17) |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 173 | |
Wichert Akkerman | 0ae852b | 1999-11-18 17:12:55 +0000 | [diff] [blame] | 174 | #define SYS_socket_nsubcalls 18 |
Michal Ludvig | 0e03550 | 2002-09-23 15:41:01 +0000 | [diff] [blame] | 175 | #endif /* !(ALPHA || MIPS || HPPA || X86_64) */ |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 176 | |
| 177 | /* sys_ipc subcalls */ |
| 178 | |
Wichert Akkerman | e5be0de | 1999-12-14 10:46:18 +0000 | [diff] [blame] | 179 | int sys_semget(), sys_semctl(), sys_semop(); |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 180 | int sys_msgsnd(), sys_msgrcv(), sys_msgget(), sys_msgctl(); |
| 181 | int sys_shmat(), sys_shmdt(), sys_shmget(), sys_shmctl(); |
| 182 | |
Michal Ludvig | 0e03550 | 2002-09-23 15:41:01 +0000 | [diff] [blame] | 183 | #if !defined(ALPHA) && !defined(MIPS) && !defined(SPARC) && !defined(HPPA) && !defined(X86_64) |
Wichert Akkerman | 7b3346b | 2001-10-09 23:47:38 +0000 | [diff] [blame] | 184 | # ifdef IA64 |
| 185 | /* |
| 186 | * IA64 syscall numbers (the only ones available from standard |
| 187 | * header files) are disjoint from IA32 syscall numbers. We need |
| 188 | * to define the IA32 socket call number here. Fortunately, this |
| 189 | * symbol, `SYS_ipc', is not used by any of the IA64 code so |
| 190 | * re-defining this symbol will not cause a problem. |
| 191 | */ |
| 192 | # undef SYS_ipc |
| 193 | # define SYS_ipc 117 |
| 194 | # undef SYS_semop |
| 195 | # undef SYS_semget |
| 196 | # undef SYS_semctl |
Roland McGrath | f01185e | 2005-02-02 03:42:51 +0000 | [diff] [blame^] | 197 | # undef SYS_semtimedop |
Wichert Akkerman | 7b3346b | 2001-10-09 23:47:38 +0000 | [diff] [blame] | 198 | # undef SYS_msgsnd |
| 199 | # undef SYS_msgrcv |
| 200 | # undef SYS_msgget |
| 201 | # undef SYS_msgctl |
| 202 | # undef SYS_shmat |
| 203 | # undef SYS_shmdt |
| 204 | # undef SYS_shmget |
| 205 | # undef SYS_shmctl |
| 206 | # endif /* IA64 */ |
Roland McGrath | 2c71e0d | 2002-12-15 23:58:19 +0000 | [diff] [blame] | 207 | #define SYS_ipc_subcall ((SYS_socket_subcall)+(SYS_socket_nsubcalls)) |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 208 | #define SYS_semop (SYS_ipc_subcall + 1) |
| 209 | #define SYS_semget (SYS_ipc_subcall + 2) |
| 210 | #define SYS_semctl (SYS_ipc_subcall + 3) |
Roland McGrath | 58f38db | 2003-04-08 01:46:51 +0000 | [diff] [blame] | 211 | #define SYS_semtimedop (SYS_ipc_subcall + 4) |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 212 | #define SYS_msgsnd (SYS_ipc_subcall + 11) |
| 213 | #define SYS_msgrcv (SYS_ipc_subcall + 12) |
| 214 | #define SYS_msgget (SYS_ipc_subcall + 13) |
| 215 | #define SYS_msgctl (SYS_ipc_subcall + 14) |
| 216 | #define SYS_shmat (SYS_ipc_subcall + 21) |
| 217 | #define SYS_shmdt (SYS_ipc_subcall + 22) |
| 218 | #define SYS_shmget (SYS_ipc_subcall + 23) |
| 219 | #define SYS_shmctl (SYS_ipc_subcall + 24) |
| 220 | |
| 221 | #define SYS_ipc_nsubcalls 25 |
Michal Ludvig | 0e03550 | 2002-09-23 15:41:01 +0000 | [diff] [blame] | 222 | #endif /* !(ALPHA || MIPS || SPARC || HPPA || X86_64) */ |
Wichert Akkerman | 7b3346b | 2001-10-09 23:47:38 +0000 | [diff] [blame] | 223 | |
| 224 | #ifdef IA64 |
| 225 | /* |
| 226 | * IA64 syscall numbers (the only ones available from standard header |
| 227 | * files) are disjoint from IA32 syscall numbers. We need to define |
| 228 | * some IA32 specific syscalls here. |
| 229 | */ |
| 230 | # define SYS_fork 2 |
| 231 | # define SYS_vfork 190 |
| 232 | # define SYS32_exit 1 |
| 233 | # define SYS_waitpid 7 |
| 234 | # define SYS32_wait4 114 |
| 235 | # define SYS32_execve 11 |
| 236 | #endif /* IA64 */ |
Wichert Akkerman | 8b1b40c | 2000-02-03 21:58:30 +0000 | [diff] [blame] | 237 | |
| 238 | #if defined(ALPHA) || defined(IA64) |
| 239 | int sys_getpagesize(); |
| 240 | #endif |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 241 | |
| 242 | #ifdef ALPHA |
Wichert Akkerman | c792698 | 2000-04-10 22:22:31 +0000 | [diff] [blame] | 243 | int osf_statfs(), osf_fstatfs(); |
Wichert Akkerman | 8b1b40c | 2000-02-03 21:58:30 +0000 | [diff] [blame] | 244 | #endif |
| 245 | |
| 246 | #ifdef IA64 |
| 247 | int sys_getpmsg(), sys_putpmsg(); /* STREAMS stuff */ |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 248 | #endif |
| 249 | |
Wichert Akkerman | 0cbfb32 | 2001-02-19 13:35:53 +0000 | [diff] [blame] | 250 | #ifdef MIPS |
Wichert Akkerman | d6b9249 | 2001-04-07 21:37:12 +0000 | [diff] [blame] | 251 | int sys_sysmips(); |
Wichert Akkerman | 0cbfb32 | 2001-02-19 13:35:53 +0000 | [diff] [blame] | 252 | #endif |
| 253 | |
Wichert Akkerman | 76baf7c | 1999-02-19 00:21:36 +0000 | [diff] [blame] | 254 | int sys_setpgrp(), sys_gethostname(), sys_getdtablesize(), sys_utimes(); |
| 255 | int sys_capget(), sys_capset(); |
| 256 | |
Wichert Akkerman | 2e2553a | 1999-05-09 00:29:58 +0000 | [diff] [blame] | 257 | #ifdef M68K |
| 258 | int sys_cacheflush(); |
| 259 | #endif |