X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=exec-all.h;h=f91e6460c34230dba7864aad0f810b322dce7b97;hb=4ca1a9c62af1b98a359254546cd8e9999c892670;hp=143aca184fa33caaaee40787cff7b919659411a1;hpb=4f396364a695cef83f9c12618a6919736d3b048b;p=qemu diff --git a/exec-all.h b/exec-all.h index 143aca1..f91e646 100644 --- a/exec-all.h +++ b/exec-all.h @@ -316,6 +316,7 @@ static inline target_ulong get_phys_addr_code(CPUState *env1, target_ulong addr) static inline target_ulong get_phys_addr_code(CPUState *env1, target_ulong addr) { int mmu_idx, page_index, pd; + void *p; page_index = (addr >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1); mmu_idx = cpu_mmu_index(env1); @@ -331,7 +332,9 @@ static inline target_ulong get_phys_addr_code(CPUState *env1, target_ulong addr) cpu_abort(env1, "Trying to execute code outside RAM or ROM at 0x" TARGET_FMT_lx "\n", addr); #endif } - return addr + env1->tlb_table[mmu_idx][page_index].addend - (unsigned long)phys_ram_base; + p = (void *)(unsigned long)addr + + env1->tlb_table[mmu_idx][page_index].addend; + return qemu_ram_addr_from_host(p); } /* Deterministic execution requires that IO only be performed on the last @@ -349,7 +352,7 @@ static inline int can_do_io(CPUState *env) } #endif -#ifdef USE_KQEMU +#ifdef CONFIG_KQEMU #define KQEMU_MODIFY_PAGE_MASK (0xff & ~(VGA_DIRTY_FLAG | CODE_DIRTY_FLAG)) #define MSR_QPI_COMMBASE 0xfabe0010 @@ -367,6 +370,9 @@ void kqemu_record_dump(void); extern uint32_t kqemu_comm_base; +extern ram_addr_t kqemu_phys_ram_size; +extern uint8_t *kqemu_phys_ram_base; + static inline int kqemu_is_ok(CPUState *env) { return(env->kqemu_enabled && @@ -384,4 +390,8 @@ static inline int kqemu_is_ok(CPUState *env) typedef void (CPUDebugExcpHandler)(CPUState *env); CPUDebugExcpHandler *cpu_set_debug_excp_handler(CPUDebugExcpHandler *handler); + +/* vl.c */ +extern int singlestep; + #endif