aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/amd64/amd64/machdep.c7
-rw-r--r--sys/i386/i386/machdep.c7
-rw-r--r--sys/ia64/ia64/machdep.c8
-rw-r--r--sys/pc98/i386/machdep.c7
-rw-r--r--sys/pc98/pc98/machdep.c7
-rw-r--r--sys/powerpc/aim/machdep.c8
-rw-r--r--sys/powerpc/powerpc/machdep.c8
-rw-r--r--sys/sparc64/sparc64/machdep.c7
8 files changed, 59 insertions, 0 deletions
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index bfd0edc7b7ed..b95c211ad1c2 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -1303,6 +1303,13 @@ ptrace_single_step(struct thread *td)
}
int
+ptrace_clear_single_step(struct thread *td)
+{
+ td->td_frame->tf_rflags &= ~PSL_T;
+ return (0);
+}
+
+int
fill_regs(struct thread *td, struct reg *regs)
{
struct pcb *pcb;
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
index a783e013f483..ec148fcd56ba 100644
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -2252,6 +2252,13 @@ ptrace_single_step(struct thread *td)
}
int
+ptrace_clear_single_step(struct thread *td)
+{
+ td->td_frame->tf_eflags &= ~PSL_T;
+ return (0);
+}
+
+int
fill_regs(struct thread *td, struct reg *regs)
{
struct pcb *pcb;
diff --git a/sys/ia64/ia64/machdep.c b/sys/ia64/ia64/machdep.c
index 9fed902d1f40..1dfab47d2b8e 100644
--- a/sys/ia64/ia64/machdep.c
+++ b/sys/ia64/ia64/machdep.c
@@ -1255,6 +1255,14 @@ ptrace_single_step(struct thread *td)
}
int
+ptrace_clear_single_step(struct thread *td)
+{
+
+ td->td_frame->tf_special.psr &= ~IA64_PSR_SS;
+ return (0);
+}
+
+int
fill_regs(struct thread *td, struct reg *regs)
{
struct trapframe *tf;
diff --git a/sys/pc98/i386/machdep.c b/sys/pc98/i386/machdep.c
index 67e5f71f4f41..96576ee70863 100644
--- a/sys/pc98/i386/machdep.c
+++ b/sys/pc98/i386/machdep.c
@@ -2309,6 +2309,13 @@ ptrace_single_step(struct thread *td)
}
int
+ptrace_clear_single_step(struct thread *td)
+{
+ td->td_frame->tf_eflags &= ~PSL_T;
+ return (0);
+}
+
+int
fill_regs(struct thread *td, struct reg *regs)
{
struct pcb *pcb;
diff --git a/sys/pc98/pc98/machdep.c b/sys/pc98/pc98/machdep.c
index 67e5f71f4f41..96576ee70863 100644
--- a/sys/pc98/pc98/machdep.c
+++ b/sys/pc98/pc98/machdep.c
@@ -2309,6 +2309,13 @@ ptrace_single_step(struct thread *td)
}
int
+ptrace_clear_single_step(struct thread *td)
+{
+ td->td_frame->tf_eflags &= ~PSL_T;
+ return (0);
+}
+
+int
fill_regs(struct thread *td, struct reg *regs)
{
struct pcb *pcb;
diff --git a/sys/powerpc/aim/machdep.c b/sys/powerpc/aim/machdep.c
index 051a12138fdd..4c3199e211b8 100644
--- a/sys/powerpc/aim/machdep.c
+++ b/sys/powerpc/aim/machdep.c
@@ -820,6 +820,14 @@ ptrace_single_step(struct thread *td)
return (ENOSYS);
}
+int
+ptrace_clear_single_step(struct thread *td)
+{
+
+ /* XXX: coming soon... */
+ return (ENOSYS);
+}
+
/*
* Initialise a struct pcpu.
*/
diff --git a/sys/powerpc/powerpc/machdep.c b/sys/powerpc/powerpc/machdep.c
index 051a12138fdd..4c3199e211b8 100644
--- a/sys/powerpc/powerpc/machdep.c
+++ b/sys/powerpc/powerpc/machdep.c
@@ -820,6 +820,14 @@ ptrace_single_step(struct thread *td)
return (ENOSYS);
}
+int
+ptrace_clear_single_step(struct thread *td)
+{
+
+ /* XXX: coming soon... */
+ return (ENOSYS);
+}
+
/*
* Initialise a struct pcpu.
*/
diff --git a/sys/sparc64/sparc64/machdep.c b/sys/sparc64/sparc64/machdep.c
index 1671af43824f..73e6aa346c7c 100644
--- a/sys/sparc64/sparc64/machdep.c
+++ b/sys/sparc64/sparc64/machdep.c
@@ -711,6 +711,13 @@ ptrace_single_step(struct thread *td)
return (0);
}
+int
+ptrace_clear_single_step(struct thread *td)
+{
+ /* TODO; */
+ return (0);
+}
+
void
exec_setregs(struct thread *td, u_long entry, u_long stack, u_long ps_strings)
{