i2c-eg20t : Fix the issue of Combined R/W transfer mode
[pandora-kernel.git] / arch / h8300 / include / asm / ptrace.h
1 #ifndef _H8300_PTRACE_H
2 #define _H8300_PTRACE_H
3
4 #ifndef __ASSEMBLY__
5
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
18
19 /* this struct defines the way the registers are stored on the
20    stack during a system call. */
21
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));
39
40 #define PTRACE_GETREGS            12
41 #define PTRACE_SETREGS            13
42
43 #ifdef __KERNEL__
44 #ifndef PS_S
45 #define PS_S  (0x10)
46 #endif
47
48 #if defined(__H8300H__)
49 #define H8300_REGS_NO 11
50 #endif
51 #if defined(__H8300S__)
52 #define H8300_REGS_NO 12
53 #endif
54
55 /* Find the stack offset for a register, relative to thread.esp0. */
56 #define PT_REG(reg)     ((long)&((struct pt_regs *)0)->reg)
57
58 #define arch_has_single_step()  (1)
59
60 #define user_mode(regs) (!((regs)->ccr & PS_S))
61 #define instruction_pointer(regs) ((regs)->pc)
62 #define profile_pc(regs) instruction_pointer(regs)
63 extern void show_regs(struct pt_regs *);
64 #endif /* __KERNEL__ */
65 #endif /* __ASSEMBLY__ */
66 #endif /* _H8300_PTRACE_H */