diff options
author | Renzo Davoli <renzo@cs.unibo.it> | 2006-05-21 14:06:58 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-06-09 07:20:51 -0400 |
commit | 98a90c02792f22afd8161f96fc9b9f0f0eb0880e (patch) | |
tree | df721c929ab40ab986793369ece2eed6029e3227 | |
parent | c029cc66cb3d83f70c02e0c182f0eed1419f8020 (diff) |
[PATCH] powerpc: enable PPC_PTRACE_[GS]ETREGS on ppc32
I have tested PPC_PTRACE_GETREGS and PPC_PTRACE_SETREGS on umview.
I do not understand why historically these tags has been defined as
PPC_PTRACE_GETREGS and PPC_PTRACE_SETREGS instead of simply
PTRACE_[GS]ETREGS. The other "originality" is that the address must be
put into the "addr" field instead of the "data" field as stated in the
manual.
Signed-off-by: renzo davoli <renzo@cs.unibo.it>
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r-- | arch/powerpc/kernel/ptrace.c | 2 | ||||
-rw-r--r-- | include/asm-powerpc/ptrace.h | 2 |
2 files changed, 1 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c index 4a677d1bd4ef..5563e2e7d89c 100644 --- a/arch/powerpc/kernel/ptrace.c +++ b/arch/powerpc/kernel/ptrace.c | |||
@@ -404,7 +404,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
404 | ret = ptrace_detach(child, data); | 404 | ret = ptrace_detach(child, data); |
405 | break; | 405 | break; |
406 | 406 | ||
407 | #ifdef CONFIG_PPC64 | ||
408 | case PPC_PTRACE_GETREGS: { /* Get GPRs 0 - 31. */ | 407 | case PPC_PTRACE_GETREGS: { /* Get GPRs 0 - 31. */ |
409 | int i; | 408 | int i; |
410 | unsigned long *reg = &((unsigned long *)child->thread.regs)[0]; | 409 | unsigned long *reg = &((unsigned long *)child->thread.regs)[0]; |
@@ -468,7 +467,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
468 | } | 467 | } |
469 | break; | 468 | break; |
470 | } | 469 | } |
471 | #endif /* CONFIG_PPC64 */ | ||
472 | 470 | ||
473 | #ifdef CONFIG_ALTIVEC | 471 | #ifdef CONFIG_ALTIVEC |
474 | case PTRACE_GETVRREGS: | 472 | case PTRACE_GETVRREGS: |
diff --git a/include/asm-powerpc/ptrace.h b/include/asm-powerpc/ptrace.h index 9c550b314823..dc4cb9cc73a1 100644 --- a/include/asm-powerpc/ptrace.h +++ b/include/asm-powerpc/ptrace.h | |||
@@ -229,13 +229,13 @@ do { \ | |||
229 | #define PTRACE_GET_DEBUGREG 25 | 229 | #define PTRACE_GET_DEBUGREG 25 |
230 | #define PTRACE_SET_DEBUGREG 26 | 230 | #define PTRACE_SET_DEBUGREG 26 |
231 | 231 | ||
232 | #ifdef __powerpc64__ | ||
233 | /* Additional PTRACE requests implemented on PowerPC. */ | 232 | /* Additional PTRACE requests implemented on PowerPC. */ |
234 | #define PPC_PTRACE_GETREGS 0x99 /* Get GPRs 0 - 31 */ | 233 | #define PPC_PTRACE_GETREGS 0x99 /* Get GPRs 0 - 31 */ |
235 | #define PPC_PTRACE_SETREGS 0x98 /* Set GPRs 0 - 31 */ | 234 | #define PPC_PTRACE_SETREGS 0x98 /* Set GPRs 0 - 31 */ |
236 | #define PPC_PTRACE_GETFPREGS 0x97 /* Get FPRs 0 - 31 */ | 235 | #define PPC_PTRACE_GETFPREGS 0x97 /* Get FPRs 0 - 31 */ |
237 | #define PPC_PTRACE_SETFPREGS 0x96 /* Set FPRs 0 - 31 */ | 236 | #define PPC_PTRACE_SETFPREGS 0x96 /* Set FPRs 0 - 31 */ |
238 | 237 | ||
238 | #ifdef __powerpc64__ | ||
239 | /* Calls to trace a 64bit program from a 32bit program */ | 239 | /* Calls to trace a 64bit program from a 32bit program */ |
240 | #define PPC_PTRACE_PEEKTEXT_3264 0x95 | 240 | #define PPC_PTRACE_PEEKTEXT_3264 0x95 |
241 | #define PPC_PTRACE_PEEKDATA_3264 0x94 | 241 | #define PPC_PTRACE_PEEKDATA_3264 0x94 |