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