Skip to content

Commit 9e23660

Browse files
committed
Move win arm shim to a separate file
1 parent 41f921d commit 9e23660

File tree

2 files changed

+56
-58
lines changed

2 files changed

+56
-58
lines changed

src/windows_sys.rs

+3-58
Original file line numberDiff line numberDiff line change
@@ -246,64 +246,6 @@ pub struct CONTEXT {
246246
pub ExtendedRegisters: [u8; 512],
247247
}
248248

249-
cfg_if::cfg_if! {
250-
if #[cfg(target_arch = "arm")] {
251-
pub const ARM_MAX_BREAKPOINTS: usize = 8;
252-
pub const ARM_MAX_WATCHPOINTS: usize = 1;
253-
254-
#[repr(C)]
255-
#[derive(Clone, Copy)]
256-
pub struct NEON128 {
257-
pub Low: u64,
258-
pub High: i64,
259-
}
260-
261-
#[repr(C)]
262-
#[derive(Clone, Copy)]
263-
pub union CONTEXT_FloatRegs{
264-
pub Q: [NEON128; 16],
265-
pub D: [u64; 32],
266-
pub S: [u32; 32],
267-
}
268-
269-
#[repr(C)]
270-
#[derive(Clone, Copy)]
271-
pub struct CONTEXT {
272-
pub ContextFlags: u32,
273-
pub R0: u32,
274-
pub R1: u32,
275-
pub R2: u32,
276-
pub R3: u32,
277-
pub R4: u32,
278-
pub R5: u32,
279-
pub R6: u32,
280-
pub R7: u32,
281-
pub R8: u32,
282-
pub R9: u32,
283-
pub R10: u32,
284-
pub R11: u32,
285-
pub R12: u32,
286-
// Control registers
287-
pub Sp: u32,
288-
pub Lr: u32,
289-
pub Pc: u32,
290-
pub Cpsr: u32,
291-
// Floating-point registers
292-
pub Fpsrc: u32,
293-
pub Padding: u32,
294-
pub u: CONTEXT_FloatRegs,
295-
// Debug registers
296-
pub Bvr: [u32; ARM_MAX_BREAKPOINTS],
297-
pub Bcr: [u32; ARM_MAX_BREAKPOINTS],
298-
pub Wvr: [u32; ARM_MAX_WATCHPOINTS],
299-
pub Wcr: [u32; ARM_MAX_WATCHPOINTS],
300-
pub Padding2: [u32; 2],
301-
}
302-
303-
pub const IMAGE_FILE_MACHINE_ARMNT: IMAGE_FILE_MACHINE = 0x01c4;
304-
}
305-
}
306-
307249
pub type CONTEXT_FLAGS = u32;
308250
pub const CP_UTF8: u32 = 65001u32;
309251
pub type CREATE_TOOLHELP_SNAPSHOT_FLAGS = u32;
@@ -721,3 +663,6 @@ pub struct XSAVE_FORMAT {
721663
pub XmmRegisters: [M128A; 8],
722664
pub Reserved4: [u8; 224],
723665
}
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)