Skip to main content

VpRunner

Struct VpRunner 

Source
pub struct VpRunner<'a> { /* private fields */ }

Implementations§

Source§

impl<'a> VpRunner<'a>

Source

pub fn complete_exit(&mut self) -> Result<Exit<'_>, Error>

Completes the current exit without running the VP further.

This may generate more exits.

Source

pub fn run(&mut self) -> Result<Exit<'_>, Error>

Continues running the VP.

Runs until an exit occurs or interrupted by a signal or a call to Processor::force_exit.

Source

pub fn check_or_request_interrupt_window(&mut self) -> bool

Request an exit when the interrupt window opens.

Returns true if the window is already open, in which case no request is registered, and any earlier request is withdrawn.

Source

pub fn interrupt_window_requested(&mut self) -> bool

Returns whether an exit is requested for when the interrupt window opens (see Self::check_or_request_interrupt_window).

The request stays registered until Self::run returns Exit::InterruptWindow, or until Self::check_or_request_interrupt_window finds the window open.

Source

pub fn queue_extint_interrupt(&mut self, vector: u8) -> Result<(), Error>

Queues an extint interrupt with KVM_INTERRUPT.

KVM delivers the interrupt once the guest can take it, exiting from a nested guest first if needed. But KVM has no way to report or withdraw a queued extint; KVM_GET_VCPU_EVENTS never exposes the queued vector.

Caller must ensure that either it has received a Exit::InterruptWindow exit, or that Self::check_or_request_interrupt_window has returned true.

Trait Implementations§

Source§

impl Drop for VpRunner<'_>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for VpRunner<'a>

§

impl<'a> !RefUnwindSafe for VpRunner<'a>

§

impl<'a> !Send for VpRunner<'a>

§

impl<'a> !Sync for VpRunner<'a>

§

impl<'a> Unpin for VpRunner<'a>

§

impl<'a> UnsafeUnpin for VpRunner<'a>

§

impl<'a> !UnwindSafe for VpRunner<'a>

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