Skip to main content

hermit/drivers/virtio/transport/
mod.rs

1#[cfg(not(feature = "pci"))]
2use mmio::{ComCfg, IsrStatus, NotifCfg};
3#[cfg(feature = "pci")]
4use pci::{ComCfg, IsrStatus, NotifCfg};
5
6#[cfg(not(feature = "pci"))]
7pub mod mmio;
8#[cfg(feature = "pci")]
9pub mod pci;
10
11pub(crate) enum InterruptCapability {
12	IsrStatus(IsrStatus),
13	#[cfg(all(feature = "pci", target_arch = "x86_64"))]
14	Msix(volatile::VolatileRef<'static, [crate::drivers::pci::msix::TableEntry]>),
15}
16
17/// Universal Caplist Collections holds all universal capability structures for
18/// a given Virtio device.
19pub struct UniCapsColl {
20	pub(crate) com_cfg: ComCfg,
21	pub(crate) notif_cfg: NotifCfg,
22	pub(crate) int_cap: InterruptCapability,
23}