Check if a guest address is within the range of mmio regions
(&self, guest_addr: u64, size: u64)
| 306 | unsafe 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> { |
no test coverage detected