Message ID | fd91a5bb6e9a10f9b5adf332bd66953bf4a75578.1391186851.git.mkletzan@redhat.com |
---|---|
State | New |
Headers | show |
On 01/31/2014 09:49 AM, Martin Kletzander wrote: > Introduce 'query-chardev-backends' QMP command which lists all > supported character device backends. > > Signed-off-by: Martin Kletzander <mkletzan@redhat.com> > --- > v2: > - Version changed from "1.8.0" to "2.0" > > qapi-schema.json | 22 ++++++++++++++++++++++ > qemu-char.c | 19 +++++++++++++++++++ > qmp-commands.hx | 41 +++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 82 insertions(+) > + > +-> { "execute": "query-chardev-backends" } > +<- { > + "return":[ > + { > + "name":"udp", > + }, Sorry for not noticing earlier, but this is not valid JSON. Lose the trailing comma after each "name":"value", since the last element in a JSON struct is not permitted to have a comma. > + { > + "name":"tcp", > + }, > + { > + "name":"unix", > + }, > + { > + "name":"spiceport", > + } With that change to all four spots, Reviewed-by: Eric Blake <eblake@redhat.com>
On Fri, Jan 31, 2014 at 10:20:42AM -0700, Eric Blake wrote: > On 01/31/2014 09:49 AM, Martin Kletzander wrote: > > Introduce 'query-chardev-backends' QMP command which lists all > > supported character device backends. > > > > Signed-off-by: Martin Kletzander <mkletzan@redhat.com> > > --- > > v2: > > - Version changed from "1.8.0" to "2.0" > > > > qapi-schema.json | 22 ++++++++++++++++++++++ > > qemu-char.c | 19 +++++++++++++++++++ > > qmp-commands.hx | 41 +++++++++++++++++++++++++++++++++++++++++ > > 3 files changed, 82 insertions(+) > > > + > > +-> { "execute": "query-chardev-backends" } > > +<- { > > + "return":[ > > + { > > + "name":"udp", > > + }, > > Sorry for not noticing earlier, but this is not valid JSON. Lose the > trailing comma after each "name":"value", since the last element in a > JSON struct is not permitted to have a comma. > At first, I had it as a list of strings, maybe that's why I left it there by mistake, hopefully v3 will be OK. Thanks for the review, Martin > > + { > > + "name":"tcp", > > + }, > > + { > > + "name":"unix", > > + }, > > + { > > + "name":"spiceport", > > + } > > With that change to all four spots, > > Reviewed-by: Eric Blake <eblake@redhat.com> > > -- > Eric Blake eblake redhat com +1-919-301-3266 > Libvirt virtualization library http://libvirt.org >
diff --git a/qapi-schema.json b/qapi-schema.json index 05ced9d..ebd278a 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -437,6 +437,28 @@ { 'command': 'query-chardev', 'returns': ['ChardevInfo'] } ## +# @ChardevBackendInfo: +# +# Information about a character device backend +# +# @name: The backend name +# +# Since: 2.0 +## +{ 'type': 'ChardevBackendInfo', 'data': {'name': 'str'} } + +## +# @query-chardev-backends: +# +# Returns information about character device backends. +# +# Returns: a list of @ChardevBackendInfo +# +# Since: 2.0 +## +{ 'command': 'query-chardev-backends', 'returns': ['ChardevBackendInfo'] } + +## # @DataFormat: # # An enumeration of data format. diff --git a/qemu-char.c b/qemu-char.c index 30c5a6a..c88f1c4 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -3432,6 +3432,25 @@ ChardevInfoList *qmp_query_chardev(Error **errp) return chr_list; } +ChardevBackendInfoList *qmp_query_chardev_backends(Error **errp) +{ + ChardevBackendInfoList *backend_list = NULL; + CharDriver *c = NULL; + GSList *i = NULL; + + for (i = backends; i; i = i->next) { + ChardevBackendInfoList *info = g_malloc0(sizeof(*info)); + c = i->data; + info->value = g_malloc0(sizeof(*info->value)); + info->value->name = g_strdup(c->name); + + info->next = backend_list; + backend_list = info; + } + + return backend_list; +} + CharDriverState *qemu_chr_find(const char *name) { CharDriverState *chr; diff --git a/qmp-commands.hx b/qmp-commands.hx index cce6b81..c38964d 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -1924,6 +1924,47 @@ EQMP }, SQMP +query-chardev-backends +------------- + +List available character device backends. + +Each backend is represented by a json-object, the returned value is a json-array +of all backends. + +Each json-object contains: + +- "name": backend name (json-string) + +Example: + +-> { "execute": "query-chardev-backends" } +<- { + "return":[ + { + "name":"udp", + }, + { + "name":"tcp", + }, + { + "name":"unix", + }, + { + "name":"spiceport", + } + ] + } + +EQMP + + { + .name = "query-chardev-backends", + .args_type = "", + .mhandler.cmd_new = qmp_marshal_input_query_chardev_backends, + }, + +SQMP query-block -----------
Introduce 'query-chardev-backends' QMP command which lists all supported character device backends. Signed-off-by: Martin Kletzander <mkletzan@redhat.com> --- v2: - Version changed from "1.8.0" to "2.0" qapi-schema.json | 22 ++++++++++++++++++++++ qemu-char.c | 19 +++++++++++++++++++ qmp-commands.hx | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+) -- 1.8.5.3