From 00f18569054f0a7f0309980cd466ff5bbf972bfb Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Thu, 27 Jul 2006 19:50:16 +0000 Subject: Add missing ptrace(2) system-call stops to various syscall() implementations. MFC after: 1 week --- sys/amd64/ia32/ia32_syscall.c | 5 +++++ sys/ia64/ia32/ia32_trap.c | 5 +++++ sys/powerpc/aim/trap.c | 5 +++++ sys/powerpc/powerpc/trap.c | 5 +++++ 4 files changed, 20 insertions(+) diff --git a/sys/amd64/ia32/ia32_syscall.c b/sys/amd64/ia32/ia32_syscall.c index 8e67939c771d..c8349bd78f09 100644 --- a/sys/amd64/ia32/ia32_syscall.c +++ b/sys/amd64/ia32/ia32_syscall.c @@ -56,6 +56,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -184,6 +185,8 @@ ia32_syscall(struct trapframe frame) STOPEVENT(p, S_SCE, narg); + PTRACESTOP_SC(p, td, S_PT_SCE); + AUDIT_SYSCALL_ENTER(code, td); error = (*callp->sy_call)(td, args64); AUDIT_SYSCALL_EXIT(error, td); @@ -253,6 +256,8 @@ ia32_syscall(struct trapframe frame) * is not the case, this code will need to be revisited. */ STOPEVENT(p, S_SCX, code); + + PTRACESTOP_SC(p, td, S_PT_SCX); WITNESS_WARN(WARN_PANIC, NULL, "System call %s returning", (code >= 0 && code < SYS_MAXSYSCALL) ? freebsd32_syscallnames[code] : "???"); diff --git a/sys/ia64/ia32/ia32_trap.c b/sys/ia64/ia32/ia32_trap.c index 29357f1d2c28..07c7d2e1c6b0 100644 --- a/sys/ia64/ia32/ia32_trap.c +++ b/sys/ia64/ia32/ia32_trap.c @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -125,6 +126,8 @@ ia32_syscall(struct trapframe *tf) STOPEVENT(p, S_SCE, narg); + PTRACESTOP_SC(p, td, S_PT_SCE); + error = (*callp->sy_call)(td, args64); } @@ -187,6 +190,8 @@ ia32_syscall(struct trapframe *tf) * is not the case, this code will need to be revisited. */ STOPEVENT(p, S_SCX, code); + + PTRACESTOP_SC(p, td, S_PT_SCX); WITNESS_WARN(WARN_PANIC, NULL, "System call %s returning", (code >= 0 && code < SYS_MAXSYSCALL) ? syscallnames[code] : "???"); diff --git a/sys/powerpc/aim/trap.c b/sys/powerpc/aim/trap.c index 7d3deba8a8ab..527e9fb93b57 100644 --- a/sys/powerpc/aim/trap.c +++ b/sys/powerpc/aim/trap.c @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -420,6 +421,8 @@ syscall(struct trapframe *frame) STOPEVENT(p, S_SCE, narg); + PTRACESTOP_SC(p, td, S_PT_SCE); + error = (*callp->sy_call)(td, params); CTR3(KTR_SYSC, "syscall: p=%s %s ret=%x", p->p_comm, @@ -476,6 +479,8 @@ syscall(struct trapframe *frame) * Does the comment in the i386 code about errno apply here? */ STOPEVENT(p, S_SCX, code); + + PTRACESTOP_SC(p, td, S_PT_SCX); WITNESS_WARN(WARN_PANIC, NULL, "System call %s returning", (code >= 0 && code < SYS_MAXSYSCALL) ? syscallnames[code] : "???"); diff --git a/sys/powerpc/powerpc/trap.c b/sys/powerpc/powerpc/trap.c index 7d3deba8a8ab..527e9fb93b57 100644 --- a/sys/powerpc/powerpc/trap.c +++ b/sys/powerpc/powerpc/trap.c @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -420,6 +421,8 @@ syscall(struct trapframe *frame) STOPEVENT(p, S_SCE, narg); + PTRACESTOP_SC(p, td, S_PT_SCE); + error = (*callp->sy_call)(td, params); CTR3(KTR_SYSC, "syscall: p=%s %s ret=%x", p->p_comm, @@ -476,6 +479,8 @@ syscall(struct trapframe *frame) * Does the comment in the i386 code about errno apply here? */ STOPEVENT(p, S_SCX, code); + + PTRACESTOP_SC(p, td, S_PT_SCX); WITNESS_WARN(WARN_PANIC, NULL, "System call %s returning", (code >= 0 && code < SYS_MAXSYSCALL) ? syscallnames[code] : "???"); -- cgit v1.3