entry.S 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768
  1. /* -*- mode: asm -*-
  2. *
  3. * linux/arch/m68k/kernel/entry.S
  4. *
  5. * Copyright (C) 1991, 1992 Linus Torvalds
  6. *
  7. * This file is subject to the terms and conditions of the GNU General Public
  8. * License. See the file README.legal in the main directory of this archive
  9. * for more details.
  10. *
  11. * Linux/m68k support by Hamish Macdonald
  12. *
  13. * 68060 fixes by Jesper Skov
  14. *
  15. */
  16. /*
  17. * entry.S contains the system-call and fault low-level handling routines.
  18. * This also contains the timer-interrupt handler, as well as all interrupts
  19. * and faults that can result in a task-switch.
  20. *
  21. * NOTE: This code handles signal-recognition, which happens every time
  22. * after a timer-interrupt and after each system call.
  23. *
  24. */
  25. /*
  26. * 12/03/96 Jes: Currently we only support m68k single-cpu systems, so
  27. * all pointers that used to be 'current' are now entry
  28. * number 0 in the 'current_set' list.
  29. *
  30. * 6/05/00 RZ: addedd writeback completion after return from sighandler
  31. * for 68040
  32. */
  33. #include <linux/linkage.h>
  34. #include <asm/entry.h>
  35. #include <asm/errno.h>
  36. #include <asm/setup.h>
  37. #include <asm/segment.h>
  38. #include <asm/traps.h>
  39. #include <asm/unistd.h>
  40. #include <asm/asm-offsets.h>
  41. .globl system_call, buserr, trap, resume
  42. .globl sys_call_table
  43. .globl sys_fork, sys_clone, sys_vfork
  44. .globl ret_from_interrupt, bad_interrupt
  45. .globl auto_irqhandler_fixup
  46. .globl user_irqvec_fixup, user_irqhandler_fixup
  47. .text
  48. ENTRY(buserr)
  49. SAVE_ALL_INT
  50. GET_CURRENT(%d0)
  51. movel %sp,%sp@- | stack frame pointer argument
  52. bsrl buserr_c
  53. addql #4,%sp
  54. jra .Lret_from_exception
  55. ENTRY(trap)
  56. SAVE_ALL_INT
  57. GET_CURRENT(%d0)
  58. movel %sp,%sp@- | stack frame pointer argument
  59. bsrl trap_c
  60. addql #4,%sp
  61. jra .Lret_from_exception
  62. | After a fork we jump here directly from resume,
  63. | so that %d1 contains the previous task
  64. | schedule_tail now used regardless of CONFIG_SMP
  65. ENTRY(ret_from_fork)
  66. movel %d1,%sp@-
  67. jsr schedule_tail
  68. addql #4,%sp
  69. jra .Lret_from_exception
  70. do_trace_entry:
  71. movel #-ENOSYS,%sp@(PT_OFF_D0)| needed for strace
  72. subql #4,%sp
  73. SAVE_SWITCH_STACK
  74. jbsr syscall_trace
  75. RESTORE_SWITCH_STACK
  76. addql #4,%sp
  77. movel %sp@(PT_OFF_ORIG_D0),%d0
  78. cmpl #NR_syscalls,%d0
  79. jcs syscall
  80. badsys:
  81. movel #-ENOSYS,%sp@(PT_OFF_D0)
  82. jra ret_from_syscall
  83. do_trace_exit:
  84. subql #4,%sp
  85. SAVE_SWITCH_STACK
  86. jbsr syscall_trace
  87. RESTORE_SWITCH_STACK
  88. addql #4,%sp
  89. jra .Lret_from_exception
  90. ENTRY(ret_from_signal)
  91. RESTORE_SWITCH_STACK
  92. addql #4,%sp
  93. /* on 68040 complete pending writebacks if any */
  94. #ifdef CONFIG_M68040
  95. bfextu %sp@(PT_OFF_FORMATVEC){#0,#4},%d0
  96. subql #7,%d0 | bus error frame ?
  97. jbne 1f
  98. movel %sp,%sp@-
  99. jbsr berr_040cleanup
  100. addql #4,%sp
  101. 1:
  102. #endif
  103. jra .Lret_from_exception
  104. ENTRY(system_call)
  105. SAVE_ALL_SYS
  106. GET_CURRENT(%d1)
  107. | save top of frame
  108. movel %sp,%curptr@(TASK_THREAD+THREAD_ESP0)
  109. | syscall trace?
  110. tstb %curptr@(TASK_INFO+TINFO_FLAGS+2)
  111. jmi do_trace_entry
  112. cmpl #NR_syscalls,%d0
  113. jcc badsys
  114. syscall:
  115. jbsr @(sys_call_table,%d0:l:4)@(0)
  116. movel %d0,%sp@(PT_OFF_D0) | save the return value
  117. ret_from_syscall:
  118. |oriw #0x0700,%sr
  119. movew %curptr@(TASK_INFO+TINFO_FLAGS+2),%d0
  120. jne syscall_exit_work
  121. 1: RESTORE_ALL
  122. syscall_exit_work:
  123. btst #5,%sp@(PT_OFF_SR) | check if returning to kernel
  124. bnes 1b | if so, skip resched, signals
  125. lslw #1,%d0
  126. jcs do_trace_exit
  127. jmi do_delayed_trace
  128. lslw #8,%d0
  129. jmi do_signal_return
  130. pea resume_userspace
  131. jra schedule
  132. ENTRY(ret_from_exception)
  133. .Lret_from_exception:
  134. btst #5,%sp@(PT_OFF_SR) | check if returning to kernel
  135. bnes 1f | if so, skip resched, signals
  136. | only allow interrupts when we are really the last one on the
  137. | kernel stack, otherwise stack overflow can occur during
  138. | heavy interrupt load
  139. andw #ALLOWINT,%sr
  140. resume_userspace:
  141. moveb %curptr@(TASK_INFO+TINFO_FLAGS+3),%d0
  142. jne exit_work
  143. 1: RESTORE_ALL
  144. exit_work:
  145. | save top of frame
  146. movel %sp,%curptr@(TASK_THREAD+THREAD_ESP0)
  147. lslb #1,%d0
  148. jmi do_signal_return
  149. pea resume_userspace
  150. jra schedule
  151. do_signal_return:
  152. |andw #ALLOWINT,%sr
  153. subql #4,%sp | dummy return address
  154. SAVE_SWITCH_STACK
  155. pea %sp@(SWITCH_STACK_SIZE)
  156. clrl %sp@-
  157. bsrl do_signal
  158. addql #8,%sp
  159. RESTORE_SWITCH_STACK
  160. addql #4,%sp
  161. tstl %d0
  162. jeq resume_userspace
  163. | when single stepping into handler stop at the first insn
  164. btst #6,%curptr@(TASK_INFO+TINFO_FLAGS+2)
  165. jeq resume_userspace
  166. do_delayed_trace:
  167. bclr #7,%sp@(PT_OFF_SR) | clear trace bit in SR
  168. pea 1 | send SIGTRAP
  169. movel %curptr,%sp@-
  170. pea LSIGTRAP
  171. jbsr send_sig
  172. addql #8,%sp
  173. addql #4,%sp
  174. jbra resume_userspace
  175. /* This is the main interrupt handler for autovector interrupts */
  176. ENTRY(auto_inthandler)
  177. SAVE_ALL_INT
  178. GET_CURRENT(%d0)
  179. addqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1)
  180. | put exception # in d0
  181. bfextu %sp@(PT_OFF_FORMATVEC){#4,#10},%d0
  182. subw #VEC_SPUR,%d0
  183. movel %sp,%sp@-
  184. movel %d0,%sp@- | put vector # on stack
  185. auto_irqhandler_fixup = . + 2
  186. jsr __m68k_handle_int | process the IRQ
  187. addql #8,%sp | pop parameters off stack
  188. ret_from_interrupt:
  189. subqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1)
  190. jeq ret_from_last_interrupt
  191. 2: RESTORE_ALL
  192. ALIGN
  193. ret_from_last_interrupt:
  194. moveq #(~ALLOWINT>>8)&0xff,%d0
  195. andb %sp@(PT_OFF_SR),%d0
  196. jne 2b
  197. /* check if we need to do software interrupts */
  198. tstl irq_stat+CPUSTAT_SOFTIRQ_PENDING
  199. jeq .Lret_from_exception
  200. pea ret_from_exception
  201. jra do_softirq
  202. /* Handler for user defined interrupt vectors */
  203. ENTRY(user_inthandler)
  204. SAVE_ALL_INT
  205. GET_CURRENT(%d0)
  206. addqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1)
  207. | put exception # in d0
  208. bfextu %sp@(PT_OFF_FORMATVEC){#4,#10},%d0
  209. user_irqvec_fixup = . + 2
  210. subw #VEC_USER,%d0
  211. movel %sp,%sp@-
  212. movel %d0,%sp@- | put vector # on stack
  213. user_irqhandler_fixup = . + 2
  214. jsr __m68k_handle_int | process the IRQ
  215. addql #8,%sp | pop parameters off stack
  216. subqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1)
  217. jeq ret_from_last_interrupt
  218. RESTORE_ALL
  219. /* Handler for uninitialized and spurious interrupts */
  220. ENTRY(bad_inthandler)
  221. SAVE_ALL_INT
  222. GET_CURRENT(%d0)
  223. addqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1)
  224. movel %sp,%sp@-
  225. jsr handle_badint
  226. addql #4,%sp
  227. subqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1)
  228. jeq ret_from_last_interrupt
  229. RESTORE_ALL
  230. ENTRY(sys_fork)
  231. SAVE_SWITCH_STACK
  232. pea %sp@(SWITCH_STACK_SIZE)
  233. jbsr m68k_fork
  234. addql #4,%sp
  235. RESTORE_SWITCH_STACK
  236. rts
  237. ENTRY(sys_clone)
  238. SAVE_SWITCH_STACK
  239. pea %sp@(SWITCH_STACK_SIZE)
  240. jbsr m68k_clone
  241. addql #4,%sp
  242. RESTORE_SWITCH_STACK
  243. rts
  244. ENTRY(sys_vfork)
  245. SAVE_SWITCH_STACK
  246. pea %sp@(SWITCH_STACK_SIZE)
  247. jbsr m68k_vfork
  248. addql #4,%sp
  249. RESTORE_SWITCH_STACK
  250. rts
  251. ENTRY(sys_sigsuspend)
  252. SAVE_SWITCH_STACK
  253. pea %sp@(SWITCH_STACK_SIZE)
  254. jbsr do_sigsuspend
  255. addql #4,%sp
  256. RESTORE_SWITCH_STACK
  257. rts
  258. ENTRY(sys_rt_sigsuspend)
  259. SAVE_SWITCH_STACK
  260. pea %sp@(SWITCH_STACK_SIZE)
  261. jbsr do_rt_sigsuspend
  262. addql #4,%sp
  263. RESTORE_SWITCH_STACK
  264. rts
  265. ENTRY(sys_sigreturn)
  266. SAVE_SWITCH_STACK
  267. jbsr do_sigreturn
  268. RESTORE_SWITCH_STACK
  269. rts
  270. ENTRY(sys_rt_sigreturn)
  271. SAVE_SWITCH_STACK
  272. jbsr do_rt_sigreturn
  273. RESTORE_SWITCH_STACK
  274. rts
  275. resume:
  276. /*
  277. * Beware - when entering resume, prev (the current task) is
  278. * in a0, next (the new task) is in a1,so don't change these
  279. * registers until their contents are no longer needed.
  280. */
  281. /* save sr */
  282. movew %sr,%a0@(TASK_THREAD+THREAD_SR)
  283. /* save fs (sfc,%dfc) (may be pointing to kernel memory) */
  284. movec %sfc,%d0
  285. movew %d0,%a0@(TASK_THREAD+THREAD_FS)
  286. /* save usp */
  287. /* it is better to use a movel here instead of a movew 8*) */
  288. movec %usp,%d0
  289. movel %d0,%a0@(TASK_THREAD+THREAD_USP)
  290. /* save non-scratch registers on stack */
  291. SAVE_SWITCH_STACK
  292. /* save current kernel stack pointer */
  293. movel %sp,%a0@(TASK_THREAD+THREAD_KSP)
  294. /* save floating point context */
  295. #ifndef CONFIG_M68KFPU_EMU_ONLY
  296. #ifdef CONFIG_M68KFPU_EMU
  297. tstl m68k_fputype
  298. jeq 3f
  299. #endif
  300. fsave %a0@(TASK_THREAD+THREAD_FPSTATE)
  301. #if defined(CONFIG_M68060)
  302. #if !defined(CPU_M68060_ONLY)
  303. btst #3,m68k_cputype+3
  304. beqs 1f
  305. #endif
  306. /* The 060 FPU keeps status in bits 15-8 of the first longword */
  307. tstb %a0@(TASK_THREAD+THREAD_FPSTATE+2)
  308. jeq 3f
  309. #if !defined(CPU_M68060_ONLY)
  310. jra 2f
  311. #endif
  312. #endif /* CONFIG_M68060 */
  313. #if !defined(CPU_M68060_ONLY)
  314. 1: tstb %a0@(TASK_THREAD+THREAD_FPSTATE)
  315. jeq 3f
  316. #endif
  317. 2: fmovemx %fp0-%fp7,%a0@(TASK_THREAD+THREAD_FPREG)
  318. fmoveml %fpcr/%fpsr/%fpiar,%a0@(TASK_THREAD+THREAD_FPCNTL)
  319. 3:
  320. #endif /* CONFIG_M68KFPU_EMU_ONLY */
  321. /* Return previous task in %d1 */
  322. movel %curptr,%d1
  323. /* switch to new task (a1 contains new task) */
  324. movel %a1,%curptr
  325. /* restore floating point context */
  326. #ifndef CONFIG_M68KFPU_EMU_ONLY
  327. #ifdef CONFIG_M68KFPU_EMU
  328. tstl m68k_fputype
  329. jeq 4f
  330. #endif
  331. #if defined(CONFIG_M68060)
  332. #if !defined(CPU_M68060_ONLY)
  333. btst #3,m68k_cputype+3
  334. beqs 1f
  335. #endif
  336. /* The 060 FPU keeps status in bits 15-8 of the first longword */
  337. tstb %a1@(TASK_THREAD+THREAD_FPSTATE+2)
  338. jeq 3f
  339. #if !defined(CPU_M68060_ONLY)
  340. jra 2f
  341. #endif
  342. #endif /* CONFIG_M68060 */
  343. #if !defined(CPU_M68060_ONLY)
  344. 1: tstb %a1@(TASK_THREAD+THREAD_FPSTATE)
  345. jeq 3f
  346. #endif
  347. 2: fmovemx %a1@(TASK_THREAD+THREAD_FPREG),%fp0-%fp7
  348. fmoveml %a1@(TASK_THREAD+THREAD_FPCNTL),%fpcr/%fpsr/%fpiar
  349. 3: frestore %a1@(TASK_THREAD+THREAD_FPSTATE)
  350. 4:
  351. #endif /* CONFIG_M68KFPU_EMU_ONLY */
  352. /* restore the kernel stack pointer */
  353. movel %a1@(TASK_THREAD+THREAD_KSP),%sp
  354. /* restore non-scratch registers */
  355. RESTORE_SWITCH_STACK
  356. /* restore user stack pointer */
  357. movel %a1@(TASK_THREAD+THREAD_USP),%a0
  358. movel %a0,%usp
  359. /* restore fs (sfc,%dfc) */
  360. movew %a1@(TASK_THREAD+THREAD_FS),%a0
  361. movec %a0,%sfc
  362. movec %a0,%dfc
  363. /* restore status register */
  364. movew %a1@(TASK_THREAD+THREAD_SR),%sr
  365. rts
  366. .data
  367. ALIGN
  368. sys_call_table:
  369. .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */
  370. .long sys_exit
  371. .long sys_fork
  372. .long sys_read
  373. .long sys_write
  374. .long sys_open /* 5 */
  375. .long sys_close
  376. .long sys_waitpid
  377. .long sys_creat
  378. .long sys_link
  379. .long sys_unlink /* 10 */
  380. .long sys_execve
  381. .long sys_chdir
  382. .long sys_time
  383. .long sys_mknod
  384. .long sys_chmod /* 15 */
  385. .long sys_chown16
  386. .long sys_ni_syscall /* old break syscall holder */
  387. .long sys_stat
  388. .long sys_lseek
  389. .long sys_getpid /* 20 */
  390. .long sys_mount
  391. .long sys_oldumount
  392. .long sys_setuid16
  393. .long sys_getuid16
  394. .long sys_stime /* 25 */
  395. .long sys_ptrace
  396. .long sys_alarm
  397. .long sys_fstat
  398. .long sys_pause
  399. .long sys_utime /* 30 */
  400. .long sys_ni_syscall /* old stty syscall holder */
  401. .long sys_ni_syscall /* old gtty syscall holder */
  402. .long sys_access
  403. .long sys_nice
  404. .long sys_ni_syscall /* 35 */ /* old ftime syscall holder */
  405. .long sys_sync
  406. .long sys_kill
  407. .long sys_rename
  408. .long sys_mkdir
  409. .long sys_rmdir /* 40 */
  410. .long sys_dup
  411. .long sys_pipe
  412. .long sys_times
  413. .long sys_ni_syscall /* old prof syscall holder */
  414. .long sys_brk /* 45 */
  415. .long sys_setgid16
  416. .long sys_getgid16
  417. .long sys_signal
  418. .long sys_geteuid16
  419. .long sys_getegid16 /* 50 */
  420. .long sys_acct
  421. .long sys_umount /* recycled never used phys() */
  422. .long sys_ni_syscall /* old lock syscall holder */
  423. .long sys_ioctl
  424. .long sys_fcntl /* 55 */
  425. .long sys_ni_syscall /* old mpx syscall holder */
  426. .long sys_setpgid
  427. .long sys_ni_syscall /* old ulimit syscall holder */
  428. .long sys_ni_syscall
  429. .long sys_umask /* 60 */
  430. .long sys_chroot
  431. .long sys_ustat
  432. .long sys_dup2
  433. .long sys_getppid
  434. .long sys_getpgrp /* 65 */
  435. .long sys_setsid
  436. .long sys_sigaction
  437. .long sys_sgetmask
  438. .long sys_ssetmask
  439. .long sys_setreuid16 /* 70 */
  440. .long sys_setregid16
  441. .long sys_sigsuspend
  442. .long sys_sigpending
  443. .long sys_sethostname
  444. .long sys_setrlimit /* 75 */
  445. .long sys_old_getrlimit
  446. .long sys_getrusage
  447. .long sys_gettimeofday
  448. .long sys_settimeofday
  449. .long sys_getgroups16 /* 80 */
  450. .long sys_setgroups16
  451. .long sys_old_select
  452. .long sys_symlink
  453. .long sys_lstat
  454. .long sys_readlink /* 85 */
  455. .long sys_uselib
  456. .long sys_swapon
  457. .long sys_reboot
  458. .long sys_old_readdir
  459. .long sys_old_mmap /* 90 */
  460. .long sys_munmap
  461. .long sys_truncate
  462. .long sys_ftruncate
  463. .long sys_fchmod
  464. .long sys_fchown16 /* 95 */
  465. .long sys_getpriority
  466. .long sys_setpriority
  467. .long sys_ni_syscall /* old profil syscall holder */
  468. .long sys_statfs
  469. .long sys_fstatfs /* 100 */
  470. .long sys_ni_syscall /* ioperm for i386 */
  471. .long sys_socketcall
  472. .long sys_syslog
  473. .long sys_setitimer
  474. .long sys_getitimer /* 105 */
  475. .long sys_newstat
  476. .long sys_newlstat
  477. .long sys_newfstat
  478. .long sys_ni_syscall
  479. .long sys_ni_syscall /* 110 */ /* iopl for i386 */
  480. .long sys_vhangup
  481. .long sys_ni_syscall /* obsolete idle() syscall */
  482. .long sys_ni_syscall /* vm86old for i386 */
  483. .long sys_wait4
  484. .long sys_swapoff /* 115 */
  485. .long sys_sysinfo
  486. .long sys_ipc
  487. .long sys_fsync
  488. .long sys_sigreturn
  489. .long sys_clone /* 120 */
  490. .long sys_setdomainname
  491. .long sys_newuname
  492. .long sys_cacheflush /* modify_ldt for i386 */
  493. .long sys_adjtimex
  494. .long sys_mprotect /* 125 */
  495. .long sys_sigprocmask
  496. .long sys_ni_syscall /* old "create_module" */
  497. .long sys_init_module
  498. .long sys_delete_module
  499. .long sys_ni_syscall /* 130 - old "get_kernel_syms" */
  500. .long sys_quotactl
  501. .long sys_getpgid
  502. .long sys_fchdir
  503. .long sys_bdflush
  504. .long sys_sysfs /* 135 */
  505. .long sys_personality
  506. .long sys_ni_syscall /* for afs_syscall */
  507. .long sys_setfsuid16
  508. .long sys_setfsgid16
  509. .long sys_llseek /* 140 */
  510. .long sys_getdents
  511. .long sys_select
  512. .long sys_flock
  513. .long sys_msync
  514. .long sys_readv /* 145 */
  515. .long sys_writev
  516. .long sys_getsid
  517. .long sys_fdatasync
  518. .long sys_sysctl
  519. .long sys_mlock /* 150 */
  520. .long sys_munlock
  521. .long sys_mlockall
  522. .long sys_munlockall
  523. .long sys_sched_setparam
  524. .long sys_sched_getparam /* 155 */
  525. .long sys_sched_setscheduler
  526. .long sys_sched_getscheduler
  527. .long sys_sched_yield
  528. .long sys_sched_get_priority_max
  529. .long sys_sched_get_priority_min /* 160 */
  530. .long sys_sched_rr_get_interval
  531. .long sys_nanosleep
  532. .long sys_mremap
  533. .long sys_setresuid16
  534. .long sys_getresuid16 /* 165 */
  535. .long sys_getpagesize
  536. .long sys_ni_syscall /* old sys_query_module */
  537. .long sys_poll
  538. .long sys_nfsservctl
  539. .long sys_setresgid16 /* 170 */
  540. .long sys_getresgid16
  541. .long sys_prctl
  542. .long sys_rt_sigreturn
  543. .long sys_rt_sigaction
  544. .long sys_rt_sigprocmask /* 175 */
  545. .long sys_rt_sigpending
  546. .long sys_rt_sigtimedwait
  547. .long sys_rt_sigqueueinfo
  548. .long sys_rt_sigsuspend
  549. .long sys_pread64 /* 180 */
  550. .long sys_pwrite64
  551. .long sys_lchown16;
  552. .long sys_getcwd
  553. .long sys_capget
  554. .long sys_capset /* 185 */
  555. .long sys_sigaltstack
  556. .long sys_sendfile
  557. .long sys_ni_syscall /* streams1 */
  558. .long sys_ni_syscall /* streams2 */
  559. .long sys_vfork /* 190 */
  560. .long sys_getrlimit
  561. .long sys_mmap2
  562. .long sys_truncate64
  563. .long sys_ftruncate64
  564. .long sys_stat64 /* 195 */
  565. .long sys_lstat64
  566. .long sys_fstat64
  567. .long sys_chown
  568. .long sys_getuid
  569. .long sys_getgid /* 200 */
  570. .long sys_geteuid
  571. .long sys_getegid
  572. .long sys_setreuid
  573. .long sys_setregid
  574. .long sys_getgroups /* 205 */
  575. .long sys_setgroups
  576. .long sys_fchown
  577. .long sys_setresuid
  578. .long sys_getresuid
  579. .long sys_setresgid /* 210 */
  580. .long sys_getresgid
  581. .long sys_lchown
  582. .long sys_setuid
  583. .long sys_setgid
  584. .long sys_setfsuid /* 215 */
  585. .long sys_setfsgid
  586. .long sys_pivot_root
  587. .long sys_ni_syscall
  588. .long sys_ni_syscall
  589. .long sys_getdents64 /* 220 */
  590. .long sys_gettid
  591. .long sys_tkill
  592. .long sys_setxattr
  593. .long sys_lsetxattr
  594. .long sys_fsetxattr /* 225 */
  595. .long sys_getxattr
  596. .long sys_lgetxattr
  597. .long sys_fgetxattr
  598. .long sys_listxattr
  599. .long sys_llistxattr /* 230 */
  600. .long sys_flistxattr
  601. .long sys_removexattr
  602. .long sys_lremovexattr
  603. .long sys_fremovexattr
  604. .long sys_futex /* 235 */
  605. .long sys_sendfile64
  606. .long sys_mincore
  607. .long sys_madvise
  608. .long sys_fcntl64
  609. .long sys_readahead /* 240 */
  610. .long sys_io_setup
  611. .long sys_io_destroy
  612. .long sys_io_getevents
  613. .long sys_io_submit
  614. .long sys_io_cancel /* 245 */
  615. .long sys_fadvise64
  616. .long sys_exit_group
  617. .long sys_lookup_dcookie
  618. .long sys_epoll_create
  619. .long sys_epoll_ctl /* 250 */
  620. .long sys_epoll_wait
  621. .long sys_remap_file_pages
  622. .long sys_set_tid_address
  623. .long sys_timer_create
  624. .long sys_timer_settime /* 255 */
  625. .long sys_timer_gettime
  626. .long sys_timer_getoverrun
  627. .long sys_timer_delete
  628. .long sys_clock_settime
  629. .long sys_clock_gettime /* 260 */
  630. .long sys_clock_getres
  631. .long sys_clock_nanosleep
  632. .long sys_statfs64
  633. .long sys_fstatfs64
  634. .long sys_tgkill /* 265 */
  635. .long sys_utimes
  636. .long sys_fadvise64_64
  637. .long sys_mbind
  638. .long sys_get_mempolicy
  639. .long sys_set_mempolicy /* 270 */
  640. .long sys_mq_open
  641. .long sys_mq_unlink
  642. .long sys_mq_timedsend
  643. .long sys_mq_timedreceive
  644. .long sys_mq_notify /* 275 */
  645. .long sys_mq_getsetattr
  646. .long sys_waitid
  647. .long sys_ni_syscall /* for sys_vserver */
  648. .long sys_add_key
  649. .long sys_request_key /* 280 */
  650. .long sys_keyctl
  651. .long sys_ioprio_set
  652. .long sys_ioprio_get
  653. .long sys_inotify_init
  654. .long sys_inotify_add_watch /* 285 */
  655. .long sys_inotify_rm_watch
  656. .long sys_migrate_pages
  657. .long sys_openat
  658. .long sys_mkdirat
  659. .long sys_mknodat /* 290 */
  660. .long sys_fchownat
  661. .long sys_futimesat
  662. .long sys_fstatat64
  663. .long sys_unlinkat
  664. .long sys_renameat /* 295 */
  665. .long sys_linkat
  666. .long sys_symlinkat
  667. .long sys_readlinkat
  668. .long sys_fchmodat
  669. .long sys_faccessat /* 300 */
  670. .long sys_ni_syscall /* Reserved for pselect6 */
  671. .long sys_ni_syscall /* Reserved for ppoll */
  672. .long sys_unshare
  673. .long sys_set_robust_list
  674. .long sys_get_robust_list /* 305 */
  675. .long sys_splice
  676. .long sys_sync_file_range
  677. .long sys_tee
  678. .long sys_vmsplice
  679. .long sys_move_pages /* 310 */
  680. .long sys_sched_setaffinity
  681. .long sys_sched_getaffinity
  682. .long sys_kexec_load
  683. .long sys_getcpu
  684. .long sys_epoll_pwait /* 315 */
  685. .long sys_utimensat
  686. .long sys_signalfd
  687. .long sys_timerfd_create
  688. .long sys_eventfd
  689. .long sys_fallocate /* 320 */
  690. .long sys_timerfd_settime
  691. .long sys_timerfd_gettime
  692. .long sys_signalfd4
  693. .long sys_eventfd2
  694. .long sys_epoll_create1 /* 325 */
  695. .long sys_dup3
  696. .long sys_pipe2
  697. .long sys_inotify_init1
  698. .long sys_preadv
  699. .long sys_pwritev /* 330 */
  700. .long sys_rt_tgsigqueueinfo
  701. .long sys_perf_event_open
  702. .long sys_get_thread_area
  703. .long sys_set_thread_area
  704. .long sys_atomic_cmpxchg_32 /* 335 */
  705. .long sys_atomic_barrier