aboutsummaryrefslogtreecommitdiff
path: root/exec-all.h
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-02-10 22:05:51 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-02-10 22:05:51 +0000
commit9df217a31741e21eb63a5e3ee8529391ba3762e3 (patch)
tree53332ef1b810f1093cbf300381457fc6cdde97b5 /exec-all.h
parent92a31b1fff09bed823865262d4b3c8e7b246c812 (diff)
downloadqemu-9df217a31741e21eb63a5e3ee8529391ba3762e3.zip
qemu-9df217a31741e21eb63a5e3ee8529391ba3762e3.tar.gz
qemu-9df217a31741e21eb63a5e3ee8529391ba3762e3.tar.bz2
kqemu support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1283 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'exec-all.h')
-rw-r--r--exec-all.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/exec-all.h b/exec-all.h
index b1f488c..3065858 100644
--- a/exec-all.h
+++ b/exec-all.h
@@ -586,3 +586,25 @@ static inline target_ulong get_phys_addr_code(CPUState *env, target_ulong addr)
return addr + env->tlb_read[is_user][index].addend - (unsigned long)phys_ram_base;
}
#endif
+
+
+#ifdef USE_KQEMU
+extern int kqemu_fd;
+extern int kqemu_flushed;
+
+int kqemu_init(CPUState *env);
+int kqemu_cpu_exec(CPUState *env);
+void kqemu_flush_page(CPUState *env, target_ulong addr);
+void kqemu_flush(CPUState *env, int global);
+
+static inline int kqemu_is_ok(CPUState *env)
+{
+ return(env->kqemu_enabled &&
+ (env->hflags & HF_CPL_MASK) == 3 &&
+ (env->eflags & IOPL_MASK) != IOPL_MASK &&
+ (env->cr[0] & CR0_PE_MASK) &&
+ (env->eflags & IF_MASK) &&
+ !(env->eflags & VM_MASK));
+}
+
+#endif