|
|
|
@ -71,9 +71,9 @@ |
|
|
|
#define TARGET_VIRT_ADDR_SPACE_BITS 42 |
|
|
|
#elif defined(TARGET_PPC64) |
|
|
|
#define TARGET_PHYS_ADDR_SPACE_BITS 42 |
|
|
|
#elif defined(TARGET_X86_64) && !defined(USE_KQEMU) |
|
|
|
#elif defined(TARGET_X86_64) && !defined(CONFIG_KQEMU) |
|
|
|
#define TARGET_PHYS_ADDR_SPACE_BITS 42 |
|
|
|
#elif defined(TARGET_I386) && !defined(USE_KQEMU) |
|
|
|
#elif defined(TARGET_I386) && !defined(CONFIG_KQEMU) |
|
|
|
#define TARGET_PHYS_ADDR_SPACE_BITS 36 |
|
|
|
#else |
|
|
|
/* Note: for compatibility with kqemu, we use 32 bits for x86_64 */ |
|
|
|
@ -1760,7 +1760,7 @@ void tlb_flush(CPUState *env, int flush_global) |
|
|
|
|
|
|
|
memset (env->tb_jmp_cache, 0, TB_JMP_CACHE_SIZE * sizeof (void *)); |
|
|
|
|
|
|
|
#ifdef USE_KQEMU |
|
|
|
#ifdef CONFIG_KQEMU |
|
|
|
if (env->kqemu_enabled) { |
|
|
|
kqemu_flush(env, flush_global); |
|
|
|
} |
|
|
|
@ -1809,7 +1809,7 @@ void tlb_flush_page(CPUState *env, target_ulong addr) |
|
|
|
|
|
|
|
tlb_flush_jmp_cache(env, addr); |
|
|
|
|
|
|
|
#ifdef USE_KQEMU |
|
|
|
#ifdef CONFIG_KQEMU |
|
|
|
if (env->kqemu_enabled) { |
|
|
|
kqemu_flush_page(env, addr); |
|
|
|
} |
|
|
|
@ -1861,7 +1861,7 @@ void cpu_physical_memory_reset_dirty(ram_addr_t start, ram_addr_t end, |
|
|
|
if (length == 0) |
|
|
|
return; |
|
|
|
len = length >> TARGET_PAGE_BITS; |
|
|
|
#ifdef USE_KQEMU |
|
|
|
#ifdef CONFIG_KQEMU |
|
|
|
/* XXX: should not depend on cpu context */ |
|
|
|
env = first_cpu; |
|
|
|
if (env->kqemu_enabled) { |
|
|
|
@ -2328,7 +2328,7 @@ void cpu_register_physical_memory_offset(target_phys_addr_t start_addr, |
|
|
|
ram_addr_t orig_size = size; |
|
|
|
void *subpage; |
|
|
|
|
|
|
|
#ifdef USE_KQEMU |
|
|
|
#ifdef CONFIG_KQEMU |
|
|
|
/* XXX: should not depend on cpu context */ |
|
|
|
env = first_cpu; |
|
|
|
if (env->kqemu_enabled) { |
|
|
|
@ -2429,7 +2429,7 @@ void qemu_unregister_coalesced_mmio(target_phys_addr_t addr, ram_addr_t size) |
|
|
|
kvm_uncoalesce_mmio_region(addr, size); |
|
|
|
} |
|
|
|
|
|
|
|
#ifdef USE_KQEMU |
|
|
|
#ifdef CONFIG_KQEMU |
|
|
|
/* XXX: better than nothing */ |
|
|
|
static ram_addr_t kqemu_ram_alloc(ram_addr_t size) |
|
|
|
{ |
|
|
|
@ -2449,7 +2449,7 @@ ram_addr_t qemu_ram_alloc(ram_addr_t size) |
|
|
|
{ |
|
|
|
RAMBlock *new_block; |
|
|
|
|
|
|
|
#ifdef USE_KQEMU |
|
|
|
#ifdef CONFIG_KQEMU |
|
|
|
if (kqemu_phys_ram_base) { |
|
|
|
return kqemu_ram_alloc(size); |
|
|
|
} |
|
|
|
@ -2494,7 +2494,7 @@ void *qemu_get_ram_ptr(ram_addr_t addr) |
|
|
|
RAMBlock **prevp; |
|
|
|
RAMBlock *block; |
|
|
|
|
|
|
|
#ifdef USE_KQEMU |
|
|
|
#ifdef CONFIG_KQEMU |
|
|
|
if (kqemu_phys_ram_base) { |
|
|
|
return kqemu_phys_ram_base + addr; |
|
|
|
} |
|
|
|
@ -2532,7 +2532,7 @@ ram_addr_t qemu_ram_addr_from_host(void *ptr) |
|
|
|
RAMBlock *block; |
|
|
|
uint8_t *host = ptr; |
|
|
|
|
|
|
|
#ifdef USE_KQEMU |
|
|
|
#ifdef CONFIG_KQEMU |
|
|
|
if (kqemu_phys_ram_base) { |
|
|
|
return host - kqemu_phys_ram_base; |
|
|
|
} |
|
|
|
@ -2642,7 +2642,7 @@ static void notdirty_mem_writeb(void *opaque, target_phys_addr_t ram_addr, |
|
|
|
#endif |
|
|
|
} |
|
|
|
stb_p(qemu_get_ram_ptr(ram_addr), val); |
|
|
|
#ifdef USE_KQEMU |
|
|
|
#ifdef CONFIG_KQEMU |
|
|
|
if (cpu_single_env->kqemu_enabled && |
|
|
|
(dirty_flags & KQEMU_MODIFY_PAGE_MASK) != KQEMU_MODIFY_PAGE_MASK) |
|
|
|
kqemu_modify_page(cpu_single_env, ram_addr); |
|
|
|
@ -2667,7 +2667,7 @@ static void notdirty_mem_writew(void *opaque, target_phys_addr_t ram_addr, |
|
|
|
#endif |
|
|
|
} |
|
|
|
stw_p(qemu_get_ram_ptr(ram_addr), val); |
|
|
|
#ifdef USE_KQEMU |
|
|
|
#ifdef CONFIG_KQEMU |
|
|
|
if (cpu_single_env->kqemu_enabled && |
|
|
|
(dirty_flags & KQEMU_MODIFY_PAGE_MASK) != KQEMU_MODIFY_PAGE_MASK) |
|
|
|
kqemu_modify_page(cpu_single_env, ram_addr); |
|
|
|
@ -2692,7 +2692,7 @@ static void notdirty_mem_writel(void *opaque, target_phys_addr_t ram_addr, |
|
|
|
#endif |
|
|
|
} |
|
|
|
stl_p(qemu_get_ram_ptr(ram_addr), val); |
|
|
|
#ifdef USE_KQEMU |
|
|
|
#ifdef CONFIG_KQEMU |
|
|
|
if (cpu_single_env->kqemu_enabled && |
|
|
|
(dirty_flags & KQEMU_MODIFY_PAGE_MASK) != KQEMU_MODIFY_PAGE_MASK) |
|
|
|
kqemu_modify_page(cpu_single_env, ram_addr); |
|
|
|
@ -2993,7 +2993,7 @@ static void io_mem_init(void) |
|
|
|
|
|
|
|
io_mem_watch = cpu_register_io_memory(0, watch_mem_read, |
|
|
|
watch_mem_write, NULL); |
|
|
|
#ifdef USE_KQEMU |
|
|
|
#ifdef CONFIG_KQEMU |
|
|
|
if (kqemu_phys_ram_base) { |
|
|
|
/* alloc dirty bits array */ |
|
|
|
phys_ram_dirty = qemu_vmalloc(kqemu_phys_ram_size >> TARGET_PAGE_BITS); |
|
|
|
|