[patch 4/5] ppc64: Add definitions for new PTRACE calls

Anton Blanchard anton at samba.org
Sat Sep 10 16:01:10 EST 2005


- Add PTRACE_BRANCHSTEP. Like PTRACE_SINGLESTEP but takes an
  exception at every branch. This might be worth putting in
  include/linux/ptrace.h if other architectures are interested.

- Add PTRACE_GET_DEBUGREG/PTRACE_SET_DEBUGREG. The definition is
  as follows:

/*
 * Get or set a debug register. The first 16 are DABR registers and the
 * second 16 are IABR registers.
 */
#define PTRACE_GET_DEBUGREG    25
#define PTRACE_SET_DEBUGREG    26

  DABR == data breakpoint and IABR = instruction breakpoint in IBM
  speak. We could split out the IABR into 2 more ptrace calls but I
  figured there was no need and 16 DABR registers should be more
  than enough (POWER4/POWER5 have one).

- Add 2 new SIGTRAP si_codes: TRAP_HWBKPT and TRAP_BRANCH. I couldnt
  find any standards on either of these so I copied what ia64 is
  doing. Again this might be better placed in 
  include/asm-generic/siginfo.h

Signed-off-by: Anton Blanchard <anton at samba.org>
---

Index: build/include/asm-ppc/ptrace.h
===================================================================
--- build.orig/include/asm-ppc/ptrace.h	2005-09-10 14:26:25.000000000 +1000
+++ build/include/asm-ppc/ptrace.h	2005-09-10 14:27:49.000000000 +1000
@@ -142,4 +142,13 @@
 #define PTRACE_GETEVRREGS	20
 #define PTRACE_SETEVRREGS	21
 
+#define PTRACE_BRANCHSTEP	22
+
+/*
+ * Get or set a debug register. The first 16 are DABR registers and the
+ * second 16 are IABR registers.
+ */
+#define PTRACE_GET_DEBUGREG	25
+#define PTRACE_SET_DEBUGREG	26
+
 #endif
Index: build/include/asm-ppc64/ptrace.h
===================================================================
--- build.orig/include/asm-ppc64/ptrace.h	2005-09-10 14:28:44.000000000 +1000
+++ build/include/asm-ppc64/ptrace.h	2005-09-10 14:28:58.000000000 +1000
@@ -189,6 +189,15 @@
 #define PTRACE_SETEVRREGS       21
 #endif
 
+#define PTRACE_BRANCHSTEP	22
+
+/*
+ * Get or set a debug register. The first 16 are DABR registers and the
+ * second 16 are IABR registers.
+ */
+#define PTRACE_GET_DEBUGREG	25
+#define PTRACE_SET_DEBUGREG	26
+
 /* Additional PTRACE requests implemented on PowerPC. */
 #define PPC_PTRACE_GETREGS	0x99	/* Get GPRs 0 - 31 */
 #define PPC_PTRACE_SETREGS	0x98	/* Set GPRs 0 - 31 */
Index: build/include/asm-powerpc/siginfo.h
===================================================================
--- build.orig/include/asm-powerpc/siginfo.h	2005-09-10 13:29:48.000000000 +1000
+++ build/include/asm-powerpc/siginfo.h	2005-09-10 13:29:54.000000000 +1000
@@ -15,4 +15,12 @@
 
 #include <asm-generic/siginfo.h>
 
+/*
+ * SIGTRAP si_codes
+ */
+#define TRAP_BRANCH	(__SI_FAULT|3)	/* process taken branch trap */
+#define TRAP_HWBKPT	(__SI_FAULT|4)	/* hardware breakpoint or watchpoint */
+#undef NSIGTRAP
+#define NSIGTRAP	4
+
 #endif	/* _ASM_POWERPC_SIGINFO_H */

--




More information about the Linuxppc64-dev mailing list