diff options
author | Zach Reizner <zachr@google.com> | 2018-01-02 13:53:09 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-01-03 14:23:23 -0800 |
commit | 20c3c2af2fa5939417efb994d712f77d84c1dac1 (patch) | |
tree | 4c778db7d4ba5d73d72c3a4947b97e12fca6cbfc /sys_util/src/guest_memory.rs | |
parent | df595003645c39728b05974990cca52ed9ff6742 (diff) | |
download | crosvm-20c3c2af2fa5939417efb994d712f77d84c1dac1.tar crosvm-20c3c2af2fa5939417efb994d712f77d84c1dac1.tar.gz crosvm-20c3c2af2fa5939417efb994d712f77d84c1dac1.tar.bz2 crosvm-20c3c2af2fa5939417efb994d712f77d84c1dac1.tar.lz crosvm-20c3c2af2fa5939417efb994d712f77d84c1dac1.tar.xz crosvm-20c3c2af2fa5939417efb994d712f77d84c1dac1.tar.zst crosvm-20c3c2af2fa5939417efb994d712f77d84c1dac1.zip |
sys_util: allow empty GuestMemory
This is needed for plugin process style executions because they don't register guest memory though the GuestMemory interface. Their memory is more dynamic and ill-suited to the GuestMemory abstraction. TEST=./build_test BUG=None Change-Id: I250b0b874ef6a0e342fd6e659301f389d01a4cda Reviewed-on: https://chromium-review.googlesource.com/848018 Commit-Ready: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Stephen Barber <smbarber@chromium.org>
Diffstat (limited to 'sys_util/src/guest_memory.rs')
-rw-r--r-- | sys_util/src/guest_memory.rs | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/sys_util/src/guest_memory.rs b/sys_util/src/guest_memory.rs index 2a849e9..01892b5 100644 --- a/sys_util/src/guest_memory.rs +++ b/sys_util/src/guest_memory.rs @@ -19,7 +19,6 @@ pub enum Error { MemoryAccess(GuestAddress, mmap::Error), MemoryMappingFailed(mmap::Error), MemoryRegionOverlap, - NoMemoryRegions, RegionOperationFailed, } pub type Result<T> = result::Result<T, Error>; @@ -44,10 +43,6 @@ impl GuestMemory { /// Creates a container for guest memory regions. /// Valid memory regions are specified as a Vec of (Address, Size) tuples sorted by Address. pub fn new(ranges: &[(GuestAddress, usize)]) -> Result<GuestMemory> { - if ranges.is_empty() { - return Err(Error::NoMemoryRegions); - } - let mut regions = Vec::<MemoryRegion>::new(); for range in ranges.iter() { if let Some(last) = regions.last() { |