Skip to main content

chipset_legacy/piix4_uhci/
resolver.rs

1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4//! Resolver for the PIIX4 USB UHCI stub device.
5
6use super::Piix4UsbUhciStub;
7use chipset_device_resources::ResolveChipsetDeviceHandleParams;
8use chipset_device_resources::ResolvedChipsetDevice;
9use chipset_resources::piix4_uhci::Piix4PciUsbUhciStubDeviceHandle;
10use std::convert::Infallible;
11use vm_resource::ResolveResource;
12use vm_resource::declare_static_resolver;
13use vm_resource::kind::ChipsetDeviceHandleKind;
14
15/// A resolver for the PIIX4 USB UHCI stub device.
16pub struct Piix4PciUsbUhciStubResolver;
17
18declare_static_resolver! {
19    Piix4PciUsbUhciStubResolver,
20    (ChipsetDeviceHandleKind, Piix4PciUsbUhciStubDeviceHandle),
21}
22
23impl ResolveResource<ChipsetDeviceHandleKind, Piix4PciUsbUhciStubDeviceHandle>
24    for Piix4PciUsbUhciStubResolver
25{
26    type Output = ResolvedChipsetDevice;
27    type Error = Infallible;
28
29    fn resolve(
30        &self,
31        _resource: Piix4PciUsbUhciStubDeviceHandle,
32        _input: ResolveChipsetDeviceHandleParams<'_>,
33    ) -> Result<Self::Output, Self::Error> {
34        Ok(Piix4UsbUhciStub::new().into())
35    }
36}