Linux v2.6.15-rc6
[pohmelfs.git] / include / asm-h8300 / ptrace.h
blobc2e05e4b512ec5a915ab98d0550cc50da54ba515
1 #ifndef _H8300_PTRACE_H
2 #define _H8300_PTRACE_H
4 #ifndef __ASSEMBLY__
6 #define PT_ER1 0
7 #define PT_ER2 1
8 #define PT_ER3 2
9 #define PT_ER4 3
10 #define PT_ER5 4
11 #define PT_ER6 5
12 #define PT_ER0 6
13 #define PT_ORIG_ER0 7
14 #define PT_CCR 8
15 #define PT_PC 9
16 #define PT_USP 10
17 #define PT_EXR 12
19 /* this struct defines the way the registers are stored on the
20 stack during a system call. */
22 struct pt_regs {
23 long retpc;
24 long er4;
25 long er5;
26 long er6;
27 long er3;
28 long er2;
29 long er1;
30 long orig_er0;
31 unsigned short ccr;
32 long er0;
33 long vector;
34 #if defined(CONFIG_CPU_H8S)
35 unsigned short exr;
36 #endif
37 unsigned long pc;
38 } __attribute__((aligned(2),packed));
40 #define PTRACE_GETREGS 12
41 #define PTRACE_SETREGS 13
43 #ifdef __KERNEL__
44 #ifndef PS_S
45 #define PS_S (0x10)
46 #endif
48 #if defined(__H8300H__)
49 #define H8300_REGS_NO 11
50 #endif
51 #if defined(__H8300S__)
52 #define H8300_REGS_NO 12
53 #endif
55 /* Find the stack offset for a register, relative to thread.esp0. */
56 #define PT_REG(reg) ((long)&((struct pt_regs *)0)->reg)
58 #define user_mode(regs) (!((regs)->ccr & PS_S))
59 #define instruction_pointer(regs) ((regs)->pc)
60 #define profile_pc(regs) instruction_pointer(regs)
61 extern void show_regs(struct pt_regs *);
62 #endif /* __KERNEL__ */
63 #endif /* __ASSEMBLY__ */
64 #endif /* _H8300_PTRACE_H */