1use crate::VirtioDevice;
7use guestmem::GuestMemory;
8use vm_resource::CanResolveTo;
9use vm_resource::kind::VirtioDeviceHandle;
10use vmcore::vm_task::VmTaskDriverSource;
11
12impl CanResolveTo<ResolvedVirtioDevice> for VirtioDeviceHandle {
13 type Input<'a> = VirtioResolveInput<'a>;
14}
15
16pub struct ResolvedVirtioDevice(pub Box<dyn VirtioDevice>);
18
19impl<T: 'static + VirtioDevice> From<T> for ResolvedVirtioDevice {
20 fn from(value: T) -> Self {
21 Self(Box::new(value))
22 }
23}
24
25pub struct VirtioResolveInput<'a> {
27 pub driver_source: &'a VmTaskDriverSource,
29 pub guest_memory: &'a GuestMemory,
31}