hvlite_defs/
worker.rs

1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4//! Mesh worker definitions for the VM worker.
5
6use crate::config::Config;
7use crate::config::Hypervisor;
8use crate::rpc::VmRpc;
9use mesh::MeshPayload;
10use mesh::payload::message::ProtobufMessage;
11use mesh_worker::WorkerId;
12use vmm_core_defs::HaltReason;
13
14pub const VM_WORKER: WorkerId<VmWorkerParameters> = WorkerId::new("VmWorker");
15
16/// Launch parameters for the VM worker.
17#[derive(MeshPayload)]
18pub struct VmWorkerParameters {
19    /// The hypervisor to use.
20    pub hypervisor: Option<Hypervisor>,
21    /// The initial configuration.
22    pub cfg: Config,
23    /// The saved state.
24    pub saved_state: Option<ProtobufMessage>,
25    /// The VM RPC channel.
26    pub rpc: mesh::Receiver<VmRpc>,
27    /// The notification channel.
28    pub notify: mesh::Sender<HaltReason>,
29}