diff options
author | Steven Richman <srichman@google.com> | 2020-05-13 23:05:58 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-06-10 17:08:55 +0000 |
commit | 7c359d617f82361d03910a07ab54e17f07a54b23 (patch) | |
tree | a95a48325bfaf0e7e0578723abc011acc14b633b /vm_control | |
parent | 2a0ce34f31533b8e6e8c7b7ed1a55990702958ac (diff) | |
download | crosvm-7c359d617f82361d03910a07ab54e17f07a54b23.tar crosvm-7c359d617f82361d03910a07ab54e17f07a54b23.tar.gz crosvm-7c359d617f82361d03910a07ab54e17f07a54b23.tar.bz2 crosvm-7c359d617f82361d03910a07ab54e17f07a54b23.tar.lz crosvm-7c359d617f82361d03910a07ab54e17f07a54b23.tar.xz crosvm-7c359d617f82361d03910a07ab54e17f07a54b23.tar.zst crosvm-7c359d617f82361d03910a07ab54e17f07a54b23.zip |
hypervisor: add Vm user memory region functions
The separate Vm functions for MemoryMappings and MemoryMappingArenas have been combined and now use a MappedRegion trait that the mappings implement. msync_memory_region replaces the get_mmap_arena function, which is used by VmMsyncRequest. Since Vm uses mutexes for cloning, it can't return mem region references. BUG=chromium:1077058 TEST=cargo test, cargo test -p sys_util, cargo test -p hypervisor Change-Id: If257b16ee34d07820ae7ebdb9a3a598a41df013c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2202845 Reviewed-by: Daniel Verkamp <dverkamp@chromium.org> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com> Commit-Queue: Gurchetan Singh <gurchetansingh@chromium.org>
Diffstat (limited to 'vm_control')
-rw-r--r-- | vm_control/src/lib.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/vm_control/src/lib.rs b/vm_control/src/lib.rs index 81a11d3..1d06e4b 100644 --- a/vm_control/src/lib.rs +++ b/vm_control/src/lib.rs @@ -21,7 +21,9 @@ use libc::{EINVAL, EIO, ENODEV}; use kvm::{IrqRoute, IrqSource, Vm}; use msg_socket::{MsgError, MsgOnSocket, MsgReceiver, MsgResult, MsgSender, MsgSocket}; use resources::{Alloc, GpuMemoryDesc, MmioType, SystemAllocator}; -use sys_util::{error, Error as SysError, EventFd, GuestAddress, MemoryMapping, MmapError, Result}; +use sys_util::{ + error, Error as SysError, EventFd, GuestAddress, MappedRegion, MemoryMapping, MmapError, Result, +}; /// A file descriptor either borrowed or owned by this. #[derive(Debug)] @@ -481,7 +483,7 @@ impl VmMsyncRequest { match *self { MsyncArena { slot, offset, size } => { if let Some(arena) = vm.get_mmap_arena(slot) { - match arena.msync(offset, size) { + match MappedRegion::msync(arena, offset, size) { Ok(()) => VmMsyncResponse::Ok, Err(e) => match e { MmapError::SystemCallFailed(errno) => VmMsyncResponse::Err(errno), |