aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vl.c78
1 files changed, 37 insertions, 41 deletions
diff --git a/vl.c b/vl.c
index 86cad9896f..dc6ee1816d 100644
--- a/vl.c
+++ b/vl.c
@@ -3281,13 +3281,39 @@ void qemu_system_powerdown_request(void)
qemu_notify_event();
}
-#ifdef CONFIG_IOTHREAD
-static void qemu_system_vmstop_request(int reason)
+static int cpu_can_run(CPUState *env)
{
- vmstop_requested = reason;
- qemu_notify_event();
+ if (env->stop)
+ return 0;
+ if (env->stopped)
+ return 0;
+ if (!vm_running)
+ return 0;
+ return 1;
+}
+
+static int cpu_has_work(CPUState *env)
+{
+ if (env->stop)
+ return 1;
+ if (env->stopped)
+ return 0;
+ if (!env->halted)
+ return 1;
+ if (qemu_cpu_has_work(env))
+ return 1;
+ return 0;
+}
+
+static int tcg_has_work(void)
+{
+ CPUState *env;
+
+ for (env = first_cpu; env != NULL; env = env->next_cpu)
+ if (cpu_has_work(env))
+ return 1;
+ return 0;
}
-#endif
#ifndef _WIN32
static int io_thread_fd = -1;
@@ -3381,17 +3407,6 @@ static void qemu_event_increment(void)
}
#endif
-static int cpu_can_run(CPUState *env)
-{
- if (env->stop)
- return 0;
- if (env->stopped)
- return 0;
- if (!vm_running)
- return 0;
- return 1;
-}
-
#ifndef CONFIG_IOTHREAD
static int qemu_init_main_loop(void)
{
@@ -3470,8 +3485,6 @@ static QemuCond qemu_pause_cond;
static void tcg_block_io_signals(void);
static void kvm_block_io_signals(CPUState *env);
static void unblock_io_signals(void);
-static int tcg_has_work(void);
-static int cpu_has_work(CPUState *env);
static int qemu_init_main_loop(void)
{
@@ -3822,6 +3835,12 @@ void qemu_notify_event(void)
qemu_event_increment();
}
+static void qemu_system_vmstop_request(int reason)
+{
+ vmstop_requested = reason;
+ qemu_notify_event();
+}
+
void vm_stop(int reason)
{
QemuThread me;
@@ -4036,29 +4055,6 @@ static void tcg_cpu_exec(void)
}
}
-static int cpu_has_work(CPUState *env)
-{
- if (env->stop)
- return 1;
- if (env->stopped)
- return 0;
- if (!env->halted)
- return 1;
- if (qemu_cpu_has_work(env))
- return 1;
- return 0;
-}
-
-static int tcg_has_work(void)
-{
- CPUState *env;
-
- for (env = first_cpu; env != NULL; env = env->next_cpu)
- if (cpu_has_work(env))
- return 1;
- return 0;
-}
-
static int qemu_calculate_timeout(void)
{
#ifndef CONFIG_IOTHREAD