Skip to content

Commit 534a1d3

Browse files
authored
Merge pull request #685 from bdbai/fix/win-arm32
Attempt to fix ARM32 Windows
2 parents b6ccbd9 + 9e23660 commit 534a1d3

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

src/windows_sys.rs

+4
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ pub struct CONTEXT {
245245
pub SegSs: u32,
246246
pub ExtendedRegisters: [u8; 512],
247247
}
248+
248249
pub type CONTEXT_FLAGS = u32;
249250
pub const CP_UTF8: u32 = 65001u32;
250251
pub type CREATE_TOOLHELP_SNAPSHOT_FLAGS = u32;
@@ -662,3 +663,6 @@ pub struct XSAVE_FORMAT {
662663
pub XmmRegisters: [M128A; 8],
663664
pub Reserved4: [u8; 224],
664665
}
666+
667+
#[cfg(target_arch = "arm")]
668+
include!("./windows_sys_arm32_shim.rs");

src/windows_sys_arm32_shim.rs

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

0 commit comments

Comments
 (0)