1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
pub const ARM_MAX_BREAKPOINTS: usize = 8;
pub const ARM_MAX_WATCHPOINTS: usize = 1;
#[repr(C)]
#[derive(Clone, Copy)]
pub struct NEON128 {
pub Low: u64,
pub High: i64,
}
#[repr(C)]
#[derive(Clone, Copy)]
pub union CONTEXT_FloatRegs {
pub Q: [NEON128; 16],
pub D: [u64; 32],
pub S: [u32; 32],
}
#[repr(C)]
#[derive(Clone, Copy)]
pub struct CONTEXT {
pub ContextFlags: u32,
pub R0: u32,
pub R1: u32,
pub R2: u32,
pub R3: u32,
pub R4: u32,
pub R5: u32,
pub R6: u32,
pub R7: u32,
pub R8: u32,
pub R9: u32,
pub R10: u32,
pub R11: u32,
pub R12: u32,
// Control registers
pub Sp: u32,
pub Lr: u32,
pub Pc: u32,
pub Cpsr: u32,
// Floating-point registers
pub Fpsrc: u32,
pub Padding: u32,
pub u: CONTEXT_FloatRegs,
// Debug registers
pub Bvr: [u32; ARM_MAX_BREAKPOINTS],
pub Bcr: [u32; ARM_MAX_BREAKPOINTS],
pub Wvr: [u32; ARM_MAX_WATCHPOINTS],
pub Wcr: [u32; ARM_MAX_WATCHPOINTS],
pub Padding2: [u32; 2],
}
pub const IMAGE_FILE_MACHINE_ARMNT: IMAGE_FILE_MACHINE = 0x01c4;
|