/* * Copyright 2003 PathScale, Inc. * * Licensed under the GPL */ #ifndef __SYSDEP_X86_64_SYSCALLS_H__ #define __SYSDEP_X86_64_SYSCALLS_H__ #include #include typedef long syscall_handler_t(void); extern syscall_handler_t *ia32_sys_call_table[]; #define EXECUTE_SYSCALL(syscall, regs) \ (((long (*)(long, long, long, long, long, long)) \ (*sys_call_table[syscall]))(UPT_SYSCALL_ARG1(®s->regs), \ UPT_SYSCALL_ARG2(®s->regs), \ UPT_SYSCALL_ARG3(®s->regs), \ UPT_SYSCALL_ARG4(®s->regs), \ UPT_SYSCALL_ARG5(®s->regs), \ UPT_SYSCALL_ARG6(®s->regs))) extern long old_mmap(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff); extern syscall_handler_t wrap_sys_shmat; extern syscall_handler_t sys_modify_ldt; extern syscall_handler_t sys_arch_prctl; #define ARCH_SYSCALLS \ [ __NR_mmap ] = (syscall_handler_t *) old_mmap, \ [ __NR_select ] = (syscall_handler_t *) sys_select, \ [ __NR_mincore ] = (syscall_handler_t *) sys_mincore, \ [ __NR_madvise ] = (syscall_handler_t *) sys_madvise, \ [ __NR_shmget ] = (syscall_handler_t *) sys_shmget, \ [ __NR_shmat ] = (syscall_handler_t *) wrap_sys_shmat, \ [ __NR_shmctl ] = (syscall_handler_t *) sys_shmctl, \ [ __NR_semop ] = (syscall_handler_t *) sys_semop, \ [ __NR_semget ] = (syscall_handler_t *) sys_semget, \ [ __NR_semctl ] = (syscall_handler_t *) sys_semctl, \ [ __NR_shmdt ] = (syscall_handler_t *) sys_shmdt, \ [ __NR_msgget ] = (syscall_handler_t *) sys_msgget, \ [ __NR_msgsnd ] = (syscall_handler_t *) sys_msgsnd, \ [ __NR_msgrcv ] = (syscall_handler_t *) sys_msgrcv, \ [ __NR_msgctl ] = (syscall_handler_t *) sys_msgctl, \ [ __NR_pivot_root ] = (syscall_handler_t *) sys_pivot_root, \ [ __NR_tuxcall ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_security ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_epoll_ctl_old ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_epoll_wait_old ] = (syscall_handler_t *) sys_ni_syscall, \ [ __NR_modify_ldt ] = (syscall_handler_t *) sys_modify_ldt, \ [ __NR_arch_prctl ] = (syscall_handler_t *) sys_arch_prctl, \ [ __NR_socket ] = (syscall_handler_t *) sys_socket, \ [ __NR_connect ] = (syscall_handler_t *) sys_connect, \ [ __NR_accept ] = (syscall_handler_t *) sys_accept, \ [ __NR_recvfrom ] = (syscall_handler_t *) sys_recvfrom, \ [ __NR_recvmsg ] = (syscall_handler_t *) sys_recvmsg, \ [ __NR_sendmsg ] = (syscall_handler_t *) sys_sendmsg, \ [ __NR_bind ] = (syscall_handler_t *) sys_bind, \ [ __NR_listen ] = (syscall_handler_t *) sys_listen, \ [ __NR_getsockname ] = (syscall_handler_t *) sys_getsockname, \ [ __NR_getpeername ] = (syscall_handler_t *) sys_getpeername, \ [ __NR_socketpair ] = (syscall_handler_t *) sys_socketpair, \ [ __NR_sendto ] = (syscall_handler_t *) sys_sendto, \ [ __NR_shutdown ] = (syscall_handler_t *) sys_shutdown, \ [ __NR_setsockopt ] = (syscall_handler_t *) sys_setsockopt, \ [ __NR_getsockopt ] = (syscall_handler_t *) sys_getsockopt, \ [ __NR_iopl ] = (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_semtimedop ] = (syscall_handler_t *) sys_semtimedop, \ [ 251 ] = (syscall_handler_t *) sys_ni_syscall, #define LAST_ARCH_SYSCALL 251 #define NR_syscalls 1024 #endif /* * 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: */