qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@us.ibm.com>
To: Luiz Capitulino <lcapitulino@redhat.com>
Cc: kwolf@redhat.com, armbru@redhat.com, qemu-devel@nongnu.org,
	mdroth@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH 12/21] qapi: Convert query-version
Date: Thu, 29 Sep 2011 07:54:57 -0500	[thread overview]
Message-ID: <4E846AA1.2020000@us.ibm.com> (raw)
In-Reply-To: <1317221085-5825-13-git-send-email-lcapitulino@redhat.com>

On 09/28/2011 09:44 AM, Luiz Capitulino wrote:
> The original conversion was done by Anthony Liguori. This commit
> is just a rebase.

For all of the rest of the patches, you can add my Signed-off-by: before your 
SoB.  Then you don't need to have the disclaimer in the commit message.

Regards,

Anthony Liguori

>
> 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;
> +}

  reply	other threads:[~2011-09-29 12:55 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 ` [Qemu-devel] [PATCH 12/21] qapi: Convert query-version Luiz Capitulino
2011-09-29 12:54   ` Anthony Liguori [this message]
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=4E846AA1.2020000@us.ibm.com \
    --to=aliguori@us.ibm.com \
    --cc=armbru@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lcapitulino@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).