MCPcopy Create free account
hub / github.com/cloud-hypervisor/cloud-hypervisor / check_range

Method check_range

pci/src/vfio.rs:308–321  ·  view source on GitHub ↗

Check if a guest address is within the range of mmio regions

(&self, guest_addr: u64, size: u64)

Source from the content-addressed store, hash-verified

306unsafe impl MmioRegionRange for Vec<MmioRegion> {
307 // Check if a guest address is within the range of mmio regions
308 fn check_range(&self, guest_addr: u64, size: u64) -> bool {
309 let Some(guest_addr_end) = guest_addr.checked_add(size) else {
310 return false;
311 };
312 for region in self.iter() {
313 let Some(region_end) = region.start.raw_value().checked_add(region.length) else {
314 return false;
315 };
316 if guest_addr >= region.start.raw_value() && guest_addr_end <= region_end {
317 return true;
318 }
319 }
320 false
321 }
322
323 // Locate the user region address for a guest address within all mmio regions
324 fn find_user_address(&self, guest_addr: u64, size: u64) -> Result<*mut u8, io::Error> {

Callers 2

register_percpu_bufMethod · 0.80
mapMethod · 0.80

Calls 1

iterMethod · 0.80

Tested by

no test coverage detected