Skip to main content

chipset/dma/
resolver.rs

1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4//! Resource resolver for the ISA DMA chipset device.
5
6use super::DmaController;
7use super::ResolvedIsaDmaController;
8use chipset_resources::isa_dma::GenericIsaDmaDeviceHandle;
9use std::convert::Infallible;
10use vm_resource::ResolveResource;
11use vm_resource::declare_static_resolver;
12use vm_resource::kind::IsaDmaControllerHandleKind;
13
14/// A resolver for the ISA DMA chipset device.
15pub struct GenericIsaDmaResolver;
16
17declare_static_resolver! {
18    GenericIsaDmaResolver,
19    (IsaDmaControllerHandleKind, GenericIsaDmaDeviceHandle),
20}
21
22impl ResolveResource<IsaDmaControllerHandleKind, GenericIsaDmaDeviceHandle>
23    for GenericIsaDmaResolver
24{
25    type Output = ResolvedIsaDmaController;
26    type Error = Infallible;
27
28    fn resolve(
29        &self,
30        _resource: GenericIsaDmaDeviceHandle,
31        _input: (),
32    ) -> Result<Self::Output, Self::Error> {
33        Ok(ResolvedIsaDmaController(DmaController::new()))
34    }
35}