Struct PartitionUnit

Source
pub struct PartitionUnit { /* private fields */ }
Expand description

The control point for managing a partition unit.

Implementations§

Source§

impl PartitionUnit

Source

pub fn new( spawner: impl Spawn, builder: UnitBuilder<'_>, partition: impl VmPartition, params: PartitionUnitParams<'_>, ) -> Result<(Self, Vec<VpRunner>), Error>

Creates a new VM partition state unit.

The caller is responsible for launching a thread for each VP and running the VP using the returned VpRunners.

Source

pub fn unit_handle(&self) -> &UnitHandle

Gets the handle for the partition unit.

Source

pub async fn teardown(self) -> Sender<HaltReason>

Tears down the state unit, returning the client_notify_send sender passed to Self::new().

Source

pub async fn clear_halt(&mut self) -> bool

Clears the current halt reason from the partition, resuming the VPs if they are stopped.

Source

pub async fn temporarily_stop_vps(&mut self) -> StopGuard

Temporarily stops the VPs, returning a guard that will resume them when dropped.

Source

pub async fn set_initial_regs( &mut self, vtl: Vtl, state: Arc<InitialRegs>, ) -> Result<(), InitialRegError>

Sets the register state for the VPs for initial boot.

If the VM has been run before and has not been reset since it last ran, the target VTL will be scrubbed first so that the partition state is clean.

Source

pub async fn set_initial_page_visibility( &mut self, vis: Vec<(MemoryRange, PageVisibility)>, ) -> Result<(), InitialVisibilityError>

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.

§

impl<T> Instrument for T

§

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

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

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> IntoAny for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts into a Box<dyn Any>.
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.
§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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