diff options
author | Gurchetan Singh <gurchetansingh@chromium.org> | 2020-05-21 18:05:06 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-06-12 05:00:37 +0000 |
commit | 173fe62df2b82f4d09a36066200f0a1727bd1d22 (patch) | |
tree | c3c0588afebd0b43811b3631c1d94168ba72c420 /src | |
parent | 4ffb3d06bdadcfcb79ee2b7bf445ac09da34c218 (diff) | |
download | crosvm-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.rs | 4 | ||||
-rw-r--r-- | src/plugin/mod.rs | 2 | ||||
-rw-r--r-- | src/plugin/process.rs | 3 |
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, |