summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorGurchetan Singh <gurchetansingh@chromium.org>2020-05-21 18:05:06 -0700
committerCommit Bot <commit-bot@chromium.org>2020-06-12 05:00:37 +0000
commit173fe62df2b82f4d09a36066200f0a1727bd1d22 (patch)
treec3c0588afebd0b43811b3631c1d94168ba72c420 /src
parent4ffb3d06bdadcfcb79ee2b7bf445ac09da34c218 (diff)
downloadcrosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.tar
crosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.tar.gz
crosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.tar.bz2
crosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.tar.lz
crosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.tar.xz
crosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.tar.zst
crosvm-173fe62df2b82f4d09a36066200f0a1727bd1d22.zip
kvm: use MappedRegion trait
- Reduces code duplication between MMIO and mmap arenas
- Makes adding future types easier
- Makes upcoming deprecation of kvm crate easier
- Use BTreeMap instead of HashMap since it's more efficient

BUG=chromium:924405
TEST=compile and test

Change-Id: I520abed0926489e64aac046e0dc0cfeb72fae7b2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2216446
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Steven Richman <srichman@google.com>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Gurchetan Singh <gurchetansingh@chromium.org>
Diffstat (limited to 'src')
-rw-r--r--src/linux.rs4
-rw-r--r--src/plugin/mod.rs2
-rw-r--r--src/plugin/process.rs3
3 files changed, 5 insertions, 4 deletions
diff --git a/src/linux.rs b/src/linux.rs
index fb463c2..687aae4 100644
--- a/src/linux.rs
+++ b/src/linux.rs
@@ -1012,9 +1012,9 @@ fn create_pmem_device(
         .map_err(Error::AllocatePmemDeviceAddress)?;
 
     let slot = vm
-        .add_mmap_arena(
+        .add_memory_region(
             GuestAddress(mapping_address),
-            arena,
+            Box::new(arena),
             /* read_only = */ disk.read_only,
             /* log_dirty_pages = */ false,
         )
diff --git a/src/plugin/mod.rs b/src/plugin/mod.rs
index 470d5f0..28a43f7 100644
--- a/src/plugin/mod.rs
+++ b/src/plugin/mod.rs
@@ -384,7 +384,7 @@ impl PluginObject {
                 8 => vm.unregister_ioevent(&evt, addr, Datamatch::U64(Some(datamatch as u64))),
                 _ => Err(SysError::new(EINVAL)),
             },
-            PluginObject::Memory { slot, .. } => vm.remove_mmio_memory(slot).and(Ok(())),
+            PluginObject::Memory { slot, .. } => vm.remove_memory_region(slot).and(Ok(())),
             PluginObject::IrqEvent { irq_id, evt } => vm.unregister_irqfd(&evt, irq_id),
         }
     }
diff --git a/src/plugin/process.rs b/src/plugin/process.rs
index 688aa85..f48c1d0 100644
--- a/src/plugin/process.rs
+++ b/src/plugin/process.rs
@@ -361,7 +361,8 @@ impl Process {
         }
         let mem = MemoryMapping::from_fd_offset(&shm, length as usize, offset)
             .map_err(mmap_to_sys_err)?;
-        let slot = vm.add_mmio_memory(GuestAddress(start), mem, read_only, dirty_log)?;
+        let slot =
+            vm.add_memory_region(GuestAddress(start), Box::new(mem), read_only, dirty_log)?;
         entry.insert(PluginObject::Memory {
             slot,
             length: length as usize,