1#![expect(missing_docs)]
7#![forbid(unsafe_code)]
8
9pub mod debug_rpc;
10
11use inspect::Inspect;
12use mesh::payload::Protobuf;
13use std::sync::Arc;
14
15#[derive(Debug, Clone, Eq, PartialEq, Protobuf, Inspect)]
17#[inspect(tag = "halt_reason")]
18pub enum HaltReason {
19 PowerOff,
20 Reset,
21 Hibernate,
22 DebugBreak {
23 #[inspect(rename = "failing_vp")]
24 vp: Option<u32>,
25 },
26 TripleFault {
27 #[inspect(rename = "failing_vp")]
28 vp: u32,
29 #[inspect(skip)]
30 registers: Option<Arc<virt::vp::Registers>>,
32 },
33 InvalidVmState {
34 #[inspect(rename = "failing_vp")]
35 vp: u32,
36 },
37 VpError {
38 #[inspect(rename = "failing_vp")]
39 vp: u32,
40 },
41 SingleStep {
42 #[inspect(rename = "failing_vp")]
43 vp: u32,
44 },
45 HwBreakpoint {
46 #[inspect(rename = "failing_vp")]
47 vp: u32,
48 #[inspect(skip)]
49 breakpoint: virt::x86::HardwareBreakpoint,
50 },
51}