summaryrefslogtreecommitdiff
path: root/vendor/backtrace/src/windows_sys_arm32_shim.rs
blob: 4df9064c99f3349117bcd9802d252138cf35cbb1 (plain)
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;