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