syscalls.h 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. * Copyright 2003 PathScale, Inc.
  3. *
  4. * Licensed under the GPL
  5. */
  6. #ifndef __SYSDEP_X86_64_SYSCALLS_H__
  7. #define __SYSDEP_X86_64_SYSCALLS_H__
  8. #include <linux/msg.h>
  9. #include <linux/shm.h>
  10. typedef long syscall_handler_t(void);
  11. extern syscall_handler_t *ia32_sys_call_table[];
  12. #define EXECUTE_SYSCALL(syscall, regs) \
  13. (((long (*)(long, long, long, long, long, long)) \
  14. (*sys_call_table[syscall]))(UPT_SYSCALL_ARG1(&regs->regs), \
  15. UPT_SYSCALL_ARG2(&regs->regs), \
  16. UPT_SYSCALL_ARG3(&regs->regs), \
  17. UPT_SYSCALL_ARG4(&regs->regs), \
  18. UPT_SYSCALL_ARG5(&regs->regs), \
  19. UPT_SYSCALL_ARG6(&regs->regs)))
  20. extern long old_mmap(unsigned long addr, unsigned long len,
  21. unsigned long prot, unsigned long flags,
  22. unsigned long fd, unsigned long pgoff);
  23. extern syscall_handler_t wrap_sys_shmat;
  24. extern syscall_handler_t sys_modify_ldt;
  25. extern syscall_handler_t sys_arch_prctl;
  26. #define ARCH_SYSCALLS \
  27. [ __NR_mmap ] = (syscall_handler_t *) old_mmap, \
  28. [ __NR_select ] = (syscall_handler_t *) sys_select, \
  29. [ __NR_mincore ] = (syscall_handler_t *) sys_mincore, \
  30. [ __NR_madvise ] = (syscall_handler_t *) sys_madvise, \
  31. [ __NR_shmget ] = (syscall_handler_t *) sys_shmget, \
  32. [ __NR_shmat ] = (syscall_handler_t *) wrap_sys_shmat, \
  33. [ __NR_shmctl ] = (syscall_handler_t *) sys_shmctl, \
  34. [ __NR_semop ] = (syscall_handler_t *) sys_semop, \
  35. [ __NR_semget ] = (syscall_handler_t *) sys_semget, \
  36. [ __NR_semctl ] = (syscall_handler_t *) sys_semctl, \
  37. [ __NR_shmdt ] = (syscall_handler_t *) sys_shmdt, \
  38. [ __NR_msgget ] = (syscall_handler_t *) sys_msgget, \
  39. [ __NR_msgsnd ] = (syscall_handler_t *) sys_msgsnd, \
  40. [ __NR_msgrcv ] = (syscall_handler_t *) sys_msgrcv, \
  41. [ __NR_msgctl ] = (syscall_handler_t *) sys_msgctl, \
  42. [ __NR_pivot_root ] = (syscall_handler_t *) sys_pivot_root, \
  43. [ __NR_tuxcall ] = (syscall_handler_t *) sys_ni_syscall, \
  44. [ __NR_security ] = (syscall_handler_t *) sys_ni_syscall, \
  45. [ __NR_epoll_ctl_old ] = (syscall_handler_t *) sys_ni_syscall, \
  46. [ __NR_epoll_wait_old ] = (syscall_handler_t *) sys_ni_syscall, \
  47. [ __NR_modify_ldt ] = (syscall_handler_t *) sys_modify_ldt, \
  48. [ __NR_arch_prctl ] = (syscall_handler_t *) sys_arch_prctl, \
  49. [ __NR_socket ] = (syscall_handler_t *) sys_socket, \
  50. [ __NR_connect ] = (syscall_handler_t *) sys_connect, \
  51. [ __NR_accept ] = (syscall_handler_t *) sys_accept, \
  52. [ __NR_recvfrom ] = (syscall_handler_t *) sys_recvfrom, \
  53. [ __NR_recvmsg ] = (syscall_handler_t *) sys_recvmsg, \
  54. [ __NR_sendmsg ] = (syscall_handler_t *) sys_sendmsg, \
  55. [ __NR_bind ] = (syscall_handler_t *) sys_bind, \
  56. [ __NR_listen ] = (syscall_handler_t *) sys_listen, \
  57. [ __NR_getsockname ] = (syscall_handler_t *) sys_getsockname, \
  58. [ __NR_getpeername ] = (syscall_handler_t *) sys_getpeername, \
  59. [ __NR_socketpair ] = (syscall_handler_t *) sys_socketpair, \
  60. [ __NR_sendto ] = (syscall_handler_t *) sys_sendto, \
  61. [ __NR_shutdown ] = (syscall_handler_t *) sys_shutdown, \
  62. [ __NR_setsockopt ] = (syscall_handler_t *) sys_setsockopt, \
  63. [ __NR_getsockopt ] = (syscall_handler_t *) sys_getsockopt, \
  64. [ __NR_iopl ] = (syscall_handler_t *) sys_ni_syscall, \
  65. [ __NR_set_thread_area ] = (syscall_handler_t *) sys_ni_syscall, \
  66. [ __NR_get_thread_area ] = (syscall_handler_t *) sys_ni_syscall, \
  67. [ __NR_semtimedop ] = (syscall_handler_t *) sys_semtimedop, \
  68. [ 251 ] = (syscall_handler_t *) sys_ni_syscall,
  69. #define LAST_ARCH_SYSCALL 251
  70. #define NR_syscalls 1024
  71. #endif