monitor: Convert do_info_version() to QObject
The returned data is always a QString. Also introduces monitor_print_qobject(), which can be used as a standard way to print QObjects in the user protocol format. Patchworks-ID: 35350 Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
83fb1de2bb
commit
ab2d318762
28
monitor.c
28
monitor.c
|
@ -223,6 +223,24 @@ static inline int monitor_handler_ported(const mon_cmd_t *cmd)
|
||||||
return cmd->user_print != NULL;
|
return cmd->user_print != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void monitor_print_qobject(Monitor *mon, const QObject *data)
|
||||||
|
{
|
||||||
|
switch (qobject_type(data)) {
|
||||||
|
case QTYPE_QSTRING:
|
||||||
|
monitor_printf(mon, "%s",qstring_get_str(qobject_to_qstring(data)));
|
||||||
|
break;
|
||||||
|
case QTYPE_QINT:
|
||||||
|
monitor_printf(mon, "%" PRId64,qint_get_int(qobject_to_qint(data)));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
monitor_printf(mon, "ERROR: unsupported type: %d",
|
||||||
|
qobject_type(data));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
monitor_puts(mon, "\n");
|
||||||
|
}
|
||||||
|
|
||||||
static int compare_cmd(const char *name, const char *list)
|
static int compare_cmd(const char *name, const char *list)
|
||||||
{
|
{
|
||||||
const char *p, *pstart;
|
const char *p, *pstart;
|
||||||
|
@ -322,9 +340,12 @@ help:
|
||||||
help_cmd(mon, "info");
|
help_cmd(mon, "info");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void do_info_version(Monitor *mon)
|
/**
|
||||||
|
* do_info_version(): Show QEMU version
|
||||||
|
*/
|
||||||
|
static void do_info_version(Monitor *mon, QObject **ret_data)
|
||||||
{
|
{
|
||||||
monitor_printf(mon, "%s\n", QEMU_VERSION QEMU_PKGVERSION);
|
*ret_data = QOBJECT(qstring_from_str(QEMU_VERSION QEMU_PKGVERSION));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void do_info_name(Monitor *mon)
|
static void do_info_name(Monitor *mon)
|
||||||
|
@ -1860,7 +1881,8 @@ static const mon_cmd_t info_cmds[] = {
|
||||||
.args_type = "",
|
.args_type = "",
|
||||||
.params = "",
|
.params = "",
|
||||||
.help = "show the version of QEMU",
|
.help = "show the version of QEMU",
|
||||||
.mhandler.info = do_info_version,
|
.user_print = monitor_print_qobject,
|
||||||
|
.mhandler.info_new = do_info_version,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.name = "network",
|
.name = "network",
|
||||||
|
|
Loading…
Reference in a new issue