hyperlight_common/mem/
mod.rs1#![allow(non_snake_case)]
18
19pub const PAGE_SHIFT: u64 = 12;
20pub const PAGE_SIZE: u64 = 1 << 12;
21pub const PAGE_SIZE_USIZE: usize = 1 << 12;
22
23use core::ffi::{c_char, c_void};
24
25#[repr(C)]
26pub struct HostFunctionDefinitions {
27 pub fbHostFunctionDetailsSize: u64,
28 pub fbHostFunctionDetails: *mut c_void,
29}
30
31#[repr(C)]
32pub struct HostException {
33 pub hostExceptionSize: u64,
34}
35
36#[repr(C)]
37pub struct GuestErrorData {
38 pub guestErrorSize: u64,
39 pub guestErrorBuffer: *mut c_void,
40}
41
42#[repr(u64)]
43#[derive(Debug, Copy, Clone, PartialEq, Eq)]
44pub enum RunMode {
45 None = 0,
46 Hypervisor = 1,
47 InProcessWindows = 2,
48 InProcessLinux = 3,
49 Invalid = 4,
50}
51
52#[repr(C)]
53pub struct InputData {
54 pub inputDataSize: u64,
55 pub inputDataBuffer: *mut c_void,
56}
57
58#[repr(C)]
59pub struct OutputData {
60 pub outputDataSize: u64,
61 pub outputDataBuffer: *mut c_void,
62}
63
64#[repr(C)]
65pub struct GuestHeapData {
66 pub guestHeapSize: u64,
67 pub guestHeapBuffer: *mut c_void,
68}
69
70#[repr(C)]
71pub struct GuestStackData {
72 pub minUserStackAddress: u64,
74 pub userStackAddress: u64,
76 pub kernelStackAddress: u64,
78 pub bootStackAddress: u64,
80}
81
82#[repr(C)]
83pub struct GuestPanicContextData {
84 pub guestPanicContextDataSize: u64,
85 pub guestPanicContextDataBuffer: *mut c_void,
86}
87
88#[repr(C)]
89pub struct HyperlightPEB {
90 pub security_cookie_seed: u64,
91 pub guest_function_dispatch_ptr: u64,
92 pub hostFunctionDefinitions: HostFunctionDefinitions,
93 pub hostException: HostException,
94 pub guestErrorData: GuestErrorData,
95 pub pCode: *mut c_char,
96 pub pOutb: *mut c_void,
97 pub pOutbContext: *mut c_void,
98 pub runMode: RunMode,
99 pub inputdata: InputData,
100 pub outputdata: OutputData,
101 pub guestPanicContextData: GuestPanicContextData,
102 pub guestheapData: GuestHeapData,
103 pub gueststackData: GuestStackData,
104}