From patchwork Thu Feb 11 01:49:48 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luiz Capitulino X-Patchwork-Id: 45081 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 899B2B6F08 for ; Thu, 11 Feb 2010 12:55:46 +1100 (EST) Received: from localhost ([127.0.0.1]:36216 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NfOHP-0000L0-K6 for incoming@patchwork.ozlabs.org; Wed, 10 Feb 2010 20:55:43 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NfOCK-0006lb-3q for qemu-devel@nongnu.org; Wed, 10 Feb 2010 20:50:28 -0500 Received: from [199.232.76.173] (port=57709 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NfOCJ-0006l3-BQ for qemu-devel@nongnu.org; Wed, 10 Feb 2010 20:50:27 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1NfOCC-0001Du-UG for qemu-devel@nongnu.org; Wed, 10 Feb 2010 20:50:26 -0500 Received: from mx1.redhat.com ([209.132.183.28]:56044) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NfOCB-0001DT-Qq for qemu-devel@nongnu.org; Wed, 10 Feb 2010 20:50:20 -0500 Received: from int-mx08.intmail.prod.int.phx2.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id o1B1oIrX026145 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 10 Feb 2010 20:50:18 -0500 Received: from localhost (vpn-10-105.rdu.redhat.com [10.11.10.105]) by int-mx08.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id o1B1oGgT027733; Wed, 10 Feb 2010 20:50:17 -0500 From: Luiz Capitulino To: qemu-devel@nongnu.org Date: Wed, 10 Feb 2010 23:49:48 -0200 Message-Id: <1265853007-27300-3-git-send-email-lcapitulino@redhat.com> In-Reply-To: <1265853007-27300-1-git-send-email-lcapitulino@redhat.com> References: <1265853007-27300-1-git-send-email-lcapitulino@redhat.com> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.21 X-detected-operating-system: by monty-python.gnu.org: Genre and OS details not recognized. Cc: armbru@redhat.com Subject: [Qemu-devel] [PATCH 02/21] Monitor: Convert simple handlers to cmd_new_ret() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org The following handlers always succeed and hence can be converted to cmd_new_ret() in the same commit. - do_stop() - do_quit() - do_system_reset() - do_system_powerdown() - do_migrate_cancel() - do_qmp_capabilities() - do_migrate_set_speed() - do_migrate_set_downtime() Signed-off-by: Luiz Capitulino --- migration.c | 14 ++++++++++---- migration.h | 8 ++++---- monitor.c | 22 ++++++++++++++-------- qemu-monitor.hx | 16 ++++++++-------- 4 files changed, 36 insertions(+), 24 deletions(-) diff --git a/migration.c b/migration.c index 2320c5f..557bec4 100644 --- a/migration.c +++ b/migration.c @@ -98,15 +98,17 @@ void do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data) } } -void do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data) +int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data) { MigrationState *s = current_migration; if (s) s->cancel(s); + + return 0; } -void do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret_data) +int do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret_data) { double d; FdMigrationState *s; @@ -119,6 +121,8 @@ void do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret_data) if (s && s->file) { qemu_file_set_rate_limit(s->file, max_throttle); } + + return 0; } /* amount of nanoseconds we are willing to wait for migration to be down. @@ -132,14 +136,16 @@ uint64_t migrate_max_downtime(void) return max_downtime; } -void do_migrate_set_downtime(Monitor *mon, const QDict *qdict, - QObject **ret_data) +int do_migrate_set_downtime(Monitor *mon, const QDict *qdict, + QObject **ret_data) { double d; d = qdict_get_double(qdict, "value") * 1e9; d = MAX(0, MIN(UINT64_MAX, d)); max_downtime = (uint64_t)d; + + return 0; } static void migrate_print_status(Monitor *mon, const char *name, diff --git a/migration.h b/migration.h index 65572c1..9345d97 100644 --- a/migration.h +++ b/migration.h @@ -54,14 +54,14 @@ void qemu_start_incoming_migration(const char *uri); void do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data); -void do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data); +int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data); -void do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret_data); +int do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret_data); uint64_t migrate_max_downtime(void); -void do_migrate_set_downtime(Monitor *mon, const QDict *qdict, - QObject **ret_data); +int do_migrate_set_downtime(Monitor *mon, const QDict *qdict, + QObject **ret_data); void do_info_migrate_print(Monitor *mon, const QObject *data); diff --git a/monitor.c b/monitor.c index 63c62fb..c1e0af8 100644 --- a/monitor.c +++ b/monitor.c @@ -417,13 +417,15 @@ void monitor_protocol_event(MonitorEvent event, QObject *data) QDECREF(qmp); } -static void do_qmp_capabilities(Monitor *mon, const QDict *params, - QObject **ret_data) +static int do_qmp_capabilities(Monitor *mon, const QDict *params, + QObject **ret_data) { /* Will setup QMP capabilities in the future */ if (monitor_ctrl_mode(mon)) { mon->mc->command_mode = 1; } + + return 0; } static int compare_cmd(const char *name, const char *list) @@ -962,9 +964,10 @@ static void do_info_cpu_stats(Monitor *mon) /** * do_quit(): Quit QEMU execution */ -static void do_quit(Monitor *mon, const QDict *qdict, QObject **ret_data) +static int do_quit(Monitor *mon, const QDict *qdict, QObject **ret_data) { exit(0); + return 0; } static int eject_device(Monitor *mon, BlockDriverState *bs, int force) @@ -1129,9 +1132,10 @@ static void do_singlestep(Monitor *mon, const QDict *qdict) /** * do_stop(): Stop VM execution */ -static void do_stop(Monitor *mon, const QDict *qdict, QObject **ret_data) +static int do_stop(Monitor *mon, const QDict *qdict, QObject **ret_data) { vm_stop(EXCP_INTERRUPT); + return 0; } static void encrypted_bdrv_it(void *opaque, BlockDriverState *bs); @@ -1829,19 +1833,21 @@ static void do_boot_set(Monitor *mon, const QDict *qdict) /** * do_system_reset(): Issue a machine reset */ -static void do_system_reset(Monitor *mon, const QDict *qdict, - QObject **ret_data) +static int do_system_reset(Monitor *mon, const QDict *qdict, + QObject **ret_data) { qemu_system_reset_request(); + return 0; } /** * do_system_powerdown(): Issue a machine powerdown */ -static void do_system_powerdown(Monitor *mon, const QDict *qdict, - QObject **ret_data) +static int do_system_powerdown(Monitor *mon, const QDict *qdict, + QObject **ret_data) { qemu_system_powerdown_request(); + return 0; } #if defined(TARGET_I386) diff --git a/qemu-monitor.hx b/qemu-monitor.hx index 7f9d261..8e51df0 100644 --- a/qemu-monitor.hx +++ b/qemu-monitor.hx @@ -123,7 +123,7 @@ ETEXI .params = "", .help = "quit the emulator", .user_print = monitor_user_noop, - .mhandler.cmd_new = do_quit, + .cmd_new_ret = do_quit, }, STEXI @@ -303,7 +303,7 @@ ETEXI .params = "", .help = "stop emulation", .user_print = monitor_user_noop, - .mhandler.cmd_new = do_stop, + .cmd_new_ret = do_stop, }, STEXI @@ -494,7 +494,7 @@ ETEXI .params = "", .help = "reset the system", .user_print = monitor_user_noop, - .mhandler.cmd_new = do_system_reset, + .cmd_new_ret = do_system_reset, }, STEXI @@ -510,7 +510,7 @@ ETEXI .params = "", .help = "send system power down event", .user_print = monitor_user_noop, - .mhandler.cmd_new = do_system_powerdown, + .cmd_new_ret = do_system_powerdown, }, STEXI @@ -791,7 +791,7 @@ ETEXI .params = "", .help = "cancel the current VM migration", .user_print = monitor_user_noop, - .mhandler.cmd_new = do_migrate_cancel, + .cmd_new_ret = do_migrate_cancel, }, STEXI @@ -806,7 +806,7 @@ ETEXI .params = "value", .help = "set maximum speed (in bytes) for migrations", .user_print = monitor_user_noop, - .mhandler.cmd_new = do_migrate_set_speed, + .cmd_new_ret = do_migrate_set_speed, }, STEXI @@ -821,7 +821,7 @@ ETEXI .params = "value", .help = "set maximum tolerated downtime (in seconds) for migrations", .user_print = monitor_user_noop, - .mhandler.cmd_new = do_migrate_set_downtime, + .cmd_new_ret = do_migrate_set_downtime, }, STEXI @@ -1132,7 +1132,7 @@ ETEXI .params = "", .help = "enable QMP capabilities", .user_print = monitor_user_noop, - .mhandler.cmd_new = do_qmp_capabilities, + .cmd_new_ret = do_qmp_capabilities, }, STEXI