Function panda_sys::memory_region_find[][src]

pub unsafe extern "C" fn memory_region_find(
    mr: *mut MemoryRegion,
    addr: hwaddr,
    size: u64
) -> MemoryRegionSection
Expand description

memory_region_find: translate an address/size relative to a MemoryRegion into a #MemoryRegionSection.

Locates the first #MemoryRegion within @mr that overlaps the range given by @addr and @size.

Returns a #MemoryRegionSection that describes a contiguous overlap. It will have the following characteristics: .@size = 0 iff no overlap was found .@mr is non-%NULL iff an overlap was found

Remember that in the return value the @offset_within_region is relative to the returned region (in the .@mr field), not to the @mr argument.

Similarly, the .@offset_within_address_space is relative to the address space that contains both regions, the passed and the returned one. However, in the special case where the @mr argument has no container (and thus is the root of the address space), the following will hold: .@offset_within_address_space >= @addr .@offset_within_address_space + .@size <= @addr + @size

@mr: a MemoryRegion within which @addr is a relative address @addr: start of the area within @as to be searched @size: size of the area to be searched