pub struct IgvmLoader<R: VbsRegister + GuestArch> {Show 14 fields
accepted_ranges: RangeMap<u64, RangeInfo>,
relocatable_regions: RangeMap<u64, RelocationType>,
required_memory: Vec<RequiredMemory>,
page_table_region: Option<PageTableRegion>,
platform_header: IgvmPlatformHeader,
initialization_headers: Vec<IgvmInitializationHeader>,
directives: Vec<IgvmDirectiveHeader>,
page_data_directives: Vec<IgvmDirectiveHeader>,
vp_context: Option<Box<dyn VpContextBuilder<Register = R>>>,
max_vtl: Vtl,
parameter_areas: BTreeMap<(u64, u32), u32>,
isolation_type: LoaderIsolationType,
paravisor_present: bool,
imported_regions_config_page: Option<u64>,
}
Fields§
§accepted_ranges: RangeMap<u64, RangeInfo>
§relocatable_regions: RangeMap<u64, RelocationType>
§required_memory: Vec<RequiredMemory>
§page_table_region: Option<PageTableRegion>
§platform_header: IgvmPlatformHeader
§initialization_headers: Vec<IgvmInitializationHeader>
§directives: Vec<IgvmDirectiveHeader>
§page_data_directives: Vec<IgvmDirectiveHeader>
§vp_context: Option<Box<dyn VpContextBuilder<Register = R>>>
§max_vtl: Vtl
§parameter_areas: BTreeMap<(u64, u32), u32>
§isolation_type: LoaderIsolationType
§paravisor_present: bool
§imported_regions_config_page: Option<u64>
Implementations§
Source§impl<R: IgvmLoaderRegister + GuestArch + 'static> IgvmLoader<R>
impl<R: IgvmLoaderRegister + GuestArch + 'static> IgvmLoader<R>
pub fn new(with_paravisor: bool, isolation_type: LoaderIsolationType) -> Self
Sourcepub fn finalize(self, guest_svn: u32) -> Result<IgvmOutput>
pub fn finalize(self, guest_svn: u32) -> Result<IgvmOutput>
Finalize the loader state, returning an IGVM file.
Sourcefn accept_new_range(
&mut self,
page_base: u64,
page_count: u64,
tag: &str,
acceptance: BootPageAcceptance,
) -> Result<()>
fn accept_new_range( &mut self, page_base: u64, page_count: u64, tag: &str, acceptance: BootPageAcceptance, ) -> Result<()>
Accept a new page range with a given acceptance into the map of accepted ranges.
fn imported_regions(&self) -> Vec<ImportedRegionDescriptor>
Sourcepub fn arch(&self) -> GuestArchKind
pub fn arch(&self) -> GuestArchKind
The guest architecture used by this loader.
Sourcepub fn confidential_debug(&self) -> bool
pub fn confidential_debug(&self) -> bool
Returns true if this is an isolated guest with debug enabled, false otherwise.
pub fn loader(&mut self) -> IgvmVtlLoader<'_, R>
fn import_pages( &mut self, page_base: u64, page_count: u64, debug_tag: &str, acceptance: BootPageAcceptance, data: &[u8], ) -> Result<(), Error>
Auto Trait Implementations§
impl<R> Freeze for IgvmLoader<R>
impl<R> !RefUnwindSafe for IgvmLoader<R>
impl<R> !Send for IgvmLoader<R>
impl<R> !Sync for IgvmLoader<R>
impl<R> Unpin for IgvmLoader<R>
impl<R> !UnwindSafe for IgvmLoader<R>
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