chipset_device_worker/lib.rs
1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4//! A worker that runs chipset devices in a separate process.
5
6// UNSAFETY: The guest_memory_proxy module implements GuestMemoryAccess which
7// requires unsafe code to work with raw pointers for reading/writing guest memory.
8#![expect(unsafe_code)]
9
10use mesh::MeshPayload;
11
12mod guestmem;
13mod protocol;
14mod proxy;
15pub mod resolver;
16pub mod worker;
17
18/// Trait for registering dynamic resolvers needed for remote chipset devices.
19pub trait RemoteDynamicResolvers: MeshPayload + Send + Sync + Clone + 'static {
20 /// Worker ID string for this remote chipset device worker.
21 const WORKER_ID_STR: &str;
22
23 #[allow(async_fn_in_trait)]
24 /// Register dynamic resolvers needed for remote chipset devices.
25 async fn register_remote_dynamic_resolvers(
26 self,
27 resolver: &mut vm_resource::ResourceResolver,
28 ) -> anyhow::Result<()>;
29}