qemu: use debug_requested global instead of cpu_exec return (Marcelo Tosatti)
Necessary for the next refactoring patch. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7245 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
4870852c9e
commit
e568902a02
17
vl.c
17
vl.c
|
@ -3568,6 +3568,7 @@ static QEMUResetEntry *first_reset_entry;
|
||||||
static int reset_requested;
|
static int reset_requested;
|
||||||
static int shutdown_requested;
|
static int shutdown_requested;
|
||||||
static int powerdown_requested;
|
static int powerdown_requested;
|
||||||
|
static int debug_requested;
|
||||||
|
|
||||||
int qemu_shutdown_requested(void)
|
int qemu_shutdown_requested(void)
|
||||||
{
|
{
|
||||||
|
@ -3590,6 +3591,13 @@ int qemu_powerdown_requested(void)
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int qemu_debug_requested(void)
|
||||||
|
{
|
||||||
|
int r = debug_requested;
|
||||||
|
debug_requested = 0;
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
void qemu_register_reset(QEMUResetHandler *func, void *opaque)
|
void qemu_register_reset(QEMUResetHandler *func, void *opaque)
|
||||||
{
|
{
|
||||||
QEMUResetEntry **pre, *re;
|
QEMUResetEntry **pre, *re;
|
||||||
|
@ -4019,6 +4027,8 @@ static int vm_can_run(void)
|
||||||
return 0;
|
return 0;
|
||||||
if (shutdown_requested)
|
if (shutdown_requested)
|
||||||
return 0;
|
return 0;
|
||||||
|
if (debug_requested)
|
||||||
|
return 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4045,6 +4055,7 @@ static void main_loop(void)
|
||||||
ret = qemu_cpu_exec(env);
|
ret = qemu_cpu_exec(env);
|
||||||
if (ret == EXCP_DEBUG) {
|
if (ret == EXCP_DEBUG) {
|
||||||
gdb_set_stop_cpu(env);
|
gdb_set_stop_cpu(env);
|
||||||
|
debug_requested = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4055,11 +4066,11 @@ static void main_loop(void)
|
||||||
#ifdef CONFIG_PROFILER
|
#ifdef CONFIG_PROFILER
|
||||||
dev_time += profile_getclock() - ti;
|
dev_time += profile_getclock() - ti;
|
||||||
#endif
|
#endif
|
||||||
} while (ret != EXCP_DEBUG && vm_can_run());
|
} while (vm_can_run());
|
||||||
|
|
||||||
if (ret == EXCP_DEBUG)
|
|
||||||
|
if (qemu_debug_requested())
|
||||||
vm_stop(EXCP_DEBUG);
|
vm_stop(EXCP_DEBUG);
|
||||||
|
|
||||||
if (qemu_shutdown_requested()) {
|
if (qemu_shutdown_requested()) {
|
||||||
if (no_shutdown) {
|
if (no_shutdown) {
|
||||||
vm_stop(0);
|
vm_stop(0);
|
||||||
|
|
Reference in New Issue