pub struct VpRunner<'a> { /* private fields */ }Implementations§
Source§impl<'a> VpRunner<'a>
impl<'a> VpRunner<'a>
Sourcepub fn complete_exit(&mut self) -> Result<Exit<'_>, Error>
pub fn complete_exit(&mut self) -> Result<Exit<'_>, Error>
Completes the current exit without running the VP further.
This may generate more exits.
Sourcepub fn run(&mut self) -> Result<Exit<'_>, Error>
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.
Sourcepub fn check_or_request_interrupt_window(&mut self) -> bool
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.
Sourcepub fn interrupt_window_requested(&mut self) -> bool
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.
Sourcepub fn queue_extint_interrupt(&mut self, vector: u8) -> Result<(), Error>
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.