memory: add memory_region_is_mapped() API
which allows to check if MemoryRegion is already mapped. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
10b7e74bf2
commit
eed2bacfd2
@ -847,6 +847,14 @@ void memory_region_set_alias_offset(MemoryRegion *mr,
|
||||
*/
|
||||
bool memory_region_present(MemoryRegion *container, hwaddr addr);
|
||||
|
||||
/**
|
||||
* memory_region_is_mapped: returns true if #MemoryRegion is mapped
|
||||
* into any address space.
|
||||
*
|
||||
* @mr: a #MemoryRegion which should be checked if it's mapped
|
||||
*/
|
||||
bool memory_region_is_mapped(MemoryRegion *mr);
|
||||
|
||||
/**
|
||||
* memory_region_find: translate an address/size relative to a
|
||||
* MemoryRegion into a #MemoryRegionSection.
|
||||
|
10
memory.c
10
memory.c
@ -493,7 +493,7 @@ static AddressSpace *memory_region_to_address_space(MemoryRegion *mr)
|
||||
return as;
|
||||
}
|
||||
}
|
||||
abort();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Render a memory region into the global view. Ranges in @view obscure
|
||||
@ -1593,6 +1593,11 @@ bool memory_region_present(MemoryRegion *container, hwaddr addr)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool memory_region_is_mapped(MemoryRegion *mr)
|
||||
{
|
||||
return mr->container ? true : false;
|
||||
}
|
||||
|
||||
MemoryRegionSection memory_region_find(MemoryRegion *mr,
|
||||
hwaddr addr, uint64_t size)
|
||||
{
|
||||
@ -1610,6 +1615,9 @@ MemoryRegionSection memory_region_find(MemoryRegion *mr,
|
||||
}
|
||||
|
||||
as = memory_region_to_address_space(root);
|
||||
if (!as) {
|
||||
return ret;
|
||||
}
|
||||
range = addrrange_make(int128_make64(addr), int128_make64(size));
|
||||
|
||||
view = address_space_get_flatview(as);
|
||||
|
Loading…
Reference in New Issue
Block a user