systbl.S 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. /*
  2. * This file contains the table of syscall-handling functions.
  3. * Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
  4. *
  5. * Largely rewritten by Cort Dougan (cort@cs.nmt.edu)
  6. * and Paul Mackerras.
  7. *
  8. * Adapted for iSeries by Mike Corrigan (mikejc@us.ibm.com)
  9. * PPC64 updates by Dave Engebretsen (engebret@us.ibm.com)
  10. *
  11. * This program is free software; you can redistribute it and/or
  12. * modify it under the terms of the GNU General Public License
  13. * as published by the Free Software Foundation; either version
  14. * 2 of the License, or (at your option) any later version.
  15. */
  16. #include <linux/config.h>
  17. #include <asm/ppc_asm.h>
  18. #ifdef CONFIG_PPC64
  19. #define SYSCALL(func) .llong .sys_##func,.sys_##func
  20. #define COMPAT_SYS(func) .llong .sys_##func,.compat_sys_##func
  21. #define PPC_SYS(func) .llong .ppc_##func,.ppc_##func
  22. #define OLDSYS(func) .llong .sys_ni_syscall,.sys_ni_syscall
  23. #define SYS32ONLY(func) .llong .sys_ni_syscall,.compat_sys_##func
  24. #define SYSX(f, f3264, f32) .llong .f,.f3264
  25. #else
  26. #define SYSCALL(func) .long sys_##func
  27. #define COMPAT_SYS(func) .long sys_##func
  28. #define PPC_SYS(func) .long ppc_##func
  29. #define OLDSYS(func) .long sys_##func
  30. #define SYS32ONLY(func) .long sys_##func
  31. #define SYSX(f, f3264, f32) .long f32
  32. #endif
  33. #ifdef CONFIG_PPC64
  34. #define sys_sigpending sys_ni_syscall
  35. #define sys_old_getrlimit sys_ni_syscall
  36. #endif
  37. _GLOBAL(sys_call_table)
  38. SYSCALL(restart_syscall)
  39. SYSCALL(exit)
  40. PPC_SYS(fork)
  41. SYSCALL(read)
  42. SYSCALL(write)
  43. COMPAT_SYS(open)
  44. SYSCALL(close)
  45. COMPAT_SYS(waitpid)
  46. COMPAT_SYS(creat)
  47. SYSCALL(link)
  48. SYSCALL(unlink)
  49. COMPAT_SYS(execve)
  50. SYSCALL(chdir)
  51. COMPAT_SYS(time)
  52. SYSCALL(mknod)
  53. SYSCALL(chmod)
  54. SYSCALL(lchown)
  55. SYSCALL(ni_syscall)
  56. OLDSYS(stat)
  57. SYSX(sys_lseek,ppc32_lseek,sys_lseek)
  58. SYSCALL(getpid)
  59. COMPAT_SYS(mount)
  60. SYSX(sys_ni_syscall,sys_oldumount,sys_oldumount)
  61. SYSCALL(setuid)
  62. SYSCALL(getuid)
  63. COMPAT_SYS(stime)
  64. COMPAT_SYS(ptrace)
  65. SYSCALL(alarm)
  66. OLDSYS(fstat)
  67. COMPAT_SYS(pause)
  68. COMPAT_SYS(utime)
  69. SYSCALL(ni_syscall)
  70. SYSCALL(ni_syscall)
  71. COMPAT_SYS(access)
  72. COMPAT_SYS(nice)
  73. SYSCALL(ni_syscall)
  74. SYSCALL(sync)
  75. COMPAT_SYS(kill)
  76. SYSCALL(rename)
  77. COMPAT_SYS(mkdir)
  78. SYSCALL(rmdir)
  79. SYSCALL(dup)
  80. SYSCALL(pipe)
  81. COMPAT_SYS(times)
  82. SYSCALL(ni_syscall)
  83. SYSCALL(brk)
  84. SYSCALL(setgid)
  85. SYSCALL(getgid)
  86. SYSCALL(signal)
  87. SYSCALL(geteuid)
  88. SYSCALL(getegid)
  89. SYSCALL(acct)
  90. SYSCALL(umount)
  91. SYSCALL(ni_syscall)
  92. COMPAT_SYS(ioctl)
  93. COMPAT_SYS(fcntl)
  94. SYSCALL(ni_syscall)
  95. COMPAT_SYS(setpgid)
  96. SYSCALL(ni_syscall)
  97. SYSX(sys_ni_syscall,sys_olduname, sys_olduname)
  98. COMPAT_SYS(umask)
  99. SYSCALL(chroot)
  100. SYSCALL(ustat)
  101. SYSCALL(dup2)
  102. SYSCALL(getppid)
  103. SYSCALL(getpgrp)
  104. SYSCALL(setsid)
  105. SYS32ONLY(sigaction)
  106. SYSCALL(sgetmask)
  107. COMPAT_SYS(ssetmask)
  108. SYSCALL(setreuid)
  109. SYSCALL(setregid)
  110. SYS32ONLY(sigsuspend)
  111. COMPAT_SYS(sigpending)
  112. COMPAT_SYS(sethostname)
  113. COMPAT_SYS(setrlimit)
  114. COMPAT_SYS(old_getrlimit)
  115. COMPAT_SYS(getrusage)
  116. COMPAT_SYS(gettimeofday)
  117. COMPAT_SYS(settimeofday)
  118. COMPAT_SYS(getgroups)
  119. COMPAT_SYS(setgroups)
  120. SYSX(sys_ni_syscall,sys_ni_syscall,ppc_select)
  121. SYSCALL(symlink)
  122. OLDSYS(lstat)
  123. COMPAT_SYS(readlink)
  124. SYSCALL(uselib)
  125. SYSCALL(swapon)
  126. SYSCALL(reboot)
  127. SYSX(sys_ni_syscall,old32_readdir,old_readdir)
  128. SYSCALL(mmap)
  129. SYSCALL(munmap)
  130. SYSCALL(truncate)
  131. SYSCALL(ftruncate)
  132. SYSCALL(fchmod)
  133. SYSCALL(fchown)
  134. COMPAT_SYS(getpriority)
  135. COMPAT_SYS(setpriority)
  136. SYSCALL(ni_syscall)
  137. COMPAT_SYS(statfs)
  138. COMPAT_SYS(fstatfs)
  139. SYSCALL(ni_syscall)
  140. COMPAT_SYS(socketcall)
  141. COMPAT_SYS(syslog)
  142. COMPAT_SYS(setitimer)
  143. COMPAT_SYS(getitimer)
  144. COMPAT_SYS(newstat)
  145. COMPAT_SYS(newlstat)
  146. COMPAT_SYS(newfstat)
  147. SYSX(sys_ni_syscall,sys_uname,sys_uname)
  148. SYSCALL(ni_syscall)
  149. SYSCALL(vhangup)
  150. SYSCALL(ni_syscall)
  151. SYSCALL(ni_syscall)
  152. COMPAT_SYS(wait4)
  153. SYSCALL(swapoff)
  154. COMPAT_SYS(sysinfo)
  155. COMPAT_SYS(ipc)
  156. SYSCALL(fsync)
  157. SYS32ONLY(sigreturn)
  158. PPC_SYS(clone)
  159. COMPAT_SYS(setdomainname)
  160. PPC_SYS(newuname)
  161. SYSCALL(ni_syscall)
  162. COMPAT_SYS(adjtimex)
  163. SYSCALL(mprotect)
  164. SYSX(sys_ni_syscall,compat_sys_sigprocmask,sys_sigprocmask)
  165. SYSCALL(ni_syscall)
  166. SYSCALL(init_module)
  167. SYSCALL(delete_module)
  168. SYSCALL(ni_syscall)
  169. SYSCALL(quotactl)
  170. COMPAT_SYS(getpgid)
  171. SYSCALL(fchdir)
  172. SYSCALL(bdflush)
  173. COMPAT_SYS(sysfs)
  174. SYSX(ppc64_personality,ppc64_personality,sys_personality)
  175. SYSCALL(ni_syscall)
  176. SYSCALL(setfsuid)
  177. SYSCALL(setfsgid)
  178. SYSCALL(llseek)
  179. COMPAT_SYS(getdents)
  180. SYSX(sys_select,ppc32_select,ppc_select)
  181. SYSCALL(flock)
  182. SYSCALL(msync)
  183. COMPAT_SYS(readv)
  184. COMPAT_SYS(writev)
  185. COMPAT_SYS(getsid)
  186. SYSCALL(fdatasync)
  187. COMPAT_SYS(sysctl)
  188. SYSCALL(mlock)
  189. SYSCALL(munlock)
  190. SYSCALL(mlockall)
  191. SYSCALL(munlockall)
  192. COMPAT_SYS(sched_setparam)
  193. COMPAT_SYS(sched_getparam)
  194. COMPAT_SYS(sched_setscheduler)
  195. COMPAT_SYS(sched_getscheduler)
  196. SYSCALL(sched_yield)
  197. COMPAT_SYS(sched_get_priority_max)
  198. COMPAT_SYS(sched_get_priority_min)
  199. COMPAT_SYS(sched_rr_get_interval)
  200. COMPAT_SYS(nanosleep)
  201. SYSCALL(mremap)
  202. SYSCALL(setresuid)
  203. SYSCALL(getresuid)
  204. SYSCALL(ni_syscall)
  205. SYSCALL(poll)
  206. COMPAT_SYS(nfsservctl)
  207. SYSCALL(setresgid)
  208. SYSCALL(getresgid)
  209. COMPAT_SYS(prctl)
  210. COMPAT_SYS(rt_sigreturn)
  211. COMPAT_SYS(rt_sigaction)
  212. COMPAT_SYS(rt_sigprocmask)
  213. COMPAT_SYS(rt_sigpending)
  214. COMPAT_SYS(rt_sigtimedwait)
  215. COMPAT_SYS(rt_sigqueueinfo)
  216. COMPAT_SYS(rt_sigsuspend)
  217. COMPAT_SYS(pread64)
  218. COMPAT_SYS(pwrite64)
  219. SYSCALL(chown)
  220. SYSCALL(getcwd)
  221. SYSCALL(capget)
  222. SYSCALL(capset)
  223. COMPAT_SYS(sigaltstack)
  224. SYSX(sys_sendfile64,compat_sys_sendfile,sys_sendfile)
  225. SYSCALL(ni_syscall)
  226. SYSCALL(ni_syscall)
  227. PPC_SYS(vfork)
  228. COMPAT_SYS(getrlimit)
  229. COMPAT_SYS(readahead)
  230. SYS32ONLY(mmap2)
  231. SYS32ONLY(truncate64)
  232. SYS32ONLY(ftruncate64)
  233. SYSX(sys_ni_syscall,sys_stat64,sys_stat64)
  234. SYSX(sys_ni_syscall,sys_lstat64,sys_lstat64)
  235. SYSX(sys_ni_syscall,sys_fstat64,sys_fstat64)
  236. SYSCALL(pciconfig_read)
  237. SYSCALL(pciconfig_write)
  238. SYSCALL(pciconfig_iobase)
  239. SYSCALL(ni_syscall)
  240. SYSCALL(getdents64)
  241. SYSCALL(pivot_root)
  242. SYSX(sys_ni_syscall,compat_sys_fcntl64,sys_fcntl64)
  243. SYSCALL(madvise)
  244. SYSCALL(mincore)
  245. SYSCALL(gettid)
  246. SYSCALL(tkill)
  247. SYSCALL(setxattr)
  248. SYSCALL(lsetxattr)
  249. SYSCALL(fsetxattr)
  250. SYSCALL(getxattr)
  251. SYSCALL(lgetxattr)
  252. SYSCALL(fgetxattr)
  253. SYSCALL(listxattr)
  254. SYSCALL(llistxattr)
  255. SYSCALL(flistxattr)
  256. SYSCALL(removexattr)
  257. SYSCALL(lremovexattr)
  258. SYSCALL(fremovexattr)
  259. COMPAT_SYS(futex)
  260. COMPAT_SYS(sched_setaffinity)
  261. COMPAT_SYS(sched_getaffinity)
  262. SYSCALL(ni_syscall)
  263. SYSCALL(ni_syscall)
  264. SYS32ONLY(sendfile64)
  265. COMPAT_SYS(io_setup)
  266. SYSCALL(io_destroy)
  267. COMPAT_SYS(io_getevents)
  268. COMPAT_SYS(io_submit)
  269. SYSCALL(io_cancel)
  270. SYSCALL(set_tid_address)
  271. SYSX(sys_fadvise64,ppc32_fadvise64,sys_fadvise64)
  272. SYSCALL(exit_group)
  273. SYSX(sys_lookup_dcookie,ppc32_lookup_dcookie,sys_lookup_dcookie)
  274. SYSCALL(epoll_create)
  275. SYSCALL(epoll_ctl)
  276. SYSCALL(epoll_wait)
  277. SYSCALL(remap_file_pages)
  278. SYSX(sys_timer_create,compat_sys_timer_create,sys_timer_create)
  279. COMPAT_SYS(timer_settime)
  280. COMPAT_SYS(timer_gettime)
  281. SYSCALL(timer_getoverrun)
  282. SYSCALL(timer_delete)
  283. COMPAT_SYS(clock_settime)
  284. COMPAT_SYS(clock_gettime)
  285. COMPAT_SYS(clock_getres)
  286. COMPAT_SYS(clock_nanosleep)
  287. SYSX(ppc64_swapcontext,ppc32_swapcontext,ppc_swapcontext)
  288. COMPAT_SYS(tgkill)
  289. COMPAT_SYS(utimes)
  290. COMPAT_SYS(statfs64)
  291. COMPAT_SYS(fstatfs64)
  292. SYSX(sys_ni_syscall, ppc_fadvise64_64, ppc_fadvise64_64)
  293. PPC_SYS(rtas)
  294. OLDSYS(debug_setcontext)
  295. SYSCALL(ni_syscall)
  296. SYSCALL(ni_syscall)
  297. COMPAT_SYS(mbind)
  298. COMPAT_SYS(get_mempolicy)
  299. COMPAT_SYS(set_mempolicy)
  300. COMPAT_SYS(mq_open)
  301. SYSCALL(mq_unlink)
  302. COMPAT_SYS(mq_timedsend)
  303. COMPAT_SYS(mq_timedreceive)
  304. COMPAT_SYS(mq_notify)
  305. COMPAT_SYS(mq_getsetattr)
  306. COMPAT_SYS(kexec_load)
  307. COMPAT_SYS(add_key)
  308. COMPAT_SYS(request_key)
  309. COMPAT_SYS(keyctl)
  310. COMPAT_SYS(waitid)
  311. COMPAT_SYS(ioprio_set)
  312. COMPAT_SYS(ioprio_get)
  313. SYSCALL(inotify_init)
  314. SYSCALL(inotify_add_watch)
  315. SYSCALL(inotify_rm_watch)
  316. SYSCALL(spu_run)
  317. SYSCALL(spu_create)
  318. COMPAT_SYS(pselect6)
  319. COMPAT_SYS(ppoll)
  320. SYSCALL(unshare)
  321. SYSCALL(splice)
  322. SYSCALL(tee)