1 /* 2 * Copyright (c) 1993 Branko Lankester <branko (at) hacktic.nl> 3 * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs (at) 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_restart_syscall(); 36 int sys_setup(), sys_exit(), sys_fork(), sys_read(), sys_write(); 37 int sys_open(), sys_close(), sys_waitpid(), sys_creat(), sys_link(); 38 int sys_unlink(), sys_execve(), sys_chdir(), sys_time(), sys_mknod(); 39 int sys_chmod(), sys_chown(), sys_break(), sys_oldstat(); 40 int sys_lseek(), sys_getpid(), sys_mount(), sys_umount(), sys_umount2(); 41 int sys_setuid(), sys_getuid(), sys_stime(), sys_ptrace(); 42 int sys_alarm(), sys_oldfstat(), sys_pause(), sys_utime(); 43 int sys_stty(), sys_gtty(), sys_access(), sys_nice(), sys_ftime(); 44 int sys_sync(), sys_kill(), sys_rename(), sys_mkdir(), sys_rmdir(); 45 int sys_dup(), sys_pipe(), sys_times(), sys_prof(), sys_brk(); 46 int sys_setgid(), sys_getgid(), sys_signal(), sys_geteuid(); 47 int sys_getegid(), sys_acct(), sys_phys(), sys_lock(), sys_ioctl(); 48 int sys_fcntl(), sys_mpx(), sys_setpgid(), sys_ulimit(); 49 int sys_olduname(), sys_umask(), sys_chroot(), sys_ustat(); 50 int sys_dup2(), sys_getppid(), sys_getpgrp(), sys_setsid(); 51 int sys_sigaction(), sys_siggetmask(), sys_sigsetmask(); 52 int sys_setreuid(), sys_setregid(), sys_sigsuspend(); 53 int sys_sigpending(), sys_sethostname(), sys_setrlimit(); 54 int sys_getrlimit(), sys_getrusage(), sys_gettimeofday(); 55 int sys_settimeofday(), sys_getgroups(), sys_setgroups(); 56 int sys_setgroups32(), sys_getgroups32(); 57 int sys_oldselect(), sys_symlink(), sys_oldlstat(), sys_readlink(); 58 int sys_uselib(), sys_swapon(), sys_reboot(), sys_readdir(); 59 int sys_mmap(), sys_munmap(), sys_truncate(), sys_ftruncate(); 60 int sys_fchmod(), sys_fchown(), sys_getpriority(); 61 int sys_setpriority(), sys_profil(), sys_statfs(), sys_fstatfs(); 62 int sys_ioperm(), sys_socketcall(), sys_syslog(), sys_setitimer(); 63 int sys_getitimer(), sys_stat(), sys_lstat(), sys_fstat(); 64 int sys_uname(), sys_iopl(), sys_vhangup(), sys_idle(), sys_vm86(); 65 int sys_wait4(), sys_swapoff(), sys_ipc(), sys_sigreturn(); 66 int sys_fsync(), sys_clone(), sys_setdomainname(), sys_sysinfo(); 67 int sys_modify_ldt(), sys_adjtimex(), sys_mprotect(); 68 int sys_sigprocmask(), sys_create_module(), sys_init_module(); 69 int sys_delete_module(), sys_get_kernel_syms(), sys_quotactl(); 70 int sys_getpgid(), sys_fchdir(), sys_bdflush(); 71 int sys_sysfs(), sys_personality(), sys_afs_syscall(); 72 int sys_setfsuid(), sys_setfsgid(), sys_llseek(); 73 int sys_getdents(), sys_flock(), sys_msync(); 74 int sys_readv(), sys_writev(), sys_select(); 75 int sys_getsid(), sys_fdatasync(), sys_sysctl(); 76 int sys_mlock(), sys_munlock(), sys_mlockall(), sys_munlockall(), sys_madvise(); 77 int sys_sched_setparam(), sys_sched_getparam(); 78 int sys_sched_setscheduler(), sys_sched_getscheduler(), sys_sched_yield(); 79 int sys_sched_get_priority_max(), sys_sched_get_priority_min(); 80 int sys_sched_rr_get_interval(), sys_nanosleep(), sys_mremap(); 81 int sys_sendmsg(), sys_recvmsg(), sys_setresuid(), sys_setresgid(); 82 int sys_getresuid(), sys_getresgid(), sys_pread(), sys_pwrite(), sys_getcwd(); 83 int sys_sigaltstack(), sys_rt_sigprocmask(), sys_rt_sigaction(); 84 int sys_rt_sigpending(), sys_rt_sigsuspend(), sys_rt_sigqueueinfo(); 85 int sys_rt_sigtimedwait(), sys_prctl(), sys_poll(), sys_vfork(); 86 int sys_sendfile(), sys_old_mmap(), sys_stat64(), sys_lstat64(), sys_fstat64(); 87 int sys_truncate64(), sys_ftruncate64(), sys_pivotroot(); 88 int sys_getdents64(); 89 int sys_getpmsg(), sys_putpmsg(), sys_readahead(), sys_sendfile64(); 90 int sys_setxattr(), sys_fsetxattr(), sys_getxattr(), sys_fgetxattr(); 91 int sys_listxattr(), sys_flistxattr(), sys_removexattr(), sys_fremovexattr(); 92 int sys_sched_setaffinity(), sys_sched_getaffinity(), sys_futex(); 93 int sys_set_thread_area(), sys_get_thread_area(), sys_remap_file_pages(); 94 int sys_timer_create(), sys_timer_delete(), sys_timer_getoverrun(); 95 int sys_timer_gettime(), sys_timer_settime(), sys_clock_settime(); 96 int sys_clock_gettime(), sys_clock_getres(), sys_clock_nanosleep(); 97 int sys_semtimedop(), sys_statfs64(), sys_fstatfs64(), sys_tgkill(); 98 int sys_mq_open(), sys_mq_timedsend(), sys_mq_timedreceive(); 99 int sys_mq_notify(), sys_mq_getsetattr(); 100 int sys_epoll_create(), sys_epoll_ctl(), sys_epoll_wait(); 101 int sys_waitid(), sys_fadvise64(), sys_fadvise64_64(); 102 int sys_mbind(), sys_get_mempolicy(), sys_set_mempolicy(), sys_move_pages(); 103 int sys_arch_prctl(); 104 int sys_io_setup(), sys_io_submit(), sys_io_cancel(), sys_io_getevents(), sys_io_destroy(); 105 int sys_utimensat(), sys_epoll_pwait(), sys_signalfd(), sys_timerfd(), sys_eventfd(); 106 int sys_getcpu(); 107 int sys_fallocate(), sys_timerfd_create(), sys_timerfd_settime(), sys_timerfd_gettime(); 108 int sys_signalfd4(), sys_eventfd2(), sys_epoll_create1(), sys_dup3(), sys_pipe2(); 109 110 /* sys_socketcall subcalls */ 111 112 int sys_socket(), sys_bind(), sys_connect(), sys_listen(), sys_accept4(); 113 int sys_accept(), sys_getsockname(), sys_getpeername(), sys_socketpair(); 114 int sys_send(), sys_recv(), sys_sendto(), sys_recvfrom(); 115 int sys_shutdown(), sys_setsockopt(), sys_getsockopt(); 116 int sys_recvmmsg(); 117 118 /* *at syscalls */ 119 int sys_fchmodat(); 120 int sys_newfstatat(); 121 int sys_unlinkat(); 122 int sys_fchownat(); 123 int sys_openat(); 124 int sys_renameat(); 125 int sys_symlinkat(); 126 int sys_readlinkat(); 127 int sys_linkat(); 128 int sys_faccessat(); 129 int sys_mkdirat(); 130 int sys_mknodat(); 131 int sys_futimesat(); 132 133 /* new ones */ 134 int sys_query_module(); 135 int sys_poll(); 136 int sys_mincore(); 137 int sys_inotify_add_watch(); 138 int sys_inotify_rm_watch(); 139 int sys_inotify_init1(); 140 int sys_pselect6(); 141 int sys_ppoll(); 142 int sys_unshare(); 143 144 /* architecture-specific calls */ 145 #ifdef ALPHA 146 int sys_osf_select(); 147 int sys_osf_gettimeofday(); 148 int sys_osf_settimeofday(); 149 int sys_osf_getitimer(); 150 int sys_osf_setitimer(); 151 int sys_osf_getrusage(); 152 int sys_osf_wait4(); 153 int sys_osf_utimes(); 154 #endif 155 156 157 #ifndef SYS_waitid 158 # ifdef I386 159 # define SYS_waitid 284 160 # elif defined ALPHA 161 # define SYS_waitid 438 162 # elif defined ARM 163 # define SYS_waitid (NR_SYSCALL_BASE + 280) 164 # elif defined IA64 165 # define SYS_waitid 1270 166 # elif defined M68K 167 # define SYS_waitid 277 168 # elif defined POWERPC 169 # define SYS_waitid 272 170 # elif defined S390 || defined S390X 171 # define SYS_waitid 281 172 # elif defined SH64 173 # define SYS_waitid 312 174 # elif defined SH64 175 # define SYS_waitid 312 176 # elif defined SH 177 # define SYS_waitid 284 178 # elif defined SPARC || defined SPARC64 179 # define SYS_waitid 279 180 # elif defined X86_64 181 # define SYS_waitid 247 182 # endif 183 #endif 184 185 #if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA) && \ 186 !defined(__ARM_EABI__) 187 # ifdef IA64 188 /* 189 * IA64 syscall numbers (the only ones available from standard header 190 * files) are disjoint from IA32 syscall numbers. We need to define 191 * the IA32 socket call number here. 192 */ 193 # define SYS_socketcall 102 194 195 # undef SYS_socket 196 # undef SYS_bind 197 # undef SYS_connect 198 # undef SYS_listen 199 # undef SYS_accept 200 # undef SYS_getsockname 201 # undef SYS_getpeername 202 # undef SYS_socketpair 203 # undef SYS_send 204 # undef SYS_recv 205 # undef SYS_sendto 206 # undef SYS_recvfrom 207 # undef SYS_shutdown 208 # undef SYS_setsockopt 209 # undef SYS_getsockopt 210 # undef SYS_sendmsg 211 # undef SYS_recvmsg 212 # endif /* IA64 */ 213 # if defined(SPARC) || defined(SPARC64) 214 # define SYS_socket_subcall 353 215 # else 216 # define SYS_socket_subcall 400 217 # endif 218 #define SYS_sub_socket (SYS_socket_subcall + 1) 219 #define SYS_sub_bind (SYS_socket_subcall + 2) 220 #define SYS_sub_connect (SYS_socket_subcall + 3) 221 #define SYS_sub_listen (SYS_socket_subcall + 4) 222 #define SYS_sub_accept (SYS_socket_subcall + 5) 223 #define SYS_sub_getsockname (SYS_socket_subcall + 6) 224 #define SYS_sub_getpeername (SYS_socket_subcall + 7) 225 #define SYS_sub_socketpair (SYS_socket_subcall + 8) 226 #define SYS_sub_send (SYS_socket_subcall + 9) 227 #define SYS_sub_recv (SYS_socket_subcall + 10) 228 #define SYS_sub_sendto (SYS_socket_subcall + 11) 229 #define SYS_sub_recvfrom (SYS_socket_subcall + 12) 230 #define SYS_sub_shutdown (SYS_socket_subcall + 13) 231 #define SYS_sub_setsockopt (SYS_socket_subcall + 14) 232 #define SYS_sub_getsockopt (SYS_socket_subcall + 15) 233 #define SYS_sub_sendmsg (SYS_socket_subcall + 16) 234 #define SYS_sub_recvmsg (SYS_socket_subcall + 17) 235 #define SYS_sub_accept4 (SYS_socket_subcall + 18) 236 #define SYS_sub_recvmmsg (SYS_socket_subcall + 19) 237 238 #define SYS_socket_nsubcalls 20 239 #endif /* !(ALPHA || MIPS || HPPA) */ 240 241 /* sys_ipc subcalls */ 242 243 int sys_semget(), sys_semctl(), sys_semop(); 244 int sys_msgsnd(), sys_msgrcv(), sys_msgget(), sys_msgctl(); 245 int sys_shmat(), sys_shmdt(), sys_shmget(), sys_shmctl(); 246 247 #if !defined(ALPHA) && !defined(MIPS) && !defined(HPPA) && \ 248 !defined(__ARM_EABI__) 249 # ifdef IA64 250 /* 251 * IA64 syscall numbers (the only ones available from standard 252 * header files) are disjoint from IA32 syscall numbers. We need 253 * to define the IA32 socket call number here. Fortunately, this 254 * symbol, `SYS_ipc', is not used by any of the IA64 code so 255 * re-defining this symbol will not cause a problem. 256 */ 257 # undef SYS_ipc 258 # define SYS_ipc 117 259 # undef SYS_semop 260 # undef SYS_semget 261 # undef SYS_semctl 262 # undef SYS_semtimedop 263 # undef SYS_msgsnd 264 # undef SYS_msgrcv 265 # undef SYS_msgget 266 # undef SYS_msgctl 267 # undef SYS_shmat 268 # undef SYS_shmdt 269 # undef SYS_shmget 270 # undef SYS_shmctl 271 # endif /* IA64 */ 272 #define SYS_ipc_subcall ((SYS_socket_subcall)+(SYS_socket_nsubcalls)) 273 #define SYS_sub_semop (SYS_ipc_subcall + 1) 274 #define SYS_sub_semget (SYS_ipc_subcall + 2) 275 #define SYS_sub_semctl (SYS_ipc_subcall + 3) 276 #define SYS_sub_semtimedop (SYS_ipc_subcall + 4) 277 #define SYS_sub_msgsnd (SYS_ipc_subcall + 11) 278 #define SYS_sub_msgrcv (SYS_ipc_subcall + 12) 279 #define SYS_sub_msgget (SYS_ipc_subcall + 13) 280 #define SYS_sub_msgctl (SYS_ipc_subcall + 14) 281 #define SYS_sub_shmat (SYS_ipc_subcall + 21) 282 #define SYS_sub_shmdt (SYS_ipc_subcall + 22) 283 #define SYS_sub_shmget (SYS_ipc_subcall + 23) 284 #define SYS_sub_shmctl (SYS_ipc_subcall + 24) 285 286 #define SYS_ipc_nsubcalls 25 287 #endif /* !(ALPHA || MIPS || HPPA) */ 288 289 #if defined SYS_ipc_subcall && !defined SYS_ipc 290 # define SYS_ipc SYS_ipc_subcall 291 #endif 292 #if defined SYS_socket_subcall && !defined SYS_socketcall 293 # define SYS_socketcall SYS_socket_subcall 294 #endif 295 296 #ifdef IA64 297 /* 298 * IA64 syscall numbers (the only ones available from standard header 299 * files) are disjoint from IA32 syscall numbers. We need to define 300 * some IA32 specific syscalls here. 301 */ 302 # define SYS_fork 2 303 # define SYS_vfork 190 304 # define SYS32_exit 1 305 # define SYS_waitpid 7 306 # define SYS32_wait4 114 307 # define SYS32_execve 11 308 #endif /* IA64 */ 309 310 #if defined(ALPHA) || defined(IA64) 311 int sys_getpagesize(); 312 #endif 313 314 #ifdef ALPHA 315 int osf_statfs(), osf_fstatfs(); 316 #endif 317 318 #ifdef IA64 319 int sys_getpmsg(), sys_putpmsg(); /* STREAMS stuff */ 320 #endif 321 322 #ifdef MIPS 323 int sys_sysmips(); 324 #endif 325 326 int sys_setpgrp(), sys_gethostname(), sys_getdtablesize(), sys_utimes(); 327 int sys_capget(), sys_capset(); 328 329 #if defined M68K || defined SH 330 int sys_cacheflush(); 331 #endif 332 333 int sys_pread64(), sys_pwrite64(); 334 335 #ifdef POWERPC 336 int sys_subpage_prot(); 337 #endif 338 339 #ifdef BFIN 340 int sys_sram_alloc(); 341 int sys_cacheflush(); 342 #endif 343 344 #if defined SPARC || defined SPARC64 345 #include "sparc/syscall1.h" 346 int sys_execv(); 347 int sys_getpagesize(); 348 int sys_getmsg(), sys_putmsg(); 349 350 int sys_semsys(), sys_semctl(), sys_semget(); 351 #define SYS_semsys_subcall 200 352 #define SYS_semsys_nsubcalls 3 353 #define SYS_semctl (SYS_semsys_subcall + 0) 354 #define SYS_semget (SYS_semsys_subcall + 1) 355 #define SYS_semop (SYS_semsys_subcall + 2) 356 int sys_msgsys(), sys_msgget(), sys_msgctl(), sys_msgrcv(), sys_msgsnd(); 357 #define SYS_msgsys_subcall 203 358 #define SYS_msgsys_nsubcalls 4 359 #define SYS_msgget (SYS_msgsys_subcall + 0) 360 #define SYS_msgctl (SYS_msgsys_subcall + 1) 361 #define SYS_msgrcv (SYS_msgsys_subcall + 2) 362 #define SYS_msgsnd (SYS_msgsys_subcall + 3) 363 int sys_shmsys(), sys_shmat(), sys_shmctl(), sys_shmdt(), sys_shmget(); 364 #define SYS_shmsys_subcall 207 365 #define SYS_shmsys_nsubcalls 4 366 #define SYS_shmat (SYS_shmsys_subcall + 0) 367 #define SYS_shmctl (SYS_shmsys_subcall + 1) 368 #define SYS_shmdt (SYS_shmsys_subcall + 2) 369 #define SYS_shmget (SYS_shmsys_subcall + 3) 370 #endif 371