summary refs log tree commit diff
path: root/x86_64
diff options
context:
space:
mode:
authorDaniel Verkamp <dverkamp@chromium.org>2018-09-24 13:15:29 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-10-01 11:30:03 -0700
commit28a671a95f4927eda528c355f558aab64c7d7cf2 (patch)
tree0a1d7f9c4a4f5b4f8ddc5bc59dcb55f63ba84a83 /x86_64
parentaee0ac2d67bb669fecfae56403bfd7352d2a4d0c (diff)
downloadcrosvm-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.rs6
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 {}