qmp: expose list of supported character device backends
Introduce 'query-chardev-backends' QMP command which lists all supported character device backends. Signed-off-by: Martin Kletzander <mkletzan@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
84d18f065f
commit
77d1c3c63f
@ -436,6 +436,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:
|
||||
#
|
||||
|
19
qemu-char.c
19
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;
|
||||
|
@ -1923,6 +1923,47 @@ EQMP
|
||||
.mhandler.cmd_new = qmp_marshal_input_query_chardev,
|
||||
},
|
||||
|
||||
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
|
||||
-----------
|
||||
|
Loading…
Reference in New Issue
Block a user