Changes since v2: * Fix two errors pointed out by pbrook: l1_map size in system mode, and h2g_valid definition for 64-on-32-bit. * Assertions that addresses are not outside the bounds of the guest address space. * Re-base vs master, after l1_map_phys changes.
r~ Richard Henderson (6): Move TARGET_PHYS_ADDR_SPACE_BITS to target-*/cpu.h. Use TARGET_VIRT_ADDR_SPACE_BITS in h2g_valid. linux-user: Use h2g_valid in qemu_vmalloc. linux-user: Fix mmap_find_vma returning invalid addresses. Implement multi-level page tables. Fix last page errors in page_check_range and page_set_flags. cpu-all.h | 23 ++- exec.c | 522 ++++++++++++++++++++++++++++------------------- linux-user/main.c | 11 +- linux-user/mmap.c | 111 ++++++++--- linux-user/qemu.h | 2 - target-alpha/cpu.h | 4 +- target-arm/cpu.h | 3 + target-cris/cpu.h | 3 + target-i386/cpu.h | 11 + target-m68k/cpu.h | 3 + target-microblaze/cpu.h | 3 + target-mips/mips-defs.h | 4 + target-ppc/cpu.h | 17 ++ target-s390x/cpu.h | 5 + target-sh4/cpu.h | 3 + target-sparc/cpu.h | 8 + 16 files changed, 474 insertions(+), 259 deletions(-)