diff options
author | Avi Kivity <avi@redhat.com> | 2012-10-03 16:22:53 +0200 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2012-10-22 14:50:08 +0200 |
commit | ac1970fbe8ad5a70174f462109ac0f6c7bf1bc43 (patch) | |
tree | aa2f9702bfd593515b6fb7ee438f6cc5bacef74e /cputlb.h | |
parent | 0e8a6d47afcc88564079387928f2da45736d36e8 (diff) |
memory: per-AddressSpace dispatch
Currently we use a global radix tree to dispatch memory access. This only
works with a single address space; to support multiple address spaces we
make the radix tree a member of AddressSpace (via an intermediate structure
AddressSpaceDispatch to avoid exposing too many internals).
A side effect is that address_space_io also gains a dispatch table. When
we remove all the pre-memory-API I/O registrations, we can use that for
dispatching I/O and get rid of the original I/O dispatch.
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'cputlb.h')
-rw-r--r-- | cputlb.h | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -26,7 +26,8 @@ void tlb_unprotect_code_phys(CPUArchState *env, ram_addr_t ram_addr, target_ulong vaddr); void tlb_reset_dirty_range(CPUTLBEntry *tlb_entry, uintptr_t start, uintptr_t length); -MemoryRegionSection *phys_page_find(target_phys_addr_t index); +MemoryRegionSection *phys_page_find(struct AddressSpaceDispatch *d, + target_phys_addr_t index); void cpu_tlb_reset_dirty_all(ram_addr_t start1, ram_addr_t length); void tlb_set_dirty(CPUArchState *env, target_ulong vaddr); extern int tlb_flush_count; |