2 * linux/arch/m32r/kernel/entry.S
4 * Copyright (c) 2001, 2002 Hirokazu Takata, Hitoshi Yamamoto, H. Kondo
5 * Copyright (c) 2003 Hitoshi Yamamoto
6 * Copyright (c) 2004 Hirokazu Takata <takata at linux-m32r.org>
8 * Taken from i386 version.
9 * Copyright (C) 1991, 1992 Linus Torvalds
13 * entry.S contains the system-call and fault low-level handling routines.
14 * This also contains the timer-interrupt handler, as well as all interrupts
15 * and faults that can result in a task-switch.
17 * NOTE: This code handles signal-recognition, which happens every time
18 * after a timer-interrupt and after each system call.
20 * Stack layout in 'ret_from_system_call':
21 * ptrace needs to have all regs on the stack.
22 * if the order here is changed, it needs to be
23 * updated in fork.c:copy_process, signal.c:do_signal,
24 * ptrace.c and ptrace.h
28 * @(0x04,sp) - r5 ditto
29 * @(0x08,sp) - r6 ditto
30 * @(0x0c,sp) - *pt_regs ditto
31 * @(0x10,sp) - r0 ditto
32 * @(0x14,sp) - r1 ditto
33 * @(0x18,sp) - r2 ditto
34 * @(0x1c,sp) - r3 ditto
35 * @(0x20,sp) - r7 ditto
36 * @(0x24,sp) - r8 ditto
37 * @(0x28,sp) - r9 ditto
38 * @(0x2c,sp) - r10 ditto
39 * @(0x30,sp) - r11 ditto
40 * @(0x34,sp) - r12 ditto
41 * @(0x38,sp) - syscall_nr ditto
42 * @(0x3c,sp) - acc0h @(0x3c,sp) - acch
43 * @(0x40,sp) - acc0l @(0x40,sp) - accl
44 * @(0x44,sp) - acc1h @(0x44,sp) - psw
45 * @(0x48,sp) - acc1l @(0x48,sp) - bpc
46 * @(0x4c,sp) - psw @(0x4c,sp) - bbpsw
47 * @(0x50,sp) - bpc @(0x50,sp) - bbpc
48 * @(0x54,sp) - bbpsw @(0x54,sp) - spu (cr3)
49 * @(0x58,sp) - bbpc @(0x58,sp) - fp (r13)
50 * @(0x5c,sp) - spu (cr3) @(0x5c,sp) - lr (r14)
51 * @(0x60,sp) - fp (r13) @(0x60,sp) - spi (cr12)
52 * @(0x64,sp) - lr (r14) @(0x64,sp) - orig_r0
53 * @(0x68,sp) - spi (cr2)
54 * @(0x6c,sp) - orig_r0
58 #include <linux/config.h>
59 #include <linux/linkage.h>
61 #include <asm/unistd.h>
62 #include <asm/assembler.h>
63 #include <asm/thread_info.h>
64 #include <asm/errno.h>
65 #include <asm/segment.h>
69 #include <asm/mmu_context.h>
71 #if !defined(CONFIG_MMU)
72 #define sys_madvise sys_ni_syscall
73 #define sys_readahead sys_ni_syscall
74 #define sys_mprotect sys_ni_syscall
75 #define sys_msync sys_ni_syscall
76 #define sys_mlock sys_ni_syscall
77 #define sys_munlock sys_ni_syscall
78 #define sys_mlockall sys_ni_syscall
79 #define sys_munlockall sys_ni_syscall
80 #define sys_mremap sys_ni_syscall
81 #define sys_mincore sys_ni_syscall
82 #endif /* CONFIG_MMU */
85 #define R5(reg) @(0x04,reg)
86 #define R6(reg) @(0x08,reg)
87 #define PTREGS(reg) @(0x0C,reg)
88 #define R0(reg) @(0x10,reg)
89 #define R1(reg) @(0x14,reg)
90 #define R2(reg) @(0x18,reg)
91 #define R3(reg) @(0x1C,reg)
92 #define R7(reg) @(0x20,reg)
93 #define R8(reg) @(0x24,reg)
94 #define R9(reg) @(0x28,reg)
95 #define R10(reg) @(0x2C,reg)
96 #define R11(reg) @(0x30,reg)
97 #define R12(reg) @(0x34,reg)
98 #define SYSCALL_NR(reg) @(0x38,reg)
99 #if defined(CONFIG_ISA_M32R2) && defined(CONFIG_ISA_DSP_LEVEL2)
100 #define ACC0H(reg) @(0x3C,reg)
101 #define ACC0L(reg) @(0x40,reg)
102 #define ACC1H(reg) @(0x44,reg)
103 #define ACC1L(reg) @(0x48,reg)
104 #define PSW(reg) @(0x4C,reg)
105 #define BPC(reg) @(0x50,reg)
106 #define BBPSW(reg) @(0x54,reg)
107 #define BBPC(reg) @(0x58,reg)
108 #define SPU(reg) @(0x5C,reg)
109 #define FP(reg) @(0x60,reg) /* FP = R13 */
110 #define LR(reg) @(0x64,reg)
111 #define SP(reg) @(0x68,reg)
112 #define ORIG_R0(reg) @(0x6C,reg)
113 #elif defined(CONFIG_ISA_M32R2) || defined(CONFIG_ISA_M32R)
114 #define ACCH(reg) @(0x3C,reg)
115 #define ACCL(reg) @(0x40,reg)
116 #define PSW(reg) @(0x44,reg)
117 #define BPC(reg) @(0x48,reg)
118 #define BBPSW(reg) @(0x4C,reg)
119 #define BBPC(reg) @(0x50,reg)
120 #define SPU(reg) @(0x54,reg)
121 #define FP(reg) @(0x58,reg) /* FP = R13 */
122 #define LR(reg) @(0x5C,reg)
123 #define SP(reg) @(0x60,reg)
124 #define ORIG_R0(reg) @(0x64,reg)
126 #error unknown isa configuration
136 #ifdef CONFIG_PREEMPT
137 #define preempt_stop(x) CLI(x)
139 #define preempt_stop(x)
140 #define resume_kernel restore_all
150 * Return to user mode is not as complex as all this looks,
151 * but we want the default path for a system call return to
152 * go as quickly as possible which is why some of this is
153 * less clear than it otherwise should be.
156 ; userspace resumption stub bypassing syscall exit tracing
162 #ifdef CONFIG_ISA_M32R2
163 and3 r4, r4, #0x8800 ; check BSM and BPM bits
165 and3 r4, r4, #0x8000 ; check BSM bit
167 beqz r4, resume_kernel
168 ENTRY(resume_userspace)
169 CLI(r4) ; make sure we don't miss an interrupt
170 ; setting need_resched or sigpending
171 ; between sampling and the iret
173 ld r9, @(TI_FLAGS, r8)
174 and3 r4, r9, #_TIF_WORK_MASK ; is there any work to be done on
175 ; int/exception return?
176 bnez r4, work_pending
179 #ifdef CONFIG_PREEMPT
182 ld r9, @(TI_PRE_COUNT, r8) ; non-zero preempt_count ?
185 ld r9, @(TI_FLAGS, r8) ; need_resched set ?
186 and3 r4, r9, #_TIF_NEED_RESCHED
188 ld r4, PSW(sp) ; interrupts off (exception path) ?
191 LDIMM (r4, PREEMPT_ACTIVE)
192 st r4, @(TI_PRE_COUNT, r8)
196 st r4, @(TI_PRE_COUNT, r8)
201 ; system call handler stub
203 SWITCH_TO_KERNEL_STACK
205 STI(r4) ; Enable interrupt
206 st sp, PTREGS(sp) ; implicit pt_regs parameter
207 cmpui r7, #NR_syscalls
209 st r7, SYSCALL_NR(sp) ; syscall_nr
210 ; system call tracing in operation
212 ld r9, @(TI_FLAGS, r8)
213 and3 r4, r9, #_TIF_SYSCALL_TRACE
214 bnez r4, syscall_trace_entry
216 slli r7, #2 ; table jump for the system call
217 LDIMM (r4, sys_call_table)
220 jl r7 ; execute system call
221 st r0, R0(sp) ; save the return value
223 CLI(r4) ; make sure we don't miss an interrupt
224 ; setting need_resched or sigpending
225 ; between sampling and the iret
226 ld r9, @(TI_FLAGS, r8)
227 and3 r4, r9, #_TIF_ALLWORK_MASK ; current->work
228 bnez r4, syscall_exit_work
232 # perform work that needs to be done immediately before resumption
236 and3 r4, r9, #_TIF_NEED_RESCHED
237 beqz r4, work_notifysig
240 CLI(r4) ; make sure we don't miss an interrupt
241 ; setting need_resched or sigpending
242 ; between sampling and the iret
243 ld r9, @(TI_FLAGS, r8)
244 and3 r4, r9, #_TIF_WORK_MASK ; is there any work to be done other
245 ; than syscall tracing?
247 and3 r4, r4, #_TIF_NEED_RESCHED
248 bnez r4, work_resched
250 work_notifysig: ; deal with pending signals and
251 ; notify-resume requests
252 mv r0, sp ; arg1 : struct pt_regs *regs
253 ldi r1, #0 ; arg2 : sigset_t *oldset
254 mv r2, r9 ; arg3 : __u32 thread_info_flags
258 ; perform syscall exit tracing
271 ld r7, SYSCALL_NR(sp)
272 cmpui r7, #NR_syscalls
276 ; perform syscall exit tracing
279 ld r9, @(TI_FLAGS, r8)
280 and3 r4, r9, #_TIF_SYSCALL_TRACE
281 beqz r4, work_pending
282 STI(r4) ; could let do_syscall_trace() call
303 .equ ei_vec_table, eit_vector + 0x0200
309 #if defined(CONFIG_CHIP_M32700)
310 SWITCH_TO_KERNEL_STACK
311 ; WORKAROUND: force to clear SM bit and use the kernel stack (SPI).
314 mv r1, sp ; arg1(regs)
315 #if defined(CONFIG_CHIP_VDEC2) || defined(CONFIG_CHIP_XNUX2) \
316 || defined(CONFIG_CHIP_M32700) || defined(CONFIG_CHIP_M32102) \
317 || defined(CONFIG_CHIP_OPSP)
320 seth r0, #shigh(M32R_ICU_ISTS_ADDR)
321 ld r0, @(low(M32R_ICU_ISTS_ADDR),r0)
323 #if defined(CONFIG_SMP)
325 * If IRQ == 0 --> Nothing to do, Not write IMASK
326 * If IRQ == IPI --> Do IPI handler, Not write IMASK
327 * If IRQ != 0, IPI --> Do do_IRQ(), Write IMASK
330 srli r0, #24 ; r0(irq_num<<2)
332 #if defined(CONFIG_CHIP_M32700)
333 /* WORKAROUND: IMASK bug M32700-TS1, TS2 chip. */
334 beqz r0, 3f ; if (!irq_num) goto exit
336 beqz r0, 1f ; if (!irq_num) goto exit
337 #endif /* WORKAROUND */
339 cmpi r0, #(M32R_IRQ_IPI0<<2) ; ISN < IPI0 check
341 cmpi r0, #((M32R_IRQ_IPI7+1)<<2) ; ISN > IPI7 check
343 LDIMM (r2, ei_vec_table)
346 beqz r2, 1f ; if (no IPI handler) goto exit
347 mv r0, r1 ; arg0(regs)
353 #if defined(CONFIG_CHIP_M32700)
354 /* WORKAROUND: IMASK bug M32700-TS1, TS2 chip. */
357 ld24 r14, #0x00070000
358 seth r0, #shigh(M32R_ICU_IMASK_ADDR)
359 st r14, @(low(M32R_ICU_IMASK_ADDR), r0)
362 #endif /* WORKAROUND */
367 #if defined(CONFIG_PLAT_USRV)
368 add3 r2, r0, #-(M32R_IRQ_INT1) ; INT1# interrupt
370 ; read ICU status register of PLD
371 seth r0, #high(PLD_ICUISTS)
372 or3 r0, r0, #low(PLD_ICUISTS)
376 addi r0, #(M32700UT_PLD_IRQ_BASE)
379 #elif defined(CONFIG_PLAT_M32700UT)
380 add3 r2, r0, #-(M32R_IRQ_INT1) ; INT1# interrupt
382 ; read ICU status register of PLD
383 seth r0, #high(PLD_ICUISTS)
384 or3 r0, r0, #low(PLD_ICUISTS)
388 addi r0, #(M32700UT_PLD_IRQ_BASE)
392 add3 r2, r0, #-(M32R_IRQ_INT0) ; INT0# interrupt
394 ; read ICU status of LAN-board
395 seth r0, #high(M32700UT_LAN_ICUISTS)
396 or3 r0, r0, #low(M32700UT_LAN_ICUISTS)
400 add3 r0, r0, #(M32700UT_LAN_PLD_IRQ_BASE)
404 add3 r2, r0, #-(M32R_IRQ_INT2) ; INT2# interrupt
406 ; read ICU status of LCD-board
407 seth r0, #high(M32700UT_LCD_ICUISTS)
408 or3 r0, r0, #low(M32700UT_LCD_ICUISTS)
412 add3 r0, r0, #(M32700UT_LCD_PLD_IRQ_BASE)
416 #elif defined(CONFIG_PLAT_OPSPUT)
417 add3 r2, r0, #-(M32R_IRQ_INT1) ; INT1# interrupt
419 ; read ICU status register of PLD
420 seth r0, #high(PLD_ICUISTS)
421 or3 r0, r0, #low(PLD_ICUISTS)
425 addi r0, #(OPSPUT_PLD_IRQ_BASE)
429 add3 r2, r0, #-(M32R_IRQ_INT0) ; INT0# interrupt
431 ; read ICU status of LAN-board
432 seth r0, #high(OPSPUT_LAN_ICUISTS)
433 or3 r0, r0, #low(OPSPUT_LAN_ICUISTS)
437 add3 r0, r0, #(OPSPUT_LAN_PLD_IRQ_BASE)
441 add3 r2, r0, #-(M32R_IRQ_INT2) ; INT2# interrupt
443 ; read ICU status of LCD-board
444 seth r0, #high(OPSPUT_LCD_ICUISTS)
445 or3 r0, r0, #low(OPSPUT_LCD_ICUISTS)
449 add3 r0, r0, #(OPSPUT_LCD_PLD_IRQ_BASE)
453 #endif /* CONFIG_PLAT_OPSPUT */
454 bl do_IRQ ; r0(irq), r1(regs)
455 #else /* not CONFIG_SMP */
456 srli r0, #22 ; r0(irq)
457 #if defined(CONFIG_PLAT_USRV)
458 add3 r2, r0, #-(M32R_IRQ_INT1) ; INT1# interrupt
460 ; read ICU status register of PLD
461 seth r0, #high(PLD_ICUISTS)
462 or3 r0, r0, #low(PLD_ICUISTS)
466 addi r0, #(M32700UT_PLD_IRQ_BASE)
469 #elif defined(CONFIG_PLAT_M32700UT)
470 add3 r2, r0, #-(M32R_IRQ_INT1) ; INT1# interrupt
472 ; read ICU status register of PLD
473 seth r0, #high(PLD_ICUISTS)
474 or3 r0, r0, #low(PLD_ICUISTS)
478 addi r0, #(M32700UT_PLD_IRQ_BASE)
482 add3 r2, r0, #-(M32R_IRQ_INT0) ; INT0# interrupt
484 ; read ICU status of LAN-board
485 seth r0, #high(M32700UT_LAN_ICUISTS)
486 or3 r0, r0, #low(M32700UT_LAN_ICUISTS)
490 add3 r0, r0, #(M32700UT_LAN_PLD_IRQ_BASE)
494 add3 r2, r0, #-(M32R_IRQ_INT2) ; INT2# interrupt
496 ; read ICU status of LCD-board
497 seth r0, #high(M32700UT_LCD_ICUISTS)
498 or3 r0, r0, #low(M32700UT_LCD_ICUISTS)
502 add3 r0, r0, #(M32700UT_LCD_PLD_IRQ_BASE)
506 #elif defined(CONFIG_PLAT_OPSPUT)
507 add3 r2, r0, #-(M32R_IRQ_INT1) ; INT1# interrupt
509 ; read ICU status register of PLD
510 seth r0, #high(PLD_ICUISTS)
511 or3 r0, r0, #low(PLD_ICUISTS)
515 addi r0, #(OPSPUT_PLD_IRQ_BASE)
519 add3 r2, r0, #-(M32R_IRQ_INT0) ; INT0# interrupt
521 ; read ICU status of LAN-board
522 seth r0, #high(OPSPUT_LAN_ICUISTS)
523 or3 r0, r0, #low(OPSPUT_LAN_ICUISTS)
527 add3 r0, r0, #(OPSPUT_LAN_PLD_IRQ_BASE)
531 add3 r2, r0, #-(M32R_IRQ_INT2) ; INT2# interrupt
533 ; read ICU status of LCD-board
534 seth r0, #high(OPSPUT_LCD_ICUISTS)
535 or3 r0, r0, #low(OPSPUT_LCD_ICUISTS)
539 add3 r0, r0, #(OPSPUT_LCD_PLD_IRQ_BASE)
543 #endif /* CONFIG_PLAT_OPSPUT */
545 #endif /* CONFIG_SMP */
547 seth r0, #shigh(M32R_ICU_IMASK_ADDR)
548 st r14, @(low(M32R_ICU_IMASK_ADDR),r0)
550 #error no chip configuration
556 * Default EIT handler
560 .asciz "Unknown interrupt\n"
563 ENTRY(default_eit_handler)
570 LDIMM (r0, __KERNEL_DS)
586 * Access Exception handler
589 SWITCH_TO_KERNEL_STACK
592 seth r2, #shigh(MMU_REG_BASE) /* Check status register */
593 ld r4, @(low(MESTS_offset),r2)
594 st r4, @(low(MESTS_offset),r2)
596 #ifdef CONFIG_CHIP_M32700
597 and3 r1, r1, #0x0000ffff
598 ; WORKAROUND: ignore TME bit for the M32700(TS1).
599 #endif /* CONFIG_CHIP_M32700 */
602 ld r2, @(low(MDEVA_offset),r2) ; set address
611 mvfc r2, bpc ; set address
621 * r0 : struct pt_regs *regs
622 * r1 : unsigned long error-code
623 * r2 : unsigned long address
625 * +------+------+------+------+
626 * | bit3 | bit2 | bit1 | bit0 |
627 * +------+------+------+------+
628 * bit 3 == 0:means data, 1:means instruction
629 * bit 2 == 0:means kernel, 1:means user-mode
630 * bit 1 == 0:means read, 1:means write
631 * bit 0 == 0:means no page found 1:means protection fault
636 #endif /* CONFIG_MMU */
639 ENTRY(alignment_check)
640 /* void alignment_check(int error_code) */
641 SWITCH_TO_KERNEL_STACK
643 ldi r1, #0x30 ; error_code
645 bl do_alignment_check
647 bra ret_from_exception
650 /* void rie_handler(int error_code) */
651 SWITCH_TO_KERNEL_STACK
657 ldi r1, #0x20 ; error_code
663 /* void pie_handler(int error_code) */
664 SWITCH_TO_KERNEL_STACK
666 ldi r1, #0 ; error_code ; FIXME
672 .global withdraw_debug_trap
673 /* void debug_trap(void) */
674 SWITCH_TO_KERNEL_STACK
677 bl withdraw_debug_trap
678 ldi r1, #0 ; error_code
684 /* Cache flushing handler */
685 ENTRY(cache_flushing_handler)
686 .global _flush_cache_all
687 /* void _flush_cache_all(void); */
688 SWITCH_TO_KERNEL_STACK
711 ENTRY(sys_call_table)
712 .long sys_restart_syscall /* 0 - old "setup()" system call*/
717 .long sys_open /* 5 */
722 .long sys_unlink /* 10 */
727 .long sys_chmod /* 15 */
729 .long sys_ni_syscall /* old break syscall holder */
732 .long sys_getpid /* 20 */
737 .long sys_stime /* 25 */
742 .long sys_utime /* 30 */
743 .long sys_cacheflush /* for M32R */ /* old stty syscall holder */
744 .long sys_cachectl /* for M32R */ /* old gtty syscall holder */
747 .long sys_ni_syscall /* 35 - old ftime syscall holder */
752 .long sys_rmdir /* 40 */
756 .long sys_ni_syscall /* old prof syscall holder */
757 .long sys_brk /* 45 */
762 .long sys_getegid /* 50 */
764 .long sys_umount /* recycled never used phys() */
765 .long sys_ni_syscall /* old lock syscall holder */
767 .long sys_fcntl /* 55 */
768 .long sys_ni_syscall /* old mpx syscall holder */
770 .long sys_ni_syscall /* old ulimit syscall holder */
771 .long sys_ni_syscall /* sys_olduname */
772 .long sys_umask /* 60 */
777 .long sys_getpgrp /* 65 */
782 .long sys_setreuid /* 70 */
786 .long sys_sethostname
787 .long sys_setrlimit /* 75 */
790 .long sys_gettimeofday
791 .long sys_settimeofday
792 .long sys_getgroups /* 80 */
794 .long sys_ni_syscall /* sys_oldselect */
797 .long sys_readlink /* 85 */
802 .long sys_ni_syscall /* 90 - old_mmap syscall holder */
807 .long sys_fchown /* 95 */
808 .long sys_getpriority
809 .long sys_setpriority
810 .long sys_ni_syscall /* old profil syscall holder */
812 .long sys_fstatfs /* 100 */
813 .long sys_ni_syscall /* ioperm */
817 .long sys_getitimer /* 105 */
822 .long sys_ni_syscall /* 110 - iopl */
824 .long sys_ni_syscall /* for idle */
825 .long sys_ni_syscall /* for vm86old */
827 .long sys_swapoff /* 115 */
832 .long sys_clone /* 120 */
833 .long sys_setdomainname
835 .long sys_ni_syscall /* sys_modify_ldt */
837 .long sys_mprotect /* 125 */
838 .long sys_sigprocmask
839 .long sys_ni_syscall /* sys_create_module */
840 .long sys_init_module
841 .long sys_delete_module
842 .long sys_ni_syscall /* 130 sys_get_kernel_syms */
847 .long sys_sysfs /* 135 */
848 .long sys_personality
849 .long sys_ni_syscall /* for afs_syscall */
852 .long sys_llseek /* 140 */
857 .long sys_readv /* 145 */
862 .long sys_mlock /* 150 */
866 .long sys_sched_setparam
867 .long sys_sched_getparam /* 155 */
868 .long sys_sched_setscheduler
869 .long sys_sched_getscheduler
870 .long sys_sched_yield
871 .long sys_sched_get_priority_max
872 .long sys_sched_get_priority_min /* 160 */
873 .long sys_sched_rr_get_interval
877 .long sys_getresuid /* 165 */
878 .long sys_tas /* vm86 */
879 .long sys_ni_syscall /* sys_query_module */
882 .long sys_setresgid /* 170 */
885 .long sys_rt_sigreturn
886 .long sys_rt_sigaction
887 .long sys_rt_sigprocmask /* 175 */
888 .long sys_rt_sigpending
889 .long sys_rt_sigtimedwait
890 .long sys_rt_sigqueueinfo
891 .long sys_rt_sigsuspend
892 .long sys_pread64 /* 180 */
897 .long sys_capset /* 185 */
898 .long sys_sigaltstack
900 .long sys_ni_syscall /* streams1 */
901 .long sys_ni_syscall /* streams2 */
902 .long sys_vfork /* 190 */
906 .long sys_ftruncate64
907 .long sys_stat64 /* 195 */
912 .long sys_getgid /* 200 */
917 .long sys_getgroups /* 205 */
922 .long sys_setresgid /* 210 */
927 .long sys_setfsuid /* 215 */
932 .long sys_getdents64 /* 220 */
934 .long sys_ni_syscall /* reserved for TUX */
935 .long sys_ni_syscall /* Reserved for Security */
937 .long sys_readahead /* 225 */
942 .long sys_lgetxattr /* 230 */
947 .long sys_removexattr /* 235 */
948 .long sys_lremovexattr
949 .long sys_fremovexattr
952 .long sys_futex /* 240 */
953 .long sys_sched_setaffinity
954 .long sys_sched_getaffinity
955 .long sys_ni_syscall /* reserved for "set_thread_area" system call */
956 .long sys_ni_syscall /* reserved for "get_thread_area" system call */
957 .long sys_io_setup /* 245 */
959 .long sys_io_getevents
962 .long sys_fadvise64 /* 250 */
965 .long sys_lookup_dcookie
966 .long sys_epoll_create
967 .long sys_epoll_ctl /* 255 */
969 .long sys_remap_file_pages
970 .long sys_set_tid_address
971 .long sys_timer_create
972 .long sys_timer_settime /* 260 */
973 .long sys_timer_gettime
974 .long sys_timer_getoverrun
975 .long sys_timer_delete
976 .long sys_clock_settime
977 .long sys_clock_gettime /* 265 */
978 .long sys_clock_getres
979 .long sys_clock_nanosleep
982 .long sys_tgkill /* 270 */
984 .long sys_fadvise64_64
985 .long sys_ni_syscall /* Reserved for sys_vserver */
986 .long sys_ni_syscall /* Reserved for sys_mbind */
987 .long sys_ni_syscall /* Reserved for sys_get_mempolicy */
988 .long sys_ni_syscall /* Reserved for sys_set_mempolicy */
991 .long sys_mq_timedsend
992 .long sys_mq_timedreceive /* 280 */
994 .long sys_mq_getsetattr
995 .long sys_ni_syscall /* reserved for kexec */
998 syscall_table_size=(.-sys_call_table)