From: Jan Kiszka <jan.kis...@siemens.com> This introduces a wrapper for phys_page_find (before we complicate address_space_translate with IOMMU translation). This function will also encapsulate locking and reference counting when we introduce BQL-free dispatching.
Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- exec.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/exec.c b/exec.c index 9709bc4..6efad6d 100644 --- a/exec.c +++ b/exec.c @@ -198,13 +198,19 @@ static MemoryRegionSection *phys_page_find(AddressSpaceDispatch *d, hwaddr index return &phys_sections[lp.ptr]; } +static MemoryRegionSection *address_space_lookup_region(AddressSpace *as, + hwaddr addr) +{ + return phys_page_find(as->dispatch, addr >> TARGET_PAGE_BITS); +} + MemoryRegionSection *address_space_translate(AddressSpace *as, hwaddr addr, hwaddr *xlat, hwaddr *plen, bool is_write) { MemoryRegionSection *section; - section = phys_page_find(as->dispatch, addr >> TARGET_PAGE_BITS); + section = address_space_lookup_region(as, addr); /* Compute offset with MemoryRegionSection */ addr -= section->offset_within_address_space; *plen = MIN(section->size - addr, *plen); -- 1.7.1