|
@@ -91,11 +91,6 @@ AddressSpace address_space_memory;
|
|
static MemoryRegion io_mem_unassigned;
|
|
static MemoryRegion io_mem_unassigned;
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-#ifdef TARGET_PAGE_BITS_VARY
|
|
|
|
-int target_page_bits;
|
|
|
|
-bool target_page_bits_decided;
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
CPUTailQ cpus = QTAILQ_HEAD_INITIALIZER(cpus);
|
|
CPUTailQ cpus = QTAILQ_HEAD_INITIALIZER(cpus);
|
|
|
|
|
|
/* current CPU in the current thread. It is only valid inside
|
|
/* current CPU in the current thread. It is only valid inside
|
|
@@ -109,37 +104,8 @@ int use_icount;
|
|
uintptr_t qemu_host_page_size;
|
|
uintptr_t qemu_host_page_size;
|
|
intptr_t qemu_host_page_mask;
|
|
intptr_t qemu_host_page_mask;
|
|
|
|
|
|
-bool set_preferred_target_page_bits(int bits)
|
|
|
|
-{
|
|
|
|
- /* The target page size is the lowest common denominator for all
|
|
|
|
- * the CPUs in the system, so we can only make it smaller, never
|
|
|
|
- * larger. And we can't make it smaller once we've committed to
|
|
|
|
- * a particular size.
|
|
|
|
- */
|
|
|
|
-#ifdef TARGET_PAGE_BITS_VARY
|
|
|
|
- assert(bits >= TARGET_PAGE_BITS_MIN);
|
|
|
|
- if (target_page_bits == 0 || target_page_bits > bits) {
|
|
|
|
- if (target_page_bits_decided) {
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- target_page_bits = bits;
|
|
|
|
- }
|
|
|
|
-#endif
|
|
|
|
- return true;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
#if !defined(CONFIG_USER_ONLY)
|
|
#if !defined(CONFIG_USER_ONLY)
|
|
|
|
|
|
-static void finalize_target_page_bits(void)
|
|
|
|
-{
|
|
|
|
-#ifdef TARGET_PAGE_BITS_VARY
|
|
|
|
- if (target_page_bits == 0) {
|
|
|
|
- target_page_bits = TARGET_PAGE_BITS_MIN;
|
|
|
|
- }
|
|
|
|
- target_page_bits_decided = true;
|
|
|
|
-#endif
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
typedef struct PhysPageEntry PhysPageEntry;
|
|
typedef struct PhysPageEntry PhysPageEntry;
|
|
|
|
|
|
struct PhysPageEntry {
|
|
struct PhysPageEntry {
|