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: &[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: &[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: &[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: &[IgvmDirectiveHeader], svn: u32, debug_enabled: bool, ) -> Result<Option<Measurement>>

Source§

fn igvm_revision() -> IgvmRevision

Implementors§