pub struct KvmPartition { /* private fields */ }
Trait Implementations§
Source§impl AccessVmState for &KvmPartition
impl AccessVmState for &KvmPartition
type Error = KvmError
Source§fn caps(&self) -> &PartitionCapabilities
fn caps(&self) -> &PartitionCapabilities
Gets the partition’s capabilities.
Source§fn commit(&mut self) -> Result<(), Self::Error>
fn commit(&mut self) -> Result<(), Self::Error>
Commits any state changes made with the
set_*
methods.Source§fn set_hypercall(&mut self, value: &HypercallMsrs) -> Result<(), Self::Error>
fn set_hypercall(&mut self, value: &HypercallMsrs) -> Result<(), Self::Error>
Sets the specified state.
Source§fn set_reftime(&mut self, _value: &ReferenceTime) -> Result<(), Self::Error>
fn set_reftime(&mut self, _value: &ReferenceTime) -> Result<(), Self::Error>
Sets the specified state.
Source§fn reference_tsc_page(&mut self) -> Result<ReferenceTscPage, Self::Error>
fn reference_tsc_page(&mut self) -> Result<ReferenceTscPage, Self::Error>
Gets the specified state.
Source§fn set_reference_tsc_page(
&mut self,
value: &ReferenceTscPage,
) -> Result<(), Self::Error>
fn set_reference_tsc_page( &mut self, value: &ReferenceTscPage, ) -> Result<(), Self::Error>
Sets the specified state.
Source§fn save_all(&mut self) -> Result<VmSavedState, StateError<Self::Error>>
fn save_all(&mut self) -> Result<VmSavedState, StateError<Self::Error>>
Save all state that can be restored by a call to restore.
Source§fn restore_all(
&mut self,
state: &VmSavedState,
) -> Result<(), StateError<Self::Error>>
fn restore_all( &mut self, state: &VmSavedState, ) -> Result<(), StateError<Self::Error>>
Restore state elements saved in save state.
Source§fn reset_all(
&mut self,
vp_info: &X86VpInfo,
) -> Result<(), StateError<Self::Error>>
fn reset_all( &mut self, vp_info: &X86VpInfo, ) -> Result<(), StateError<Self::Error>>
Resets all the state elements to their initial state (after machine reset).
Source§fn check_reset_all(&mut self, vp_info: &X86VpInfo)
fn check_reset_all(&mut self, vp_info: &X86VpInfo)
Validates that all state elements are in their initial state (after machine reset).
fn inspect_all(&mut self, req: Request<'_>)
Source§impl DoorbellRegistration for KvmPartition
impl DoorbellRegistration for KvmPartition
Source§impl Hv1 for KvmPartition
impl Hv1 for KvmPartition
type Error = KvmError
type Device = ApicSoftwareDevice
fn new_virtual_device( &self, ) -> Option<&dyn DeviceBuilder<Device = Self::Device, Error = Self::Error>>
Source§impl Partition for KvmPartition
impl Partition for KvmPartition
Source§fn supports_reset(&self) -> Option<&dyn ResetPartition<Error = Self::Error>>
fn supports_reset(&self) -> Option<&dyn ResetPartition<Error = Self::Error>>
Returns a trait object to reset the partition, if supported.
Source§fn doorbell_registration(
self: &Arc<Self>,
_minimum_vtl: Vtl,
) -> Option<Arc<dyn DoorbellRegistration>>
fn doorbell_registration( self: &Arc<Self>, _minimum_vtl: Vtl, ) -> Option<Arc<dyn DoorbellRegistration>>
Returns an interface for registering MMIO doorbells for this partition. Read more
Source§fn msi_interrupt_target(
self: &Arc<Self>,
_vtl: Vtl,
) -> Option<Arc<dyn MsiInterruptTarget>>
fn msi_interrupt_target( self: &Arc<Self>, _vtl: Vtl, ) -> Option<Arc<dyn MsiInterruptTarget>>
Returns an MSI interrupt target for this partition, which can be used to
create MSI interrupts. Read more
Source§fn caps(&self) -> &PartitionCapabilities
fn caps(&self) -> &PartitionCapabilities
Get the partition capabilities for this partition.
Source§fn request_yield(&self, vp_index: VpIndex)
fn request_yield(&self, vp_index: VpIndex)
Forces the run_vp call to yield to the scheduler (i.e. return
Poll::Pending).
Source§fn request_msi(&self, _vtl: Vtl, request: MsiRequest)
fn request_msi(&self, _vtl: Vtl, request: MsiRequest)
Requests an MSI for the specified VTL. Read more
Source§fn supports_initial_accept_pages(
&self,
) -> Option<&dyn AcceptInitialPages<Error = Self::Error>>
fn supports_initial_accept_pages( &self, ) -> Option<&dyn AcceptInitialPages<Error = Self::Error>>
Returns a trait object to accept pages on behalf of the guest during the
initial start import flow.
Source§impl PartitionAccessState for KvmPartition
impl PartitionAccessState for KvmPartition
type StateAccess<'a> = &'a KvmPartition
Source§fn access_state(&self, vtl: Vtl) -> Self::StateAccess<'_>
fn access_state(&self, vtl: Vtl) -> Self::StateAccess<'_>
Returns an object to access VM state for the specified VTL.
Source§impl PartitionMemoryMapper for KvmPartition
impl PartitionMemoryMapper for KvmPartition
Source§fn memory_mapper(&self, vtl: Vtl) -> Arc<dyn PartitionMemoryMap>
fn memory_mapper(&self, vtl: Vtl) -> Arc<dyn PartitionMemoryMap>
Returns a memory mapper for the partition backing
vtl
.Source§impl ResetPartition for KvmPartition
impl ResetPartition for KvmPartition
Source§impl Synic for KvmPartition
impl Synic for KvmPartition
Source§fn post_message(
&self,
_vtl: Vtl,
vp: VpIndex,
sint: u8,
typ: u32,
payload: &[u8],
)
fn post_message( &self, _vtl: Vtl, vp: VpIndex, sint: u8, typ: u32, payload: &[u8], )
Posts a message to the guest.
Source§fn new_guest_event_port(&self) -> Box<dyn GuestEventPort>
fn new_guest_event_port(&self) -> Box<dyn GuestEventPort>
Creates a [
GuestEventPort
] for signaling VMBus channels in the guest.Source§fn prefer_os_events(&self) -> bool
fn prefer_os_events(&self) -> bool
Returns whether callers should pass an OS event when creating event
ports, as opposed to passing a function to call. Read more
Source§fn new_host_event_port(
&self,
connection_id: u32,
minimum_vtl: Vtl,
event: &Event,
) -> Result<Option<Box<dyn Send + Sync>>, Error>
fn new_host_event_port( &self, connection_id: u32, minimum_vtl: Vtl, event: &Event, ) -> Result<Option<Box<dyn Send + Sync>>, Error>
Adds a fast path to signal
event
when the guest signals
connection_id
from VTL >= minimum_vtl
. Read moreSource§fn monitor_support(&self) -> Option<&dyn SynicMonitor>
fn monitor_support(&self) -> Option<&dyn SynicMonitor>
Returns an object for manipulating the monitor page, or None if monitor pages aren’t
supported.
Source§impl X86Partition for KvmPartition
impl X86Partition for KvmPartition
Source§fn ioapic_routing(&self) -> Arc<dyn IoApicRouting>
fn ioapic_routing(&self) -> Arc<dyn IoApicRouting>
Gets the IO-APIC routing control for VTL0.
Source§fn pulse_lint(&self, vp_index: VpIndex, _vtl: Vtl, lint: u8)
fn pulse_lint(&self, vp_index: VpIndex, _vtl: Vtl, lint: u8)
Pulses the specified APIC’s local interrupt line (0 or 1).
Auto Trait Implementations§
impl Freeze for KvmPartition
impl !RefUnwindSafe for KvmPartition
impl Send for KvmPartition
impl Sync for KvmPartition
impl Unpin for KvmPartition
impl !UnwindSafe for KvmPartition
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self
, then passes self.deref()
into the pipe function.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref()
only in debug builds, and is erased in release
builds.