syscall.S (1809de7e7d37c585e01a1bcc583ea92b78fc759d) | syscall.S (910cd32e552ea09caa89cdbe328e468979b030dd) |
---|---|
1/* 2 * Linux/PA-RISC Project (http://www.parisc-linux.org/) 3 * 4 * System call entry code / Linux gateway page 5 * Copyright (c) Matthew Wilcox 1999 <willy@bofh.ai> 6 * Licensed under the GNU GPL. 7 * thanks to Philipp Rumpf, Mike Shaver and various others 8 * sorry about the wall, puffin.. --- 315 unchanged lines hidden (view full) --- 324 * task->thread.regs.gr[20] above. 325 */ 326 copy %ret0,%r20 327 ldil L%sys_call_table,%r1 328 ldo R%sys_call_table(%r1), %r19 329 330 ldo -THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 /* get task ptr */ 331 LDREG TI_TASK(%r1), %r1 | 1/* 2 * Linux/PA-RISC Project (http://www.parisc-linux.org/) 3 * 4 * System call entry code / Linux gateway page 5 * Copyright (c) Matthew Wilcox 1999 <willy@bofh.ai> 6 * Licensed under the GNU GPL. 7 * thanks to Philipp Rumpf, Mike Shaver and various others 8 * sorry about the wall, puffin.. --- 315 unchanged lines hidden (view full) --- 324 * task->thread.regs.gr[20] above. 325 */ 326 copy %ret0,%r20 327 ldil L%sys_call_table,%r1 328 ldo R%sys_call_table(%r1), %r19 329 330 ldo -THREAD_SZ_ALGN-FRAME_SIZE(%r30),%r1 /* get task ptr */ 331 LDREG TI_TASK(%r1), %r1 |
332 LDREG TASK_PT_GR28(%r1), %r28 /* Restore return value */ |
|
332 LDREG TASK_PT_GR26(%r1), %r26 /* Restore the users args */ 333 LDREG TASK_PT_GR25(%r1), %r25 334 LDREG TASK_PT_GR24(%r1), %r24 335 LDREG TASK_PT_GR23(%r1), %r23 336 LDREG TASK_PT_GR22(%r1), %r22 337 LDREG TASK_PT_GR21(%r1), %r21 338#ifdef CONFIG_64BIT 339 ldo -16(%r30),%r29 /* Reference param save area */ 340#else 341 stw %r22, -52(%r30) /* 5th argument */ 342 stw %r21, -56(%r30) /* 6th argument */ 343#endif 344 | 333 LDREG TASK_PT_GR26(%r1), %r26 /* Restore the users args */ 334 LDREG TASK_PT_GR25(%r1), %r25 335 LDREG TASK_PT_GR24(%r1), %r24 336 LDREG TASK_PT_GR23(%r1), %r23 337 LDREG TASK_PT_GR22(%r1), %r22 338 LDREG TASK_PT_GR21(%r1), %r21 339#ifdef CONFIG_64BIT 340 ldo -16(%r30),%r29 /* Reference param save area */ 341#else 342 stw %r22, -52(%r30) /* 5th argument */ 343 stw %r21, -56(%r30) /* 6th argument */ 344#endif 345 |
346 cmpib,COND(=),n -1,%r20,tracesys_exit /* seccomp may have returned -1 */ |
|
345 comiclr,>>= __NR_Linux_syscalls, %r20, %r0 346 b,n .Ltracesys_nosys 347 348 LDREGX %r20(%r19), %r19 349 350 /* If this is a sys_rt_sigreturn call, and the signal was received 351 * when not in_syscall, then we want to return via syscall_exit_rfi, 352 * not syscall_exit. Signal no. in r20, in_syscall in r25 (see --- 596 unchanged lines hidden --- | 347 comiclr,>>= __NR_Linux_syscalls, %r20, %r0 348 b,n .Ltracesys_nosys 349 350 LDREGX %r20(%r19), %r19 351 352 /* If this is a sys_rt_sigreturn call, and the signal was received 353 * when not in_syscall, then we want to return via syscall_exit_rfi, 354 * not syscall_exit. Signal no. in r20, in_syscall in r25 (see --- 596 unchanged lines hidden --- |