1#![expect(missing_docs)]
7#![forbid(unsafe_code)]
8
9use mesh::MeshPayload;
10use mesh::payload::Protobuf;
11use mesh_worker::WorkerId;
12use std::net::TcpListener;
13use vmm_core_defs::debug_rpc::DebugRequest;
14
15#[derive(MeshPayload)]
16pub struct DebuggerParameters<T> {
17 pub listener: T,
18 pub req_chan: mesh::Sender<DebugRequest>,
19 pub vp_count: u32,
20 pub target_arch: TargetArch,
21}
22
23#[derive(Debug, Copy, Clone, Protobuf)]
24pub enum TargetArch {
25 X86_64,
26 I8086,
27 Aarch64,
28}
29
30pub const DEBUGGER_WORKER: WorkerId<DebuggerParameters<TcpListener>> =
31 WorkerId::new("DebuggerWorker");
32
33#[cfg(any(windows, target_os = "linux"))]
34pub const DEBUGGER_VSOCK_WORKER: WorkerId<DebuggerParameters<vmsocket::VmListener>> =
35 WorkerId::new("DebuggerVsockWorker");