vmotherboard::options

Struct BaseChipsetFoundation

Source
pub struct BaseChipsetFoundation<'a> {
    pub is_restoring: bool,
    pub untrusted_dma_memory: GuestMemory,
    pub trusted_vtl0_dma_memory: GuestMemory,
    pub power_event_handler: Arc<dyn PowerEventHandler>,
    pub debug_event_handler: Arc<dyn DebugEventHandler>,
    pub vmtime: &'a VmTimeSource,
    pub vmtime_unit: &'a UnitHandle,
    pub doorbell_registration: Option<Arc<dyn DoorbellRegistration>>,
}
Expand description

Foundational BaseChipset dependencies (read: not device-specific)

Fields§

§is_restoring: bool§untrusted_dma_memory: GuestMemory

Guest memory access for untrusted devices.

This should provide access only to memory that is also accessible by the host. This applies to most devices, where the guest does not expect that they are implemented by a paravisor.

If a device incorrectly uses this instead of trusted_vtl0_dma_memory, then it will likely see failures when accessing guest memory in confidential VM configurations. A malicious host could additionally use this conspire to observe trusted device interactions.

§trusted_vtl0_dma_memory: GuestMemory

Guest memory access for trusted devices.

This should provide access to all of VTL0 memory (but not VTL1 memory). This applies to devices that the guest expects to be implemented by a paravisor, such as security and firmware devices.

If a device incorrectly uses this instead of untrusted_dma_memory, then it will likely see failures when accessing guest memory in confidential VM configurations. If the device is under control of a malicious host in some way, this could also lead to the host observing encrypted memory.

§power_event_handler: Arc<dyn PowerEventHandler>§debug_event_handler: Arc<dyn DebugEventHandler>§vmtime: &'a VmTimeSource§vmtime_unit: &'a UnitHandle§doorbell_registration: Option<Arc<dyn DoorbellRegistration>>

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more