xref: /DragonOS/kernel/src/driver/pci/test/mod.rs (revision fae6e9ade46a52976ad5d099643d51cc20876448)
1 use alloc::sync::Arc;
2 use system_error::SystemError;
3 
4 use self::{pt_device::TestDevice, pt_driver::TestDriver};
5 
6 use super::{
7     dev_id::PciDeviceID,
8     device::pci_device_manager,
9     driver::{pci_driver_manager, PciDriver},
10 };
11 
12 pub mod pt_device;
13 pub mod pt_driver;
14 
15 static mut TEST_DRIVER: Option<Arc<TestDriver>> = None;
16 static mut TEST_DEVICE: Option<Arc<TestDevice>> = None;
17 pub fn pt_init() -> Result<(), SystemError> {
18     let tdev = Arc::new(TestDevice::new());
19     let mut drv = TestDriver::new();
20     drv.add_dynid(PciDeviceID::dummpy())?;
21     let tdrv = Arc::new(drv);
22 
23     let _ = pci_device_manager().device_add(tdev.clone());
24     let _ = pci_driver_manager().register(tdrv.clone());
25     unsafe {
26         TEST_DEVICE = Some(tdev);
27         TEST_DRIVER = Some(tdrv);
28     }
29     Ok(())
30 }
31