|
@@ -22,8 +22,6 @@
|
|
|
#include <asm/estate.h>
|
|
|
#include <asm/auxio.h>
|
|
|
|
|
|
-/* #define SYSCALL_TRACING 1 */
|
|
|
-
|
|
|
#define curptr g6
|
|
|
|
|
|
#define NR_SYSCALLS 284 /* Each OS is different... */
|
|
@@ -1554,11 +1552,12 @@ sys_ptrace: add %sp, PTREGS_OFF, %o0
|
|
|
nop
|
|
|
.align 32
|
|
|
1: ldx [%curptr + TI_FLAGS], %l5
|
|
|
- andcc %l5, _TIF_SYSCALL_TRACE, %g0
|
|
|
+ andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT), %g0
|
|
|
be,pt %icc, rtrap
|
|
|
clr %l6
|
|
|
+ add %sp, PTREGS_OFF, %o0
|
|
|
call syscall_trace
|
|
|
- nop
|
|
|
+ mov 1, %o1
|
|
|
|
|
|
ba,pt %xcc, rtrap
|
|
|
clr %l6
|
|
@@ -1642,18 +1641,20 @@ linux_sparc_ni_syscall:
|
|
|
or %l7, %lo(sys_ni_syscall), %l7
|
|
|
|
|
|
linux_syscall_trace32:
|
|
|
+ add %sp, PTREGS_OFF, %o0
|
|
|
call syscall_trace
|
|
|
- nop
|
|
|
+ clr %o1
|
|
|
srl %i0, 0, %o0
|
|
|
- mov %i4, %o4
|
|
|
+ srl %i4, 0, %o4
|
|
|
srl %i1, 0, %o1
|
|
|
srl %i2, 0, %o2
|
|
|
b,pt %xcc, 2f
|
|
|
srl %i3, 0, %o3
|
|
|
|
|
|
linux_syscall_trace:
|
|
|
+ add %sp, PTREGS_OFF, %o0
|
|
|
call syscall_trace
|
|
|
- nop
|
|
|
+ clr %o1
|
|
|
mov %i0, %o0
|
|
|
mov %i1, %o1
|
|
|
mov %i2, %o2
|
|
@@ -1671,11 +1672,6 @@ linux_sparc_syscall32:
|
|
|
bgeu,pn %xcc, linux_sparc_ni_syscall ! CTI
|
|
|
srl %i0, 0, %o0 ! IEU0
|
|
|
sll %g1, 2, %l4 ! IEU0 Group
|
|
|
-#ifdef SYSCALL_TRACING
|
|
|
- call syscall_trace_entry
|
|
|
- add %sp, PTREGS_OFF, %o0
|
|
|
- srl %i0, 0, %o0
|
|
|
-#endif
|
|
|
srl %i4, 0, %o4 ! IEU1
|
|
|
lduw [%l7 + %l4], %l7 ! Load
|
|
|
srl %i1, 0, %o1 ! IEU0 Group
|
|
@@ -1683,7 +1679,7 @@ linux_sparc_syscall32:
|
|
|
|
|
|
srl %i5, 0, %o5 ! IEU1
|
|
|
srl %i2, 0, %o2 ! IEU0 Group
|
|
|
- andcc %l0, _TIF_SYSCALL_TRACE, %g0 ! IEU0 Group
|
|
|
+ andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT), %g0
|
|
|
bne,pn %icc, linux_syscall_trace32 ! CTI
|
|
|
mov %i0, %l5 ! IEU1
|
|
|
call %l7 ! CTI Group brk forced
|
|
@@ -1699,11 +1695,6 @@ linux_sparc_syscall:
|
|
|
bgeu,pn %xcc, linux_sparc_ni_syscall ! CTI
|
|
|
mov %i0, %o0 ! IEU0
|
|
|
sll %g1, 2, %l4 ! IEU0 Group
|
|
|
-#ifdef SYSCALL_TRACING
|
|
|
- call syscall_trace_entry
|
|
|
- add %sp, PTREGS_OFF, %o0
|
|
|
- mov %i0, %o0
|
|
|
-#endif
|
|
|
mov %i1, %o1 ! IEU1
|
|
|
lduw [%l7 + %l4], %l7 ! Load
|
|
|
4: mov %i2, %o2 ! IEU0 Group
|
|
@@ -1711,7 +1702,7 @@ linux_sparc_syscall:
|
|
|
|
|
|
mov %i3, %o3 ! IEU1
|
|
|
mov %i4, %o4 ! IEU0 Group
|
|
|
- andcc %l0, _TIF_SYSCALL_TRACE, %g0 ! IEU1 Group+1 bubble
|
|
|
+ andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT), %g0
|
|
|
bne,pn %icc, linux_syscall_trace ! CTI Group
|
|
|
mov %i0, %l5 ! IEU0
|
|
|
2: call %l7 ! CTI Group brk forced
|
|
@@ -1720,12 +1711,6 @@ linux_sparc_syscall:
|
|
|
|
|
|
3: stx %o0, [%sp + PTREGS_OFF + PT_V9_I0]
|
|
|
ret_sys_call:
|
|
|
-#ifdef SYSCALL_TRACING
|
|
|
- mov %o0, %o1
|
|
|
- call syscall_trace_exit
|
|
|
- add %sp, PTREGS_OFF, %o0
|
|
|
- mov %o1, %o0
|
|
|
-#endif
|
|
|
ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %g3
|
|
|
ldx [%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
|
|
|
sra %o0, 0, %o0
|
|
@@ -1745,7 +1730,7 @@ ret_sys_call:
|
|
|
1:
|
|
|
cmp %o0, -ERESTART_RESTARTBLOCK
|
|
|
bgeu,pn %xcc, 1f
|
|
|
- andcc %l0, _TIF_SYSCALL_TRACE, %l6
|
|
|
+ andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT), %l6
|
|
|
80:
|
|
|
/* System call success, clear Carry condition code. */
|
|
|
andn %g3, %g2, %g3
|
|
@@ -1760,7 +1745,7 @@ ret_sys_call:
|
|
|
/* System call failure, set Carry condition code.
|
|
|
* Also, get abs(errno) to return to the process.
|
|
|
*/
|
|
|
- andcc %l0, _TIF_SYSCALL_TRACE, %l6
|
|
|
+ andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT), %l6
|
|
|
sub %g0, %o0, %o0
|
|
|
or %g3, %g2, %g3
|
|
|
stx %o0, [%sp + PTREGS_OFF + PT_V9_I0]
|
|
@@ -1773,8 +1758,9 @@ ret_sys_call:
|
|
|
b,pt %xcc, rtrap
|
|
|
stx %l2, [%sp + PTREGS_OFF + PT_V9_TNPC]
|
|
|
linux_syscall_trace2:
|
|
|
+ add %sp, PTREGS_OFF, %o0
|
|
|
call syscall_trace
|
|
|
- nop
|
|
|
+ mov 1, %o1
|
|
|
stx %l1, [%sp + PTREGS_OFF + PT_V9_TPC]
|
|
|
ba,pt %xcc, rtrap
|
|
|
stx %l2, [%sp + PTREGS_OFF + PT_V9_TNPC]
|