diff options
Diffstat (limited to 'sys_util/src/guest_memory.rs')
-rw-r--r-- | sys_util/src/guest_memory.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys_util/src/guest_memory.rs b/sys_util/src/guest_memory.rs index 8e2dd97..2a849e9 100644 --- a/sys_util/src/guest_memory.rs +++ b/sys_util/src/guest_memory.rs @@ -105,6 +105,15 @@ impl GuestMemory { self.regions.len() } + /// Madvise away the address range in the host that is associated with the given guest range. + pub fn dont_need_range(&self, addr: GuestAddress, count: usize) -> Result<()> { + self.do_in_region(addr, move |mapping, offset| { + mapping + .dont_need_range(offset, count) + .map_err(|e| Error::MemoryAccess(addr, e)) + }) + } + /// Perform the specified action on each region's addresses. pub fn with_regions<F, E>(&self, cb: F) -> result::Result<(), E> where F: Fn(usize, GuestAddress, usize, usize) -> result::Result<(), E> |