root/arch/alpha/kernel/entry.S

/* [previous][next][first][last][top][bottom][index][help] */
   1 /*
   2  * alpha/entry.S
   3  *
   4  * kernel entry-points
   5  */
   6 
   7 #include <asm/system.h>
   8 
   9 #define halt    .long PAL_halt
  10 #define rti     .long PAL_rti
  11 #define SIGCHLD 20
  12 
  13 #define NR_SYSCALLS 350
  14 #define osf_vfork sys_fork
  15 
  16 /*
  17  * These offsets must match with "struct hae" in io.h:  
  18  */
  19 #define HAE_CACHE       0
  20 #define HAE_REG         8
  21 
  22 /*
  23  * stack offsets
  24  */
  25 #define SP_OFF          160
  26 
  27 #define SWITCH_STACK_SIZE 320
  28 
  29 /*
  30  * task structure offsets
  31  */
  32 #define TASK_STATE      0
  33 #define TASK_COUNTER    8
  34 #define TASK_PRIORITY   16
  35 #define TASK_SIGNAL     24
  36 #define TASK_BLOCKED    32
  37 #define TASK_FLAGS      40
  38 
  39 /*
  40  * task flags (must match include/linux/sched.h):
  41  */
  42 #define PF_PTRACED      0x00000010
  43 
  44 /*
  45  * This defines the normal kernel pt-regs layout.
  46  *
  47  * regs 9-15 preserved by C code
  48  * regs 16-18 saved by PAL-code
  49  * regs 29-30 saved and set up by PAL-code
  50  */
  51 #define SAVE_ALL                        \
  52         subq    $30,160,$30;            \
  53         stq     $0,0($30);              \
  54         stq     $1,8($30);              \
  55         stq     $2,16($30);             \
  56         stq     $3,24($30);             \
  57         stq     $4,32($30);             \
  58         stq     $5,40($30);             \
  59         stq     $6,48($30);             \
  60         stq     $7,56($30);             \
  61         stq     $8,64($30);             \
  62         stq     $19,72($30);            \
  63         stq     $20,80($30);            \
  64         stq     $21,88($30);            \
  65         stq     $22,96($30);            \
  66         stq     $23,104($30);           \
  67         stq     $24,112($30);           \
  68         stq     $25,120($30);           \
  69         stq     $26,128($30);           \
  70         stq     $27,136($30);           \
  71         stq     $28,144($30);           \
  72         lda     $2,hae;                 \
  73         ldq     $2,HAE_CACHE($2);       \
  74         stq     $2,152($30)
  75 
  76 #define RESTORE_ALL                     \
  77         lda     $8,hae;                 \
  78         ldq     $7,HAE_CACHE($8);       \
  79         ldq     $6,152($30);            \
  80         subq    $7,$6,$5;               \
  81         beq     $5,99f;                 \
  82         ldq     $7,HAE_REG($8);         \
  83         addq    $31,7,$16;              \
  84         call_pal PAL_swpipl;            \
  85         stq     $6,HAE_CACHE($8);       \
  86         stq     $6,0($7);               \
  87         mb;                             \
  88         bis     $0,$0,$16;              \
  89         call_pal PAL_swpipl;            \
  90 99:;                                    \
  91         ldq     $0,0($30);              \
  92         ldq     $1,8($30);              \
  93         ldq     $2,16($30);             \
  94         ldq     $3,24($30);             \
  95         ldq     $4,32($30);             \
  96         ldq     $5,40($30);             \
  97         ldq     $6,48($30);             \
  98         ldq     $7,56($30);             \
  99         ldq     $8,64($30);             \
 100         ldq     $19,72($30);            \
 101         ldq     $20,80($30);            \
 102         ldq     $21,88($30);            \
 103         ldq     $22,96($30);            \
 104         ldq     $23,104($30);           \
 105         ldq     $24,112($30);           \
 106         ldq     $25,120($30);           \
 107         ldq     $26,128($30);           \
 108         ldq     $27,136($30);           \
 109         ldq     $28,144($30);           \
 110         addq    $30,160,$30
 111 
 112 .text
 113 .set noat
 114 #ifdef __linux__
 115   .set singlegp
 116 #endif
 117 
 118 .align 3
 119 .globl  entInt
 120 .ent    entInt
 121 entInt:
 122         SAVE_ALL
 123 /* start atomic operation with respect to software interrupts */
 124         lda     $0,intr_count
 125         ldq     $1,0($0)
 126         addq    $1,1,$1
 127         stq     $1,0($0)
 128 /* set up the arguments to the C interrupt handler */
 129         lda     $27,do_entInt
 130         jsr     $26,($27),do_entInt
 131 /* ok, return */
 132         lda     $0,intr_count
 133         ldq     $1,0($0)
 134         subq    $1,1,$1
 135         stq     $1,0($0)
 136         br      $31,ret_from_sys_call
 137 .end entInt
 138 
 139 .align 3
 140 .globl  entMM
 141 .ent    entMM
 142 entMM:
 143         SAVE_ALL
 144         lda     $27,do_page_fault
 145         lda     $26,ret_from_sys_call
 146         jsr     $31,($27),do_page_fault
 147 .end entMM
 148 
 149 .align 3
 150 .globl  entArith
 151 .ent    entArith
 152 entArith:
 153         SAVE_ALL
 154         lda     $27,do_entArith
 155         lda     $26,ret_from_sys_call
 156         jsr     $31,($27),do_entArith
 157 .end entArith
 158 
 159 .align 3
 160 .globl  entIF
 161 .ent    entIF
 162 entIF:
 163         SAVE_ALL
 164         lda     $27,do_entIF
 165         lda     $26,ret_from_sys_call
 166         jsr     $31,($27),do_entIF
 167 .end entIF
 168 
 169 /*
 170  * Fork() is one of the special system calls: it needs to
 171  * save the callee-saved regs so that the regs can be found
 172  * for the new process.. We save them in the "context switch"
 173  * stack format (see arch/alpha/kernel/process.c).
 174  *
 175  * Also, for the kernel fork, we need to fake the system call
 176  * stack buildup, as we can't do system calls from kernel space.
 177  */
 178 .align 3
 179 .ent    kernel_clone
 180 kernel_clone:
 181         subq $30,6*8,$30
 182         stq $31,0($30)
 183         stq $26,8($30)
 184         stq $29,16($30)
 185         stq $16,24($30)
 186         stq $17,32($30)
 187         stq $18,40($30)
 188         bis $31,2,$0    /* Register v0: syscall nr for fork() */
 189         SAVE_ALL
 190         lda $27,sys_clone
 191         jsr $26,($27),sys_clone
 192         stq $0,0($30)   
 193         br $31,ret_from_sys_call
 194 .end    kernel_clone
 195 
 196 /*
 197  * __kernel_thread(clone_flags, fn, arg)
 198  */
 199 .align 3
 200 .globl  __kernel_thread
 201 .ent    __kernel_thread
 202 __kernel_thread:
 203         subq $30,4*8,$30
 204         stq $9,0($30)
 205         stq $10,8($30)
 206         stq $26,16($30)
 207         bis $17,$17,$9          /* save fn */
 208         bis $18,$18,$10         /* save arg */
 209         bsr $26,kernel_clone
 210         bne $20,1f              /* $20 is non-zero in child */
 211         ldq $9,0($30)
 212         ldq $10,8($30)
 213         ldq $26,16($30)
 214         addq $30,4*8,$30
 215         ret $31,($26),1
 216 /* this is in child: look out as we don't have any stack here.. */
 217 1:      bis $9,$9,$27           /* get fn */
 218         bis $10,$10,$16         /* get arg */
 219         jsr $26,($27)
 220         bis $0,$0,$16
 221         lda $27,sys_exit
 222         jsr $26,($27),sys_exit
 223         call_pal PAL_halt
 224 .end    __kernel_thread
 225 
 226 .align 3
 227 .ent    do_switch_stack
 228 do_switch_stack:
 229         lda $30,-SWITCH_STACK_SIZE($30)
 230         stq  $9,0($30)
 231         stq $10,8($30)
 232         stq $11,16($30)
 233         stq $12,24($30)
 234         stq $13,32($30)
 235         stq $14,40($30)
 236         stq $15,48($30)
 237         stq $26,56($30)
 238         stt $f0,64($30)
 239         stt $f1,72($30)
 240         stt $f2,80($30)
 241         stt $f3,88($30)
 242         stt $f4,96($30)
 243         stt $f5,104($30)
 244         stt $f6,112($30)
 245         stt $f7,120($30)
 246         stt $f8,128($30)
 247         stt $f9,136($30)
 248         stt $f10,144($30)
 249         stt $f11,152($30)
 250         stt $f12,160($30)
 251         stt $f13,168($30)
 252         stt $f14,176($30)
 253         stt $f15,184($30)
 254         stt $f16,192($30)
 255         stt $f17,200($30)
 256         stt $f18,208($30)
 257         stt $f19,216($30)
 258         stt $f20,224($30)
 259         stt $f21,232($30)
 260         stt $f22,240($30)
 261         stt $f23,248($30)
 262         stt $f24,256($30)
 263         stt $f25,264($30)
 264         stt $f26,272($30)
 265         stt $f27,280($30)
 266         mf_fpcr $f0             # get fpcr
 267         stt $f28,288($30)
 268         stt $f29,296($30)
 269         stt $f30,304($30)
 270         stt $f0,312($30)        # save fpcr in slot of $f31
 271         ret $31,($1),1
 272 .end do_switch_stack
 273 
 274 .align 3
 275 .ent    undo_switch_stack
 276 undo_switch_stack:
 277         ldq  $9,0($30)
 278         ldq $10,8($30)
 279         ldq $11,16($30)
 280         ldq $12,24($30)
 281         ldq $13,32($30)
 282         ldq $14,40($30)
 283         ldq $15,48($30)
 284         ldq $26,56($30)
 285         ldt $f30,312($30)       # get saved fpcr
 286         ldt $f0,64($30)
 287         ldt $f1,72($30)
 288         ldt $f2,80($30)
 289         ldt $f3,88($30)
 290         mt_fpcr $f30            # install saved fpcr
 291         ldt $f4,96($30)
 292         ldt $f5,104($30)
 293         ldt $f6,112($30)
 294         ldt $f7,120($30)
 295         ldt $f8,128($30)
 296         ldt $f9,136($30)
 297         ldt $f10,144($30)
 298         ldt $f11,152($30)
 299         ldt $f12,160($30)
 300         ldt $f13,168($30)
 301         ldt $f14,176($30)
 302         ldt $f15,184($30)
 303         ldt $f16,192($30)
 304         ldt $f17,200($30)
 305         ldt $f18,208($30)
 306         ldt $f19,216($30)
 307         ldt $f20,224($30)
 308         ldt $f21,232($30)
 309         ldt $f22,240($30)
 310         ldt $f23,248($30)
 311         ldt $f24,256($30)
 312         ldt $f25,264($30)
 313         ldt $f26,272($30)
 314         ldt $f27,280($30)
 315         ldt $f28,288($30)
 316         ldt $f29,296($30)
 317         ldt $f30,304($30)
 318         lda $30,SWITCH_STACK_SIZE($30)
 319         ret $31,($1),1
 320 .end undo_switch_stack
 321 
 322 .align 3
 323 .globl  entUna
 324 .ent    entUna
 325 entUna:
 326         lda $30,-256($30)
 327         stq $0,0($30)
 328         ldq $0,256($30)         /* get PS */
 329         stq $1,8($30)
 330         stq $2,16($30)
 331         stq $3,24($30)
 332         and $0,8,$0             /* user mode? */
 333         stq $4,32($30)
 334         bne $0,entUnaUser       /* yup -> do user-level unaligned fault */
 335         stq $5,40($30)
 336         stq $6,48($30)
 337         stq $7,56($30)
 338         stq $8,64($30)
 339         stq $9,72($30)
 340         stq $10,80($30)
 341         stq $11,88($30)
 342         stq $12,96($30)
 343         stq $13,104($30)
 344         stq $14,112($30)
 345         stq $15,120($30)
 346         /* 16-18 PAL-saved */
 347         stq $19,152($30)
 348         stq $20,160($30)
 349         stq $21,168($30)
 350         stq $22,176($30)
 351         stq $23,184($30)
 352         stq $24,192($30)
 353         stq $25,200($30)
 354         stq $26,208($30)
 355         stq $27,216($30)
 356         stq $28,224($30)
 357         stq $29,232($30)
 358         stq $30,240($30)
 359         stq $31,248($30)
 360         lda $27,do_entUna
 361         jsr $26,($27),do_entUna
 362         ldq $0,0($30)
 363         ldq $1,8($30)
 364         ldq $2,16($30)
 365         ldq $3,24($30)
 366         ldq $4,32($30)
 367         ldq $5,40($30)
 368         ldq $6,48($30)
 369         ldq $7,56($30)
 370         ldq $8,64($30)
 371         ldq $9,72($30)
 372         ldq $10,80($30)
 373         ldq $11,88($30)
 374         ldq $12,96($30)
 375         ldq $13,104($30)
 376         ldq $14,112($30)
 377         ldq $15,120($30)
 378         /* 16-18 PAL-saved */
 379         ldq $19,152($30)
 380         ldq $20,160($30)
 381         ldq $21,168($30)
 382         ldq $22,176($30)
 383         ldq $23,184($30)
 384         ldq $24,192($30)
 385         ldq $25,200($30)
 386         ldq $26,208($30)
 387         ldq $27,216($30)
 388         ldq $28,224($30)
 389         ldq $29,232($30)
 390         ldq $30,240($30)
 391         lda $30,256($30)
 392         rti
 393 .end entUna
 394 
 395 .align 3
 396 .ent    entUnaUser
 397 entUnaUser:
 398         ldq $0,0($30)                   /* restore original $0 */
 399         lda $30,256($30)                /* pop entUna's stack frame */
 400         SAVE_ALL                        /* setup normal kernel stack */
 401         lda $30,-56($30)
 402         stq $9,0($30)
 403         stq $10,8($30)
 404         stq $11,16($30)
 405         stq $12,24($30)
 406         stq $13,32($30)
 407         stq $14,40($30)
 408         stq $15,48($30)
 409         lda $27,do_entUnaUser
 410         bis $31,$30,$19
 411         jsr $26,($27),do_entUnaUser
 412         ldq $9,0($30)
 413         ldq $10,8($30)
 414         ldq $11,16($30)
 415         ldq $12,24($30)
 416         ldq $13,32($30)
 417         ldq $14,40($30)
 418         ldq $15,48($30)
 419         lda $30,56($30)
 420         br $31,ret_from_sys_call
 421 
 422 .end    entUnaUser
 423 
 424 /*
 425  * A fork is the same as clone(SIGCHLD, 0);
 426 */
 427 .align 3
 428 .globl  sys_fork
 429 .ent    sys_fork
 430 sys_fork:
 431         bsr $1,do_switch_stack
 432         bis $31,SIGCHLD,$16
 433         bis $31,$31,$17
 434         bis $30,$30,$18
 435         lda $27,alpha_clone
 436         jsr $26,($27),alpha_clone
 437         bsr $1,undo_switch_stack
 438         ret $31,($26),1
 439 .end    sys_fork
 440 
 441 .align 3
 442 .globl  sys_clone
 443 .ent    sys_clone
 444 sys_clone:
 445         bsr $1,do_switch_stack
 446         /* arg1 and arg2 come from the user */
 447         bis $30,$30,$18
 448         lda $27,alpha_clone
 449         jsr $26,($27),alpha_clone
 450         bsr $1,undo_switch_stack
 451         ret $31,($26),1
 452 .end    sys_clone
 453 
 454 .align 3
 455 .globl  alpha_switch_to
 456 .ent    alpha_switch_to
 457 alpha_switch_to:
 458         bsr $1,do_switch_stack
 459         call_pal PAL_swpctx
 460         bsr $1,undo_switch_stack
 461         ret $31,($26),1
 462 .end alpha_switch_to
 463 
 464 /*
 465  * Oh, well.. Disassembling OSF/1 binaries to find out how the
 466  * system calls work isn't much fun.
 467  *
 468  * entSys is special in that the PAL-code doesn't save a0-a2, so
 469  * we start off by doing that by hand.
 470  */
 471 .align 3
 472 .globl  entSys
 473 .globl  ret_from_sys_call
 474 .ent    entSys
 475 entSys:
 476         stq     $16,24($30)
 477         stq     $17,32($30)
 478         stq     $18,40($30)
 479         SAVE_ALL
 480         /* FIXME: optimize */
 481         lda     $1,current_set
 482         ldq     $2,0($1)
 483         ldq     $3,TASK_FLAGS($2)
 484         and     $3,PF_PTRACED,$3
 485         bne     $3,strace
 486         /* end of strace */     
 487         lda     $1,NR_SYSCALLS($31)
 488         lda     $2,sys_call_table
 489         lda     $27,do_entSys
 490         cmpult  $0,$1,$1
 491         s8addq  $0,$2,$2
 492         beq     $1,1f
 493         ldq     $27,0($2)
 494 1:      jsr     $26,($27),do_entSys
 495         blt     $0,syscall_error        /* the call failed */
 496         stq     $0,0($30)
 497         stq     $31,72($30)             /* a3=0 => no error */
 498 
 499 .align 3
 500 ret_from_sys_call:
 501         cmovne  $26,0,$19               /* $19 = 0 => non-restartable */
 502         /* check bottom half interrupts */
 503         lda     $0,intr_count
 504         ldq     $1,0($0)
 505         bne     $1,ret_from_handle_bh
 506         lda     $2,bh_active
 507         ldq     $3,0($2)
 508         lda     $2,bh_mask
 509         ldq     $4,0($2)
 510         addq    $1,1,$1
 511         and     $3,$4,$2
 512         bne     $2,handle_bottom_half   
 513 ret_from_handle_bh:
 514         ldq     $0,SP_OFF($30)
 515         and     $0,8,$0
 516         beq     $0,restore_all
 517 ret_from_reschedule:
 518         lda     $0,need_resched
 519         lda     $1,current_set
 520         ldl     $2,0($0)
 521         lda     $4,init_task
 522         ldq     $3,0($1)
 523         bne     $2,reschedule
 524         subq    $4,$3,$4
 525         beq     $4,restore_all
 526         ldq     $4,TASK_SIGNAL($3)
 527         ldq     $16,TASK_BLOCKED($3)
 528         bic     $4,$16,$4
 529         bne     $4,signal_return
 530 restore_all:
 531         RESTORE_ALL
 532         rti
 533         
 534         
 535 /* PTRACE syscall handler */    
 536 .align 3
 537 strace:
 538         /* set up signal stack, call syscall_trace */
 539         bsr     $1,do_switch_stack
 540         lda     $27,syscall_trace
 541         jsr     $26,($27),syscall_trace
 542         bsr     $1,undo_switch_stack
 543 
 544         /* get the system call number and the arguments back.. */
 545         ldq     $0,0($30)
 546         ldq     $16,SP_OFF+24($30)
 547         ldq     $17,SP_OFF+32($30)
 548         ldq     $18,SP_OFF+40($30)
 549         ldq     $19,72($30)
 550         ldq     $20,80($30)
 551         ldq     $21,88($30)
 552 
 553         /* get the system call pointer.. */
 554         lda     $1,NR_SYSCALLS($31)
 555         lda     $2,sys_call_table
 556         lda     $27,do_entSys
 557         cmpult  $0,$1,$1
 558         s8addq  $0,$2,$2
 559         beq     $1,1f
 560         ldq     $27,0($2)
 561 1:      jsr     $26,($27),do_entSys
 562 
 563         /* check return.. */
 564         blt     $0,strace_error /* the call failed */
 565         stq     $31,72($30)             /* a3=0 => no error */
 566 strace_success:
 567         stq     $0,0($30)               /* save return value */
 568 
 569         bsr     $1,do_switch_stack
 570         lda     $27,syscall_trace
 571         jsr     $26,($27),syscall_trace
 572         bsr     $1,undo_switch_stack
 573         br      $31,ret_from_sys_call
 574 
 575         .align  3
 576 strace_error:
 577         ldq     $19,0($30)      /* old syscall nr (zero if success) */
 578         beq     $19,strace_success
 579         ldq     $20,72($30)     /* .. and this a3 */
 580 
 581         subq    $31,$0,$0       /* with error in v0 */
 582         addq    $31,1,$1        /* set a3 for errno return */
 583         stq     $0,0($30)
 584         stq     $1,72($30)      /* a3 for return */
 585 
 586         bsr     $1,do_switch_stack
 587         bis     $19,$19,$9      /* save old syscall number */
 588         bis     $20,$20,$10     /* save old a3 */
 589         lda     $27,syscall_trace
 590         jsr     $26,($27),syscall_trace
 591         bis     $9,$9,$19
 592         bis     $10,$10,$20     
 593         bsr     $1,undo_switch_stack
 594 
 595         bis     $31,$31,$26     /* tell "ret_from_sys_call" that we can restart */
 596         br      $31,ret_from_sys_call
 597 
 598         .align 3
 599 handle_bottom_half:
 600         /*
 601          * We're called with $0 containing the address of
 602          * 'intr_count' and $1 containing 'intr_count+1'
 603          */
 604         stq     $1,0($0)        /* intr_count = 1 */
 605         subq    $30,16,$30
 606         stq     $19,0($30)      /* save syscall nr */
 607         stq     $20,8($30)      /* and error indication (a3) */
 608         lda     $27,do_bottom_half
 609         jsr     $26,($27),do_bottom_half
 610         lda     $0,intr_count
 611         ldq     $19,0($30)
 612         ldq     $20,8($30)
 613         addq    $30,16,$30
 614         stq     $31,0($0)       /* intr_count = 0 */
 615         br      $31,ret_from_handle_bh
 616 
 617         .align 3
 618 syscall_error:
 619         /*
 620          * Some system calls (e.g., ptrace) can return arbitrary
 621          * values which might normally be mistaken as error numbers.
 622          * Those functions must zero $0 (v0) directly in the stack
 623          * frame to indicate that a negative return value wasn't an
 624          * error number..
 625          */
 626         ldq     $19,0($30)      /* old syscall nr (zero if success) */
 627         beq     $19,ret_success
 628 
 629         ldq     $20,72($30)     /* .. and this a3 */
 630         subq    $31,$0,$0       /* with error in v0 */
 631         addq    $31,1,$1        /* set a3 for errno return */
 632         bis     $31,$31,$26     /* tell "ret_from_sys_call" that we can restart */
 633         stq     $1,72($30)      /* a3 for return */
 634 ret_success:
 635         stq     $0,0($30)
 636         br      $31,ret_from_sys_call
 637 
 638 .align 3
 639 signal_return:
 640         bis     $30,$30,$17
 641         br      $1,do_switch_stack
 642         bis     $30,$30,$18
 643         lda     $27,do_signal
 644         jsr     $26,($27),do_signal
 645         lda     $30,SWITCH_STACK_SIZE($30)
 646         br      $31,restore_all
 647 .end entSys
 648 
 649 .align 3
 650 .ent reschedule
 651 reschedule:
 652         subq    $30,16,$30
 653         stq     $19,0($30)      /* save syscall nr */
 654         stq     $20,8($30)      /* and error indication (a3) */
 655         lda     $27,schedule
 656         jsr     $26,($27),schedule
 657         ldq     $19,0($30)
 658         ldq     $20,8($30)
 659         addq    $30,16,$30
 660         br      $31,ret_from_reschedule
 661 .end reschedule
 662 
 663 .align 3
 664 .ent sys_sigreturn
 665 sys_sigreturn:
 666         bis     $30,$30,$17
 667         lda     $30,-SWITCH_STACK_SIZE($30)
 668         bis     $30,$30,$18
 669         lda     $27,do_sigreturn
 670         jsr     $26,($27),do_sigreturn
 671         br      $1,undo_switch_stack
 672         br      $31,ret_from_sys_call
 673 .end sys_sigreturn
 674 
 675 .align 3
 676 .ent sys_sigsuspend
 677 sys_sigsuspend:
 678         bis     $30,$30,$17
 679         br      $1,do_switch_stack
 680         bis     $30,$30,$18
 681         lda     $27,do_sigsuspend
 682         jsr     $26,($27),do_sigsuspend
 683         lda     $30,SWITCH_STACK_SIZE($30)
 684         br      $31,ret_from_sys_call
 685 .end sys_sigsuspend
 686 
 687         .align 3
 688         .globl sys_call_table
 689 sys_call_table:
 690 /*0*/   .quad do_entSys, sys_exit, sys_fork, sys_read, sys_write
 691         .quad do_entSys, sys_close, sys_wait4, do_entSys, sys_link
 692         .quad sys_unlink, do_entSys, sys_chdir, sys_fchdir, sys_mknod
 693         .quad sys_chmod, sys_chown, sys_brk, do_entSys, sys_lseek
 694         .quad sys_getxpid, osf_mount, osf_umount, sys_setuid, sys_getxuid
 695         .quad do_entSys, sys_ptrace, do_entSys, do_entSys, do_entSys
 696         .quad do_entSys, do_entSys, do_entSys, sys_access, do_entSys
 697         .quad do_entSys, sys_sync, sys_kill, do_entSys, sys_setpgid
 698         .quad do_entSys, sys_dup, sys_pipe, do_entSys, do_entSys
 699         .quad sys_open, do_entSys, sys_getxgid, osf_sigprocmask, do_entSys
 700 /*50*/  .quad do_entSys, sys_acct, sys_sigpending, do_entSys, sys_ioctl
 701         .quad do_entSys, do_entSys, sys_symlink, sys_readlink, sys_execve
 702         .quad sys_umask, sys_chroot, do_entSys, sys_getpgrp, sys_getpagesize
 703         .quad do_entSys, osf_vfork, sys_newstat, sys_newlstat, do_entSys
 704         .quad do_entSys, osf_mmap, do_entSys, sys_munmap, sys_mprotect
 705         .quad sys_madvise, sys_vhangup, do_entSys, do_entSys, sys_getgroups
 706         /* map BSD's setpgrp to sys_setpgid for binary compatibility: */
 707         .quad sys_setgroups, do_entSys, sys_setpgid, sys_setitimer, do_entSys
 708         .quad do_entSys, sys_getitimer, sys_gethostname, sys_sethostname, sys_getdtablesize
 709         .quad sys_dup2, sys_newfstat, sys_fcntl, sys_select, do_entSys
 710         .quad sys_fsync, sys_setpriority, sys_socket, sys_connect, sys_accept
 711 /*100*/ .quad osf_getpriority, sys_send, sys_recv, sys_sigreturn, sys_bind
 712         .quad sys_setsockopt, sys_listen, do_entSys, do_entSys, do_entSys
 713         .quad do_entSys, sys_sigsuspend, do_entSys, sys_recvmsg, sys_sendmsg
 714         .quad do_entSys, sys_gettimeofday, sys_getrusage, sys_getsockopt, do_entSys
 715         .quad sys_readv, sys_writev, sys_settimeofday, sys_fchown, sys_fchmod
 716         .quad sys_recvfrom, sys_setreuid, sys_setregid, sys_rename, sys_truncate
 717         .quad sys_ftruncate, sys_flock, sys_setgid, sys_sendto, sys_shutdown
 718         .quad sys_socketpair, sys_mkdir, sys_rmdir, sys_utimes, do_entSys
 719         .quad do_entSys, sys_getpeername, do_entSys, do_entSys, sys_getrlimit
 720         .quad sys_setrlimit, do_entSys, sys_setsid, sys_quotactl, do_entSys
 721 /*150*/ .quad sys_getsockname, do_entSys, do_entSys, do_entSys, do_entSys
 722         .quad do_entSys, sys_sigaction, do_entSys, do_entSys, osf_getdirentries
 723         .quad osf_statfs, osf_fstatfs, do_entSys, do_entSys, do_entSys
 724         .quad osf_getdomainname, sys_setdomainname, do_entSys, do_entSys, do_entSys
 725         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 726         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 727         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 728         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 729         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 730         .quad do_entSys, do_entSys, do_entSys, do_entSys, osf_swapon
 731 /*200*/ .quad sys_msgctl, sys_msgget, sys_msgrcv, sys_msgsnd, sys_semctl
 732         .quad sys_semget, sys_semop, osf_utsname, do_entSys, osf_shmat
 733         .quad sys_shmctl, sys_shmdt, sys_shmget, do_entSys, do_entSys
 734         .quad do_entSys, do_entSys, sys_msync, do_entSys, do_entSys
 735         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 736         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 737         .quad do_entSys, do_entSys, do_entSys, sys_getpgid, sys_getsid
 738         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 739         .quad do_entSys, do_entSys, do_entSys, do_entSys, osf_proplist_syscall
 740         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 741 /*250*/ .quad do_entSys, osf_usleep_thread, do_entSys, do_entSys, sys_sysfs
 742         .quad do_entSys, osf_getsysinfo, osf_setsysinfo, do_entSys, do_entSys
 743         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 744         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 745         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 746         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 747         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 748         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 749         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 750         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys
 751 /* linux-specific system calls start at 300 */
 752 /*300*/ .quad sys_bdflush, sys_sethae, sys_mount, sys_adjtimex, sys_swapoff
 753         .quad sys_getdents, alpha_create_module, sys_init_module, sys_delete_module, sys_get_kernel_syms
 754         .quad sys_syslog, sys_reboot, sys_clone, sys_uselib, sys_mlock
 755         .quad sys_munlock, sys_mlockall, sys_munlockall, sys_sysinfo, sys_sysctl
 756         .quad sys_idle, sys_umount, sys_swapon, sys_times, sys_personality
 757         .quad sys_setfsuid, sys_setfsgid, sys_ustat, sys_statfs, sys_fstatfs
 758         .quad sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler, sys_sched_yield
 759         .quad sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, do_entSys /* sys_afs_syscall */, sys_newuname
 760         .quad sys_nanosleep, do_entSys, do_entSys, do_entSys, do_entSys
 761         .quad do_entSys, do_entSys, do_entSys, do_entSys, do_entSys

/* [previous][next][first][last][top][bottom][index][help] */