entry.S
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:17k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  linux/arch/i386/entry.S
  3.  *
  4.  *  Copyright (C) 1991, 1992  Linus Torvalds
  5.  */
  6. /*
  7.  * entry.S contains the system-call and fault low-level handling routines.
  8.  * This also contains the timer-interrupt handler, as well as all interrupts
  9.  * and faults that can result in a task-switch.
  10.  *
  11.  * NOTE: This code handles signal-recognition, which happens every time
  12.  * after a timer-interrupt and after each system call.
  13.  *
  14.  * I changed all the .align's to 4 (16 byte alignment), as that's faster
  15.  * on a 486.
  16.  *
  17.  * Stack layout in 'ret_from_system_call':
  18.  *  ptrace needs to have all regs on the stack.
  19.  * if the order here is changed, it needs to be
  20.  * updated in fork.c:copy_process, signal.c:do_signal,
  21.  * ptrace.c and ptrace.h
  22.  *
  23.  *  0(%esp) - %ebx
  24.  *  4(%esp) - %ecx
  25.  *  8(%esp) - %edx
  26.  *       C(%esp) - %esi
  27.  * 10(%esp) - %edi
  28.  * 14(%esp) - %ebp
  29.  * 18(%esp) - %eax
  30.  * 1C(%esp) - %ds
  31.  * 20(%esp) - %es
  32.  * 24(%esp) - orig_eax
  33.  * 28(%esp) - %eip
  34.  * 2C(%esp) - %cs
  35.  * 30(%esp) - %eflags
  36.  * 34(%esp) - %oldesp
  37.  * 38(%esp) - %oldss
  38.  *
  39.  * "current" is in register %ebx during any slow entries.
  40.  */
  41. #include <linux/config.h>
  42. #include <linux/sys.h>
  43. #include <linux/linkage.h>
  44. #include <asm/segment.h>
  45. #include <asm/smp.h>
  46. EBX = 0x00
  47. ECX = 0x04
  48. EDX = 0x08
  49. ESI = 0x0C
  50. EDI = 0x10
  51. EBP = 0x14
  52. EAX = 0x18
  53. DS = 0x1C
  54. ES = 0x20
  55. ORIG_EAX = 0x24
  56. EIP = 0x28
  57. CS = 0x2C
  58. EFLAGS = 0x30
  59. OLDESP = 0x34
  60. OLDSS = 0x38
  61. CF_MASK = 0x00000001
  62. IF_MASK = 0x00000200
  63. NT_MASK = 0x00004000
  64. VM_MASK = 0x00020000
  65. /*
  66.  * these are offsets into the task-struct.
  67.  */
  68. state =  0
  69. flags =  4
  70. sigpending =  8
  71. addr_limit = 12
  72. exec_domain = 16
  73. need_resched = 20
  74. tsk_ptrace = 24
  75. processor = 52
  76. ENOSYS = 38
  77. #define SAVE_ALL 
  78. cld; 
  79. pushl %es; 
  80. pushl %ds; 
  81. pushl %eax; 
  82. pushl %ebp; 
  83. pushl %edi; 
  84. pushl %esi; 
  85. pushl %edx; 
  86. pushl %ecx; 
  87. pushl %ebx; 
  88. movl $(__KERNEL_DS),%edx; 
  89. movl %edx,%ds; 
  90. movl %edx,%es;
  91. #define RESTORE_ALL
  92. popl %ebx;
  93. popl %ecx;
  94. popl %edx;
  95. popl %esi;
  96. popl %edi;
  97. popl %ebp;
  98. popl %eax;
  99. 1: popl %ds;
  100. 2: popl %es;
  101. addl $4,%esp;
  102. 3: iret;
  103. .section .fixup,"ax";
  104. 4: movl $0,(%esp);
  105. jmp 1b;
  106. 5: movl $0,(%esp);
  107. jmp 2b;
  108. 6: pushl %ss;
  109. popl %ds;
  110. pushl %ss;
  111. popl %es;
  112. pushl $11;
  113. call do_exit;
  114. .previous;
  115. .section __ex_table,"a";
  116. .align 4;
  117. .long 1b,4b;
  118. .long 2b,5b;
  119. .long 3b,6b;
  120. .previous
  121. #define GET_CURRENT(reg) 
  122. movl $-8192, reg; 
  123. andl %esp, reg
  124. ENTRY(lcall7)
  125. pushfl # We get a different stack layout with call gates,
  126. pushl %eax # which has to be cleaned up later..
  127. SAVE_ALL
  128. movl EIP(%esp),%eax # due to call gates, this is eflags, not eip..
  129. movl CS(%esp),%edx # this is eip..
  130. movl EFLAGS(%esp),%ecx # and this is cs..
  131. movl %eax,EFLAGS(%esp) #
  132. movl %edx,EIP(%esp) # Now we move them to their "normal" places
  133. movl %ecx,CS(%esp) #
  134. movl %esp,%ebx
  135. pushl %ebx
  136. andl $-8192,%ebx # GET_CURRENT
  137. movl exec_domain(%ebx),%edx # Get the execution domain
  138. movl 4(%edx),%edx # Get the lcall7 handler for the domain
  139. pushl $0x7
  140. call *%edx
  141. addl $4, %esp
  142. popl %eax
  143. jmp ret_from_sys_call
  144. ENTRY(lcall27)
  145. pushfl # We get a different stack layout with call gates,
  146. pushl %eax # which has to be cleaned up later..
  147. SAVE_ALL
  148. movl EIP(%esp),%eax # due to call gates, this is eflags, not eip..
  149. movl CS(%esp),%edx # this is eip..
  150. movl EFLAGS(%esp),%ecx # and this is cs..
  151. movl %eax,EFLAGS(%esp) #
  152. movl %edx,EIP(%esp) # Now we move them to their "normal" places
  153. movl %ecx,CS(%esp) #
  154. movl %esp,%ebx
  155. pushl %ebx
  156. andl $-8192,%ebx # GET_CURRENT
  157. movl exec_domain(%ebx),%edx # Get the execution domain
  158. movl 4(%edx),%edx # Get the lcall7 handler for the domain
  159. pushl $0x27
  160. call *%edx
  161. addl $4, %esp
  162. popl %eax
  163. jmp ret_from_sys_call
  164. ENTRY(ret_from_fork)
  165. pushl %ebx
  166. call SYMBOL_NAME(schedule_tail)
  167. addl $4, %esp
  168. GET_CURRENT(%ebx)
  169. testb $0x02,tsk_ptrace(%ebx) # PT_TRACESYS
  170. jne tracesys_exit
  171. jmp ret_from_sys_call
  172. /*
  173.  * Return to user mode is not as complex as all this looks,
  174.  * but we want the default path for a system call return to
  175.  * go as quickly as possible which is why some of this is
  176.  * less clear than it otherwise should be.
  177.  */
  178. ENTRY(system_call)
  179. pushl %eax # save orig_eax
  180. SAVE_ALL
  181. GET_CURRENT(%ebx)
  182. testb $0x02,tsk_ptrace(%ebx) # PT_TRACESYS
  183. jne tracesys
  184. cmpl $(NR_syscalls),%eax
  185. jae badsys
  186. call *SYMBOL_NAME(sys_call_table)(,%eax,4)
  187. movl %eax,EAX(%esp) # save the return value
  188. ENTRY(ret_from_sys_call)
  189. cli # need_resched and signals atomic test
  190. cmpl $0,need_resched(%ebx)
  191. jne reschedule
  192. cmpl $0,sigpending(%ebx)
  193. jne signal_return
  194. restore_all:
  195. RESTORE_ALL
  196. ALIGN
  197. signal_return:
  198. sti # we can get here from an interrupt handler
  199. testl $(VM_MASK),EFLAGS(%esp)
  200. movl %esp,%eax
  201. jne v86_signal_return
  202. xorl %edx,%edx
  203. call SYMBOL_NAME(do_signal)
  204. jmp restore_all
  205. ALIGN
  206. v86_signal_return:
  207. call SYMBOL_NAME(save_v86_state)
  208. movl %eax,%esp
  209. xorl %edx,%edx
  210. call SYMBOL_NAME(do_signal)
  211. jmp restore_all
  212. ALIGN
  213. tracesys:
  214. movl $-ENOSYS,EAX(%esp)
  215. call SYMBOL_NAME(syscall_trace)
  216. movl ORIG_EAX(%esp),%eax
  217. cmpl $(NR_syscalls),%eax
  218. jae tracesys_exit
  219. call *SYMBOL_NAME(sys_call_table)(,%eax,4)
  220. movl %eax,EAX(%esp) # save the return value
  221. tracesys_exit:
  222. call SYMBOL_NAME(syscall_trace)
  223. jmp ret_from_sys_call
  224. badsys:
  225. movl $-ENOSYS,EAX(%esp)
  226. jmp ret_from_sys_call
  227. ALIGN
  228. ENTRY(ret_from_intr)
  229. GET_CURRENT(%ebx)
  230. ret_from_exception:
  231. movl EFLAGS(%esp),%eax # mix EFLAGS and CS
  232. movb CS(%esp),%al
  233. testl $(VM_MASK | 3),%eax # return to VM86 mode or non-supervisor?
  234. jne ret_from_sys_call
  235. jmp restore_all
  236. ALIGN
  237. reschedule:
  238. call SYMBOL_NAME(schedule)    # test
  239. jmp ret_from_sys_call
  240. ENTRY(divide_error)
  241. pushl $0 # no error code
  242. pushl $ SYMBOL_NAME(do_divide_error)
  243. ALIGN
  244. error_code:
  245. pushl %ds
  246. pushl %eax
  247. xorl %eax,%eax
  248. pushl %ebp
  249. pushl %edi
  250. pushl %esi
  251. pushl %edx
  252. decl %eax # eax = -1
  253. pushl %ecx
  254. pushl %ebx
  255. cld
  256. movl %es,%ecx
  257. movl ORIG_EAX(%esp), %esi # get the error code
  258. movl ES(%esp), %edi # get the function address
  259. movl %eax, ORIG_EAX(%esp)
  260. movl %ecx, ES(%esp)
  261. movl %esp,%edx
  262. pushl %esi # push the error code
  263. pushl %edx # push the pt_regs pointer
  264. movl $(__KERNEL_DS),%edx
  265. movl %edx,%ds
  266. movl %edx,%es
  267. GET_CURRENT(%ebx)
  268. call *%edi
  269. addl $8,%esp
  270. jmp ret_from_exception
  271. ENTRY(coprocessor_error)
  272. pushl $0
  273. pushl $ SYMBOL_NAME(do_coprocessor_error)
  274. jmp error_code
  275. ENTRY(simd_coprocessor_error)
  276. pushl $0
  277. pushl $ SYMBOL_NAME(do_simd_coprocessor_error)
  278. jmp error_code
  279. ENTRY(device_not_available)
  280. pushl $-1 # mark this as an int
  281. SAVE_ALL
  282. GET_CURRENT(%ebx)
  283. movl %cr0,%eax
  284. testl $0x4,%eax # EM (math emulation bit)
  285. jne device_not_available_emulate
  286. call SYMBOL_NAME(math_state_restore)
  287. jmp ret_from_exception
  288. device_not_available_emulate:
  289. pushl $0 # temporary storage for ORIG_EIP
  290. call  SYMBOL_NAME(math_emulate)
  291. addl $4,%esp
  292. jmp ret_from_exception
  293. ENTRY(debug)
  294. pushl $0
  295. pushl $ SYMBOL_NAME(do_debug)
  296. jmp error_code
  297. ENTRY(nmi)
  298. pushl %eax
  299. SAVE_ALL
  300. movl %esp,%edx
  301. pushl $0
  302. pushl %edx
  303. call SYMBOL_NAME(do_nmi)
  304. addl $8,%esp
  305. RESTORE_ALL
  306. ENTRY(int3)
  307. pushl $0
  308. pushl $ SYMBOL_NAME(do_int3)
  309. jmp error_code
  310. ENTRY(overflow)
  311. pushl $0
  312. pushl $ SYMBOL_NAME(do_overflow)
  313. jmp error_code
  314. ENTRY(bounds)
  315. pushl $0
  316. pushl $ SYMBOL_NAME(do_bounds)
  317. jmp error_code
  318. ENTRY(invalid_op)
  319. pushl $0
  320. pushl $ SYMBOL_NAME(do_invalid_op)
  321. jmp error_code
  322. ENTRY(coprocessor_segment_overrun)
  323. pushl $0
  324. pushl $ SYMBOL_NAME(do_coprocessor_segment_overrun)
  325. jmp error_code
  326. ENTRY(double_fault)
  327. pushl $ SYMBOL_NAME(do_double_fault)
  328. jmp error_code
  329. ENTRY(invalid_TSS)
  330. pushl $ SYMBOL_NAME(do_invalid_TSS)
  331. jmp error_code
  332. ENTRY(segment_not_present)
  333. pushl $ SYMBOL_NAME(do_segment_not_present)
  334. jmp error_code
  335. ENTRY(stack_segment)
  336. pushl $ SYMBOL_NAME(do_stack_segment)
  337. jmp error_code
  338. ENTRY(general_protection)
  339. pushl $ SYMBOL_NAME(do_general_protection)
  340. jmp error_code
  341. ENTRY(alignment_check)
  342. pushl $ SYMBOL_NAME(do_alignment_check)
  343. jmp error_code
  344. ENTRY(page_fault)
  345. pushl $ SYMBOL_NAME(do_page_fault)
  346. jmp error_code
  347. ENTRY(machine_check)
  348. pushl $0
  349. pushl $ SYMBOL_NAME(do_machine_check)
  350. jmp error_code
  351. ENTRY(spurious_interrupt_bug)
  352. pushl $0
  353. pushl $ SYMBOL_NAME(do_spurious_interrupt_bug)
  354. jmp error_code
  355. .data
  356. ENTRY(sys_call_table)
  357. .long SYMBOL_NAME(sys_ni_syscall) /* 0  -  old "setup()" system call*/
  358. .long SYMBOL_NAME(sys_exit)
  359. .long SYMBOL_NAME(sys_fork)
  360. .long SYMBOL_NAME(sys_read)
  361. .long SYMBOL_NAME(sys_write)
  362. .long SYMBOL_NAME(sys_open) /* 5 */
  363. .long SYMBOL_NAME(sys_close)
  364. .long SYMBOL_NAME(sys_waitpid)
  365. .long SYMBOL_NAME(sys_creat)
  366. .long SYMBOL_NAME(sys_link)
  367. .long SYMBOL_NAME(sys_unlink) /* 10 */
  368. .long SYMBOL_NAME(sys_execve)
  369. .long SYMBOL_NAME(sys_chdir)
  370. .long SYMBOL_NAME(sys_time)
  371. .long SYMBOL_NAME(sys_mknod)
  372. .long SYMBOL_NAME(sys_chmod) /* 15 */
  373. .long SYMBOL_NAME(sys_lchown16)
  374. .long SYMBOL_NAME(sys_ni_syscall) /* old break syscall holder */
  375. .long SYMBOL_NAME(sys_stat)
  376. .long SYMBOL_NAME(sys_lseek)
  377. .long SYMBOL_NAME(sys_getpid) /* 20 */
  378. .long SYMBOL_NAME(sys_mount)
  379. .long SYMBOL_NAME(sys_oldumount)
  380. .long SYMBOL_NAME(sys_setuid16)
  381. .long SYMBOL_NAME(sys_getuid16)
  382. .long SYMBOL_NAME(sys_stime) /* 25 */
  383. .long SYMBOL_NAME(sys_ptrace)
  384. .long SYMBOL_NAME(sys_alarm)
  385. .long SYMBOL_NAME(sys_fstat)
  386. .long SYMBOL_NAME(sys_pause)
  387. .long SYMBOL_NAME(sys_utime) /* 30 */
  388. .long SYMBOL_NAME(sys_ni_syscall) /* old stty syscall holder */
  389. .long SYMBOL_NAME(sys_ni_syscall) /* old gtty syscall holder */
  390. .long SYMBOL_NAME(sys_access)
  391. .long SYMBOL_NAME(sys_nice)
  392. .long SYMBOL_NAME(sys_ni_syscall) /* 35 */ /* old ftime syscall holder */
  393. .long SYMBOL_NAME(sys_sync)
  394. .long SYMBOL_NAME(sys_kill)
  395. .long SYMBOL_NAME(sys_rename)
  396. .long SYMBOL_NAME(sys_mkdir)
  397. .long SYMBOL_NAME(sys_rmdir) /* 40 */
  398. .long SYMBOL_NAME(sys_dup)
  399. .long SYMBOL_NAME(sys_pipe)
  400. .long SYMBOL_NAME(sys_times)
  401. .long SYMBOL_NAME(sys_ni_syscall) /* old prof syscall holder */
  402. .long SYMBOL_NAME(sys_brk) /* 45 */
  403. .long SYMBOL_NAME(sys_setgid16)
  404. .long SYMBOL_NAME(sys_getgid16)
  405. .long SYMBOL_NAME(sys_signal)
  406. .long SYMBOL_NAME(sys_geteuid16)
  407. .long SYMBOL_NAME(sys_getegid16) /* 50 */
  408. .long SYMBOL_NAME(sys_acct)
  409. .long SYMBOL_NAME(sys_umount) /* recycled never used phys() */
  410. .long SYMBOL_NAME(sys_ni_syscall) /* old lock syscall holder */
  411. .long SYMBOL_NAME(sys_ioctl)
  412. .long SYMBOL_NAME(sys_fcntl) /* 55 */
  413. .long SYMBOL_NAME(sys_ni_syscall) /* old mpx syscall holder */
  414. .long SYMBOL_NAME(sys_setpgid)
  415. .long SYMBOL_NAME(sys_ni_syscall) /* old ulimit syscall holder */
  416. .long SYMBOL_NAME(sys_olduname)
  417. .long SYMBOL_NAME(sys_umask) /* 60 */
  418. .long SYMBOL_NAME(sys_chroot)
  419. .long SYMBOL_NAME(sys_ustat)
  420. .long SYMBOL_NAME(sys_dup2)
  421. .long SYMBOL_NAME(sys_getppid)
  422. .long SYMBOL_NAME(sys_getpgrp) /* 65 */
  423. .long SYMBOL_NAME(sys_setsid)
  424. .long SYMBOL_NAME(sys_sigaction)
  425. .long SYMBOL_NAME(sys_sgetmask)
  426. .long SYMBOL_NAME(sys_ssetmask)
  427. .long SYMBOL_NAME(sys_setreuid16) /* 70 */
  428. .long SYMBOL_NAME(sys_setregid16)
  429. .long SYMBOL_NAME(sys_sigsuspend)
  430. .long SYMBOL_NAME(sys_sigpending)
  431. .long SYMBOL_NAME(sys_sethostname)
  432. .long SYMBOL_NAME(sys_setrlimit) /* 75 */
  433. .long SYMBOL_NAME(sys_old_getrlimit)
  434. .long SYMBOL_NAME(sys_getrusage)
  435. .long SYMBOL_NAME(sys_gettimeofday)
  436. .long SYMBOL_NAME(sys_settimeofday)
  437. .long SYMBOL_NAME(sys_getgroups16) /* 80 */
  438. .long SYMBOL_NAME(sys_setgroups16)
  439. .long SYMBOL_NAME(old_select)
  440. .long SYMBOL_NAME(sys_symlink)
  441. .long SYMBOL_NAME(sys_lstat)
  442. .long SYMBOL_NAME(sys_readlink) /* 85 */
  443. .long SYMBOL_NAME(sys_uselib)
  444. .long SYMBOL_NAME(sys_swapon)
  445. .long SYMBOL_NAME(sys_reboot)
  446. .long SYMBOL_NAME(old_readdir)
  447. .long SYMBOL_NAME(old_mmap) /* 90 */
  448. .long SYMBOL_NAME(sys_munmap)
  449. .long SYMBOL_NAME(sys_truncate)
  450. .long SYMBOL_NAME(sys_ftruncate)
  451. .long SYMBOL_NAME(sys_fchmod)
  452. .long SYMBOL_NAME(sys_fchown16) /* 95 */
  453. .long SYMBOL_NAME(sys_getpriority)
  454. .long SYMBOL_NAME(sys_setpriority)
  455. .long SYMBOL_NAME(sys_ni_syscall) /* old profil syscall holder */
  456. .long SYMBOL_NAME(sys_statfs)
  457. .long SYMBOL_NAME(sys_fstatfs) /* 100 */
  458. .long SYMBOL_NAME(sys_ioperm)
  459. .long SYMBOL_NAME(sys_socketcall)
  460. .long SYMBOL_NAME(sys_syslog)
  461. .long SYMBOL_NAME(sys_setitimer)
  462. .long SYMBOL_NAME(sys_getitimer) /* 105 */
  463. .long SYMBOL_NAME(sys_newstat)
  464. .long SYMBOL_NAME(sys_newlstat)
  465. .long SYMBOL_NAME(sys_newfstat)
  466. .long SYMBOL_NAME(sys_uname)
  467. .long SYMBOL_NAME(sys_iopl) /* 110 */
  468. .long SYMBOL_NAME(sys_vhangup)
  469. .long SYMBOL_NAME(sys_ni_syscall) /* old "idle" system call */
  470. .long SYMBOL_NAME(sys_vm86old)
  471. .long SYMBOL_NAME(sys_wait4)
  472. .long SYMBOL_NAME(sys_swapoff) /* 115 */
  473. .long SYMBOL_NAME(sys_sysinfo)
  474. .long SYMBOL_NAME(sys_ipc)
  475. .long SYMBOL_NAME(sys_fsync)
  476. .long SYMBOL_NAME(sys_sigreturn)
  477. .long SYMBOL_NAME(sys_clone) /* 120 */
  478. .long SYMBOL_NAME(sys_setdomainname)
  479. .long SYMBOL_NAME(sys_newuname)
  480. .long SYMBOL_NAME(sys_modify_ldt)
  481. .long SYMBOL_NAME(sys_adjtimex)
  482. .long SYMBOL_NAME(sys_mprotect) /* 125 */
  483. .long SYMBOL_NAME(sys_sigprocmask)
  484. .long SYMBOL_NAME(sys_create_module)
  485. .long SYMBOL_NAME(sys_init_module)
  486. .long SYMBOL_NAME(sys_delete_module)
  487. .long SYMBOL_NAME(sys_get_kernel_syms) /* 130 */
  488. .long SYMBOL_NAME(sys_quotactl)
  489. .long SYMBOL_NAME(sys_getpgid)
  490. .long SYMBOL_NAME(sys_fchdir)
  491. .long SYMBOL_NAME(sys_bdflush)
  492. .long SYMBOL_NAME(sys_sysfs) /* 135 */
  493. .long SYMBOL_NAME(sys_personality)
  494. .long SYMBOL_NAME(sys_ni_syscall) /* for afs_syscall */
  495. .long SYMBOL_NAME(sys_setfsuid16)
  496. .long SYMBOL_NAME(sys_setfsgid16)
  497. .long SYMBOL_NAME(sys_llseek) /* 140 */
  498. .long SYMBOL_NAME(sys_getdents)
  499. .long SYMBOL_NAME(sys_select)
  500. .long SYMBOL_NAME(sys_flock)
  501. .long SYMBOL_NAME(sys_msync)
  502. .long SYMBOL_NAME(sys_readv) /* 145 */
  503. .long SYMBOL_NAME(sys_writev)
  504. .long SYMBOL_NAME(sys_getsid)
  505. .long SYMBOL_NAME(sys_fdatasync)
  506. .long SYMBOL_NAME(sys_sysctl)
  507. .long SYMBOL_NAME(sys_mlock) /* 150 */
  508. .long SYMBOL_NAME(sys_munlock)
  509. .long SYMBOL_NAME(sys_mlockall)
  510. .long SYMBOL_NAME(sys_munlockall)
  511. .long SYMBOL_NAME(sys_sched_setparam)
  512. .long SYMBOL_NAME(sys_sched_getparam)   /* 155 */
  513. .long SYMBOL_NAME(sys_sched_setscheduler)
  514. .long SYMBOL_NAME(sys_sched_getscheduler)
  515. .long SYMBOL_NAME(sys_sched_yield)
  516. .long SYMBOL_NAME(sys_sched_get_priority_max)
  517. .long SYMBOL_NAME(sys_sched_get_priority_min)  /* 160 */
  518. .long SYMBOL_NAME(sys_sched_rr_get_interval)
  519. .long SYMBOL_NAME(sys_nanosleep)
  520. .long SYMBOL_NAME(sys_mremap)
  521. .long SYMBOL_NAME(sys_setresuid16)
  522. .long SYMBOL_NAME(sys_getresuid16) /* 165 */
  523. .long SYMBOL_NAME(sys_vm86)
  524. .long SYMBOL_NAME(sys_query_module)
  525. .long SYMBOL_NAME(sys_poll)
  526. .long SYMBOL_NAME(sys_nfsservctl)
  527. .long SYMBOL_NAME(sys_setresgid16) /* 170 */
  528. .long SYMBOL_NAME(sys_getresgid16)
  529. .long SYMBOL_NAME(sys_prctl)
  530. .long SYMBOL_NAME(sys_rt_sigreturn)
  531. .long SYMBOL_NAME(sys_rt_sigaction)
  532. .long SYMBOL_NAME(sys_rt_sigprocmask) /* 175 */
  533. .long SYMBOL_NAME(sys_rt_sigpending)
  534. .long SYMBOL_NAME(sys_rt_sigtimedwait)
  535. .long SYMBOL_NAME(sys_rt_sigqueueinfo)
  536. .long SYMBOL_NAME(sys_rt_sigsuspend)
  537. .long SYMBOL_NAME(sys_pread) /* 180 */
  538. .long SYMBOL_NAME(sys_pwrite)
  539. .long SYMBOL_NAME(sys_chown16)
  540. .long SYMBOL_NAME(sys_getcwd)
  541. .long SYMBOL_NAME(sys_capget)
  542. .long SYMBOL_NAME(sys_capset)           /* 185 */
  543. .long SYMBOL_NAME(sys_sigaltstack)
  544. .long SYMBOL_NAME(sys_sendfile)
  545. .long SYMBOL_NAME(sys_ni_syscall) /* streams1 */
  546. .long SYMBOL_NAME(sys_ni_syscall) /* streams2 */
  547. .long SYMBOL_NAME(sys_vfork)            /* 190 */
  548. .long SYMBOL_NAME(sys_getrlimit)
  549. .long SYMBOL_NAME(sys_mmap2)
  550. .long SYMBOL_NAME(sys_truncate64)
  551. .long SYMBOL_NAME(sys_ftruncate64)
  552. .long SYMBOL_NAME(sys_stat64) /* 195 */
  553. .long SYMBOL_NAME(sys_lstat64)
  554. .long SYMBOL_NAME(sys_fstat64)
  555. .long SYMBOL_NAME(sys_lchown)
  556. .long SYMBOL_NAME(sys_getuid)
  557. .long SYMBOL_NAME(sys_getgid) /* 200 */
  558. .long SYMBOL_NAME(sys_geteuid)
  559. .long SYMBOL_NAME(sys_getegid)
  560. .long SYMBOL_NAME(sys_setreuid)
  561. .long SYMBOL_NAME(sys_setregid)
  562. .long SYMBOL_NAME(sys_getgroups) /* 205 */
  563. .long SYMBOL_NAME(sys_setgroups)
  564. .long SYMBOL_NAME(sys_fchown)
  565. .long SYMBOL_NAME(sys_setresuid)
  566. .long SYMBOL_NAME(sys_getresuid)
  567. .long SYMBOL_NAME(sys_setresgid) /* 210 */
  568. .long SYMBOL_NAME(sys_getresgid)
  569. .long SYMBOL_NAME(sys_chown)
  570. .long SYMBOL_NAME(sys_setuid)
  571. .long SYMBOL_NAME(sys_setgid)
  572. .long SYMBOL_NAME(sys_setfsuid) /* 215 */
  573. .long SYMBOL_NAME(sys_setfsgid)
  574. .long SYMBOL_NAME(sys_pivot_root)
  575. .long SYMBOL_NAME(sys_mincore)
  576. .long SYMBOL_NAME(sys_madvise)
  577. .long SYMBOL_NAME(sys_getdents64) /* 220 */
  578. .long SYMBOL_NAME(sys_fcntl64)
  579. .long SYMBOL_NAME(sys_ni_syscall) /* reserved for TUX */
  580. .long SYMBOL_NAME(sys_ni_syscall) /* Reserved for Security */
  581. .long SYMBOL_NAME(sys_gettid)
  582. .long SYMBOL_NAME(sys_readahead) /* 225 */
  583. .long SYMBOL_NAME(sys_ni_syscall) /* reserved for setxattr */
  584. .long SYMBOL_NAME(sys_ni_syscall) /* reserved for lsetxattr */
  585. .long SYMBOL_NAME(sys_ni_syscall) /* reserved for fsetxattr */
  586. .long SYMBOL_NAME(sys_ni_syscall) /* reserved for getxattr */
  587. .long SYMBOL_NAME(sys_ni_syscall) /* 230 reserved for lgetxattr */
  588. .long SYMBOL_NAME(sys_ni_syscall) /* reserved for fgetxattr */
  589. .long SYMBOL_NAME(sys_ni_syscall) /* reserved for listxattr */
  590. .long SYMBOL_NAME(sys_ni_syscall) /* reserved for llistxattr */
  591. .long SYMBOL_NAME(sys_ni_syscall) /* reserved for flistxattr */
  592. .long SYMBOL_NAME(sys_ni_syscall) /* 235 reserved for removexattr */
  593. .long SYMBOL_NAME(sys_ni_syscall) /* reserved for lremovexattr */
  594. .long SYMBOL_NAME(sys_ni_syscall) /* reserved for fremovexattr */
  595. .rept NR_syscalls-(.-sys_call_table)/4
  596. .long SYMBOL_NAME(sys_ni_syscall)
  597. .endr