From 2f4de811758aaf33cee0a8355d9cea712bd0f384 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Wed, 4 Sep 2019 15:20:09 +0100 Subject: [PATCH] vmm: Access ioapic/io_bus/mmio_bus from DeviceManager via accessor This paves the way for introducing a trait for the DeviceManager. Signed-off-by: Rob Bradford --- vmm/src/device_manager.rs | 18 +++++++++++++++--- vmm/src/vm.rs | 6 +++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/vmm/src/device_manager.rs b/vmm/src/device_manager.rs index 83371592a..737b69fd4 100644 --- a/vmm/src/device_manager.rs +++ b/vmm/src/device_manager.rs @@ -210,8 +210,8 @@ pub fn get_win_size() -> (u16, u16) { } pub struct DeviceManager { - pub io_bus: devices::Bus, - pub mmio_bus: devices::Bus, + io_bus: devices::Bus, + mmio_bus: devices::Bus, // Serial port on 0x3f8 pub serial: Option>>, @@ -229,7 +229,7 @@ pub struct DeviceManager { pub reset_evt: EventFd, // IOAPIC - pub ioapic: Option>>, + ioapic: Option>>, // PCI root pci: Arc>, @@ -943,6 +943,18 @@ impl DeviceManager { Ok(()) } + + pub fn io_bus(&self) -> &devices::Bus{ + &self.io_bus + } + + pub fn mmio_bus(&self) ->&devices::Bus { + &self.mmio_bus + } + + pub fn ioapic(&self) -> &Option>> { + &self.ioapic + } } impl Drop for DeviceManager { diff --git a/vmm/src/vm.rs b/vmm/src/vm.rs index bf89a24fd..198da4ab4 100755 --- a/vmm/src/vm.rs +++ b/vmm/src/vm.rs @@ -956,9 +956,9 @@ impl<'a> Vm<'a> { let vcpu_thread_barrier = Arc::new(Barrier::new((vcpu_count + 1) as usize)); for cpu_id in 0..vcpu_count { - let io_bus = self.devices.io_bus.clone(); - let mmio_bus = self.devices.mmio_bus.clone(); - let ioapic = if let Some(ioapic) = &self.devices.ioapic { + let io_bus = self.devices.io_bus().clone(); + let mmio_bus = self.devices.mmio_bus().clone(); + let ioapic = if let Some(ioapic) = &self.devices.ioapic() { Some(ioapic.clone()) } else { None