Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2000 Jeff Dike (jdike@karaya.com) |
| 3 | * Licensed under the GPL |
| 4 | */ |
| 5 | |
| 6 | #include "asm/unistd.h" |
| 7 | #include "sysdep/ptrace.h" |
| 8 | |
| 9 | typedef long syscall_handler_t(struct pt_regs); |
| 10 | |
| 11 | /* Not declared on x86, incompatible declarations on x86_64, so these have |
| 12 | * to go here rather than in sys_call_table.c |
| 13 | */ |
| 14 | extern syscall_handler_t sys_ptrace; |
| 15 | extern syscall_handler_t sys_rt_sigaction; |
| 16 | |
| 17 | extern syscall_handler_t old_mmap_i386; |
| 18 | |
| 19 | #define EXECUTE_SYSCALL(syscall, regs) \ |
| 20 | ((long (*)(struct syscall_args)) (*sys_call_table[syscall]))(SYSCALL_ARGS(®s->regs)) |
| 21 | |
| 22 | extern long sys_mmap2(unsigned long addr, unsigned long len, |
| 23 | unsigned long prot, unsigned long flags, |
| 24 | unsigned long fd, unsigned long pgoff); |
| 25 | |
| 26 | /* On i386 they choose a meaningless naming.*/ |
| 27 | #define __NR_kexec_load __NR_sys_kexec_load |
| 28 | |
| 29 | #define ARCH_SYSCALLS \ |
| 30 | [ __NR_waitpid ] = (syscall_handler_t *) sys_waitpid, \ |
| 31 | [ __NR_break ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 32 | [ __NR_oldstat ] = (syscall_handler_t *) sys_stat, \ |
| 33 | [ __NR_umount ] = (syscall_handler_t *) sys_oldumount, \ |
| 34 | [ __NR_stime ] = um_stime, \ |
| 35 | [ __NR_oldfstat ] = (syscall_handler_t *) sys_fstat, \ |
| 36 | [ __NR_stty ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 37 | [ __NR_gtty ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 38 | [ __NR_nice ] = (syscall_handler_t *) sys_nice, \ |
| 39 | [ __NR_ftime ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 40 | [ __NR_prof ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 41 | [ __NR_signal ] = (syscall_handler_t *) sys_signal, \ |
| 42 | [ __NR_lock ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 43 | [ __NR_mpx ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 44 | [ __NR_ulimit ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 45 | [ __NR_oldolduname ] = (syscall_handler_t *) sys_olduname, \ |
| 46 | [ __NR_sigaction ] = (syscall_handler_t *) sys_sigaction, \ |
| 47 | [ __NR_sgetmask ] = (syscall_handler_t *) sys_sgetmask, \ |
| 48 | [ __NR_ssetmask ] = (syscall_handler_t *) sys_ssetmask, \ |
| 49 | [ __NR_sigsuspend ] = (syscall_handler_t *) sys_sigsuspend, \ |
| 50 | [ __NR_sigpending ] = (syscall_handler_t *) sys_sigpending, \ |
| 51 | [ __NR_oldlstat ] = (syscall_handler_t *) sys_lstat, \ |
| 52 | [ __NR_readdir ] = old_readdir, \ |
| 53 | [ __NR_profil ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 54 | [ __NR_socketcall ] = (syscall_handler_t *) sys_socketcall, \ |
| 55 | [ __NR_olduname ] = (syscall_handler_t *) sys_uname, \ |
| 56 | [ __NR_iopl ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 57 | [ __NR_idle ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 58 | [ __NR_ipc ] = (syscall_handler_t *) sys_ipc, \ |
| 59 | [ __NR_sigreturn ] = (syscall_handler_t *) sys_sigreturn, \ |
| 60 | [ __NR_sigprocmask ] = (syscall_handler_t *) sys_sigprocmask, \ |
| 61 | [ __NR_bdflush ] = (syscall_handler_t *) sys_bdflush, \ |
| 62 | [ __NR__llseek ] = (syscall_handler_t *) sys_llseek, \ |
| 63 | [ __NR__newselect ] = (syscall_handler_t *) sys_select, \ |
| 64 | [ __NR_vm86 ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 65 | [ __NR_mmap ] = (syscall_handler_t *) old_mmap_i386, \ |
| 66 | [ __NR_ugetrlimit ] = (syscall_handler_t *) sys_getrlimit, \ |
| 67 | [ __NR_mmap2 ] = (syscall_handler_t *) sys_mmap2, \ |
| 68 | [ __NR_truncate64 ] = (syscall_handler_t *) sys_truncate64, \ |
| 69 | [ __NR_ftruncate64 ] = (syscall_handler_t *) sys_ftruncate64, \ |
| 70 | [ __NR_stat64 ] = (syscall_handler_t *) sys_stat64, \ |
| 71 | [ __NR_lstat64 ] = (syscall_handler_t *) sys_lstat64, \ |
| 72 | [ __NR_fstat64 ] = (syscall_handler_t *) sys_fstat64, \ |
| 73 | [ __NR_fcntl64 ] = (syscall_handler_t *) sys_fcntl64, \ |
| 74 | [ __NR_sendfile64 ] = (syscall_handler_t *) sys_sendfile64, \ |
| 75 | [ __NR_statfs64 ] = (syscall_handler_t *) sys_statfs64, \ |
| 76 | [ __NR_fstatfs64 ] = (syscall_handler_t *) sys_fstatfs64, \ |
| 77 | [ __NR_fadvise64_64 ] = (syscall_handler_t *) sys_fadvise64_64, \ |
| 78 | [ __NR_select ] = (syscall_handler_t *) old_select, \ |
| 79 | [ __NR_vm86old ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 80 | [ __NR_modify_ldt ] = (syscall_handler_t *) sys_modify_ldt, \ |
| 81 | [ __NR_lchown32 ] = (syscall_handler_t *) sys_lchown, \ |
| 82 | [ __NR_getuid32 ] = (syscall_handler_t *) sys_getuid, \ |
| 83 | [ __NR_getgid32 ] = (syscall_handler_t *) sys_getgid, \ |
| 84 | [ __NR_geteuid32 ] = (syscall_handler_t *) sys_geteuid, \ |
| 85 | [ __NR_getegid32 ] = (syscall_handler_t *) sys_getegid, \ |
| 86 | [ __NR_setreuid32 ] = (syscall_handler_t *) sys_setreuid, \ |
| 87 | [ __NR_setregid32 ] = (syscall_handler_t *) sys_setregid, \ |
| 88 | [ __NR_getgroups32 ] = (syscall_handler_t *) sys_getgroups, \ |
| 89 | [ __NR_setgroups32 ] = (syscall_handler_t *) sys_setgroups, \ |
| 90 | [ __NR_fchown32 ] = (syscall_handler_t *) sys_fchown, \ |
| 91 | [ __NR_setresuid32 ] = (syscall_handler_t *) sys_setresuid, \ |
| 92 | [ __NR_getresuid32 ] = (syscall_handler_t *) sys_getresuid, \ |
| 93 | [ __NR_setresgid32 ] = (syscall_handler_t *) sys_setresgid, \ |
| 94 | [ __NR_getresgid32 ] = (syscall_handler_t *) sys_getresgid, \ |
| 95 | [ __NR_chown32 ] = (syscall_handler_t *) sys_chown, \ |
| 96 | [ __NR_setuid32 ] = (syscall_handler_t *) sys_setuid, \ |
| 97 | [ __NR_setgid32 ] = (syscall_handler_t *) sys_setgid, \ |
| 98 | [ __NR_setfsuid32 ] = (syscall_handler_t *) sys_setfsuid, \ |
| 99 | [ __NR_setfsgid32 ] = (syscall_handler_t *) sys_setfsgid, \ |
| 100 | [ __NR_pivot_root ] = (syscall_handler_t *) sys_pivot_root, \ |
| 101 | [ __NR_mincore ] = (syscall_handler_t *) sys_mincore, \ |
| 102 | [ __NR_madvise ] = (syscall_handler_t *) sys_madvise, \ |
| 103 | [ 222 ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 104 | [ 223 ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 105 | [ __NR_set_thread_area ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 106 | [ __NR_get_thread_area ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 107 | [ 251 ] = (syscall_handler_t *) sys_ni_syscall, \ |
| 108 | [ 285 ] = (syscall_handler_t *) sys_ni_syscall, |
| 109 | |
| 110 | /* 222 doesn't yet have a name in include/asm-i386/unistd.h */ |
| 111 | |
| 112 | #define LAST_ARCH_SYSCALL 285 |
| 113 | |
| 114 | /* |
| 115 | * Overrides for Emacs so that we follow Linus's tabbing style. |
| 116 | * Emacs will notice this stuff at the end of the file and automatically |
| 117 | * adjust the settings for this buffer only. This must remain at the end |
| 118 | * of the file. |
| 119 | * --------------------------------------------------------------------------- |
| 120 | * Local variables: |
| 121 | * c-file-style: "linux" |
| 122 | * End: |
| 123 | */ |