From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LwiCv-0005F3-FT for qemu-devel@nongnu.org; Wed, 22 Apr 2009 15:34:09 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LwiCq-0005DH-KZ for qemu-devel@nongnu.org; Wed, 22 Apr 2009 15:34:08 -0400 Received: from [199.232.76.173] (port=44670 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LwiCq-0005D6-As for qemu-devel@nongnu.org; Wed, 22 Apr 2009 15:34:04 -0400 Received: from mx2.redhat.com ([66.187.237.31]:37798) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LwiCp-0000ib-H1 for qemu-devel@nongnu.org; Wed, 22 Apr 2009 15:34:03 -0400 Message-Id: <20090422192120.592687163@localhost.localdomain> References: <20090422191504.975476933@localhost.localdomain> Date: Wed, 22 Apr 2009 16:15:15 -0300 From: mtosatti@redhat.com Content-Disposition: inline; filename=refactor-main-loop-2 Subject: [Qemu-devel] [patch 11/14] qemu: use debug_requested global instead of cpu_exec return List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, aliguori@us.ibm.com Cc: Marcelo Tosatti Necessary for the next refactoring patch. Signed-off-by: Marcelo Tosatti Index: qemu-iothread-4/vl.c =================================================================== --- qemu-iothread-4.orig/vl.c +++ qemu-iothread-4/vl.c @@ -3504,6 +3504,7 @@ static QEMUResetEntry *first_reset_entry static int reset_requested; static int shutdown_requested; static int powerdown_requested; +static int debug_requested; int qemu_shutdown_requested(void) { @@ -3526,6 +3527,13 @@ int qemu_powerdown_requested(void) 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) { QEMUResetEntry **pre, *re; @@ -3955,6 +3963,8 @@ static int vm_can_run(void) return 0; if (shutdown_requested) return 0; + if (debug_requested) + return 0; return 1; } @@ -3981,6 +3991,7 @@ static void main_loop(void) ret = qemu_cpu_exec(env); if (ret == EXCP_DEBUG) { gdb_set_stop_cpu(env); + debug_requested = 1; break; } } @@ -3991,11 +4002,11 @@ static void main_loop(void) #ifdef CONFIG_PROFILER dev_time += profile_getclock() - ti; #endif - } while (ret != EXCP_DEBUG && vm_can_run()); + } while (vm_can_run()); - if (ret == EXCP_DEBUG) - vm_stop(EXCP_DEBUG); + if (qemu_debug_requested()) + vm_stop(EXCP_DEBUG); if (qemu_shutdown_requested()) { if (no_shutdown) { vm_stop(0); --