All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: Luiz Capitulino <lcapitulino@redhat.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, aliguori@us.ibm.com, armbru@redhat.com
Subject: Re: [Qemu-devel] [PATCH 17/21] qapi: Convert query-commands
Date: Thu, 29 Sep 2011 14:25:54 -0500	[thread overview]
Message-ID: <0Ln8L7-1QfovG2jb3-00hEkd@mrelay.perfora.net> (raw)
In-Reply-To: <1317221085-5825-18-git-send-email-lcapitulino@redhat.com>

Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Tested-by: Michael Roth <mdroth@linux.vnet.ibm.com>

On Wed, 28 Sep 2011 11:44:41 -0300, Luiz Capitulino <lcapitulino@redhat.com> wrote:
> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> ---
>  monitor.c        |   40 +++++++++++++++-------------------------
>  qapi-schema.json |   23 +++++++++++++++++++++++
>  qmp-commands.hx  |    6 ++++++
>  3 files changed, 44 insertions(+), 25 deletions(-)
> 
> diff --git a/monitor.c b/monitor.c
> index 66b3004..d546bad 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -730,39 +730,37 @@ help:
>      help_cmd(mon, "info");
>  }
> 
> -static QObject *get_cmd_dict(const char *name)
> +static CommandInfoList *alloc_cmd_entry(const char *cmd_name)
>  {
> -    const char *p;
> +    CommandInfoList *info;
> 
> -    /* Remove '|' from some commands */
> -    p = strchr(name, '|');
> -    if (p) {
> -        p++;
> -    } else {
> -        p = name;
> -    }
> +    info = g_malloc0(sizeof(*info));
> +    info->value = g_malloc0(sizeof(*info->value));
> +    info->value->name = g_strdup(cmd_name);
> 
> -    return qobject_from_jsonf("{ 'name': %s }", p);
> +    return info;
>  }
> 
> -static void do_info_commands(Monitor *mon, QObject **ret_data)
> +CommandInfoList *qmp_query_commands(Error **errp)
>  {
> -    QList *cmd_list;
> +    CommandInfoList *info, *cmd_list = NULL;
>      const mon_cmd_t *cmd;
> 
> -    cmd_list = qlist_new();
> -
>      for (cmd = qmp_cmds; cmd->name != NULL; cmd++) {
> -        qlist_append_obj(cmd_list, get_cmd_dict(cmd->name));
> +        info = alloc_cmd_entry(cmd->name);
> +        info->next = cmd_list;
> +        cmd_list = info;
>      }
> 
>      for (cmd = qmp_query_cmds; cmd->name != NULL; cmd++) {
>          char buf[128];
>          snprintf(buf, sizeof(buf), "query-%s", cmd->name);
> -        qlist_append_obj(cmd_list, get_cmd_dict(buf));
> +        info = alloc_cmd_entry(buf);
> +        info->next = cmd_list;
> +        cmd_list = info;
>      }
> 
> -    *ret_data = QOBJECT(cmd_list);
> +    return cmd_list;
>  }
> 
>  /* get the current CPU defined by the user */
> @@ -3051,14 +3049,6 @@ static const mon_cmd_t qmp_cmds[] = {
> 
>  static const mon_cmd_t qmp_query_cmds[] = {
>      {
> -        .name       = "commands",
> -        .args_type  = "",
> -        .params     = "",
> -        .help       = "list QMP available commands",
> -        .user_print = monitor_user_noop,
> -        .mhandler.info_new = do_info_commands,
> -    },
> -    {
>          .name       = "block",
>          .args_type  = "",
>          .params     = "",
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 2ebcb1c..b26dd25 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -202,3 +202,26 @@
>  # Since: 0.14.0
>  ##
>  { 'command': 'query-chardev', 'returns': ['ChardevInfo'] }
> +
> +##
> +# @CommandInfo:
> +#
> +# Information about a QMP command
> +#
> +# @name: The command name
> +#
> +# Since: 0.14.0
> +##
> +{ 'type': 'CommandInfo', 'data': {'name': 'str'} }
> +
> +##
> +# @query-commands:
> +#
> +# Return a list of supported QMP commands by this server
> +#
> +# Returns: A list of @CommandInfo for all supported commands
> +#
> +# Since: 0.14.0
> +##
> +{ 'command': 'query-commands', 'returns': ['CommandInfo'] }
> +
> diff --git a/qmp-commands.hx b/qmp-commands.hx
> index dfc02af..0fda5c3 100644
> --- a/qmp-commands.hx
> +++ b/qmp-commands.hx
> @@ -1090,6 +1090,12 @@ Note: This example has been shortened as the real response is too long.
> 
>  EQMP
> 
> +    {
> +        .name       = "query-commands",
> +        .args_type  = "",
> +        .mhandler.cmd_new = qmp_marshal_input_query_commands,
> +    },
> +
>  SQMP
>  query-chardev
>  -------------
> -- 
> 1.7.7.rc0.72.g4b5ea
> 

-- 
Sincerely,
Mike Roth
IBM Linux Technology Center

  reply	other threads:[~2011-09-29 19:26 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
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 [this message]
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=0Ln8L7-1QfovG2jb3-00hEkd@mrelay.perfora.net \
    --to=mdroth@linux.vnet.ibm.com \
    --cc=aliguori@us.ibm.com \
    --cc=armbru@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lcapitulino@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.