MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / create_pci_device

Function create_pci_device

crates/openshell-vfio/src/test_support.rs:16–39  ·  view source on GitHub ↗
(
    sysfs: &SysfsRoot,
    tmp: &Path,
    bdf: &str,
    vendor: &str,
    device: &str,
    class: &str,
    iommu_group: u32,
)

Source from the content-addressed store, hash-verified

14}
15
16pub fn create_pci_device(
17 sysfs: &SysfsRoot,
18 tmp: &Path,
19 bdf: &str,
20 vendor: &str,
21 device: &str,
22 class: &str,
23 iommu_group: u32,
24) {
25 let dev = sysfs.pci_device(bdf);
26 fs::create_dir_all(&dev).unwrap();
27
28 fs::write(dev.join("vendor"), format!("{vendor}\n")).unwrap();
29 fs::write(dev.join("device"), format!("{device}\n")).unwrap();
30 fs::write(dev.join("class"), format!("{class}\n")).unwrap();
31
32 let group_dir = tmp.join(format!("kernel/iommu_groups/{iommu_group}"));
33 fs::create_dir_all(&group_dir).unwrap();
34 symlink(&group_dir, dev.join("iommu_group")).unwrap();
35
36 let group_devices_dir = group_dir.join("devices");
37 fs::create_dir_all(&group_devices_dir).unwrap();
38 symlink(&dev, group_devices_dir.join(bdf)).unwrap();
39}
40
41/// Helper to create a fake driver symlink for a mock PCI device.
42pub fn set_mock_driver(sysfs: &SysfsRoot, bdf: &str, driver_name: &str) {

Calls 1

pci_deviceMethod · 0.80

Tested by

no test coverage detected