mirror of
https://github.com/qemu/qemu.git
synced 2024-11-24 03:13:44 +08:00
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 <jan.kiszka@siemens.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
parent
e07bbac542
commit
8cf71710f0
9
cpus.c
9
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) {
|
||||
|
2
cpus.h
2
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);
|
||||
|
2
sysemu.h
2
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);
|
||||
|
20
vl.c
20
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);
|
||||
|
Loading…
Reference in New Issue
Block a user