aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2008-01-30 07:30:51 -0500
committerIngo Molnar <mingo@elte.hu>2008-01-30 07:30:51 -0500
commit2a84b0d71973692b291f03a870c4d0d13f722d79 (patch)
tree0d7487317dc3bf901581ca7974a45adf4724ea95
parent227195d4a6185e81855f56ed9bc815cad9a39398 (diff)
powerpc: arch_has_single_step
This defines the new standard arch_has_single_step macro. It makes the existing set_single_step and clear_single_step entry points global, and renames them to the new standard names user_enable_single_step and user_disable_single_step, respectively. Signed-off-by: Roland McGrath <roland@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--arch/powerpc/kernel/ptrace.c12
-rw-r--r--include/asm-powerpc/ptrace.h7
2 files changed, 13 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index 3e17d154d0d4..b970d7971779 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -256,7 +256,7 @@ static int set_evrregs(struct task_struct *task, unsigned long *data)
256#endif /* CONFIG_SPE */ 256#endif /* CONFIG_SPE */
257 257
258 258
259static void set_single_step(struct task_struct *task) 259void user_enable_single_step(struct task_struct *task)
260{ 260{
261 struct pt_regs *regs = task->thread.regs; 261 struct pt_regs *regs = task->thread.regs;
262 262
@@ -271,7 +271,7 @@ static void set_single_step(struct task_struct *task)
271 set_tsk_thread_flag(task, TIF_SINGLESTEP); 271 set_tsk_thread_flag(task, TIF_SINGLESTEP);
272} 272}
273 273
274static void clear_single_step(struct task_struct *task) 274void user_disable_single_step(struct task_struct *task)
275{ 275{
276 struct pt_regs *regs = task->thread.regs; 276 struct pt_regs *regs = task->thread.regs;
277 277
@@ -313,7 +313,7 @@ static int ptrace_set_debugreg(struct task_struct *task, unsigned long addr,
313void ptrace_disable(struct task_struct *child) 313void ptrace_disable(struct task_struct *child)
314{ 314{
315 /* make sure the single step bit is not set. */ 315 /* make sure the single step bit is not set. */
316 clear_single_step(child); 316 user_disable_single_step(child);
317} 317}
318 318
319/* 319/*
@@ -456,7 +456,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
456 clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); 456 clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
457 child->exit_code = data; 457 child->exit_code = data;
458 /* make sure the single step bit is not set. */ 458 /* make sure the single step bit is not set. */
459 clear_single_step(child); 459 user_disable_single_step(child);
460 wake_up_process(child); 460 wake_up_process(child);
461 ret = 0; 461 ret = 0;
462 break; 462 break;
@@ -473,7 +473,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
473 break; 473 break;
474 child->exit_code = SIGKILL; 474 child->exit_code = SIGKILL;
475 /* make sure the single step bit is not set. */ 475 /* make sure the single step bit is not set. */
476 clear_single_step(child); 476 user_disable_single_step(child);
477 wake_up_process(child); 477 wake_up_process(child);
478 break; 478 break;
479 } 479 }
@@ -483,7 +483,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
483 if (!valid_signal(data)) 483 if (!valid_signal(data))
484 break; 484 break;
485 clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE); 485 clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
486 set_single_step(child); 486 user_enable_single_step(child);
487 child->exit_code = data; 487 child->exit_code = data;
488 /* give it a chance to run. */ 488 /* give it a chance to run. */
489 wake_up_process(child); 489 wake_up_process(child);
diff --git a/include/asm-powerpc/ptrace.h b/include/asm-powerpc/ptrace.h
index 13fccc5a4119..3063363f6799 100644
--- a/include/asm-powerpc/ptrace.h
+++ b/include/asm-powerpc/ptrace.h
@@ -119,6 +119,13 @@ do { \
119} while (0) 119} while (0)
120#endif /* __powerpc64__ */ 120#endif /* __powerpc64__ */
121 121
122/*
123 * These are defined as per linux/ptrace.h, which see.
124 */
125#define arch_has_single_step() (1)
126extern void user_enable_single_step(struct task_struct *);
127extern void user_disable_single_step(struct task_struct *);
128
122#endif /* __ASSEMBLY__ */ 129#endif /* __ASSEMBLY__ */
123 130
124#endif /* __KERNEL__ */ 131#endif /* __KERNEL__ */