mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
Implement multi-level page tables.
Define L1_MAP_ADDR_SPACE_BITS to be either the virtual address size (in user mode) or physical address size (in system mode), and use that to size l1_map. This rewrites page_find_alloc, page_flush_tb, and walk_memory_regions. Use TARGET_PHYS_ADDR_SPACE_BITS for the physical memory map based off of l1_phys_map. This rewrites page_phys_find_alloc and phys_page_for_each. Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
committed by
Paul Brook
parent
14f24e1465
commit
5cd2c5b6ad
@@ -745,8 +745,11 @@ extern unsigned long qemu_host_page_mask;
|
||||
#define PAGE_RESERVED 0x0020
|
||||
|
||||
void page_dump(FILE *f);
|
||||
int walk_memory_regions(void *,
|
||||
int (*fn)(void *, unsigned long, unsigned long, unsigned long));
|
||||
|
||||
typedef int (*walk_memory_regions_fn)(void *, unsigned long,
|
||||
unsigned long, unsigned long);
|
||||
int walk_memory_regions(void *, walk_memory_regions_fn);
|
||||
|
||||
int page_get_flags(target_ulong address);
|
||||
void page_set_flags(target_ulong start, target_ulong end, int flags);
|
||||
int page_check_range(target_ulong start, target_ulong len, int flags);
|
||||
|
||||
Reference in New Issue
Block a user