void qemu_notify_event(void) { CPUOldState *env = cpu_single_env; if (env) { cpu_exit(env); /* * This is mainly for the Windows host, where the timer may be in * a different thread with vcpu. Thus the timer function needs to * notify the vcpu thread of more than simply cpu_exit. If env is * not NULL, it means that the vcpu is in execute state, we need * only to set the flags. If the guest is in execute state, the * HAX kernel module will exit to qemu. If env is NULL, vcpu is * in main_loop_wait, and we need a event to notify it. */ #ifdef CONFIG_HAX if (hax_enabled()) hax_raise_event(env); } else { #ifdef _WIN32 if(hax_enabled()) SetEvent(qemu_event_handle); #endif } #else }
void qemu_notify_event(void) { CPUState *env = cpu_single_env; if (env) { cpu_exit(env); #ifdef USE_KQEMU if (env->kqemu_enabled) kqemu_cpu_interrupt(env); #endif #ifdef CONFIG_HAX if (hax_enabled()) hax_raise_event(env); } else { #ifdef _WIN32 if(hax_enabled()) SetEvent(qemu_event_handle); #endif } #else }