This change exports memory_region_to_absolute_addr() function so it can be used by drivers requiring to calculate absolute address for memory subregions when memory hierarchy is used.
Signed-off-by: Andrzej Jakowski <andrzej.jakow...@linux.intel.com> --- include/exec/memory.h | 9 +++++++++ softmmu/memory.c | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/exec/memory.h b/include/exec/memory.h index 307e527835..6e5bba602e 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -2017,6 +2017,15 @@ MemTxResult memory_region_dispatch_write(MemoryRegion *mr, MemOp op, MemTxAttrs attrs); +/** + * memory_region_to_absolute_addr: walk through memory hierarchy to retrieve + * absolute address for given MemoryRegion. + * + * @mr: #MemoryRegion to scan through + * @offset: starting offset within mr + */ +hwaddr memory_region_to_absolute_addr(MemoryRegion *mr, hwaddr offset); + /** * address_space_init: initializes an address space * diff --git a/softmmu/memory.c b/softmmu/memory.c index 9200b20130..deff3739ff 100644 --- a/softmmu/memory.c +++ b/softmmu/memory.c @@ -399,7 +399,7 @@ static inline uint64_t memory_region_shift_write_access(uint64_t *value, return tmp; } -static hwaddr memory_region_to_absolute_addr(MemoryRegion *mr, hwaddr offset) +hwaddr memory_region_to_absolute_addr(MemoryRegion *mr, hwaddr offset) { MemoryRegion *root; hwaddr abs_addr = offset; -- 2.21.1