Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ptrace.h
Go to the documentation of this file.
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 #endif /* __KERNEL__ */
64 #endif /* __ASSEMBLY__ */
65 #endif /* _H8300_PTRACE_H */