[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 17/21] qapi: Convert query-commands
From: |
Michael Roth |
Subject: |
Re: [Qemu-devel] [PATCH 17/21] qapi: Convert query-commands |
Date: |
Thu, 29 Sep 2011 14:25:54 -0500 |
Reviewed-by: Michael Roth <address@hidden>
Tested-by: Michael Roth <address@hidden>
On Wed, 28 Sep 2011 11:44:41 -0300, Luiz Capitulino <address@hidden> wrote:
> Signed-off-by: Luiz Capitulino <address@hidden>
> ---
> 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
- [Qemu-devel] [PATCH 11/21] qapi: convert query-name, (continued)
- [Qemu-devel] [PATCH 16/21] qapi: Convert query-chardev, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 06/21] qapi: dealloc visitor, fix premature free and iteration logic, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 17/21] qapi: Convert query-commands, Luiz Capitulino, 2011/09/28
- Re: [Qemu-devel] [PATCH 17/21] qapi: Convert query-commands,
Michael Roth <=
- [Qemu-devel] [PATCH 21/21] qapi: Convert system_powerdown, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 13/21] qapi: Convert query-kvm, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 14/21] qapi: Convert query-status, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 18/21] qapi: Convert quit, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 15/21] qapi: Convert query-uuid, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 19/21] qapi: Convert stop, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 10/21] qapi: modify visitor code generation for list iteration, Luiz Capitulino, 2011/09/28
- [Qemu-devel] [PATCH 20/21] qapi: Convert system_reset, Luiz Capitulino, 2011/09/28