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/sys.h> 37#include <linux/config.h> 38#include <linux/linkage.h> 39#include <asm/entry.h> 40#include <asm/errno.h> 41#include <asm/setup.h> 42#include <asm/segment.h> 43#include <asm/traps.h> 44 45#include "m68k_defs.h" 46 47.globl SYMBOL_NAME(system_call), SYMBOL_NAME(buserr), SYMBOL_NAME(trap) 48.globl SYMBOL_NAME(resume), SYMBOL_NAME(ret_from_exception) 49.globl SYMBOL_NAME(ret_from_signal) 50.globl SYMBOL_NAME(inthandler), SYMBOL_NAME(sys_call_table) 51.globl SYMBOL_NAME(sys_fork), SYMBOL_NAME(sys_clone), SYMBOL_NAME(sys_vfork) 52.globl SYMBOL_NAME(ret_from_interrupt), SYMBOL_NAME(bad_interrupt) 53 54.text 55ENTRY(buserr) 56 SAVE_ALL_INT 57 GET_CURRENT(%d0) 58 movel %sp,%sp@- | stack frame pointer argument 59 bsrl SYMBOL_NAME(buserr_c) 60 addql #4,%sp 61 jra SYMBOL_NAME(ret_from_exception) 62 63ENTRY(trap) 64 SAVE_ALL_INT 65 GET_CURRENT(%d0) 66 movel %sp,%sp@- | stack frame pointer argument 67 bsrl SYMBOL_NAME(trap_c) 68 addql #4,%sp 69 jra SYMBOL_NAME(ret_from_exception) 70 71ENTRY(reschedule) 72 | save top of frame 73 movel %sp,%curptr@(TASK_THREAD+THREAD_ESP0) 74 75 pea SYMBOL_NAME(ret_from_exception) 76 jmp SYMBOL_NAME(schedule) 77 78 | After a fork we jump here directly from resume, 79 | so that %d1 contains the previous task 80 | Theoretically only needed on SMP, but let's watch 81 | what happens in schedule_tail() in future... 82ENTRY(ret_from_fork) 83 movel %d1,%sp@- 84 jsr SYMBOL_NAME(schedule_tail) 85 addql #4,%sp 86 jra SYMBOL_NAME(ret_from_exception) 87 88badsys: 89 movel #-ENOSYS,%sp@(PT_D0) 90 jra SYMBOL_NAME(ret_from_exception) 91 92do_trace: 93 movel #-ENOSYS,%sp@(PT_D0) | needed for strace 94 subql #4,%sp 95 SAVE_SWITCH_STACK 96 jbsr SYMBOL_NAME(syscall_trace) 97 RESTORE_SWITCH_STACK 98 addql #4,%sp 99 movel %sp@(PT_ORIG_D0),%d1 100 movel #-ENOSYS,%d0 101 cmpl #NR_syscalls,%d1 102 jcc 1f 103 jbsr @(SYMBOL_NAME(sys_call_table),%d1:l:4)@(0) 1041: movel %d0,%sp@(PT_D0) | save the return value 105 subql #4,%sp | dummy return address 106 SAVE_SWITCH_STACK 107 jbsr SYMBOL_NAME(syscall_trace) 108 109SYMBOL_NAME_LABEL(ret_from_signal) 110 RESTORE_SWITCH_STACK 111 addql #4,%sp 112/* on 68040 complete pending writebacks if any */ 113#ifdef CONFIG_M68040 114 bfextu %sp@(PT_VECTOR){#0,#4},%d0 115 subql #7,%d0 | bus error frame ? 116 jbne 1f 117 movel %sp,%sp@- 118 jbsr SYMBOL_NAME(berr_040cleanup) 119 addql #4,%sp 1201: 121#endif 122 jra SYMBOL_NAME(ret_from_exception) 123 124ENTRY(system_call) 125 SAVE_ALL_SYS 126 127 GET_CURRENT(%d1) 128 | save top of frame 129 movel %sp,%curptr@(TASK_THREAD+THREAD_ESP0) 130 131 btst #PT_TRACESYS_BIT,%curptr@(TASK_PTRACE+PT_TRACESYS_OFF) 132 jne do_trace 133 cmpl #NR_syscalls,%d0 134 jcc badsys 135 jbsr @(SYMBOL_NAME(sys_call_table),%d0:l:4)@(0) 136 movel %d0,%sp@(PT_D0) | save the return value 137 138SYMBOL_NAME_LABEL(ret_from_exception) 139 btst #5,%sp@(PT_SR) | check if returning to kernel 140 bnes 2f | if so, skip resched, signals 141 | only allow interrupts when we are really the last one on the 142 | kernel stack, otherwise stack overflow can occur during 143 | heavy interrupt load 144 andw #ALLOWINT,%sr 145 tstl %curptr@(TASK_NEEDRESCHED) 146 jne SYMBOL_NAME(reschedule) 147#if 0 148 cmpl #SYMBOL_NAME(task),%curptr | task[0] cannot have signals 149 jeq 2f 150#endif 151 | check for delayed trace 152 bclr #PT_DTRACE_BIT,%curptr@(TASK_PTRACE+PT_DTRACE_OFF) 153 jne do_delayed_trace 1545: 155 tstl %curptr@(TASK_STATE) | state 156 jne SYMBOL_NAME(reschedule) 157 158 tstl %curptr@(TASK_SIGPENDING) 159 jne Lsignal_return 1602: RESTORE_ALL 161 162Lsignal_return: 163 subql #4,%sp | dummy return address 164 SAVE_SWITCH_STACK 165 pea %sp@(SWITCH_STACK_SIZE) 166 clrl %sp@- 167 bsrl SYMBOL_NAME(do_signal) 168 addql #8,%sp 169 RESTORE_SWITCH_STACK 170 addql #4,%sp 171 RESTORE_ALL 172 173do_delayed_trace: 174 bclr #7,%sp@(PT_SR) | clear trace bit in SR 175 pea 1 | send SIGTRAP 176 movel %curptr,%sp@- 177 pea LSIGTRAP 178 jbsr SYMBOL_NAME(send_sig) 179 addql #8,%sp 180 addql #4,%sp 181 jra 5b 182 183 184#if 0 185#if CONFIG_AMIGA 186SYMBOL_NAME_LABEL(ami_inthandler) 187 addql #1,SYMBOL_NAME(irq_stat)+4 | local_irq_count 188 SAVE_ALL_INT 189 GET_CURRENT(%d0) 190 191 bfextu %sp@(PT_VECTOR){#4,#12},%d0 192 movel %d0,%a0 193 addql #1,%a0@(SYMBOL_NAME(kstat)+STAT_IRQ-VECOFF(VEC_SPUR)) 194 movel %a0@(SYMBOL_NAME(autoirq_list)-VECOFF(VEC_SPUR)),%a0 195 196| amiga vector int handler get the req mask instead of irq vector 197 lea CUSTOMBASE,%a1 198 movew %a1@(C_INTREQR),%d0 199 andw %a1@(C_INTENAR),%d0 200 201| prepare stack (push frame pointer, dev_id & req mask) 202 pea %sp@ 203 movel %a0@(IRQ_DEVID),%sp@- 204 movel %d0,%sp@- 205 pea %pc@(SYMBOL_NAME(ret_from_interrupt):w) 206 jbra @(IRQ_HANDLER,%a0)@(0) 207 208ENTRY(nmi_handler) 209 rte 210#endif 211#endif 212 213/* 214** This is the main interrupt handler, responsible for calling process_int() 215*/ 216SYMBOL_NAME_LABEL(inthandler) 217 SAVE_ALL_INT 218 GET_CURRENT(%d0) 219 addql #1,SYMBOL_NAME(irq_stat)+4 | local_irq_count 220 | put exception # in d0 221 bfextu %sp@(PT_VECTOR){#4,#10},%d0 222 223 movel %sp,%sp@- 224 movel %d0,%sp@- | put vector # on stack 225#if defined(MACH_Q40_ONLY) && defined(CONFIG_BLK_DEV_FD) 226 btstb #4,0xff000000 | Q40 floppy needs very special treatment ... 227 jbeq 1f 228 btstb #3,0xff000004 229 jbeq 1f 230 jbsr SYMBOL_NAME(floppy_hardint) 231 jbra 3f 2321: 233#endif 234 jbsr SYMBOL_NAME(process_int)| process the IRQ 2353: addql #8,%sp | pop parameters off stack 236 237SYMBOL_NAME_LABEL(ret_from_interrupt) 238 subql #1,SYMBOL_NAME(irq_stat)+4 | local_irq_count 239 jeq 1f 2402: 241 RESTORE_ALL 2421: 243 moveq #(~ALLOWINT>>8)&0xff,%d0 244 andb %sp@(PT_SR),%d0 245 jne 2b 246 247 /* check if we need to do software interrupts */ 248 tstl SYMBOL_NAME(irq_stat) | softirq_pending ? 249 jeq SYMBOL_NAME(ret_from_exception) 250 pea SYMBOL_NAME(ret_from_exception) 251 jra SYMBOL_NAME(do_softirq) 252 253 254/* Handler for uninitialized and spurious interrupts */ 255 256SYMBOL_NAME_LABEL(bad_interrupt) 257 addql #1,SYMBOL_NAME(num_spurious) 258 rte 259 260ENTRY(sys_fork) 261 SAVE_SWITCH_STACK 262 pea %sp@(SWITCH_STACK_SIZE) 263 jbsr SYMBOL_NAME(m68k_fork) 264 addql #4,%sp 265 RESTORE_SWITCH_STACK 266 rts 267 268ENTRY(sys_clone) 269 SAVE_SWITCH_STACK 270 pea %sp@(SWITCH_STACK_SIZE) 271 jbsr SYMBOL_NAME(m68k_clone) 272 addql #4,%sp 273 RESTORE_SWITCH_STACK 274 rts 275 276ENTRY(sys_vfork) 277 SAVE_SWITCH_STACK 278 pea %sp@(SWITCH_STACK_SIZE) 279 jbsr SYMBOL_NAME(m68k_vfork) 280 addql #4,%sp 281 RESTORE_SWITCH_STACK 282 rts 283 284ENTRY(sys_sigsuspend) 285 SAVE_SWITCH_STACK 286 pea %sp@(SWITCH_STACK_SIZE) 287 jbsr SYMBOL_NAME(do_sigsuspend) 288 addql #4,%sp 289 RESTORE_SWITCH_STACK 290 rts 291 292ENTRY(sys_rt_sigsuspend) 293 SAVE_SWITCH_STACK 294 pea %sp@(SWITCH_STACK_SIZE) 295 jbsr SYMBOL_NAME(do_rt_sigsuspend) 296 addql #4,%sp 297 RESTORE_SWITCH_STACK 298 rts 299 300ENTRY(sys_sigreturn) 301 SAVE_SWITCH_STACK 302 jbsr SYMBOL_NAME(do_sigreturn) 303 RESTORE_SWITCH_STACK 304 rts 305 306ENTRY(sys_rt_sigreturn) 307 SAVE_SWITCH_STACK 308 jbsr SYMBOL_NAME(do_rt_sigreturn) 309 RESTORE_SWITCH_STACK 310 rts 311 312SYMBOL_NAME_LABEL(resume) 313 /* 314 * Beware - when entering resume, prev (the current task) is 315 * in a0, next (the new task) is in a1,so don't change these 316 * registers until their contents are no longer needed. 317 */ 318 319 /* save sr */ 320 movew %sr,%a0@(TASK_THREAD+THREAD_SR) 321 322 /* save fs (sfc,%dfc) (may be pointing to kernel memory) */ 323 movec %sfc,%d0 324 movew %d0,%a0@(TASK_THREAD+THREAD_FS) 325 326 /* save usp */ 327 /* it is better to use a movel here instead of a movew 8*) */ 328 movec %usp,%d0 329 movel %d0,%a0@(TASK_THREAD+THREAD_USP) 330 331 /* save non-scratch registers on stack */ 332 SAVE_SWITCH_STACK 333 334 /* save current kernel stack pointer */ 335 movel %sp,%a0@(TASK_THREAD+THREAD_KSP) 336 337 /* save floating point context */ 338#ifndef CONFIG_M68KFPU_EMU_ONLY 339#ifdef CONFIG_M68KFPU_EMU 340 tstl SYMBOL_NAME(m68k_fputype) 341 jeq 3f 342#endif 343 fsave %a0@(TASK_THREAD+THREAD_FPSTATE) 344 345#if defined(CONFIG_M68060) 346#if !defined(CPU_M68060_ONLY) 347 btst #3,SYMBOL_NAME(m68k_cputype)+3 348 beqs 1f 349#endif 350 /* The 060 FPU keeps status in bits 15-8 of the first longword */ 351 tstb %a0@(TASK_THREAD+THREAD_FPSTATE+2) 352 jeq 3f 353#if !defined(CPU_M68060_ONLY) 354 jra 2f 355#endif 356#endif /* CONFIG_M68060 */ 357#if !defined(CPU_M68060_ONLY) 3581: tstb %a0@(TASK_THREAD+THREAD_FPSTATE) 359 jeq 3f 360#endif 3612: fmovemx %fp0-%fp7,%a0@(TASK_THREAD+THREAD_FPREG) 362 fmoveml %fpcr/%fpsr/%fpiar,%a0@(TASK_THREAD+THREAD_FPCNTL) 3633: 364#endif /* CONFIG_M68KFPU_EMU_ONLY */ 365 /* Return previous task in %d1 */ 366 movel %curptr,%d1 367 368 /* switch to new task (a1 contains new task) */ 369 movel %a1,%curptr 370 371 /* restore floating point context */ 372#ifndef CONFIG_M68KFPU_EMU_ONLY 373#ifdef CONFIG_M68KFPU_EMU 374 tstl SYMBOL_NAME(m68k_fputype) 375 jeq 4f 376#endif 377#if defined(CONFIG_M68060) 378#if !defined(CPU_M68060_ONLY) 379 btst #3,SYMBOL_NAME(m68k_cputype)+3 380 beqs 1f 381#endif 382 /* The 060 FPU keeps status in bits 15-8 of the first longword */ 383 tstb %a1@(TASK_THREAD+THREAD_FPSTATE+2) 384 jeq 3f 385#if !defined(CPU_M68060_ONLY) 386 jra 2f 387#endif 388#endif /* CONFIG_M68060 */ 389#if !defined(CPU_M68060_ONLY) 3901: tstb %a1@(TASK_THREAD+THREAD_FPSTATE) 391 jeq 3f 392#endif 3932: fmovemx %a1@(TASK_THREAD+THREAD_FPREG),%fp0-%fp7 394 fmoveml %a1@(TASK_THREAD+THREAD_FPCNTL),%fpcr/%fpsr/%fpiar 3953: frestore %a1@(TASK_THREAD+THREAD_FPSTATE) 3964: 397#endif /* CONFIG_M68KFPU_EMU_ONLY */ 398 399 /* restore the kernel stack pointer */ 400 movel %a1@(TASK_THREAD+THREAD_KSP),%sp 401 402 /* restore non-scratch registers */ 403 RESTORE_SWITCH_STACK 404 405 /* restore user stack pointer */ 406 movel %a1@(TASK_THREAD+THREAD_USP),%a0 407 movel %a0,%usp 408 409 /* restore fs (sfc,%dfc) */ 410 movew %a1@(TASK_THREAD+THREAD_FS),%a0 411 movec %a0,%sfc 412 movec %a0,%dfc 413 414 /* restore status register */ 415 movew %a1@(TASK_THREAD+THREAD_SR),%sr 416 417 rts 418 419.data 420ALIGN 421SYMBOL_NAME_LABEL(sys_call_table) 422 .long SYMBOL_NAME(sys_ni_syscall) /* 0 - old "setup()" system call*/ 423 .long SYMBOL_NAME(sys_exit) 424 .long SYMBOL_NAME(sys_fork) 425 .long SYMBOL_NAME(sys_read) 426 .long SYMBOL_NAME(sys_write) 427 .long SYMBOL_NAME(sys_open) /* 5 */ 428 .long SYMBOL_NAME(sys_close) 429 .long SYMBOL_NAME(sys_waitpid) 430 .long SYMBOL_NAME(sys_creat) 431 .long SYMBOL_NAME(sys_link) 432 .long SYMBOL_NAME(sys_unlink) /* 10 */ 433 .long SYMBOL_NAME(sys_execve) 434 .long SYMBOL_NAME(sys_chdir) 435 .long SYMBOL_NAME(sys_time) 436 .long SYMBOL_NAME(sys_mknod) 437 .long SYMBOL_NAME(sys_chmod) /* 15 */ 438 .long SYMBOL_NAME(sys_chown16) 439 .long SYMBOL_NAME(sys_ni_syscall) /* old break syscall holder */ 440 .long SYMBOL_NAME(sys_stat) 441 .long SYMBOL_NAME(sys_lseek) 442 .long SYMBOL_NAME(sys_getpid) /* 20 */ 443 .long SYMBOL_NAME(sys_mount) 444 .long SYMBOL_NAME(sys_oldumount) 445 .long SYMBOL_NAME(sys_setuid16) 446 .long SYMBOL_NAME(sys_getuid16) 447 .long SYMBOL_NAME(sys_stime) /* 25 */ 448 .long SYMBOL_NAME(sys_ptrace) 449 .long SYMBOL_NAME(sys_alarm) 450 .long SYMBOL_NAME(sys_fstat) 451 .long SYMBOL_NAME(sys_pause) 452 .long SYMBOL_NAME(sys_utime) /* 30 */ 453 .long SYMBOL_NAME(sys_ni_syscall) /* old stty syscall holder */ 454 .long SYMBOL_NAME(sys_ni_syscall) /* old gtty syscall holder */ 455 .long SYMBOL_NAME(sys_access) 456 .long SYMBOL_NAME(sys_nice) 457 .long SYMBOL_NAME(sys_ni_syscall) /* 35 */ /* old ftime syscall holder */ 458 .long SYMBOL_NAME(sys_sync) 459 .long SYMBOL_NAME(sys_kill) 460 .long SYMBOL_NAME(sys_rename) 461 .long SYMBOL_NAME(sys_mkdir) 462 .long SYMBOL_NAME(sys_rmdir) /* 40 */ 463 .long SYMBOL_NAME(sys_dup) 464 .long SYMBOL_NAME(sys_pipe) 465 .long SYMBOL_NAME(sys_times) 466 .long SYMBOL_NAME(sys_ni_syscall) /* old prof syscall holder */ 467 .long SYMBOL_NAME(sys_brk) /* 45 */ 468 .long SYMBOL_NAME(sys_setgid16) 469 .long SYMBOL_NAME(sys_getgid16) 470 .long SYMBOL_NAME(sys_signal) 471 .long SYMBOL_NAME(sys_geteuid16) 472 .long SYMBOL_NAME(sys_getegid16) /* 50 */ 473 .long SYMBOL_NAME(sys_acct) 474 .long SYMBOL_NAME(sys_umount) /* recycled never used phys() */ 475 .long SYMBOL_NAME(sys_ni_syscall) /* old lock syscall holder */ 476 .long SYMBOL_NAME(sys_ioctl) 477 .long SYMBOL_NAME(sys_fcntl) /* 55 */ 478 .long SYMBOL_NAME(sys_ni_syscall) /* old mpx syscall holder */ 479 .long SYMBOL_NAME(sys_setpgid) 480 .long SYMBOL_NAME(sys_ni_syscall) /* old ulimit syscall holder */ 481 .long SYMBOL_NAME(sys_ni_syscall) 482 .long SYMBOL_NAME(sys_umask) /* 60 */ 483 .long SYMBOL_NAME(sys_chroot) 484 .long SYMBOL_NAME(sys_ustat) 485 .long SYMBOL_NAME(sys_dup2) 486 .long SYMBOL_NAME(sys_getppid) 487 .long SYMBOL_NAME(sys_getpgrp) /* 65 */ 488 .long SYMBOL_NAME(sys_setsid) 489 .long SYMBOL_NAME(sys_sigaction) 490 .long SYMBOL_NAME(sys_sgetmask) 491 .long SYMBOL_NAME(sys_ssetmask) 492 .long SYMBOL_NAME(sys_setreuid16) /* 70 */ 493 .long SYMBOL_NAME(sys_setregid16) 494 .long SYMBOL_NAME(sys_sigsuspend) 495 .long SYMBOL_NAME(sys_sigpending) 496 .long SYMBOL_NAME(sys_sethostname) 497 .long SYMBOL_NAME(sys_setrlimit) /* 75 */ 498 .long SYMBOL_NAME(sys_old_getrlimit) 499 .long SYMBOL_NAME(sys_getrusage) 500 .long SYMBOL_NAME(sys_gettimeofday) 501 .long SYMBOL_NAME(sys_settimeofday) 502 .long SYMBOL_NAME(sys_getgroups16) /* 80 */ 503 .long SYMBOL_NAME(sys_setgroups16) 504 .long SYMBOL_NAME(old_select) 505 .long SYMBOL_NAME(sys_symlink) 506 .long SYMBOL_NAME(sys_lstat) 507 .long SYMBOL_NAME(sys_readlink) /* 85 */ 508 .long SYMBOL_NAME(sys_uselib) 509 .long SYMBOL_NAME(sys_swapon) 510 .long SYMBOL_NAME(sys_reboot) 511 .long SYMBOL_NAME(old_readdir) 512 .long SYMBOL_NAME(old_mmap) /* 90 */ 513 .long SYMBOL_NAME(sys_munmap) 514 .long SYMBOL_NAME(sys_truncate) 515 .long SYMBOL_NAME(sys_ftruncate) 516 .long SYMBOL_NAME(sys_fchmod) 517 .long SYMBOL_NAME(sys_fchown16) /* 95 */ 518 .long SYMBOL_NAME(sys_getpriority) 519 .long SYMBOL_NAME(sys_setpriority) 520 .long SYMBOL_NAME(sys_ni_syscall) /* old profil syscall holder */ 521 .long SYMBOL_NAME(sys_statfs) 522 .long SYMBOL_NAME(sys_fstatfs) /* 100 */ 523 .long SYMBOL_NAME(sys_ioperm) 524 .long SYMBOL_NAME(sys_socketcall) 525 .long SYMBOL_NAME(sys_syslog) 526 .long SYMBOL_NAME(sys_setitimer) 527 .long SYMBOL_NAME(sys_getitimer) /* 105 */ 528 .long SYMBOL_NAME(sys_newstat) 529 .long SYMBOL_NAME(sys_newlstat) 530 .long SYMBOL_NAME(sys_newfstat) 531 .long SYMBOL_NAME(sys_ni_syscall) 532 .long SYMBOL_NAME(sys_ni_syscall) /* iopl for i386 */ /* 110 */ 533 .long SYMBOL_NAME(sys_vhangup) 534 .long SYMBOL_NAME(sys_ni_syscall) /* obsolete idle() syscall */ 535 .long SYMBOL_NAME(sys_ni_syscall) /* vm86old for i386 */ 536 .long SYMBOL_NAME(sys_wait4) 537 .long SYMBOL_NAME(sys_swapoff) /* 115 */ 538 .long SYMBOL_NAME(sys_sysinfo) 539 .long SYMBOL_NAME(sys_ipc) 540 .long SYMBOL_NAME(sys_fsync) 541 .long SYMBOL_NAME(sys_sigreturn) 542 .long SYMBOL_NAME(sys_clone) /* 120 */ 543 .long SYMBOL_NAME(sys_setdomainname) 544 .long SYMBOL_NAME(sys_newuname) 545 .long SYMBOL_NAME(sys_cacheflush) /* modify_ldt for i386 */ 546 .long SYMBOL_NAME(sys_adjtimex) 547 .long SYMBOL_NAME(sys_mprotect) /* 125 */ 548 .long SYMBOL_NAME(sys_sigprocmask) 549 .long SYMBOL_NAME(sys_create_module) 550 .long SYMBOL_NAME(sys_init_module) 551 .long SYMBOL_NAME(sys_delete_module) 552 .long SYMBOL_NAME(sys_get_kernel_syms) /* 130 */ 553 .long SYMBOL_NAME(sys_quotactl) 554 .long SYMBOL_NAME(sys_getpgid) 555 .long SYMBOL_NAME(sys_fchdir) 556 .long SYMBOL_NAME(sys_bdflush) 557 .long SYMBOL_NAME(sys_sysfs) /* 135 */ 558 .long SYMBOL_NAME(sys_personality) 559 .long SYMBOL_NAME(sys_ni_syscall) /* for afs_syscall */ 560 .long SYMBOL_NAME(sys_setfsuid16) 561 .long SYMBOL_NAME(sys_setfsgid16) 562 .long SYMBOL_NAME(sys_llseek) /* 140 */ 563 .long SYMBOL_NAME(sys_getdents) 564 .long SYMBOL_NAME(sys_select) 565 .long SYMBOL_NAME(sys_flock) 566 .long SYMBOL_NAME(sys_msync) 567 .long SYMBOL_NAME(sys_readv) /* 145 */ 568 .long SYMBOL_NAME(sys_writev) 569 .long SYMBOL_NAME(sys_getsid) 570 .long SYMBOL_NAME(sys_fdatasync) 571 .long SYMBOL_NAME(sys_sysctl) 572 .long SYMBOL_NAME(sys_mlock) /* 150 */ 573 .long SYMBOL_NAME(sys_munlock) 574 .long SYMBOL_NAME(sys_mlockall) 575 .long SYMBOL_NAME(sys_munlockall) 576 .long SYMBOL_NAME(sys_sched_setparam) 577 .long SYMBOL_NAME(sys_sched_getparam) /* 155 */ 578 .long SYMBOL_NAME(sys_sched_setscheduler) 579 .long SYMBOL_NAME(sys_sched_getscheduler) 580 .long SYMBOL_NAME(sys_sched_yield) 581 .long SYMBOL_NAME(sys_sched_get_priority_max) 582 .long SYMBOL_NAME(sys_sched_get_priority_min) /* 160 */ 583 .long SYMBOL_NAME(sys_sched_rr_get_interval) 584 .long SYMBOL_NAME(sys_nanosleep) 585 .long SYMBOL_NAME(sys_mremap) 586 .long SYMBOL_NAME(sys_setresuid16) 587 .long SYMBOL_NAME(sys_getresuid16) /* 165 */ 588 .long SYMBOL_NAME(sys_getpagesize) 589 .long SYMBOL_NAME(sys_query_module) 590 .long SYMBOL_NAME(sys_poll) 591 .long SYMBOL_NAME(sys_nfsservctl) 592 .long SYMBOL_NAME(sys_setresgid16) /* 170 */ 593 .long SYMBOL_NAME(sys_getresgid16) 594 .long SYMBOL_NAME(sys_prctl) 595 .long SYMBOL_NAME(sys_rt_sigreturn) 596 .long SYMBOL_NAME(sys_rt_sigaction) 597 .long SYMBOL_NAME(sys_rt_sigprocmask) /* 175 */ 598 .long SYMBOL_NAME(sys_rt_sigpending) 599 .long SYMBOL_NAME(sys_rt_sigtimedwait) 600 .long SYMBOL_NAME(sys_rt_sigqueueinfo) 601 .long SYMBOL_NAME(sys_rt_sigsuspend) 602 .long SYMBOL_NAME(sys_pread) /* 180 */ 603 .long SYMBOL_NAME(sys_pwrite) 604 .long SYMBOL_NAME(sys_lchown16); 605 .long SYMBOL_NAME(sys_getcwd) 606 .long SYMBOL_NAME(sys_capget) 607 .long SYMBOL_NAME(sys_capset) /* 185 */ 608 .long SYMBOL_NAME(sys_sigaltstack) 609 .long SYMBOL_NAME(sys_sendfile) 610 .long SYMBOL_NAME(sys_ni_syscall) /* streams1 */ 611 .long SYMBOL_NAME(sys_ni_syscall) /* streams2 */ 612 .long SYMBOL_NAME(sys_vfork) /* 190 */ 613 .long SYMBOL_NAME(sys_getrlimit) 614 .long SYMBOL_NAME(sys_mmap2) 615 .long SYMBOL_NAME(sys_truncate64) 616 .long SYMBOL_NAME(sys_ftruncate64) 617 .long SYMBOL_NAME(sys_stat64) /* 195 */ 618 .long SYMBOL_NAME(sys_lstat64) 619 .long SYMBOL_NAME(sys_fstat64) 620 .long SYMBOL_NAME(sys_chown) 621 .long SYMBOL_NAME(sys_getuid) 622 .long SYMBOL_NAME(sys_getgid) /* 200 */ 623 .long SYMBOL_NAME(sys_geteuid) 624 .long SYMBOL_NAME(sys_getegid) 625 .long SYMBOL_NAME(sys_setreuid) 626 .long SYMBOL_NAME(sys_setregid) 627 .long SYMBOL_NAME(sys_getgroups) /* 205 */ 628 .long SYMBOL_NAME(sys_setgroups) 629 .long SYMBOL_NAME(sys_fchown) 630 .long SYMBOL_NAME(sys_setresuid) 631 .long SYMBOL_NAME(sys_getresuid) 632 .long SYMBOL_NAME(sys_setresgid) /* 210 */ 633 .long SYMBOL_NAME(sys_getresgid) 634 .long SYMBOL_NAME(sys_lchown) 635 .long SYMBOL_NAME(sys_setuid) 636 .long SYMBOL_NAME(sys_setgid) 637 .long SYMBOL_NAME(sys_setfsuid) /* 215 */ 638 .long SYMBOL_NAME(sys_setfsgid) 639 .long SYMBOL_NAME(sys_pivot_root) 640 .long SYMBOL_NAME(sys_ni_syscall) 641 .long SYMBOL_NAME(sys_ni_syscall) 642 .long SYMBOL_NAME(sys_getdents64) /* 220 */ 643 .long SYMBOL_NAME(sys_gettid) 644 .long SYMBOL_NAME(sys_tkill) 645 .long SYMBOL_NAME(sys_setxattr) 646 .long SYMBOL_NAME(sys_lsetxattr) 647 .long SYMBOL_NAME(sys_fsetxattr) /* 225 */ 648 .long SYMBOL_NAME(sys_getxattr) 649 .long SYMBOL_NAME(sys_lgetxattr) 650 .long SYMBOL_NAME(sys_fgetxattr) 651 .long SYMBOL_NAME(sys_listxattr) 652 .long SYMBOL_NAME(sys_llistxattr) /* 230 */ 653 .long SYMBOL_NAME(sys_flistxattr) 654 .long SYMBOL_NAME(sys_removexattr) 655 .long SYMBOL_NAME(sys_lremovexattr) 656 .long SYMBOL_NAME(sys_fremovexattr) 657 658 .rept NR_syscalls-(.-SYMBOL_NAME(sys_call_table))/4 659 .long SYMBOL_NAME(sys_ni_syscall) 660 .endr 661