瀏覽代碼

microblaze: Add PT_ macros for special purpose regs

PT_ macros are used by gdb and strace uses them too.

Signed-off-by: Michal Simek <monstr@monstr.eu>
Michal Simek 15 年之前
父節點
當前提交
90974cb4cc
共有 1 個文件被更改,包括 14 次插入0 次删除
  1. 14 0
      arch/microblaze/include/asm/ptrace.h

+ 14 - 0
arch/microblaze/include/asm/ptrace.h

@@ -54,6 +54,7 @@ struct pt_regs {
 	int pt_mode;
 	int pt_mode;
 };
 };
 
 
+#ifdef __KERNEL__
 #define kernel_mode(regs)		((regs)->pt_mode)
 #define kernel_mode(regs)		((regs)->pt_mode)
 #define user_mode(regs)			(!kernel_mode(regs))
 #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 /* __ASSEMBLY__ */
 
 
 #endif /* _ASM_MICROBLAZE_PTRACE_H */
 #endif /* _ASM_MICROBLAZE_PTRACE_H */