(
&mut self,
device_cfg: &mut DeviceConfig,
)
| 4624 | } |
| 4625 | |
| 4626 | pub fn add_device( |
| 4627 | &mut self, |
| 4628 | device_cfg: &mut DeviceConfig, |
| 4629 | ) -> DeviceManagerResult<PciDeviceInfo> { |
| 4630 | self.validate_identifier(&device_cfg.pci_common.id)?; |
| 4631 | |
| 4632 | if device_cfg.pci_common.iommu && !self.is_iommu_segment(device_cfg.pci_common.pci_segment) |
| 4633 | { |
| 4634 | return Err(DeviceManagerError::InvalidIommuHotplug); |
| 4635 | } |
| 4636 | |
| 4637 | let (bdf, device_name) = self.add_passthrough_device(device_cfg)?; |
| 4638 | |
| 4639 | // Update the PCIU bitmap |
| 4640 | self.pci_segments[device_cfg.pci_common.pci_segment as usize].pci_devices_up |= |
| 4641 | 1 << bdf.device(); |
| 4642 | |
| 4643 | Ok(PciDeviceInfo { |
| 4644 | id: device_name, |
| 4645 | bdf, |
| 4646 | }) |
| 4647 | } |
| 4648 | |
| 4649 | pub fn add_user_device( |
| 4650 | &mut self, |
no test coverage detected