diff options
author | Daniel Verkamp <dverkamp@chromium.org> | 2018-09-24 13:15:29 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-10-01 11:30:03 -0700 |
commit | 28a671a95f4927eda528c355f558aab64c7d7cf2 (patch) | |
tree | 0a1d7f9c4a4f5b4f8ddc5bc59dcb55f63ba84a83 /x86_64 | |
parent | aee0ac2d67bb669fecfae56403bfd7352d2a4d0c (diff) | |
download | crosvm-28a671a95f4927eda528c355f558aab64c7d7cf2.tar crosvm-28a671a95f4927eda528c355f558aab64c7d7cf2.tar.gz crosvm-28a671a95f4927eda528c355f558aab64c7d7cf2.tar.bz2 crosvm-28a671a95f4927eda528c355f558aab64c7d7cf2.tar.lz crosvm-28a671a95f4927eda528c355f558aab64c7d7cf2.tar.xz crosvm-28a671a95f4927eda528c355f558aab64c7d7cf2.tar.zst crosvm-28a671a95f4927eda528c355f558aab64c7d7cf2.zip |
devices: pci: refactor config access mechanism
The current PciRoot is only workable for the legacy I/O port 0xCF8 access mechanism; factor out the config access mechanism part of PciRoot into PciConfigIo so that we can add a MMIO-based access mechanism for ARM. Change-Id: I87756b0ab31070d8717c76d419957bf5ea5d75ad Signed-off-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1241539 Reviewed-by: Dylan Reid <dgreid@chromium.org>
Diffstat (limited to 'x86_64')
-rw-r--r-- | x86_64/src/lib.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/x86_64/src/lib.rs b/x86_64/src/lib.rs index 0d494c0..e8650ec 100644 --- a/x86_64/src/lib.rs +++ b/x86_64/src/lib.rs @@ -70,7 +70,7 @@ use std::sync::{Arc, Mutex}; use arch::{RunnableLinuxVm, VirtioDeviceStub, VmComponents}; use bootparam::boot_params; use bootparam::E820_RAM; -use devices::PciInterruptPin; +use devices::{PciConfigIo, PciInterruptPin}; use sys_util::{EventFd, GuestAddress, GuestMemory}; use resources::{AddressRanges, SystemAllocator}; use kvm::*; @@ -280,7 +280,7 @@ impl arch::LinuxArch for X8664arch { &mut resources, &mut vm) .map_err(Error::CreatePciRoot)?; - let pci_bus = Arc::new(Mutex::new(pci)); + let pci_bus = Arc::new(Mutex::new(PciConfigIo::new(pci))); let exit_evt = EventFd::new().map_err(Error::CreateEventFd)?; let (io_bus, stdio_serial) = Self::setup_io_bus( @@ -429,7 +429,7 @@ impl X8664arch { /// /// * - `vm` the vm object /// * - `exit_evt` - the event fd object which should receive exit events - fn setup_io_bus(vm: &mut Vm, exit_evt: EventFd, pci: Option<Arc<Mutex<devices::PciRoot>>>) + fn setup_io_bus(vm: &mut Vm, exit_evt: EventFd, pci: Option<Arc<Mutex<devices::PciConfigIo>>>) -> Result<(devices::Bus, Arc<Mutex<devices::Serial>>)> { struct NoDevice; impl devices::BusDevice for NoDevice {} |