| 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 |