MemoryRegion::addr is private data of MemoryRegion. Introduce memory_region_get_address() to get it, similar to memory_region_set_address() to set it.
Suggested-by: Peter Maydell <[email protected]> Signed-off-by: Philippe Mathieu-Daudé <[email protected]> --- include/system/memory.h | 7 +++++++ system/memory.c | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/include/system/memory.h b/include/system/memory.h index 45de6946812..d2a5850a360 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -2481,6 +2481,13 @@ void memory_region_set_enabled(MemoryRegion *mr, bool enabled); */ void memory_region_set_address(MemoryRegion *mr, hwaddr addr); +/** + * memory_region_get_address: Get the base address of a memory region + * + * @mr: the region to be queried + */ +hwaddr memory_region_get_address(const MemoryRegion *mr); + /* * memory_region_set_size: dynamically update the size of a region. * diff --git a/system/memory.c b/system/memory.c index d1c060b2b50..f48b586122d 100644 --- a/system/memory.c +++ b/system/memory.c @@ -2777,6 +2777,11 @@ void memory_region_set_address(MemoryRegion *mr, hwaddr addr) } } +hwaddr memory_region_get_address(const MemoryRegion *mr) +{ + return mr->addr; +} + void memory_region_set_alias_offset(MemoryRegion *mr, hwaddr offset) { assert(mr->alias); -- 2.51.0
