hyperlight_common/
layout.rs1#[cfg_attr(target_arch = "x86", path = "arch/i686/layout.rs")]
18#[cfg_attr(
19 all(target_arch = "x86_64", not(feature = "i686-guest")),
20 path = "arch/amd64/layout.rs"
21)]
22#[cfg_attr(
23 all(target_arch = "x86_64", feature = "i686-guest"),
24 path = "arch/i686/layout.rs"
25)]
26#[cfg_attr(target_arch = "aarch64", path = "arch/aarch64/layout.rs")]
27mod arch;
28
29pub use arch::{MAX_GPA, MAX_GVA};
30#[cfg(any(
31 all(target_arch = "x86_64", not(feature = "i686-guest")),
32 target_arch = "aarch64"
33))]
34pub use arch::{SNAPSHOT_PT_GVA_MAX, SNAPSHOT_PT_GVA_MIN};
35
36pub const SCRATCH_TOP_SIZE_OFFSET: u64 = 0x08;
38pub const SCRATCH_TOP_ALLOCATOR_OFFSET: u64 = 0x10;
39pub const SCRATCH_TOP_SNAPSHOT_PT_GPA_BASE_OFFSET: u64 = 0x18;
40pub const SCRATCH_TOP_SNAPSHOT_GENERATION_OFFSET: u64 = 0x20;
41pub const SCRATCH_TOP_EXN_STACK_OFFSET: u64 = 0x30;
42
43#[cfg(feature = "guest-counter")]
50pub const SCRATCH_TOP_GUEST_COUNTER_OFFSET: u64 = 0x1008;
51
52pub fn scratch_base_gpa(size: usize) -> u64 {
53 (MAX_GPA - size + 1) as u64
54}
55pub fn scratch_base_gva(size: usize) -> u64 {
56 (MAX_GVA - size + 1) as u64
57}
58
59pub use arch::min_scratch_size;