scall64-o32.S 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592
  1. /*
  2. * This file is subject to the terms and conditions of the GNU General Public
  3. * License. See the file "COPYING" in the main directory of this archive
  4. * for more details.
  5. *
  6. * Copyright (C) 1995 - 2000, 2001 by Ralf Baechle
  7. * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
  8. * Copyright (C) 2001 MIPS Technologies, Inc.
  9. * Copyright (C) 2004 Thiemo Seufer
  10. *
  11. * Hairy, the userspace application uses a different argument passing
  12. * convention than the kernel, so we have to translate things from o32
  13. * to ABI64 calling convention. 64-bit syscalls are also processed
  14. * here for now.
  15. */
  16. #include <linux/errno.h>
  17. #include <asm/asm.h>
  18. #include <asm/asmmacro.h>
  19. #include <asm/irqflags.h>
  20. #include <asm/mipsregs.h>
  21. #include <asm/regdef.h>
  22. #include <asm/stackframe.h>
  23. #include <asm/thread_info.h>
  24. #include <asm/unistd.h>
  25. #include <asm/sysmips.h>
  26. .align 5
  27. NESTED(handle_sys, PT_SIZE, sp)
  28. .set noat
  29. SAVE_SOME
  30. TRACE_IRQS_ON_RELOAD
  31. STI
  32. .set at
  33. ld t1, PT_EPC(sp) # skip syscall on return
  34. dsubu t0, v0, __NR_O32_Linux # check syscall number
  35. sltiu t0, t0, __NR_O32_Linux_syscalls + 1
  36. daddiu t1, 4 # skip to next instruction
  37. sd t1, PT_EPC(sp)
  38. beqz t0, not_o32_scall
  39. #if 0
  40. SAVE_ALL
  41. move a1, v0
  42. PRINT("Scall %ld\n")
  43. RESTORE_ALL
  44. #endif
  45. /* We don't want to stumble over broken sign extensions from
  46. userland. O32 does never use the upper half. */
  47. sll a0, a0, 0
  48. sll a1, a1, 0
  49. sll a2, a2, 0
  50. sll a3, a3, 0
  51. sd a3, PT_R26(sp) # save a3 for syscall restarting
  52. /*
  53. * More than four arguments. Try to deal with it by copying the
  54. * stack arguments from the user stack to the kernel stack.
  55. * This Sucks (TM).
  56. *
  57. * We intentionally keep the kernel stack a little below the top of
  58. * userspace so we don't have to do a slower byte accurate check here.
  59. */
  60. ld t0, PT_R29(sp) # get old user stack pointer
  61. daddu t1, t0, 32
  62. bltz t1, bad_stack
  63. load_a4: lw a4, 16(t0) # argument #5 from usp
  64. load_a5: lw a5, 20(t0) # argument #6 from usp
  65. load_a6: lw a6, 24(t0) # argument #7 from usp
  66. load_a7: lw a7, 28(t0) # argument #8 from usp
  67. loads_done:
  68. .section __ex_table,"a"
  69. PTR load_a4, bad_stack_a4
  70. PTR load_a5, bad_stack_a5
  71. PTR load_a6, bad_stack_a6
  72. PTR load_a7, bad_stack_a7
  73. .previous
  74. li t1, _TIF_WORK_SYSCALL_ENTRY
  75. LONG_L t0, TI_FLAGS($28) # syscall tracing enabled?
  76. and t0, t1, t0
  77. bnez t0, trace_a_syscall
  78. syscall_common:
  79. dsll t0, v0, 3 # offset into table
  80. ld t2, (sys32_call_table - (__NR_O32_Linux * 8))(t0)
  81. jalr t2 # Do The Real Thing (TM)
  82. li t0, -EMAXERRNO - 1 # error?
  83. sltu t0, t0, v0
  84. sd t0, PT_R7(sp) # set error flag
  85. beqz t0, 1f
  86. ld t1, PT_R2(sp) # syscall number
  87. dnegu v0 # error
  88. sd t1, PT_R0(sp) # save it for syscall restarting
  89. 1: sd v0, PT_R2(sp) # result
  90. o32_syscall_exit:
  91. j syscall_exit_partial
  92. /* ------------------------------------------------------------------------ */
  93. trace_a_syscall:
  94. SAVE_STATIC
  95. sd a4, PT_R8(sp) # Save argument registers
  96. sd a5, PT_R9(sp)
  97. sd a6, PT_R10(sp)
  98. sd a7, PT_R11(sp) # For indirect syscalls
  99. move a0, sp
  100. /*
  101. * absolute syscall number is in v0 unless we called syscall(__NR_###)
  102. * where the real syscall number is in a0
  103. * note: NR_syscall is the first O32 syscall but the macro is
  104. * only defined when compiling with -mabi=32 (CONFIG_32BIT)
  105. * therefore __NR_O32_Linux is used (4000)
  106. */
  107. .set push
  108. .set reorder
  109. subu t1, v0, __NR_O32_Linux
  110. move a1, v0
  111. bnez t1, 1f /* __NR_syscall at offset 0 */
  112. lw a1, PT_R4(sp) /* Arg1 for __NR_syscall case */
  113. .set pop
  114. 1: jal syscall_trace_enter
  115. bltz v0, 1f # seccomp failed? Skip syscall
  116. RESTORE_STATIC
  117. ld v0, PT_R2(sp) # Restore syscall (maybe modified)
  118. ld a0, PT_R4(sp) # Restore argument registers
  119. ld a1, PT_R5(sp)
  120. ld a2, PT_R6(sp)
  121. ld a3, PT_R7(sp)
  122. ld a4, PT_R8(sp)
  123. ld a5, PT_R9(sp)
  124. ld a6, PT_R10(sp)
  125. ld a7, PT_R11(sp) # For indirect syscalls
  126. dsubu t0, v0, __NR_O32_Linux # check (new) syscall number
  127. sltiu t0, t0, __NR_O32_Linux_syscalls + 1
  128. beqz t0, not_o32_scall
  129. j syscall_common
  130. 1: j syscall_exit
  131. /* ------------------------------------------------------------------------ */
  132. /*
  133. * The stackpointer for a call with more than 4 arguments is bad.
  134. */
  135. bad_stack:
  136. li v0, EFAULT
  137. sd v0, PT_R2(sp)
  138. li t0, 1 # set error flag
  139. sd t0, PT_R7(sp)
  140. j o32_syscall_exit
  141. bad_stack_a4:
  142. li a4, 0
  143. b load_a5
  144. bad_stack_a5:
  145. li a5, 0
  146. b load_a6
  147. bad_stack_a6:
  148. li a6, 0
  149. b load_a7
  150. bad_stack_a7:
  151. li a7, 0
  152. b loads_done
  153. not_o32_scall:
  154. /*
  155. * This is not an o32 compatibility syscall, pass it on
  156. * to the 64-bit syscall handlers.
  157. */
  158. #ifdef CONFIG_MIPS32_N32
  159. j handle_sysn32
  160. #else
  161. j handle_sys64
  162. #endif
  163. END(handle_sys)
  164. LEAF(sys32_syscall)
  165. subu t0, a0, __NR_O32_Linux # check syscall number
  166. sltiu v0, t0, __NR_O32_Linux_syscalls + 1
  167. beqz t0, einval # do not recurse
  168. dsll t1, t0, 3
  169. beqz v0, einval
  170. ld t2, sys32_call_table(t1) # syscall routine
  171. sd a0, PT_R2(sp) # call routine directly on restart
  172. move a0, a1 # shift argument registers
  173. move a1, a2
  174. move a2, a3
  175. move a3, a4
  176. move a4, a5
  177. move a5, a6
  178. move a6, a7
  179. sd a0, PT_R4(sp) # ... and push back a0 - a3, some
  180. sd a1, PT_R5(sp) # syscalls expect them there
  181. sd a2, PT_R6(sp)
  182. sd a3, PT_R7(sp)
  183. sd a3, PT_R26(sp) # update a3 for syscall restarting
  184. jr t2
  185. /* Unreached */
  186. einval: li v0, -ENOSYS
  187. jr ra
  188. END(sys32_syscall)
  189. .align 3
  190. .type sys32_call_table,@object
  191. EXPORT(sys32_call_table)
  192. PTR sys32_syscall /* 4000 */
  193. PTR sys_exit
  194. PTR __sys_fork
  195. PTR sys_read
  196. PTR sys_write
  197. PTR compat_sys_open /* 4005 */
  198. PTR sys_close
  199. PTR sys_waitpid
  200. PTR sys_creat
  201. PTR sys_link
  202. PTR sys_unlink /* 4010 */
  203. PTR compat_sys_execve
  204. PTR sys_chdir
  205. PTR compat_sys_time
  206. PTR sys_mknod
  207. PTR sys_chmod /* 4015 */
  208. PTR sys_lchown
  209. PTR sys_ni_syscall
  210. PTR sys_ni_syscall /* was sys_stat */
  211. PTR sys_lseek
  212. PTR sys_getpid /* 4020 */
  213. PTR compat_sys_mount
  214. PTR sys_oldumount
  215. PTR sys_setuid
  216. PTR sys_getuid
  217. PTR compat_sys_stime /* 4025 */
  218. PTR compat_sys_ptrace
  219. PTR sys_alarm
  220. PTR sys_ni_syscall /* was sys_fstat */
  221. PTR sys_pause
  222. PTR compat_sys_utime /* 4030 */
  223. PTR sys_ni_syscall
  224. PTR sys_ni_syscall
  225. PTR sys_access
  226. PTR sys_nice
  227. PTR sys_ni_syscall /* 4035 */
  228. PTR sys_sync
  229. PTR sys_kill
  230. PTR sys_rename
  231. PTR sys_mkdir
  232. PTR sys_rmdir /* 4040 */
  233. PTR sys_dup
  234. PTR sysm_pipe
  235. PTR compat_sys_times
  236. PTR sys_ni_syscall
  237. PTR sys_brk /* 4045 */
  238. PTR sys_setgid
  239. PTR sys_getgid
  240. PTR sys_ni_syscall /* was signal 2 */
  241. PTR sys_geteuid
  242. PTR sys_getegid /* 4050 */
  243. PTR sys_acct
  244. PTR sys_umount
  245. PTR sys_ni_syscall
  246. PTR compat_sys_ioctl
  247. PTR compat_sys_fcntl /* 4055 */
  248. PTR sys_ni_syscall
  249. PTR sys_setpgid
  250. PTR sys_ni_syscall
  251. PTR sys_olduname
  252. PTR sys_umask /* 4060 */
  253. PTR sys_chroot
  254. PTR compat_sys_ustat
  255. PTR sys_dup2
  256. PTR sys_getppid
  257. PTR sys_getpgrp /* 4065 */
  258. PTR sys_setsid
  259. PTR sys_32_sigaction
  260. PTR sys_sgetmask
  261. PTR sys_ssetmask
  262. PTR sys_setreuid /* 4070 */
  263. PTR sys_setregid
  264. PTR sys32_sigsuspend
  265. PTR compat_sys_sigpending
  266. PTR sys_sethostname
  267. PTR compat_sys_setrlimit /* 4075 */
  268. PTR compat_sys_getrlimit
  269. PTR compat_sys_getrusage
  270. PTR compat_sys_gettimeofday
  271. PTR compat_sys_settimeofday
  272. PTR sys_getgroups /* 4080 */
  273. PTR sys_setgroups
  274. PTR sys_ni_syscall /* old_select */
  275. PTR sys_symlink
  276. PTR sys_ni_syscall /* was sys_lstat */
  277. PTR sys_readlink /* 4085 */
  278. PTR sys_uselib
  279. PTR sys_swapon
  280. PTR sys_reboot
  281. PTR compat_sys_old_readdir
  282. PTR sys_mips_mmap /* 4090 */
  283. PTR sys_munmap
  284. PTR compat_sys_truncate
  285. PTR compat_sys_ftruncate
  286. PTR sys_fchmod
  287. PTR sys_fchown /* 4095 */
  288. PTR sys_getpriority
  289. PTR sys_setpriority
  290. PTR sys_ni_syscall
  291. PTR compat_sys_statfs
  292. PTR compat_sys_fstatfs /* 4100 */
  293. PTR sys_ni_syscall /* sys_ioperm */
  294. PTR compat_sys_socketcall
  295. PTR sys_syslog
  296. PTR compat_sys_setitimer
  297. PTR compat_sys_getitimer /* 4105 */
  298. PTR compat_sys_newstat
  299. PTR compat_sys_newlstat
  300. PTR compat_sys_newfstat
  301. PTR sys_uname
  302. PTR sys_ni_syscall /* sys_ioperm *//* 4110 */
  303. PTR sys_vhangup
  304. PTR sys_ni_syscall /* was sys_idle */
  305. PTR sys_ni_syscall /* sys_vm86 */
  306. PTR compat_sys_wait4
  307. PTR sys_swapoff /* 4115 */
  308. PTR compat_sys_sysinfo
  309. PTR compat_sys_ipc
  310. PTR sys_fsync
  311. PTR sys32_sigreturn
  312. PTR __sys_clone /* 4120 */
  313. PTR sys_setdomainname
  314. PTR sys_newuname
  315. PTR sys_ni_syscall /* sys_modify_ldt */
  316. PTR compat_sys_adjtimex
  317. PTR sys_mprotect /* 4125 */
  318. PTR compat_sys_sigprocmask
  319. PTR sys_ni_syscall /* was creat_module */
  320. PTR sys_init_module
  321. PTR sys_delete_module
  322. PTR sys_ni_syscall /* 4130, get_kernel_syms */
  323. PTR sys_quotactl
  324. PTR sys_getpgid
  325. PTR sys_fchdir
  326. PTR sys_bdflush
  327. PTR sys_sysfs /* 4135 */
  328. PTR sys_32_personality
  329. PTR sys_ni_syscall /* for afs_syscall */
  330. PTR sys_setfsuid
  331. PTR sys_setfsgid
  332. PTR sys_32_llseek /* 4140 */
  333. PTR compat_sys_getdents
  334. PTR compat_sys_select
  335. PTR sys_flock
  336. PTR sys_msync
  337. PTR compat_sys_readv /* 4145 */
  338. PTR compat_sys_writev
  339. PTR sys_cacheflush
  340. PTR sys_cachectl
  341. PTR __sys_sysmips
  342. PTR sys_ni_syscall /* 4150 */
  343. PTR sys_getsid
  344. PTR sys_fdatasync
  345. PTR compat_sys_sysctl
  346. PTR sys_mlock
  347. PTR sys_munlock /* 4155 */
  348. PTR sys_mlockall
  349. PTR sys_munlockall
  350. PTR sys_sched_setparam
  351. PTR sys_sched_getparam
  352. PTR sys_sched_setscheduler /* 4160 */
  353. PTR sys_sched_getscheduler
  354. PTR sys_sched_yield
  355. PTR sys_sched_get_priority_max
  356. PTR sys_sched_get_priority_min
  357. PTR compat_sys_sched_rr_get_interval /* 4165 */
  358. PTR compat_sys_nanosleep
  359. PTR sys_mremap
  360. PTR sys_accept
  361. PTR sys_bind
  362. PTR sys_connect /* 4170 */
  363. PTR sys_getpeername
  364. PTR sys_getsockname
  365. PTR compat_sys_getsockopt
  366. PTR sys_listen
  367. PTR compat_sys_recv /* 4175 */
  368. PTR compat_sys_recvfrom
  369. PTR compat_sys_recvmsg
  370. PTR sys_send
  371. PTR compat_sys_sendmsg
  372. PTR sys_sendto /* 4180 */
  373. PTR compat_sys_setsockopt
  374. PTR sys_shutdown
  375. PTR sys_socket
  376. PTR sys_socketpair
  377. PTR sys_setresuid /* 4185 */
  378. PTR sys_getresuid
  379. PTR sys_ni_syscall /* was query_module */
  380. PTR sys_poll
  381. PTR sys_ni_syscall /* was nfsservctl */
  382. PTR sys_setresgid /* 4190 */
  383. PTR sys_getresgid
  384. PTR sys_prctl
  385. PTR sys32_rt_sigreturn
  386. PTR compat_sys_rt_sigaction
  387. PTR compat_sys_rt_sigprocmask /* 4195 */
  388. PTR compat_sys_rt_sigpending
  389. PTR compat_sys_rt_sigtimedwait
  390. PTR compat_sys_rt_sigqueueinfo
  391. PTR compat_sys_rt_sigsuspend
  392. PTR sys_32_pread /* 4200 */
  393. PTR sys_32_pwrite
  394. PTR sys_chown
  395. PTR sys_getcwd
  396. PTR sys_capget
  397. PTR sys_capset /* 4205 */
  398. PTR compat_sys_sigaltstack
  399. PTR compat_sys_sendfile
  400. PTR sys_ni_syscall
  401. PTR sys_ni_syscall
  402. PTR sys_mips_mmap2 /* 4210 */
  403. PTR sys_32_truncate64
  404. PTR sys_32_ftruncate64
  405. PTR sys_newstat
  406. PTR sys_newlstat
  407. PTR sys_newfstat /* 4215 */
  408. PTR sys_pivot_root
  409. PTR sys_mincore
  410. PTR sys_madvise
  411. PTR sys_getdents64
  412. PTR compat_sys_fcntl64 /* 4220 */
  413. PTR sys_ni_syscall
  414. PTR sys_gettid
  415. PTR sys32_readahead
  416. PTR sys_setxattr
  417. PTR sys_lsetxattr /* 4225 */
  418. PTR sys_fsetxattr
  419. PTR sys_getxattr
  420. PTR sys_lgetxattr
  421. PTR sys_fgetxattr
  422. PTR sys_listxattr /* 4230 */
  423. PTR sys_llistxattr
  424. PTR sys_flistxattr
  425. PTR sys_removexattr
  426. PTR sys_lremovexattr
  427. PTR sys_fremovexattr /* 4235 */
  428. PTR sys_tkill
  429. PTR sys_sendfile64
  430. PTR compat_sys_futex
  431. PTR compat_sys_sched_setaffinity
  432. PTR compat_sys_sched_getaffinity /* 4240 */
  433. PTR compat_sys_io_setup
  434. PTR sys_io_destroy
  435. PTR compat_sys_io_getevents
  436. PTR compat_sys_io_submit
  437. PTR sys_io_cancel /* 4245 */
  438. PTR sys_exit_group
  439. PTR compat_sys_lookup_dcookie
  440. PTR sys_epoll_create
  441. PTR sys_epoll_ctl
  442. PTR sys_epoll_wait /* 4250 */
  443. PTR sys_remap_file_pages
  444. PTR sys_set_tid_address
  445. PTR sys_restart_syscall
  446. PTR sys32_fadvise64_64
  447. PTR compat_sys_statfs64 /* 4255 */
  448. PTR compat_sys_fstatfs64
  449. PTR compat_sys_timer_create
  450. PTR compat_sys_timer_settime
  451. PTR compat_sys_timer_gettime
  452. PTR sys_timer_getoverrun /* 4260 */
  453. PTR sys_timer_delete
  454. PTR compat_sys_clock_settime
  455. PTR compat_sys_clock_gettime
  456. PTR compat_sys_clock_getres
  457. PTR compat_sys_clock_nanosleep /* 4265 */
  458. PTR sys_tgkill
  459. PTR compat_sys_utimes
  460. PTR compat_sys_mbind
  461. PTR compat_sys_get_mempolicy
  462. PTR compat_sys_set_mempolicy /* 4270 */
  463. PTR compat_sys_mq_open
  464. PTR sys_mq_unlink
  465. PTR compat_sys_mq_timedsend
  466. PTR compat_sys_mq_timedreceive
  467. PTR compat_sys_mq_notify /* 4275 */
  468. PTR compat_sys_mq_getsetattr
  469. PTR sys_ni_syscall /* sys_vserver */
  470. PTR compat_sys_waitid
  471. PTR sys_ni_syscall /* available, was setaltroot */
  472. PTR sys_add_key /* 4280 */
  473. PTR sys_request_key
  474. PTR compat_sys_keyctl
  475. PTR sys_set_thread_area
  476. PTR sys_inotify_init
  477. PTR sys_inotify_add_watch /* 4285 */
  478. PTR sys_inotify_rm_watch
  479. PTR compat_sys_migrate_pages
  480. PTR compat_sys_openat
  481. PTR sys_mkdirat
  482. PTR sys_mknodat /* 4290 */
  483. PTR sys_fchownat
  484. PTR compat_sys_futimesat
  485. PTR sys_newfstatat
  486. PTR sys_unlinkat
  487. PTR sys_renameat /* 4295 */
  488. PTR sys_linkat
  489. PTR sys_symlinkat
  490. PTR sys_readlinkat
  491. PTR sys_fchmodat
  492. PTR sys_faccessat /* 4300 */
  493. PTR compat_sys_pselect6
  494. PTR compat_sys_ppoll
  495. PTR sys_unshare
  496. PTR sys_splice
  497. PTR sys32_sync_file_range /* 4305 */
  498. PTR sys_tee
  499. PTR compat_sys_vmsplice
  500. PTR compat_sys_move_pages
  501. PTR compat_sys_set_robust_list
  502. PTR compat_sys_get_robust_list /* 4310 */
  503. PTR compat_sys_kexec_load
  504. PTR sys_getcpu
  505. PTR compat_sys_epoll_pwait
  506. PTR sys_ioprio_set
  507. PTR sys_ioprio_get /* 4315 */
  508. PTR compat_sys_utimensat
  509. PTR compat_sys_signalfd
  510. PTR sys_ni_syscall /* was timerfd */
  511. PTR sys_eventfd
  512. PTR sys32_fallocate /* 4320 */
  513. PTR sys_timerfd_create
  514. PTR compat_sys_timerfd_gettime
  515. PTR compat_sys_timerfd_settime
  516. PTR compat_sys_signalfd4
  517. PTR sys_eventfd2 /* 4325 */
  518. PTR sys_epoll_create1
  519. PTR sys_dup3
  520. PTR sys_pipe2
  521. PTR sys_inotify_init1
  522. PTR compat_sys_preadv /* 4330 */
  523. PTR compat_sys_pwritev
  524. PTR compat_sys_rt_tgsigqueueinfo
  525. PTR sys_perf_event_open
  526. PTR sys_accept4
  527. PTR compat_sys_recvmmsg /* 4335 */
  528. PTR sys_fanotify_init
  529. PTR compat_sys_fanotify_mark
  530. PTR sys_prlimit64
  531. PTR sys_name_to_handle_at
  532. PTR compat_sys_open_by_handle_at /* 4340 */
  533. PTR compat_sys_clock_adjtime
  534. PTR sys_syncfs
  535. PTR compat_sys_sendmmsg
  536. PTR sys_setns
  537. PTR compat_sys_process_vm_readv /* 4345 */
  538. PTR compat_sys_process_vm_writev
  539. PTR sys_kcmp
  540. PTR sys_finit_module
  541. PTR sys_sched_setattr
  542. PTR sys_sched_getattr /* 4350 */
  543. PTR sys_renameat2
  544. PTR sys_seccomp
  545. PTR sys_getrandom
  546. PTR sys_memfd_create
  547. PTR sys_bpf /* 4355 */
  548. PTR compat_sys_execveat
  549. PTR sys_userfaultfd
  550. PTR sys_membarrier
  551. PTR sys_mlock2
  552. PTR sys_copy_file_range /* 4360 */
  553. PTR compat_sys_preadv2
  554. PTR compat_sys_pwritev2
  555. PTR sys_pkey_mprotect
  556. PTR sys_pkey_alloc
  557. PTR sys_pkey_free /* 4365 */
  558. .size sys32_call_table,.-sys32_call_table