From: Luiz Capitulino <lcapitulino@redhat.com>
To: qemu-devel@nongnu.org
Cc: armbru@redhat.com
Subject: [Qemu-devel] [PATCH 02/21] Monitor: Convert simple handlers to cmd_new_ret()
Date: Wed, 10 Feb 2010 23:49:48 -0200 [thread overview]
Message-ID: <1265853007-27300-3-git-send-email-lcapitulino@redhat.com> (raw)
In-Reply-To: <1265853007-27300-1-git-send-email-lcapitulino@redhat.com>
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 <lcapitulino@redhat.com>
---
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
--
1.6.6
next prev parent reply other threads:[~2010-02-11 1:50 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-11 1:49 [Qemu-devel] [PATCH v0 00/21]: Monitor: improve handlers error handling Luiz Capitulino
2010-02-11 1:49 ` [Qemu-devel] [PATCH 01/21] Monitor: Introduce cmd_new_ret() Luiz Capitulino
2010-02-19 21:28 ` Anthony Liguori
2010-02-11 1:49 ` Luiz Capitulino [this message]
2010-02-11 1:49 ` [Qemu-devel] [PATCH 03/21] Monitor: Convert do_cont() to cmd_new_ret() Luiz Capitulino
2010-02-11 1:49 ` [Qemu-devel] [PATCH 04/21] Monitor: Convert do_eject() " Luiz Capitulino
2010-02-11 1:49 ` [Qemu-devel] [PATCH 05/21] Monitor: Convert do_cpu_set() " Luiz Capitulino
2010-02-11 1:49 ` [Qemu-devel] [PATCH 06/21] Monitor: Convert do_block_set_passwd() " Luiz Capitulino
2010-02-11 1:49 ` [Qemu-devel] [PATCH 07/21] Monitor: Convert do_getfd() " Luiz Capitulino
2010-02-11 1:49 ` [Qemu-devel] [PATCH 08/21] Monitor: Convert do_closefd() " Luiz Capitulino
2010-02-11 1:49 ` [Qemu-devel] [PATCH 09/21] Monitor: Convert pci_device_hot_add() " Luiz Capitulino
2010-02-11 1:49 ` [Qemu-devel] [PATCH 10/21] Monitor: Convert pci_device_hot_remove() " Luiz Capitulino
2010-02-11 1:49 ` [Qemu-devel] [PATCH 11/21] Monitor: Convert do_migrate() " Luiz Capitulino
2010-02-11 1:49 ` [Qemu-devel] [PATCH 12/21] Monitor: Convert do_memory_save() " Luiz Capitulino
2010-02-11 1:49 ` [Qemu-devel] [PATCH 13/21] Monitor: Convert do_physical_memory_save() " Luiz Capitulino
2010-02-11 1:50 ` [Qemu-devel] [PATCH 14/21] Monitor: Convert do_info() " Luiz Capitulino
2010-02-11 1:50 ` [Qemu-devel] [PATCH 15/21] Monitor: Convert do_change() " Luiz Capitulino
2010-02-11 1:50 ` [Qemu-devel] [PATCH 16/21] Monitor: Rename cmd_new_ret() Luiz Capitulino
2010-02-11 1:50 ` [Qemu-devel] [PATCH 17/21] Monitor: Debugging support Luiz Capitulino
2010-02-11 1:50 ` [Qemu-devel] [PATCH 18/21] Monitor: Drop the print disabling mechanism Luiz Capitulino
2010-02-11 1:50 ` [Qemu-devel] [PATCH 19/21] Monitor: Audit handler return Luiz Capitulino
2010-02-11 1:50 ` [Qemu-devel] [PATCH 20/21] Monitor: Debug stray prints the right way Luiz Capitulino
2010-02-11 1:50 ` [Qemu-devel] [PATCH 21/21] Monitor: Report more than one error in handlers Luiz Capitulino
2010-02-11 8:58 ` [Qemu-devel] [PATCH v0 00/21]: Monitor: improve handlers error handling Markus Armbruster
2010-02-11 11:48 ` Luiz Capitulino
2010-02-11 12:21 ` Markus Armbruster
2010-02-11 14:04 ` Anthony Liguori
2010-02-11 15:27 ` Markus Armbruster
2010-02-11 16:00 ` Luiz Capitulino
2010-02-11 16:12 ` Anthony Liguori
2010-02-11 16:57 ` Markus Armbruster
2010-02-11 17:17 ` Anthony Liguori
2010-02-12 10:04 ` Markus Armbruster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1265853007-27300-3-git-send-email-lcapitulino@redhat.com \
--to=lcapitulino@redhat.com \
--cc=armbru@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).