Enum kvm::VcpuExit

source ·
pub enum VcpuExit {
Show 30 variants IoOut { port: u16, size: usize, data: [u8; 8], }, IoIn { port: u16, size: usize, }, MmioRead { address: u64, size: usize, }, MmioWrite { address: u64, size: usize, data: [u8; 8], }, IoapicEoi { vector: u8, }, HypervSynic { msr: u32, control: u64, evt_page: u64, msg_page: u64, }, HypervHcall { input: u64, params: [u64; 2], }, Unknown, Exception, Hypercall, Debug, Hlt, IrqWindowOpen, Shutdown, FailEntry { hardware_entry_failure_reason: u64, }, Intr, SetTpr, TprAccess, S390Sieic, S390Reset, Dcr, Nmi, InternalError, Osi, PaprHcall, S390Ucontrol, Watchdog, S390Tsch, Epr, SystemEvent(u32, u64),
}
Expand description

A reason why a VCPU exited. One of these returns every time Vcpu::run is called.

Variants§

§

IoOut

Fields

§port: u16
§size: usize
§data: [u8; 8]

An out port instruction was run on the given port with the given data.

§

IoIn

Fields

§port: u16
§size: usize

An in port instruction was run on the given port.

The date that the instruction receives should be set with set_data before Vcpu::run is called again.

§

MmioRead

Fields

§address: u64
§size: usize

A read instruction was run against the given MMIO address.

The date that the instruction receives should be set with set_data before Vcpu::run is called again.

§

MmioWrite

Fields

§address: u64
§size: usize
§data: [u8; 8]

A write instruction was run against the given MMIO address with the given data.

§

IoapicEoi

Fields

§vector: u8
§

HypervSynic

Fields

§msr: u32
§control: u64
§evt_page: u64
§msg_page: u64
§

HypervHcall

Fields

§input: u64
§params: [u64; 2]
§

Unknown

§

Exception

§

Hypercall

§

Debug

§

Hlt

§

IrqWindowOpen

§

Shutdown

§

FailEntry

Fields

§hardware_entry_failure_reason: u64
§

Intr

§

SetTpr

§

TprAccess

§

S390Sieic

§

S390Reset

§

Dcr

§

Nmi

§

InternalError

§

Osi

§

PaprHcall

§

S390Ucontrol

§

Watchdog

§

S390Tsch

§

Epr

§

SystemEvent(u32, u64)

The cpu triggered a system level event which is specified by the type field. The first field is the event type and the second field is flags. The possible event types are shutdown, reset, or crash. So far there are not any flags defined.

Trait Implementations§

source§

impl Debug for VcpuExit

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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.

source§

impl<T, U> Into<U> for Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.