Commit e568902a02aa58dc53d4158aa2942ef3ff08a9ce

Authored by aliguori
1 parent 4870852c

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
Showing 1 changed file with 14 additions and 3 deletions
... ... @@ -3568,6 +3568,7 @@ static QEMUResetEntry *first_reset_entry;
3568 3568 static int reset_requested;
3569 3569 static int shutdown_requested;
3570 3570 static int powerdown_requested;
  3571 +static int debug_requested;
3571 3572  
3572 3573 int qemu_shutdown_requested(void)
3573 3574 {
... ... @@ -3590,6 +3591,13 @@ int qemu_powerdown_requested(void)
3590 3591 return r;
3591 3592 }
3592 3593  
  3594 +static int qemu_debug_requested(void)
  3595 +{
  3596 + int r = debug_requested;
  3597 + debug_requested = 0;
  3598 + return r;
  3599 +}
  3600 +
3593 3601 void qemu_register_reset(QEMUResetHandler *func, void *opaque)
3594 3602 {
3595 3603 QEMUResetEntry **pre, *re;
... ... @@ -4019,6 +4027,8 @@ static int vm_can_run(void)
4019 4027 return 0;
4020 4028 if (shutdown_requested)
4021 4029 return 0;
  4030 + if (debug_requested)
  4031 + return 0;
4022 4032 return 1;
4023 4033 }
4024 4034  
... ... @@ -4045,6 +4055,7 @@ static void main_loop(void)
4045 4055 ret = qemu_cpu_exec(env);
4046 4056 if (ret == EXCP_DEBUG) {
4047 4057 gdb_set_stop_cpu(env);
  4058 + debug_requested = 1;
4048 4059 break;
4049 4060 }
4050 4061 }
... ... @@ -4055,11 +4066,11 @@ static void main_loop(void)
4055 4066 #ifdef CONFIG_PROFILER
4056 4067 dev_time += profile_getclock() - ti;
4057 4068 #endif
4058   - } while (ret != EXCP_DEBUG && vm_can_run());
  4069 + } while (vm_can_run());
4059 4070  
4060   - if (ret == EXCP_DEBUG)
4061   - vm_stop(EXCP_DEBUG);
4062 4071  
  4072 + if (qemu_debug_requested())
  4073 + vm_stop(EXCP_DEBUG);
4063 4074 if (qemu_shutdown_requested()) {
4064 4075 if (no_shutdown) {
4065 4076 vm_stop(0);
... ...