mirror of
https://github.com/xemu-project/xemu.git
synced 2025-01-26 05:54:44 +00:00
memory: Introduce address_space_lookup_region
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.kiszka@siemens.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
3752a03648
commit
9f029603ab
8
exec.c
8
exec.c
@ -203,6 +203,12 @@ bool memory_region_is_unassigned(MemoryRegion *mr)
|
||||
&& mr != &io_mem_watch;
|
||||
}
|
||||
|
||||
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)
|
||||
@ -210,7 +216,7 @@ MemoryRegionSection *address_space_translate(AddressSpace *as, hwaddr addr,
|
||||
MemoryRegionSection *section;
|
||||
Int128 diff;
|
||||
|
||||
section = phys_page_find(as->dispatch, addr >> TARGET_PAGE_BITS);
|
||||
section = address_space_lookup_region(as, addr);
|
||||
/* Compute offset within MemoryRegionSection */
|
||||
addr -= section->offset_within_address_space;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user