Skip to main content

IgvmLoaderRegister

Trait IgvmLoaderRegister 

Source
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: &mut Vec<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§

Source

fn init( with_paravisor: bool, max_vtl: Vtl, isolation: LoaderIsolationType, ) -> (IgvmPlatformHeader, Vec<IgvmInitializationHeader>, Box<dyn VpContextBuilder<Register = Self>>)

Perform arch specific initialization.

Source

fn generate_measurement( isolation: LoaderIsolationType, initialization_headers: &[IgvmInitializationHeader], directive_headers: &mut Vec<IgvmDirectiveHeader>, svn: u32, debug_enabled: bool, ) -> Result<Option<Measurement>>

Generate a measurement based on isolation type.

Source

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.

Implementations on Foreign Types§

Source§

impl IgvmLoaderRegister for Aarch64Register

Source§

fn init( _with_paravisor: bool, _max_vtl: Vtl, _isolation: LoaderIsolationType, ) -> (IgvmPlatformHeader, Vec<IgvmInitializationHeader>, Box<dyn VpContextBuilder<Register = Self>>)

Source§

fn generate_measurement( _isolation: LoaderIsolationType, _initialization_headers: &[IgvmInitializationHeader], _directive_headers: &mut Vec<IgvmDirectiveHeader>, _svn: u32, _debug_enabled: bool, ) -> Result<Option<Measurement>>

Source§

fn igvm_revision() -> IgvmRevision

Source§

impl IgvmLoaderRegister for X86Register

Source§

fn init( with_paravisor: bool, max_vtl: Vtl, isolation: LoaderIsolationType, ) -> (IgvmPlatformHeader, Vec<IgvmInitializationHeader>, Box<dyn VpContextBuilder<Register = Self>>)

Source§

fn generate_measurement( isolation: LoaderIsolationType, initialization_headers: &[IgvmInitializationHeader], directive_headers: &mut Vec<IgvmDirectiveHeader>, svn: u32, debug_enabled: bool, ) -> Result<Option<Measurement>>

Source§

fn igvm_revision() -> IgvmRevision

Implementors§