pub trait IgvmLoaderRegister: VbsRegister {
// Required methods
fn init(
with_paravisor: bool,
max_vtl: Vtl,
isolation: LoaderIsolationType,
) -> (IgvmPlatformHeader, Vec<IgvmInitializationHeader>, Box<dyn VpContextBuilder<Register = Self>>);
fn generate_measurement(
isolation: LoaderIsolationType,
initialization_headers: &[IgvmInitializationHeader],
directive_headers: &[IgvmDirectiveHeader],
svn: u32,
debug_enabled: bool,
) -> Result<Option<Measurement>>;
fn igvm_revision() -> IgvmRevision;
}Expand description
A trait to specialize behavior based on different register types for different architectures.
Required Methods§
Sourcefn init(
with_paravisor: bool,
max_vtl: Vtl,
isolation: LoaderIsolationType,
) -> (IgvmPlatformHeader, Vec<IgvmInitializationHeader>, Box<dyn VpContextBuilder<Register = Self>>)
fn init( with_paravisor: bool, max_vtl: Vtl, isolation: LoaderIsolationType, ) -> (IgvmPlatformHeader, Vec<IgvmInitializationHeader>, Box<dyn VpContextBuilder<Register = Self>>)
Perform arch specific initialization.
Sourcefn generate_measurement(
isolation: LoaderIsolationType,
initialization_headers: &[IgvmInitializationHeader],
directive_headers: &[IgvmDirectiveHeader],
svn: u32,
debug_enabled: bool,
) -> Result<Option<Measurement>>
fn generate_measurement( isolation: LoaderIsolationType, initialization_headers: &[IgvmInitializationHeader], directive_headers: &[IgvmDirectiveHeader], svn: u32, debug_enabled: bool, ) -> Result<Option<Measurement>>
Generate a measurement based on isolation type.
Sourcefn igvm_revision() -> IgvmRevision
fn igvm_revision() -> IgvmRevision
The IGVM file revision to use for the built igvm file.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.