hyperlight_guest/
layout.rs1#[cfg_attr(target_arch = "x86_64", path = "arch/amd64/layout.rs")]
18#[cfg_attr(target_arch = "x86", path = "arch/i686/layout.rs")]
19#[cfg_attr(target_arch = "aarch64", path = "arch/aarch64/layout.rs")]
20mod arch;
21
22pub use arch::{MAIN_STACK_LIMIT_GVA, MAIN_STACK_TOP_GVA};
23pub fn scratch_size_gva() -> *mut u64 {
24 use hyperlight_common::layout::{MAX_GVA, SCRATCH_TOP_SIZE_OFFSET};
25 (MAX_GVA as u64 - SCRATCH_TOP_SIZE_OFFSET + 1) as *mut u64
26}
27pub fn allocator_gva() -> *mut u64 {
28 use hyperlight_common::layout::{MAX_GVA, SCRATCH_TOP_ALLOCATOR_OFFSET};
29 (MAX_GVA as u64 - SCRATCH_TOP_ALLOCATOR_OFFSET + 1) as *mut u64
30}
31pub fn snapshot_pt_gpa_base_gva() -> *mut u64 {
32 use hyperlight_common::layout::{MAX_GVA, SCRATCH_TOP_SNAPSHOT_PT_GPA_BASE_OFFSET};
33 (MAX_GVA as u64 - SCRATCH_TOP_SNAPSHOT_PT_GPA_BASE_OFFSET + 1) as *mut u64
34}
35pub fn snapshot_generation_gva() -> *mut u64 {
36 use hyperlight_common::layout::{MAX_GVA, SCRATCH_TOP_SNAPSHOT_GENERATION_OFFSET};
37 (MAX_GVA as u64 - SCRATCH_TOP_SNAPSHOT_GENERATION_OFFSET + 1) as *mut u64
38}
39pub use arch::{scratch_base_gpa, scratch_base_gva};
40
41#[cfg(feature = "guest-counter")]
43pub fn guest_counter_gva() -> *const u64 {
44 use hyperlight_common::layout::{MAX_GVA, SCRATCH_TOP_GUEST_COUNTER_OFFSET};
45 (MAX_GVA as u64 - SCRATCH_TOP_GUEST_COUNTER_OFFSET + 1) as *const u64
46}