use axvm_types::{AccessWidth, GuestPhysAddr};
use crate::StopReason;
#[derive(Debug)]
pub(crate) struct VcpuRunAction {
pub(crate) waits_for_event: bool,
pub(crate) stop_reason: Option<StopReason>,
}
#[derive(Debug)]
pub(crate) enum BoundVcpuExit<D> {
Continue,
Complete(VcpuRunAction),
Defer(D),
}
#[derive(Clone, Copy, Debug)]
pub(crate) struct MmioReadExit {
pub(crate) addr: GuestPhysAddr,
pub(crate) width: AccessWidth,
pub(crate) reg: usize,
pub(crate) reg_width: AccessWidth,
pub(crate) signed_ext: bool,
}
#[derive(Clone, Copy, Debug)]
pub(crate) struct MmioWriteExit {
pub(crate) addr: GuestPhysAddr,
pub(crate) width: AccessWidth,
pub(crate) data: u64,
}
#[derive(Clone, Copy, Debug)]
pub(crate) struct HypercallExit {
pub(crate) nr: u64,
pub(crate) args: [u64; 6],
}