From 8cf71710f068f9c50ce420b1dd4ef71c2f9b2a8d Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Mon, 7 Feb 2011 12:19:16 +0100 Subject: Refactor debug and vmstop request interface Instead of fiddling with debug_requested and vmstop_requested directly, introduce qemu_system_debug_request and turn qemu_system_vmstop_request into a public interface. This aligns those services with exiting ones in vl.c. Signed-off-by: Jan Kiszka Signed-off-by: Marcelo Tosatti --- cpus.c | 9 +-------- cpus.h | 2 -- sysemu.h | 2 ++ vl.c | 20 ++++++++++++++++---- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/cpus.c b/cpus.c index ca1f01d9d..97a6d4f5b 100644 --- a/cpus.c +++ b/cpus.c @@ -168,8 +168,7 @@ static bool all_cpu_threads_idle(void) static void cpu_debug_handler(CPUState *env) { gdb_set_stop_cpu(env); - debug_requested = VMSTOP_DEBUG; - vm_stop(VMSTOP_DEBUG); + qemu_system_debug_request(); } #ifdef CONFIG_LINUX @@ -990,12 +989,6 @@ void qemu_notify_event(void) qemu_event_increment(); } -static void qemu_system_vmstop_request(int reason) -{ - vmstop_requested = reason; - qemu_notify_event(); -} - void cpu_stop_current(void) { if (cpu_single_env) { diff --git a/cpus.h b/cpus.h index 4cadb641c..e0211260c 100644 --- a/cpus.h +++ b/cpus.h @@ -11,8 +11,6 @@ void cpu_stop_current(void); /* vl.c */ extern int smp_cores; extern int smp_threads; -extern int debug_requested; -extern int vmstop_requested; void vm_state_notify(int running, int reason); bool cpu_exec_all(void); void set_numa_modes(void); diff --git a/sysemu.h b/sysemu.h index 0628d3d82..0a83ab9e5 100644 --- a/sysemu.h +++ b/sysemu.h @@ -61,6 +61,8 @@ void cpu_disable_ticks(void); void qemu_system_reset_request(void); void qemu_system_shutdown_request(void); void qemu_system_powerdown_request(void); +void qemu_system_debug_request(void); +void qemu_system_vmstop_request(int reason); int qemu_shutdown_requested(void); int qemu_reset_requested(void); int qemu_powerdown_requested(void); diff --git a/vl.c b/vl.c index 6d2d1d344..eebe6843f 100644 --- a/vl.c +++ b/vl.c @@ -1217,8 +1217,8 @@ static QTAILQ_HEAD(reset_handlers, QEMUResetEntry) reset_handlers = static int reset_requested; static int shutdown_requested; static int powerdown_requested; -int debug_requested; -int vmstop_requested; +static int debug_requested; +static int vmstop_requested; int qemu_shutdown_requested(void) { @@ -1312,6 +1312,18 @@ void qemu_system_powerdown_request(void) qemu_notify_event(); } +void qemu_system_debug_request(void) +{ + debug_requested = 1; + vm_stop(VMSTOP_DEBUG); +} + +void qemu_system_vmstop_request(int reason) +{ + vmstop_requested = reason; + qemu_notify_event(); +} + void main_loop_wait(int nonblocking) { IOHandlerRecord *ioh; @@ -1427,8 +1439,8 @@ static void main_loop(void) dev_time += profile_getclock() - ti; #endif - if ((r = qemu_debug_requested())) { - vm_stop(r); + if (qemu_debug_requested()) { + vm_stop(VMSTOP_DEBUG); } if (qemu_shutdown_requested()) { monitor_protocol_event(QEVENT_SHUTDOWN, NULL); -- cgit v1.2.3-65-gdbad