#![forbid(unsafe_code)]
pub mod debug_rpc;
use inspect::Inspect;
use mesh::payload::Protobuf;
use std::sync::Arc;
#[derive(Debug, Clone, Eq, PartialEq, Protobuf, Inspect)]
#[inspect(tag = "halt_reason")]
pub enum HaltReason {
PowerOff,
Reset,
Hibernate,
DebugBreak {
#[inspect(rename = "failing_vp")]
vp: Option<u32>,
},
TripleFault {
#[inspect(rename = "failing_vp")]
vp: u32,
#[inspect(skip)]
registers: Option<Arc<virt::vp::Registers>>,
},
InvalidVmState {
#[inspect(rename = "failing_vp")]
vp: u32,
},
VpError {
#[inspect(rename = "failing_vp")]
vp: u32,
},
SingleStep {
#[inspect(rename = "failing_vp")]
vp: u32,
},
HwBreakpoint {
#[inspect(rename = "failing_vp")]
vp: u32,
#[inspect(skip)]
breakpoint: virt::x86::HardwareBreakpoint,
},
}