586 |
return addr + env->tlb_read[is_user][index].addend - (unsigned long)phys_ram_base; |
return addr + env->tlb_read[is_user][index].addend - (unsigned long)phys_ram_base; |
587 |
} |
} |
588 |
#endif |
#endif |
589 |
|
|
590 |
|
|
591 |
|
#ifdef USE_KQEMU |
592 |
|
extern int kqemu_fd; |
593 |
|
extern int kqemu_flushed; |
594 |
|
|
595 |
|
int kqemu_init(CPUState *env); |
596 |
|
int kqemu_cpu_exec(CPUState *env); |
597 |
|
void kqemu_flush_page(CPUState *env, target_ulong addr); |
598 |
|
void kqemu_flush(CPUState *env, int global); |
599 |
|
|
600 |
|
static inline int kqemu_is_ok(CPUState *env) |
601 |
|
{ |
602 |
|
return(env->kqemu_enabled && |
603 |
|
(env->hflags & HF_CPL_MASK) == 3 && |
604 |
|
(env->eflags & IOPL_MASK) != IOPL_MASK && |
605 |
|
(env->cr[0] & CR0_PE_MASK) && |
606 |
|
(env->eflags & IF_MASK) && |
607 |
|
!(env->eflags & VM_MASK)); |
608 |
|
} |
609 |
|
|
610 |
|
#endif |