From: Luiz Capitulino <lcapitulino@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, aliguori@us.ibm.com, mdroth@linux.vnet.ibm.com,
armbru@redhat.com
Subject: [Qemu-devel] [PATCH 12/21] qapi: Convert query-version
Date: Wed, 28 Sep 2011 11:44:36 -0300 [thread overview]
Message-ID: <1317221085-5825-13-git-send-email-lcapitulino@redhat.com> (raw)
In-Reply-To: <1317221085-5825-1-git-send-email-lcapitulino@redhat.com>
The original conversion was done by Anthony Liguori. This commit
is just a rebase.
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
---
hmp.c | 13 +++++++++++++
hmp.h | 1 +
monitor.c | 46 +++-------------------------------------------
qapi-schema.json | 37 +++++++++++++++++++++++++++++++++++++
qmp-commands.hx | 6 ++++++
qmp.c | 16 ++++++++++++++++
6 files changed, 76 insertions(+), 43 deletions(-)
diff --git a/hmp.c b/hmp.c
index 47e1ff7..bb6c86f 100644
--- a/hmp.c
+++ b/hmp.c
@@ -24,3 +24,16 @@ void hmp_info_name(Monitor *mon)
}
qapi_free_NameInfo(info);
}
+
+void hmp_info_version(Monitor *mon)
+{
+ VersionInfo *info;
+
+ info = qmp_query_version(NULL);
+
+ monitor_printf(mon, "%" PRId64 ".%" PRId64 ".%" PRId64 "%s\n",
+ info->qemu.major, info->qemu.minor, info->qemu.micro,
+ info->package);
+
+ qapi_free_VersionInfo(info);
+}
diff --git a/hmp.h b/hmp.h
index 5fe73f1..2aa75a2 100644
--- a/hmp.h
+++ b/hmp.h
@@ -18,5 +18,6 @@
#include "qapi-types.h"
void hmp_info_name(Monitor *mon);
+void hmp_info_version(Monitor *mon);
#endif
diff --git a/monitor.c b/monitor.c
index 8af0e27..9edc38c 100644
--- a/monitor.c
+++ b/monitor.c
@@ -730,37 +730,6 @@ help:
help_cmd(mon, "info");
}
-static void do_info_version_print(Monitor *mon, const QObject *data)
-{
- QDict *qdict;
- QDict *qemu;
-
- qdict = qobject_to_qdict(data);
- qemu = qdict_get_qdict(qdict, "qemu");
-
- monitor_printf(mon, "%" PRId64 ".%" PRId64 ".%" PRId64 "%s\n",
- qdict_get_int(qemu, "major"),
- qdict_get_int(qemu, "minor"),
- qdict_get_int(qemu, "micro"),
- qdict_get_str(qdict, "package"));
-}
-
-static void do_info_version(Monitor *mon, QObject **ret_data)
-{
- const char *version = QEMU_VERSION;
- int major = 0, minor = 0, micro = 0;
- char *tmp;
-
- major = strtol(version, &tmp, 10);
- tmp++;
- minor = strtol(tmp, &tmp, 10);
- tmp++;
- micro = strtol(tmp, &tmp, 10);
-
- *ret_data = qobject_from_jsonf("{ 'qemu': { 'major': %d, 'minor': %d, \
- 'micro': %d }, 'package': %s }", major, minor, micro, QEMU_PKGVERSION);
-}
-
static QObject *get_cmd_dict(const char *name)
{
const char *p;
@@ -2866,8 +2835,7 @@ static const mon_cmd_t info_cmds[] = {
.args_type = "",
.params = "",
.help = "show the version of QEMU",
- .user_print = do_info_version_print,
- .mhandler.info_new = do_info_version,
+ .mhandler.info = hmp_info_version,
},
{
.name = "network",
@@ -3159,14 +3127,6 @@ static const mon_cmd_t qmp_cmds[] = {
static const mon_cmd_t qmp_query_cmds[] = {
{
- .name = "version",
- .args_type = "",
- .params = "",
- .help = "show the version of QEMU",
- .user_print = do_info_version_print,
- .mhandler.info_new = do_info_version,
- },
- {
.name = "commands",
.args_type = "",
.params = "",
@@ -5172,9 +5132,9 @@ void monitor_resume(Monitor *mon)
static QObject *get_qmp_greeting(void)
{
- QObject *ver;
+ QObject *ver = NULL;
- do_info_version(NULL, &ver);
+ qmp_marshal_input_query_version(NULL, NULL, &ver);
return qobject_from_jsonf("{'QMP':{'version': %p,'capabilities': []}}",ver);
}
diff --git a/qapi-schema.json b/qapi-schema.json
index 3585324..3c0ac4e 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -23,3 +23,40 @@
# Since 0.14.0
##
{ 'command': 'query-name', 'returns': 'NameInfo' }
+
+##
+# @VersionInfo:
+#
+# A description of QEMU's version.
+#
+# @qemu.major: The major version of QEMU
+#
+# @qemu.minor: The minor version of QEMU
+#
+# @qemu.micro: The micro version of QEMU. By current convention, a micro
+# version of 50 signifies a development branch. A micro version
+# greater than or equal to 90 signifies a release candidate for
+# the next minor version. A micro version of less than 50
+# signifies a stable release.
+#
+# @package: QEMU will always set this field to an empty string. Downstream
+# versions of QEMU should set this to a non-empty string. The
+# exact format depends on the downstream however it highly
+# recommended that a unique name is used.
+#
+# Since: 0.14.0
+##
+{ 'type': 'VersionInfo',
+ 'data': {'qemu': {'major': 'int', 'minor': 'int', 'micro': 'int'},
+ 'package': 'str'} }
+
+##
+# @query-version:
+#
+# Returns the current version of QEMU.
+#
+# Returns: A @VersionInfo object describing the current version of QEMU.
+#
+# Since: 0.14.0
+##
+{ 'command': 'query-version', 'returns': 'VersionInfo' }
diff --git a/qmp-commands.hx b/qmp-commands.hx
index 7b3839e..9f067ea 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -1053,6 +1053,12 @@ Example:
EQMP
+ {
+ .name = "query-version",
+ .args_type = "",
+ .mhandler.cmd_new = qmp_marshal_input_query_version,
+ },
+
SQMP
query-commands
--------------
diff --git a/qmp.c b/qmp.c
index 8aa9c66..f978ea4 100644
--- a/qmp.c
+++ b/qmp.c
@@ -26,3 +26,19 @@ NameInfo *qmp_query_name(Error **errp)
return info;
}
+
+VersionInfo *qmp_query_version(Error **err)
+{
+ VersionInfo *info = g_malloc0(sizeof(*info));
+ const char *version = QEMU_VERSION;
+ char *tmp;
+
+ info->qemu.major = strtol(version, &tmp, 10);
+ tmp++;
+ info->qemu.minor = strtol(tmp, &tmp, 10);
+ tmp++;
+ info->qemu.micro = strtol(tmp, &tmp, 10);
+ info->package = g_strdup(QEMU_PKGVERSION);
+
+ return info;
+}
--
1.7.7.rc0.72.g4b5ea
next prev parent reply other threads:[~2011-09-28 14:45 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-28 14:44 [Qemu-devel] [PATCH v1 00/21]: First round of QAPI conversions Luiz Capitulino
2011-09-28 14:44 ` [Qemu-devel] [PATCH 01/21] error: let error_is_type take a NULL error Luiz Capitulino
2011-09-28 14:44 ` [Qemu-devel] [PATCH 02/21] qerror: add qerror_report_err() Luiz Capitulino
2011-09-28 14:44 ` [Qemu-devel] [PATCH 03/21] qapi: add code generation support for middle mode Luiz Capitulino
2011-09-28 14:44 ` [Qemu-devel] [PATCH 04/21] qapi: use middle mode in QMP server Luiz Capitulino
2011-09-28 14:44 ` [Qemu-devel] [PATCH 05/21] qapi: fixup command generation for functions that return list types Luiz Capitulino
2011-09-28 14:44 ` [Qemu-devel] [PATCH 06/21] qapi: dealloc visitor, fix premature free and iteration logic Luiz Capitulino
2011-09-29 12:49 ` Anthony Liguori
2011-09-28 14:44 ` [Qemu-devel] [PATCH 07/21] qapi: generate qapi_free_* functions for *List types Luiz Capitulino
2011-09-29 12:50 ` Anthony Liguori
2011-09-28 14:44 ` [Qemu-devel] [PATCH 08/21] qapi: add test cases for generated free functions Luiz Capitulino
2011-09-29 12:51 ` Anthony Liguori
2011-09-28 14:44 ` [Qemu-devel] [PATCH 09/21] qapi: dealloc visitor, support freeing of nested lists Luiz Capitulino
2011-09-29 12:51 ` Anthony Liguori
2011-09-28 14:44 ` [Qemu-devel] [PATCH 10/21] qapi: modify visitor code generation for list iteration Luiz Capitulino
2011-09-29 12:53 ` Anthony Liguori
2011-09-28 14:44 ` [Qemu-devel] [PATCH 11/21] qapi: convert query-name Luiz Capitulino
2011-09-28 14:44 ` Luiz Capitulino [this message]
2011-09-29 12:54 ` [Qemu-devel] [PATCH 12/21] qapi: Convert query-version Anthony Liguori
2011-09-29 14:32 ` Luiz Capitulino
2011-09-29 14:42 ` Anthony Liguori
2011-09-28 14:44 ` [Qemu-devel] [PATCH 13/21] qapi: Convert query-kvm Luiz Capitulino
2011-09-28 14:44 ` [Qemu-devel] [PATCH 14/21] qapi: Convert query-status Luiz Capitulino
2011-09-29 20:11 ` Michael Roth
2011-09-28 14:44 ` [Qemu-devel] [PATCH 15/21] qapi: Convert query-uuid Luiz Capitulino
2011-09-28 14:44 ` [Qemu-devel] [PATCH 16/21] qapi: Convert query-chardev Luiz Capitulino
2011-09-29 19:17 ` Michael Roth
2011-09-28 14:44 ` [Qemu-devel] [PATCH 17/21] qapi: Convert query-commands Luiz Capitulino
2011-09-29 19:25 ` Michael Roth
2011-09-28 14:44 ` [Qemu-devel] [PATCH 18/21] qapi: Convert quit Luiz Capitulino
2011-09-28 14:44 ` [Qemu-devel] [PATCH 19/21] qapi: Convert stop Luiz Capitulino
2011-09-28 14:44 ` [Qemu-devel] [PATCH 20/21] qapi: Convert system_reset Luiz Capitulino
2011-09-28 14:44 ` [Qemu-devel] [PATCH 21/21] qapi: Convert system_powerdown Luiz Capitulino
2011-09-29 12:55 ` [Qemu-devel] [PATCH v1 00/21]: First round of QAPI conversions Anthony Liguori
2011-09-29 13:52 ` Luiz Capitulino
2011-09-29 20:15 ` Michael Roth
2011-09-29 20:57 ` Luiz Capitulino
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=1317221085-5825-13-git-send-email-lcapitulino@redhat.com \
--to=lcapitulino@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=armbru@redhat.com \
--cc=kwolf@redhat.com \
--cc=mdroth@linux.vnet.ibm.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).