[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 7/9] qmp: expose a command to query capabilities
From: |
Anthony Liguori |
Subject: |
Re: [Qemu-devel] [PATCH 7/9] qmp: expose a command to query capabilities of config parser |
Date: |
Mon, 19 Mar 2012 15:19:27 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2 |
On 03/19/2012 03:10 PM, Eric Blake wrote:
On 03/19/2012 09:09 AM, Anthony Liguori wrote:
Signed-off-by: Anthony Liguori<address@hidden>
---
qapi-schema.json | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
qemu-config.c | 51 +++++++++++++++++++++++++++++++++++++++++
qmp-commands.hx | 5 ++++
3 files changed, 122 insertions(+), 0 deletions(-)
diff --git a/qapi-schema.json b/qapi-schema.json
index 04fa84f..2a80ef6 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -1663,3 +1663,69 @@
{ 'command': 'qom-list-types',
'data': { '*implements': 'str', '*abstract': 'bool' },
'returns': [ 'ObjectTypeInfo' ] }
+
+##
+# @ConfigOptionType
+#
+# An enumeration describing the type of a configuration file entry.
+#
+# @string: a UTF-8 string
+#
+# @bool: either 'on' or 'off'
+#
+# @number: an integer
+#
+# @size: an integer followed by either 'K', 'M', 'G', or 'T'.
Not quite - I found three different parsers, but none of them match this
description.
Heh, I was going by the documentation in the code:
QEMU_OPT_SIZE, /* size, accepts (K)ilo, (M)ega, (G)iga, (T)era
postfix */
That is, qemu-option.c:parse_option_size() supports 'k'
and 'b', as well as omitting a suffix, but does not support 'm'.
TBH, I'd prefer to not document 'k' and 'b' and explicitly document that the
suffix is optional and bytes is implied (which I thought was implied in my
documentation, but I can see that it may not be).
I'd rather we support officially support one way of doing things and if we
support more, do it under the mantra of being liberal in what we accept.
Then
there's cmd.c:cvtnum(), which is case-insensitive, and adds 'p' and 'e',
but omits 'b'. Then there's the 'o' type in monitor.c that defers to
cutils.c:strtosz(), which defaults to bytes but is case-insensitive and
supports 'b' but not 'p'. Why are we using three different parsers, anyway?
Yes, I am aware of that, and yes, I'm going to fix it. One bit at a time
though.
Please be sure that your documentation exactly matches the code used by
the particular parser used for 'size', since it is is already confusing
as-is.
Let's be careful about documenting what is the officially supported interface
and what is possible with the given state of the code.
+#
+# @help: an optional help description. This should not be parsed or relied
upon
+# in any way. Its content's may change in future versions of QEMU.
s/content's/contents/
Ack.
Regards,
Anthony Liguori
- [Qemu-devel] [RFC PATCH 0/9] qemu capabilities reporting and config changes, Anthony Liguori, 2012/03/19
- [Qemu-devel] [PATCH 5/9] vl: enable system configuration to be used, Anthony Liguori, 2012/03/19
- [Qemu-devel] [PATCH 1/9] qemu-config: fix -writeconfig when using qemu_opt_set_bool, Anthony Liguori, 2012/03/19
- [Qemu-devel] [PATCH 2/9] qemu-config: friends don't let friends use sscanf, Anthony Liguori, 2012/03/19
- [Qemu-devel] [PATCH 4/9] vl: mark system configuration options in qemu-options.hx, Anthony Liguori, 2012/03/19
- [Qemu-devel] [PATCH 3/9] vl: refactor command line parsing to allow options to be set via config, Anthony Liguori, 2012/03/19
- [Qemu-devel] [PATCH 7/9] qmp: expose a command to query capabilities of config parser, Anthony Liguori, 2012/03/19
[Qemu-devel] [PATCH 9/9] Add a management tool writer's guide, Anthony Liguori, 2012/03/19
[Qemu-devel] [PATCH 6/9] vl: parse all options via QemuOpts, Anthony Liguori, 2012/03/19
[Qemu-devel] [PATCH 8/9] vl: add -query-capabilities, Anthony Liguori, 2012/03/19
Re: [Qemu-devel] [RFC PATCH 0/9] qemu capabilities reporting and config changes, Paolo Bonzini, 2012/03/19