/* * Copyright (C) 2000 Jeff Dike (jdike@karaya.com) * Licensed under the GPL */ #include "asm/unistd.h" #include "sysdep/ptrace.h" typedef long syscall_handler_t(struct pt_regs); /* Not declared on x86, incompatible declarations on x86_64, so these have * to go here rather than in sys_call_table.c */ extern syscall_handler_t sys_ptrace; extern syscall_handler_t sys_rt_sigaction; extern syscall_handler_t old_mmap_i386; #define EXECUTE_SYSCALL(syscall, regs) \ ((long (*)(struct syscall_args)) (*sys_call_table[syscall]))(SYSCALL_ARGS(®s->regs)) extern long sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff); #define ARCH_SYSCALLS \ [ __NR_waitpid ] = (syscall_handler_t *) sys_waitpid, \ [ __NR_break ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_oldstat ] = (syscall_handler_t *) sys_stat, \ [ __NR_umount ] = (syscall_handler_t *) sys_oldumount, \ [ __NR_stime ] = um_stime, \ [ __NR_oldfstat ] = (syscall_handler_t *) sys_fstat, \ [ __NR_stty ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_gtty ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_nice ] = (syscall_handler_t *) sys_nice, \ [ __NR_ftime ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_prof ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_signal ] = (syscall_handler_t *) sys_signal, \ [ __NR_lock ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_mpx ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_ulimit ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_oldolduname ] = (syscall_handler_t *) sys_olduname, \ [ __NR_sigaction ] = (syscall_handler_t *) sys_sigaction, \ [ __NR_sgetmask ] = (syscall_handler_t *) sys_sgetmask, \ [ __NR_ssetmask ] = (syscall_handler_t *) sys_ssetmask, \ [ __NR_sigsuspend ] = (syscall_handler_t *) sys_sigsuspend, \ [ __NR_sigpending ] = (syscall_handler_t *) sys_sigpending, \ [ __NR_oldlstat ] = (syscall_handler_t *) sys_lstat, \ [ __NR_readdir ] = old_readdir, \ [ __NR_profil ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_socketcall ] = (syscall_handler_t *) sys_socketcall, \ [ __NR_olduname ] = (syscall_handler_t *) sys_uname, \ [ __NR_iopl ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_idle ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_ipc ] = (syscall_handler_t *) sys_ipc, \ [ __NR_sigreturn ] = (syscall_handler_t *) sys_sigreturn, \ [ __NR_sigprocmask ] = (syscall_handler_t *) sys_sigprocmask, \ [ __NR_bdflush ] = (syscall_handler_t *) sys_bdflush, \ [ __NR__llseek ] = (syscall_handler_t *) sys_llseek, \ [ __NR__newselect ] = (syscall_handler_t *) sys_select, \ [ __NR_vm86 ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_mmap ] = (syscall_handler_t *) old_mmap_i386, \ [ __NR_ugetrlimit ] = (syscall_handler_t *) sys_getrlimit, \ [ __NR_mmap2 ] = (syscall_handler_t *) sys_mmap2, \ [ __NR_truncate64 ] = (syscall_handler_t *) sys_truncate64, \ [ __NR_ftruncate64 ] = (syscall_handler_t *) sys_ftruncate64, \ [ __NR_stat64 ] = (syscall_handler_t *) sys_stat64, \ [ __NR_lstat64 ] = (syscall_handler_t *) sys_lstat64, \ [ __NR_fstat64 ] = (syscall_handler_t *) sys_fstat64, \ [ __NR_fcntl64 ] = (syscall_handler_t *) sys_fcntl64, \ [ __NR_sendfile64 ] = (syscall_handler_t *) sys_sendfile64, \ [ __NR_statfs64 ] = (syscall_handler_t *) sys_statfs64, \ [ __NR_fstatfs64 ] = (syscall_handler_t *) sys_fstatfs64, \ [ __NR_fadvise64_64 ] = (syscall_handler_t *) sys_fadvise64_64, \ [ __NR_select ] = (syscall_handler_t *) old_select, \ [ __NR_vm86old ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_modify_ldt ] = (syscall_handler_t *) sys_modify_ldt, \ [ __NR_lchown32 ] = (syscall_handler_t *) sys_lchown, \ [ __NR_getuid32 ] = (syscall_handler_t *) sys_getuid, \ [ __NR_getgid32 ] = (syscall_handler_t *) sys_getgid, \ [ __NR_geteuid32 ] = (syscall_handler_t *) sys_geteuid, \ [ __NR_getegid32 ] = (syscall_handler_t *) sys_getegid, \ [ __NR_setreuid32 ] = (syscall_handler_t *) sys_setreuid, \ [ __NR_setregid32 ] = (syscall_handler_t *) sys_setregid, \ [ __NR_getgroups32 ] = (syscall_handler_t *) sys_getgroups, \ [ __NR_setgroups32 ] = (syscall_handler_t *) sys_setgroups, \ [ __NR_fchown32 ] = (syscall_handler_t *) sys_fchown, \ [ __NR_setresuid32 ] = (syscall_handler_t *) sys_setresuid, \ [ __NR_getresuid32 ] = (syscall_handler_t *) sys_getresuid, \ [ __NR_setresgid32 ] = (syscall_handler_t *) sys_setresgid, \ [ __NR_getresgid32 ] = (syscall_handler_t *) sys_getresgid, \ [ __NR_chown32 ] = (syscall_handler_t *) sys_chown, \ [ __NR_setuid32 ] = (syscall_handler_t *) sys_setuid, \ [ __NR_setgid32 ] = (syscall_handler_t *) sys_setgid, \ [ __NR_setfsuid32 ] = (syscall_handler_t *) sys_setfsuid, \ [ __NR_setfsgid32 ] = (syscall_handler_t *) sys_setfsgid, \ [ __NR_pivot_root ] = (syscall_handler_t *) sys_pivot_root, \ [ __NR_mincore ] = (syscall_handler_t *) sys_mincore, \ [ __NR_madvise ] = (syscall_handler_t *) sys_madvise, \ [ 222 ] = (syscall_handler_t *) sys_ni_syscall, \ [ 223 ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_set_thread_area ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_get_thread_area ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_fadvise64 ] = (syscall_handler_t *) sys_fadvise64, \ [ 251 ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_remap_file_pages ] = (syscall_handler_t *) sys_remap_file_pages, \ [ __NR_utimes ] = (syscall_handler_t *) sys_utimes, \ [ __NR_vserver ] = (syscall_handler_t *) sys_ni_syscall, /* 222 doesn't yet have a name in include/asm-i386/unistd.h */ #define LAST_ARCH_SYSCALL __NR_vserver /* * Overrides for Emacs so that we follow Linus's tabbing style. * Emacs will notice this stuff at the end of the file and automatically * adjust the settings for this buffer only. This must remain at the end * of the file. * --------------------------------------------------------------------------- * Local variables: * c-file-style: "linux" * End: */