5 #if defined(__cplusplus)
9 typedef enum _tag_ARMINTR_SHIFT_T
17 typedef enum _tag_ARMINTR_CPS_OP
19 _ARM_CPS_ENABLE_INTERRUPTS
= 1,
20 _ARM_CPS_DISABLE_INTERRUPTS
= 2,
21 _ARM_CPS_CHANGE_MODE
= 4
24 typedef enum _tag_ARMINTR_CPS_FLAG
26 _ARM_CPS_INTERRUPT_FLAG_F
= 1,
27 _ARM_CPS_INTERRUPT_FLAG_I
= 2,
28 _ARM_CPS_INTERRUPT_FLAG_A
= 4
31 typedef enum _tag_ARMINTR_BARRIER_TYPE
33 _ARM_BARRIER_SY
= 0xF,
34 _ARM_BARRIER_ST
= 0xE,
35 _ARM_BARRIER_ISH
= 0xB,
36 _ARM_BARRIER_ISHST
= 0xA,
37 _ARM_BARRIER_NSH
= 0x7,
38 _ARM_BARRIER_NSHST
= 0x6,
39 _ARM_BARRIER_OSH
= 0x3,
40 _ARM_BARRIER_OSHST
= 0x2
41 } _ARMINTR_BARRIER_TYPE
;
43 typedef enum _tag_ARMINTR_BANKED_REG
45 _ARM_BANKED_R8_USR
= 0x0,
46 _ARM_BANKED_R9_USR
= 0x1,
47 _ARM_BANKED_R10_USR
= 0x2,
48 _ARM_BANKED_R11_USR
= 0x3,
49 _ARM_BANKED_R12_USR
= 0x4,
50 _ARM_BANKED_R13_USR
= 0x5,
51 _ARM_BANKED_SP_USR
= 0x5,
52 _ARM_BANKED_R14_USR
= 0x6,
53 _ARM_BANKED_LR_USR
= 0x6,
54 _ARM_BANKED_R8_FIQ
= 0x8,
55 _ARM_BANKED_R9_FIQ
= 0x9,
56 _ARM_BANKED_R10_FIQ
= 0xA,
57 _ARM_BANKED_R11_FIQ
= 0xB,
58 _ARM_BANKED_R12_FIQ
= 0xC,
59 _ARM_BANKED_R13_FIQ
= 0xD,
60 _ARM_BANKED_SP_FIQ
= 0xD,
61 _ARM_BANKED_R14_FIQ
= 0xE,
62 _ARM_BANKED_LR_FIQ
= 0xE,
63 _ARM_BANKED_R14_IRQ
= 0x10,
64 _ARM_BANKED_LR_IRQ
= 0x10,
65 _ARM_BANKED_R13_IRQ
= 0x11,
66 _ARM_BANKED_SP_IRQ
= 0x11,
67 _ARM_BANKED_R14_SVC
= 0x12,
68 _ARM_BANKED_LR_SVC
= 0x12,
69 _ARM_BANKED_R13_SVC
= 0x13,
70 _ARM_BANKED_SP_SVC
= 0x13,
71 _ARM_BANKED_R14_ABT
= 0x14,
72 _ARM_BANKED_LR_ABT
= 0x14,
73 _ARM_BANKED_R13_ABT
= 0x15,
74 _ARM_BANKED_SP_ABT
= 0x15,
75 _ARM_BANKED_R14_UND
= 0x16,
76 _ARM_BANKED_LR_UND
= 0x16,
77 _ARM_BANKED_R13_UND
= 0x17,
78 _ARM_BANKED_SP_UND
= 0x17,
79 _ARM_BANKED_R14_MON
= 0x1C,
80 _ARM_BANKED_LR_MON
= 0x1C,
81 _ARM_BANKED_R13_MON
= 0x1D,
82 _ARM_BANKED_SP_MON
= 0x1D,
83 _ARM_BANKED_ELR_HYP
= 0x1E,
84 _ARM_BANKED_R13_HYP
= 0x1F,
85 _ARM_BANKED_SP_HYP
= 0x1F,
86 _ARM_BANKED_SPSR_FIQ
= 0x2E,
87 _ARM_BANKED_SPSR_IRQ
= 0x30,
88 _ARM_BANKED_SPSR_SVC
= 0x32,
89 _ARM_BANKED_SPSR_ABT
= 0x34,
90 _ARM_BANKED_SPSR_UND
= 0x36,
91 _ARM_BANKED_SPSR_MON
= 0x3C,
92 _ARM_BANKED_SPSR_HYP
= 0x3E
93 } _ARMINTR_BANKED_REG
;
95 void __dmb(unsigned int Type
);
96 void __dsb(unsigned int Type
);
97 void __isb(unsigned int Type
);
99 #pragma intrinsic(__dmb)
100 #pragma intrinsic(__dsb)
101 #pragma intrinsic(__isb)
104 #if defined(__cplusplus)