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>>