1 #ifndef __ARMV7_H__
2 #define __ARMV7_H__
3 
4 /* the exception stack without VFP registers */
5 struct rt_hw_exp_stack
6 {
7     unsigned long r0;
8     unsigned long r1;
9     unsigned long r2;
10     unsigned long r3;
11     unsigned long r4;
12     unsigned long r5;
13     unsigned long r6;
14     unsigned long r7;
15     unsigned long r8;
16     unsigned long r9;
17     unsigned long r10;
18     unsigned long fp;
19     unsigned long ip;
20     unsigned long sp;
21     unsigned long lr;
22     unsigned long pc;
23     unsigned long cpsr;
24 };
25 
26 struct rt_hw_stack
27 {
28     unsigned long cpsr;
29     unsigned long r0;
30     unsigned long r1;
31     unsigned long r2;
32     unsigned long r3;
33     unsigned long r4;
34     unsigned long r5;
35     unsigned long r6;
36     unsigned long r7;
37     unsigned long r8;
38     unsigned long r9;
39     unsigned long r10;
40     unsigned long fp;
41     unsigned long ip;
42     unsigned long lr;
43     unsigned long pc;
44 };
45 
46 #define USERMODE    0x10
47 #define FIQMODE     0x11
48 #define IRQMODE     0x12
49 #define SVCMODE     0x13
50 #define MONITORMODE 0x16
51 #define ABORTMODE   0x17
52 #define HYPMODE     0x1b
53 #define UNDEFMODE   0x1b
54 #define MODEMASK    0x1f
55 #define NOINT       0xc0
56 
57 #define T_Bit       (1<<5)
58 #define F_Bit       (1<<6)
59 #define I_Bit       (1<<7)
60 #define A_Bit       (1<<8)
61 #define E_Bit       (1<<9)
62 #define J_Bit       (1<<24)
63 
64 #endif
65