mirror of https://github.com/xqemu/xqemu.git
qapi: Convert query-commands
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
c5a415a0af
commit
aa9b79bcd8
40
monitor.c
40
monitor.c
|
@ -731,39 +731,37 @@ help:
|
||||||
help_cmd(mon, "info");
|
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 */
|
info = g_malloc0(sizeof(*info));
|
||||||
p = strchr(name, '|');
|
info->value = g_malloc0(sizeof(*info->value));
|
||||||
if (p) {
|
info->value->name = g_strdup(cmd_name);
|
||||||
p++;
|
|
||||||
} else {
|
|
||||||
p = 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;
|
const mon_cmd_t *cmd;
|
||||||
|
|
||||||
cmd_list = qlist_new();
|
|
||||||
|
|
||||||
for (cmd = qmp_cmds; cmd->name != NULL; cmd++) {
|
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++) {
|
for (cmd = qmp_query_cmds; cmd->name != NULL; cmd++) {
|
||||||
char buf[128];
|
char buf[128];
|
||||||
snprintf(buf, sizeof(buf), "query-%s", cmd->name);
|
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 */
|
/* get the current CPU defined by the user */
|
||||||
|
@ -3063,14 +3061,6 @@ static const mon_cmd_t qmp_cmds[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static const mon_cmd_t qmp_query_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",
|
.name = "block",
|
||||||
.args_type = "",
|
.args_type = "",
|
||||||
|
|
|
@ -202,3 +202,26 @@
|
||||||
# Since: 0.14.0
|
# Since: 0.14.0
|
||||||
##
|
##
|
||||||
{ 'command': 'query-chardev', 'returns': ['ChardevInfo'] }
|
{ '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'] }
|
||||||
|
|
||||||
|
|
|
@ -1090,6 +1090,12 @@ Note: This example has been shortened as the real response is too long.
|
||||||
|
|
||||||
EQMP
|
EQMP
|
||||||
|
|
||||||
|
{
|
||||||
|
.name = "query-commands",
|
||||||
|
.args_type = "",
|
||||||
|
.mhandler.cmd_new = qmp_marshal_input_query_commands,
|
||||||
|
},
|
||||||
|
|
||||||
SQMP
|
SQMP
|
||||||
query-chardev
|
query-chardev
|
||||||
-------------
|
-------------
|
||||||
|
|
Loading…
Reference in New Issue