#[repr(C)]pub struct TdxTrampolineContext {Show 29 fields
pub mailbox_command: u16,
pub mailbox_reserved: u16,
pub mailbox_apic_id: u32,
pub mailbox_wakeup_vector: u64,
pub padding_1: u32,
pub data_selector: u16,
pub static_gdt_limit: u16,
pub static_gdt_base: u32,
pub task_selector: u16,
pub idtr_limit: u16,
pub idtr_base: u64,
pub initial_rip: u64,
pub code_selector: u16,
pub padding_2: [u16; 2],
pub gdtr_limit: u16,
pub gdtr_base: u64,
pub rsp: u64,
pub rbp: u64,
pub rsi: u64,
pub r8: u64,
pub r9: u64,
pub r10: u64,
pub r11: u64,
pub cr0: u64,
pub cr3: u64,
pub cr4: u64,
pub transition_cr3: u32,
pub padding_3: u32,
pub static_gdt: [u8; 16],
}
Expand description
This structure describes the initial state of the TD VP. When a VP (both BSP and AP) starts at ResetVector (RV), this is loaded at the beginning of the RV page. Fields in the trampoline context must be loaded from memory by the trampoline code.
Note that this trampoline context must also be used for bringing up APs, as the code placed in the reset vector will use this format to figure out what register state to load.
Fields§
§mailbox_command: u16
Mailbox command
mailbox_reserved: u16
Reserved
mailbox_apic_id: u32
Mailbox APIC ID
mailbox_wakeup_vector: u64
AP wakeup vector
padding_1: u32
Padding
data_selector: u16
Data selector
static_gdt_limit: u16
Static GDT limit
static_gdt_base: u32
Static GDT base
task_selector: u16
Task selector
idtr_limit: u16
IDTR limit
idtr_base: u64
IDTR base
initial_rip: u64
Initial RIP
code_selector: u16
CS
padding_2: [u16; 2]
Padding
gdtr_limit: u16
GDTR limit
gdtr_base: u64
GDTR base
rsp: u64
RSP
rbp: u64
RBP
rsi: u64
RSI
r8: u64
R8
r9: u64
R9
r10: u64
R10
r11: u64
R11
cr0: u64
CR0
cr3: u64
CR3
cr4: u64
CR4
transition_cr3: u32
Transistion CR3
padding_3: u32
Padding
static_gdt: [u8; 16]
Statuc GDT
Trait Implementations§
Source§impl Clone for TdxTrampolineContext
impl Clone for TdxTrampolineContext
Source§fn clone(&self) -> TdxTrampolineContext
fn clone(&self) -> TdxTrampolineContext
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for TdxTrampolineContext
impl Debug for TdxTrampolineContext
Source§impl Default for TdxTrampolineContext
impl Default for TdxTrampolineContext
Source§fn default() -> TdxTrampolineContext
fn default() -> TdxTrampolineContext
Returns the “default value” for a type. Read more
Source§impl IntoBytes for TdxTrampolineContext
impl IntoBytes for TdxTrampolineContext
impl Copy for TdxTrampolineContext
impl Immutable for TdxTrampolineContext
Auto Trait Implementations§
impl Freeze for TdxTrampolineContext
impl RefUnwindSafe for TdxTrampolineContext
impl Send for TdxTrampolineContext
impl Sync for TdxTrampolineContext
impl Unpin for TdxTrampolineContext
impl UnwindSafe for TdxTrampolineContext
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more