microblaze: Add PT_ macros for special purpose regs
authorMichal Simek <monstr@monstr.eu>
Mon, 28 Dec 2009 13:25:15 +0000 (14:25 +0100)
committerMichal Simek <monstr@monstr.eu>
Mon, 18 Jan 2010 15:35:39 +0000 (16:35 +0100)
PT_ macros are used by gdb and strace uses them too.

Signed-off-by: Michal Simek <monstr@monstr.eu>
arch/microblaze/include/asm/ptrace.h

index a917dc5..d74dbfb 100644 (file)
@@ -54,6 +54,7 @@ struct pt_regs {
        int pt_mode;
 };
 
        int pt_mode;
 };
 
+#ifdef __KERNEL__
 #define kernel_mode(regs)              ((regs)->pt_mode)
 #define user_mode(regs)                        (!kernel_mode(regs))
 
 #define kernel_mode(regs)              ((regs)->pt_mode)
 #define user_mode(regs)                        (!kernel_mode(regs))
 
@@ -62,6 +63,19 @@ struct pt_regs {
 
 void show_regs(struct pt_regs *);
 
 
 void show_regs(struct pt_regs *);
 
+#else /* __KERNEL__ */
+
+/* pt_regs offsets used by gdbserver etc in ptrace syscalls */
+#define PT_GPR(n)       ((n) * sizeof(microblaze_reg_t))
+#define PT_PC           (32 * sizeof(microblaze_reg_t))
+#define PT_MSR          (33 * sizeof(microblaze_reg_t))
+#define PT_EAR          (34 * sizeof(microblaze_reg_t))
+#define PT_ESR          (35 * sizeof(microblaze_reg_t))
+#define PT_FSR          (36 * sizeof(microblaze_reg_t))
+#define PT_KERNEL_MODE  (37 * sizeof(microblaze_reg_t))
+
+#endif /* __KERNEL */
+
 #endif /* __ASSEMBLY__ */
 
 #endif /* _ASM_MICROBLAZE_PTRACE_H */
 #endif /* __ASSEMBLY__ */
 
 #endif /* _ASM_MICROBLAZE_PTRACE_H */