// SPDX-License-Identifier: MPL-2.0 pub mod capability; pub mod common_cfg; pub mod device; pub mod driver; pub(super) mod msix; use alloc::sync::Arc; use aster_frame::bus::pci::PCI_BUS; use spin::Once; use self::driver::VirtioPciDriver; pub static VIRTIO_PCI_DRIVER: Once> = Once::new(); pub fn virtio_pci_init() { VIRTIO_PCI_DRIVER.call_once(|| Arc::new(VirtioPciDriver::new())); PCI_BUS .lock() .register_driver(VIRTIO_PCI_DRIVER.get().unwrap().clone()); }