From: Amos Kong <akong@redhat.com>
To: qemu-devel@nongnu.org
Cc: libvirt-list@redhat.com, armbru@redhat.com,
anthony@codemonkey.ws, pbonzini@redhat.com, afaerber@suse.de
Subject: [Qemu-devel] [PATCH v6 2/3] query-command-line-options: expose implicit parameter name
Date: Thu, 27 Mar 2014 14:57:02 +0800 [thread overview]
Message-ID: <1395903423-19975-3-git-send-email-akong@redhat.com> (raw)
In-Reply-To: <1395903423-19975-1-git-send-email-akong@redhat.com>
This patch added a new field to expose implicit parameter name,
we make it optional for compatibility.
Suggested-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Amos Kong <akong@redhat.com>
---
qapi-schema.json | 6 +++++-
util/qemu-config.c | 24 +++++++++++++++---------
2 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/qapi-schema.json b/qapi-schema.json
index 391356f..9341033 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -4088,12 +4088,16 @@
#
# @help: #optional human readable text string, not suitable for parsing.
#
+# @implied-name: #optional, if present and true, the parameter can be
+# specified as '-option value' instead of the preferred
+# spelling of '-option name=value' (since 2.1)
+#
# Since 1.5
##
{ 'type': 'CommandLineParameterInfo',
'data': { 'name': 'str',
'type': 'CommandLineParameterType',
- '*help': 'str' } }
+ '*help': 'str', '*implied-name': 'bool' } }
##
# @CommandLineOptionInfo:
diff --git a/util/qemu-config.c b/util/qemu-config.c
index 508adbc..85bb0c8 100644
--- a/util/qemu-config.c
+++ b/util/qemu-config.c
@@ -39,17 +39,23 @@ QemuOptsList *qemu_find_opts(const char *group)
return ret;
}
-static CommandLineParameterInfoList *get_param_info(const QemuOptDesc *desc)
+static CommandLineParameterInfoList *get_param_info(const QemuOptsList *list)
{
CommandLineParameterInfoList *param_list = NULL, *entry;
CommandLineParameterInfo *info;
int i;
- for (i = 0; desc[i].name != NULL; i++) {
+ for (i = 0; list->desc[i].name != NULL; i++) {
info = g_malloc0(sizeof(*info));
- info->name = g_strdup(desc[i].name);
+ info->name = g_strdup(list->desc[i].name);
- switch (desc[i].type) {
+ info->has_implied_name = true;
+ if (list->implied_opt_name && !strcmp(list->desc[i].name,
+ list->implied_opt_name)) {
+ info->implied_name = true;
+ }
+
+ switch (list->desc[i].type) {
case QEMU_OPT_STRING:
info->type = COMMAND_LINE_PARAMETER_TYPE_STRING;
break;
@@ -64,9 +70,9 @@ static CommandLineParameterInfoList *get_param_info(const QemuOptDesc *desc)
break;
}
- if (desc[i].help) {
+ if (list->desc[i].help) {
info->has_help = true;
- info->help = g_strdup(desc[i].help);
+ info->help = g_strdup(list->desc[i].help);
}
entry = g_malloc0(sizeof(*entry));
@@ -120,9 +126,9 @@ static CommandLineParameterInfoList *get_drive_infolist(void)
for (i = 0; drive_config_groups[i] != NULL; i++) {
if (!head) {
- head = get_param_info(drive_config_groups[i]->desc);
+ head = get_param_info(drive_config_groups[i]);
} else {
- cur = get_param_info(drive_config_groups[i]->desc);
+ cur = get_param_info(drive_config_groups[i]);
connect_infolist(head, cur);
}
}
@@ -147,7 +153,7 @@ CommandLineOptionInfoList *qmp_query_command_line_options(bool has_option,
info->parameters = get_drive_infolist();
} else {
info->parameters =
- get_param_info(vm_config_groups[i]->desc);
+ get_param_info(vm_config_groups[i]);
}
entry = g_malloc0(sizeof(*entry));
entry->value = info;
--
1.8.5.3
next prev parent reply other threads:[~2014-03-27 6:57 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-27 6:57 [Qemu-devel] [PATCH v6 0/3] fix query-command-line-options Amos Kong
2014-03-27 6:57 ` [Qemu-devel] [PATCH v6 1/3] qmp: rename query_option_descs() to get_param_info() Amos Kong
2014-03-27 6:57 ` Amos Kong [this message]
2014-03-27 6:57 ` [Qemu-devel] [PATCH v6 3/3] query-command-line-options: query all the options in qemu-options.hx Amos Kong
2014-03-27 7:16 ` [Qemu-devel] [PATCH v6 0/3] fix query-command-line-options Amos Kong
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=1395903423-19975-3-git-send-email-akong@redhat.com \
--to=akong@redhat.com \
--cc=afaerber@suse.de \
--cc=anthony@codemonkey.ws \
--cc=armbru@redhat.com \
--cc=libvirt-list@redhat.com \
--cc=pbonzini@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 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).