systbls.S 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. /* $Id: systbls.S,v 1.81 2002/02/08 03:57:14 davem Exp $
  2. * systbls.S: System call entry point tables for OS compatibility.
  3. * The native Linux system call table lives here also.
  4. *
  5. * Copyright (C) 1995, 1996 David S. Miller (davem@caip.rutgers.edu)
  6. * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
  7. *
  8. * Based upon preliminary work which is:
  9. *
  10. * Copyright (C) 1995 Adrian M. Rodriguez (adrian@remus.rutgers.edu)
  11. */
  12. #include <linux/config.h>
  13. .text
  14. .align 4
  15. #ifdef CONFIG_COMPAT
  16. /* First, the 32-bit Linux native syscall table. */
  17. .globl sys_call_table32
  18. sys_call_table32:
  19. /*0*/ .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write
  20. /*5*/ .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link
  21. /*10*/ .word sys_unlink, sunos_execv, sys_chdir, sys32_chown16, sys32_mknod
  22. /*15*/ .word sys_chmod, sys32_lchown16, sparc_brk, sys32_perfctr, sys32_lseek
  23. /*20*/ .word sys_getpid, sys_capget, sys_capset, sys32_setuid16, sys32_getuid16
  24. /*25*/ .word compat_sys_time, sys_ptrace, sys_alarm, sys32_sigaltstack, sys32_pause
  25. /*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice
  26. .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile
  27. /*40*/ .word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid
  28. .word sys32_umount, sys32_setgid16, sys32_getgid16, sys32_signal, sys32_geteuid16
  29. /*50*/ .word sys32_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl
  30. .word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve
  31. /*60*/ .word sys32_umask, sys_chroot, compat_sys_newfstat, compat_sys_fstat64, sys_getpagesize
  32. .word sys32_msync, sys_vfork, sys32_pread64, sys32_pwrite64, sys_geteuid
  33. /*70*/ .word sys_getegid, sys_mmap, sys_setreuid, sys_munmap, sys_mprotect
  34. .word sys_madvise, sys_vhangup, sys32_truncate64, sys_mincore, sys32_getgroups16
  35. /*80*/ .word sys32_setgroups16, sys_getpgrp, sys32_setgroups, sys32_setitimer, sys32_ftruncate64
  36. .word sys32_swapon, sys32_getitimer, sys_setuid, sys32_sethostname, sys_setgid
  37. /*90*/ .word sys_dup2, sys_setfsuid, compat_sys_fcntl, sys32_select, sys_setfsgid
  38. .word sys_fsync, sys32_setpriority, sys_nis_syscall, sys_nis_syscall, sys_nis_syscall
  39. /*100*/ .word sys32_getpriority, sys32_rt_sigreturn, sys32_rt_sigaction, sys32_rt_sigprocmask, sys32_rt_sigpending
  40. .word compat_sys_rt_sigtimedwait, sys32_rt_sigqueueinfo, sys32_rt_sigsuspend, sys_setresuid, sys_getresuid
  41. /*110*/ .word sys_setresgid, sys_getresgid, sys_setregid, sys_nis_syscall, sys_nis_syscall
  42. .word sys32_getgroups, sys32_gettimeofday, sys32_getrusage, sys_nis_syscall, sys_getcwd
  43. /*120*/ .word compat_sys_readv, compat_sys_writev, sys32_settimeofday, sys32_fchown16, sys_fchmod
  44. .word sys_nis_syscall, sys32_setreuid16, sys32_setregid16, sys_rename, sys_truncate
  45. /*130*/ .word sys_ftruncate, sys_flock, compat_sys_lstat64, sys_nis_syscall, sys_nis_syscall
  46. .word sys_nis_syscall, sys32_mkdir, sys_rmdir, sys32_utimes, compat_sys_stat64
  47. /*140*/ .word sys32_sendfile64, sys_nis_syscall, sys32_futex, sys_gettid, compat_sys_getrlimit
  48. .word compat_sys_setrlimit, sys_pivot_root, sys32_prctl, sys_pciconfig_read, sys_pciconfig_write
  49. /*150*/ .word sys_nis_syscall, sys_inotify_init, sys_inotify_add_watch, sys_poll, sys_getdents64
  50. .word compat_sys_fcntl64, sys_inotify_rm_watch, compat_sys_statfs, compat_sys_fstatfs, sys_oldumount
  51. /*160*/ .word compat_sys_sched_setaffinity, compat_sys_sched_getaffinity, sys32_getdomainname, sys32_setdomainname, sys_nis_syscall
  52. .word sys_quotactl, sys_set_tid_address, compat_sys_mount, sys_ustat, sys32_setxattr
  53. /*170*/ .word sys32_lsetxattr, sys32_fsetxattr, sys_getxattr, sys_lgetxattr, compat_sys_getdents
  54. .word sys_setsid, sys_fchdir, sys32_fgetxattr, sys_listxattr, sys_llistxattr
  55. /*180*/ .word sys32_flistxattr, sys_removexattr, sys_lremovexattr, compat_sys_sigpending, sys_ni_syscall
  56. .word sys32_setpgid, sys32_fremovexattr, sys32_tkill, sys32_exit_group, sparc64_newuname
  57. /*190*/ .word sys32_init_module, sparc64_personality, sys_remap_file_pages, sys32_epoll_create, sys32_epoll_ctl
  58. .word sys32_epoll_wait, sys32_ioprio_set, sys_getppid, sys32_sigaction, sys_sgetmask
  59. /*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir
  60. .word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64
  61. /*210*/ .word sys32_fadvise64_64, sys32_tgkill, sys32_waitpid, sys_swapoff, sys32_sysinfo
  62. .word sys32_ipc, sys32_sigreturn, sys_clone, sys32_ioprio_get, sys32_adjtimex
  63. /*220*/ .word sys32_sigprocmask, sys_ni_syscall, sys32_delete_module, sys_ni_syscall, sys32_getpgid
  64. .word sys32_bdflush, sys32_sysfs, sys_nis_syscall, sys32_setfsuid16, sys32_setfsgid16
  65. /*230*/ .word sys32_select, compat_sys_time, sys_nis_syscall, compat_sys_stime, compat_sys_statfs64
  66. .word compat_sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys32_mlockall
  67. /*240*/ .word sys_munlockall, sys32_sched_setparam, sys32_sched_getparam, sys32_sched_setscheduler, sys32_sched_getscheduler
  68. .word sys_sched_yield, sys32_sched_get_priority_max, sys32_sched_get_priority_min, sys32_sched_rr_get_interval, compat_sys_nanosleep
  69. /*250*/ .word sys32_mremap, sys32_sysctl, sys32_getsid, sys_fdatasync, sys32_nfsservctl
  70. .word sys_ni_syscall, sys32_clock_settime, compat_sys_clock_gettime, compat_sys_clock_getres, sys32_clock_nanosleep
  71. /*260*/ .word compat_sys_sched_getaffinity, compat_sys_sched_setaffinity, sys32_timer_settime, compat_sys_timer_gettime, sys_timer_getoverrun
  72. .word sys_timer_delete, sys32_timer_create, sys_ni_syscall, compat_sys_io_setup, sys_io_destroy
  73. /*270*/ .word sys32_io_submit, sys_io_cancel, compat_sys_io_getevents, sys32_mq_open, sys_mq_unlink
  74. .word compat_sys_mq_timedsend, compat_sys_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, compat_sys_waitid
  75. /*280*/ .word sys_ni_syscall, sys_add_key, sys_request_key, sys_keyctl
  76. #endif /* CONFIG_COMPAT */
  77. /* Now the 64-bit native Linux syscall table. */
  78. .align 4
  79. .globl sys_call_table64, sys_call_table
  80. sys_call_table64:
  81. sys_call_table:
  82. /*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write
  83. /*5*/ .word sys_open, sys_close, sys_wait4, sys_creat, sys_link
  84. /*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod
  85. /*15*/ .word sys_chmod, sys_lchown, sparc_brk, sys_perfctr, sys_lseek
  86. /*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid
  87. /*25*/ .word sys_nis_syscall, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall
  88. /*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice
  89. .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64
  90. /*40*/ .word sys_newlstat, sys_dup, sys_pipe, sys_times, sys_nis_syscall
  91. .word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid
  92. /*50*/ .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl
  93. .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve
  94. /*60*/ .word sys_umask, sys_chroot, sys_newfstat, sys_stat64, sys_getpagesize
  95. .word sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_nis_syscall
  96. /*70*/ .word sys_nis_syscall, sys_mmap, sys_nis_syscall, sys64_munmap, sys_mprotect
  97. .word sys_madvise, sys_vhangup, sys_nis_syscall, sys_mincore, sys_getgroups
  98. /*80*/ .word sys_setgroups, sys_getpgrp, sys_nis_syscall, sys_setitimer, sys_nis_syscall
  99. .word sys_swapon, sys_getitimer, sys_nis_syscall, sys_sethostname, sys_nis_syscall
  100. /*90*/ .word sys_dup2, sys_nis_syscall, sys_fcntl, sys_select, sys_nis_syscall
  101. .word sys_fsync, sys_setpriority, sys_socket, sys_connect, sys_accept
  102. /*100*/ .word sys_getpriority, sys_rt_sigreturn, sys_rt_sigaction, sys_rt_sigprocmask, sys_rt_sigpending
  103. .word sys_rt_sigtimedwait, sys_rt_sigqueueinfo, sys_rt_sigsuspend, sys_setresuid, sys_getresuid
  104. /*110*/ .word sys_setresgid, sys_getresgid, sys_nis_syscall, sys_recvmsg, sys_sendmsg
  105. .word sys_nis_syscall, sys_gettimeofday, sys_getrusage, sys_getsockopt, sys_getcwd
  106. /*120*/ .word sys_readv, sys_writev, sys_settimeofday, sys_fchown, sys_fchmod
  107. .word sys_recvfrom, sys_setreuid, sys_setregid, sys_rename, sys_truncate
  108. /*130*/ .word sys_ftruncate, sys_flock, sys_lstat64, sys_sendto, sys_shutdown
  109. .word sys_socketpair, sys_mkdir, sys_rmdir, sys_utimes, sys_stat64
  110. /*140*/ .word sys_sendfile64, sys_getpeername, sys_futex, sys_gettid, sys_getrlimit
  111. .word sys_setrlimit, sys_pivot_root, sys_prctl, sys_pciconfig_read, sys_pciconfig_write
  112. /*150*/ .word sys_getsockname, sys_inotify_init, sys_inotify_add_watch, sys_poll, sys_getdents64
  113. .word sys_nis_syscall, sys_inotify_rm_watch, sys_statfs, sys_fstatfs, sys_oldumount
  114. /*160*/ .word sys_sched_setaffinity, sys_sched_getaffinity, sys_getdomainname, sys_setdomainname, sys_utrap_install
  115. .word sys_quotactl, sys_set_tid_address, sys_mount, sys_ustat, sys_setxattr
  116. /*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents
  117. .word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr
  118. /*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall
  119. .word sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sparc64_newuname
  120. /*190*/ .word sys_init_module, sparc64_personality, sys_remap_file_pages, sys_epoll_create, sys_epoll_ctl
  121. .word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask
  122. /*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall
  123. .word sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64
  124. /*210*/ .word sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo
  125. .word sys_ipc, sys_nis_syscall, sys_clone, sys_ioprio_get, sys_adjtimex
  126. /*220*/ .word sys_nis_syscall, sys_ni_syscall, sys_delete_module, sys_ni_syscall, sys_getpgid
  127. .word sys_bdflush, sys_sysfs, sys_nis_syscall, sys_setfsuid, sys_setfsgid
  128. /*230*/ .word sys_select, sys_nis_syscall, sys_nis_syscall, sys_stime, sys_statfs64
  129. .word sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall
  130. /*240*/ .word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler
  131. .word sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep
  132. /*250*/ .word sys64_mremap, sys_sysctl, sys_getsid, sys_fdatasync, sys_nfsservctl
  133. .word sys_ni_syscall, sys_clock_settime, sys_clock_gettime, sys_clock_getres, sys_clock_nanosleep
  134. /*260*/ .word sys_sched_getaffinity, sys_sched_setaffinity, sys_timer_settime, sys_timer_gettime, sys_timer_getoverrun
  135. .word sys_timer_delete, sys_timer_create, sys_ni_syscall, sys_io_setup, sys_io_destroy
  136. /*270*/ .word sys_io_submit, sys_io_cancel, sys_io_getevents, sys_mq_open, sys_mq_unlink
  137. .word sys_mq_timedsend, sys_mq_timedreceive, sys_mq_notify, sys_mq_getsetattr, sys_waitid
  138. /*280*/ .word sys_nis_syscall, sys_add_key, sys_request_key, sys_keyctl
  139. #if defined(CONFIG_SUNOS_EMUL) || defined(CONFIG_SOLARIS_EMUL) || \
  140. defined(CONFIG_SOLARIS_EMUL_MODULE)
  141. /* Now the 32-bit SunOS syscall table. */
  142. .align 4
  143. .globl sunos_sys_table
  144. sunos_sys_table:
  145. /*0*/ .word sunos_indir, sys32_exit, sys_fork
  146. .word sunos_read, sunos_write, sunos_open
  147. .word sys_close, sunos_wait4, sys_creat
  148. .word sys_link, sys_unlink, sunos_execv
  149. .word sys_chdir, sunos_nosys, sys32_mknod
  150. .word sys_chmod, sys32_lchown16, sunos_brk
  151. .word sunos_nosys, sys32_lseek, sunos_getpid
  152. .word sunos_nosys, sunos_nosys, sunos_nosys
  153. .word sunos_getuid, sunos_nosys, sys_ptrace
  154. .word sunos_nosys, sunos_nosys, sunos_nosys
  155. .word sunos_nosys, sunos_nosys, sunos_nosys
  156. .word sys_access, sunos_nosys, sunos_nosys
  157. .word sys_sync, sys_kill, compat_sys_newstat
  158. .word sunos_nosys, compat_sys_newlstat, sys_dup
  159. .word sys_pipe, sunos_nosys, sunos_nosys
  160. .word sunos_nosys, sunos_nosys, sunos_getgid
  161. .word sunos_nosys, sunos_nosys
  162. /*50*/ .word sunos_nosys, sys_acct, sunos_nosys
  163. .word sunos_mctl, sunos_ioctl, sys_reboot
  164. .word sunos_nosys, sys_symlink, sys_readlink
  165. .word sys32_execve, sys_umask, sys_chroot
  166. .word compat_sys_newfstat, sunos_nosys, sys_getpagesize
  167. .word sys_msync, sys_vfork, sunos_nosys
  168. .word sunos_nosys, sunos_sbrk, sunos_sstk
  169. .word sunos_mmap, sunos_vadvise, sys_munmap
  170. .word sys_mprotect, sys_madvise, sys_vhangup
  171. .word sunos_nosys, sys_mincore, sys32_getgroups16
  172. .word sys32_setgroups16, sys_getpgrp, sunos_setpgrp
  173. .word compat_sys_setitimer, sunos_nosys, sys_swapon
  174. .word compat_sys_getitimer, sys_gethostname, sys_sethostname
  175. .word sunos_getdtablesize, sys_dup2, sunos_nop
  176. .word compat_sys_fcntl, sunos_select, sunos_nop
  177. .word sys_fsync, sys32_setpriority, sys32_socket
  178. .word sys32_connect, sunos_accept
  179. /*100*/ .word sys_getpriority, sunos_send, sunos_recv
  180. .word sunos_nosys, sys32_bind, sunos_setsockopt
  181. .word sys32_listen, sunos_nosys, sunos_sigaction
  182. .word sunos_sigblock, sunos_sigsetmask, sys_sigpause
  183. .word sys32_sigstack, sys32_recvmsg, sys32_sendmsg
  184. .word sunos_nosys, sys32_gettimeofday, compat_sys_getrusage
  185. .word sunos_getsockopt, sunos_nosys, sunos_readv
  186. .word sunos_writev, sys32_settimeofday, sys32_fchown16
  187. .word sys_fchmod, sys32_recvfrom, sys32_setreuid16
  188. .word sys32_setregid16, sys_rename, sys_truncate
  189. .word sys_ftruncate, sys_flock, sunos_nosys
  190. .word sys32_sendto, sys32_shutdown, sys32_socketpair
  191. .word sys_mkdir, sys_rmdir, sys32_utimes
  192. .word sys32_sigreturn, sunos_nosys, sys32_getpeername
  193. .word sunos_gethostid, sunos_nosys, compat_sys_getrlimit
  194. .word compat_sys_setrlimit, sunos_killpg, sunos_nosys
  195. .word sunos_nosys, sunos_nosys
  196. /*150*/ .word sys32_getsockname, sunos_nosys, sunos_nosys
  197. .word sys_poll, sunos_nosys, sunos_nosys
  198. .word sunos_getdirentries, compat_sys_statfs, compat_sys_fstatfs
  199. .word sys_oldumount, sunos_nosys, sunos_nosys
  200. .word sys_getdomainname, sys_setdomainname
  201. .word sunos_nosys, sys_quotactl, sunos_nosys
  202. .word sunos_nosys, sys_ustat, sunos_semsys
  203. .word sunos_nosys, sunos_shmsys, sunos_audit
  204. .word sunos_nosys, sunos_getdents, sys_setsid
  205. .word sys_fchdir, sunos_nosys, sunos_nosys
  206. .word sunos_nosys, sunos_nosys, sunos_nosys
  207. .word sunos_nosys, compat_sys_sigpending, sunos_nosys
  208. .word sys_setpgid, sunos_pathconf, sunos_fpathconf
  209. .word sunos_sysconf, sunos_uname, sunos_nosys
  210. .word sunos_nosys, sunos_nosys, sunos_nosys
  211. .word sunos_nosys, sunos_nosys, sunos_nosys
  212. .word sunos_nosys, sunos_nosys, sunos_nosys
  213. /*200*/ .word sunos_nosys, sunos_nosys, sunos_nosys
  214. .word sunos_nosys, sunos_nosys, sunos_nosys
  215. .word sunos_nosys, sunos_nosys, sunos_nosys
  216. .word sunos_nosys, sunos_nosys, sunos_nosys
  217. .word sunos_nosys, sunos_nosys, sunos_nosys
  218. .word sunos_nosys, sunos_nosys, sunos_nosys
  219. .word sunos_nosys, sunos_nosys, sunos_nosys
  220. .word sunos_nosys, sunos_nosys, sunos_nosys
  221. .word sunos_nosys, sunos_nosys, sunos_nosys
  222. .word sunos_nosys, sunos_nosys, sunos_nosys
  223. .word sunos_nosys, sunos_nosys, sunos_nosys
  224. .word sunos_nosys, sunos_nosys, sunos_nosys
  225. .word sunos_nosys, sunos_nosys, sunos_nosys
  226. .word sunos_nosys, sunos_nosys, sunos_nosys
  227. .word sunos_nosys, sunos_nosys, sunos_nosys
  228. .word sunos_nosys, sunos_nosys, sunos_nosys
  229. .word sunos_nosys, sunos_nosys
  230. /*250*/ .word sunos_nosys, sunos_nosys, sunos_nosys
  231. .word sunos_nosys, sunos_nosys, sunos_nosys
  232. .word sunos_nosys, sunos_nosys, sunos_nosys
  233. .word sunos_nosys, sunos_nosys, sunos_nosys
  234. .word sunos_nosys, sunos_nosys, sunos_nosys
  235. .word sunos_nosys, sunos_nosys, sunos_nosys
  236. .word sunos_nosys, sunos_nosys, sunos_nosys
  237. .word sunos_nosys, sunos_nosys, sunos_nosys
  238. .word sunos_nosys, sunos_nosys, sunos_nosys
  239. .word sunos_nosys, sunos_nosys, sunos_nosys
  240. .word sunos_nosys, sunos_nosys, sunos_nosys
  241. .word sunos_nosys
  242. #endif