]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-powerpc/ptrace.h
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
[linux-2.6-omap-h63xx.git] / include / asm-powerpc / ptrace.h
index 13fccc5a41197e96f1e1f8e4163df90583d2b0b9..39023dde1cc4c869ed9d7f4ed9b8baa623206ad7 100644 (file)
@@ -55,7 +55,14 @@ struct pt_regs {
 
 #ifdef __powerpc64__
 
+#define __ARCH_WANT_COMPAT_SYS_PTRACE
+
 #define STACK_FRAME_OVERHEAD   112     /* size of minimum stack frame */
+#define STACK_FRAME_LR_SAVE    2       /* Location of LR in stack frame */
+#define STACK_FRAME_REGS_MARKER        ASM_CONST(0x7265677368657265)
+#define STACK_INT_FRAME_SIZE   (sizeof(struct pt_regs) + \
+                                       STACK_FRAME_OVERHEAD + 288)
+#define STACK_FRAME_MARKER     12
 
 /* Size of dummy stack frame allocated when calling signal handler. */
 #define __SIGNAL_FRAMESIZE     128
@@ -64,6 +71,10 @@ struct pt_regs {
 #else /* __powerpc64__ */
 
 #define STACK_FRAME_OVERHEAD   16      /* size of minimum stack frame */
+#define STACK_FRAME_LR_SAVE    1       /* Location of LR in stack frame */
+#define STACK_FRAME_REGS_MARKER        ASM_CONST(0x72656773)
+#define STACK_INT_FRAME_SIZE   (sizeof(struct pt_regs) + STACK_FRAME_OVERHEAD)
+#define STACK_FRAME_MARKER     2
 
 /* Size of stack frame allocated when calling signal handler. */
 #define __SIGNAL_FRAMESIZE     64
@@ -106,7 +117,8 @@ extern int ptrace_put_reg(struct task_struct *task, int regno,
  */
 #define FULL_REGS(regs)                (((regs)->trap & 1) == 0)
 #ifndef __powerpc64__
-#define IS_CRITICAL_EXC(regs)  (((regs)->trap & 2) == 0)
+#define IS_CRITICAL_EXC(regs)  (((regs)->trap & 2) != 0)
+#define IS_MCHECK_EXC(regs)    (((regs)->trap & 4) != 0)
 #endif /* ! __powerpc64__ */
 #define TRAP(regs)             ((regs)->trap & ~0xF)
 #ifdef __powerpc64__
@@ -119,6 +131,13 @@ do {                                                                             \
 } while (0)
 #endif /* __powerpc64__ */
 
+/*
+ * These are defined as per linux/ptrace.h, which see.
+ */
+#define arch_has_single_step() (1)
+extern void user_enable_single_step(struct task_struct *);
+extern void user_disable_single_step(struct task_struct *);
+
 #endif /* __ASSEMBLY__ */
 
 #endif /* __KERNEL__ */