syscalls.h 5.7 KB

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