• Paolo Bonzini's avatar
    memory: add address_space_translate · 149f54b5
    Paolo Bonzini authored
    Using phys_page_find to translate an AddressSpace to a MemoryRegionSection
    is unwieldy.  It requires to pass the page index rather than the address,
    and later memory_region_section_addr has to be called.  Replace
    memory_region_section_addr with a function that does all of it: call
    phys_page_find, compute the offset within the region, and check how
    big the current mapping is.  This way, a large flat region can be written
    with a single lookup rather than a page at a time.
    address_space_translate will also provide a single point where IOMMU
    forwarding is implemented.
    Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: default avatarRichard Henderson <rth@twiddle.net>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
exec.c 71.6 KB