|
|
958e1b |
From e49b0dccdd8687fb269610c86381bdcc8ec42222 Mon Sep 17 00:00:00 2001
|
|
|
958e1b |
From: Laszlo Ersek <lersek@redhat.com>
|
|
|
958e1b |
Date: Tue, 22 Jul 2014 18:31:23 +0200
|
|
|
958e1b |
Subject: [PATCH 03/11] char: report frontend open/closed state in 'query-chardev'
|
|
|
958e1b |
|
|
|
958e1b |
Message-id: <1406053883-21237-3-git-send-email-lersek@redhat.com>
|
|
|
958e1b |
Patchwork-id: 60230
|
|
|
958e1b |
O-Subject: [RHEL-7.1 qemu-kvm PATCH 2/2] char: report frontend open/closed state in 'query-chardev'
|
|
|
958e1b |
Bugzilla: 1122151
|
|
|
958e1b |
RH-Acked-by: Luiz Capitulino <lcapitulino@redhat.com>
|
|
|
958e1b |
RH-Acked-by: Amit Shah <amit.shah@redhat.com>
|
|
|
958e1b |
RH-Acked-by: Eric Blake <eblake@redhat.com>
|
|
|
958e1b |
|
|
|
958e1b |
In addition to the on-line reporting added in the previous patch, allow
|
|
|
958e1b |
libvirt to query frontend state independently of events.
|
|
|
958e1b |
|
|
|
958e1b |
Libvirt's path to identify the guest agent channel it cares about differs
|
|
|
958e1b |
between the event added in the previous patch and the QMP response field
|
|
|
958e1b |
added here. The event identifies the frontend device, by "id". The
|
|
|
958e1b |
'query-chardev' QMP command identifies the backend device (again by "id").
|
|
|
958e1b |
The association is under libvirt's control.
|
|
|
958e1b |
|
|
|
958e1b |
RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1080376
|
|
|
958e1b |
|
|
|
958e1b |
Reviewed-by: Amit Shah <amit.shah@redhat.com>
|
|
|
958e1b |
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
|
|
|
958e1b |
Reviewed-by: Eric Blake <eblake@redhat.com>
|
|
|
958e1b |
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
|
|
|
958e1b |
(cherry picked from commit 32a97ea1711f43388e178b7c43e02143a61e47ee)
|
|
|
958e1b |
---
|
|
|
958e1b |
qapi-schema.json | 8 +++++++-
|
|
|
958e1b |
qemu-char.c | 1 +
|
|
|
958e1b |
qmp-commands.hx | 19 ++++++++++++++-----
|
|
|
958e1b |
3 files changed, 22 insertions(+), 6 deletions(-)
|
|
|
958e1b |
|
|
|
958e1b |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
958e1b |
---
|
|
|
958e1b |
qapi-schema.json | 8 +++++++-
|
|
|
958e1b |
qemu-char.c | 1 +
|
|
|
958e1b |
qmp-commands.hx | 19 ++++++++++++++-----
|
|
|
958e1b |
3 files changed, 22 insertions(+), 6 deletions(-)
|
|
|
958e1b |
|
|
|
958e1b |
diff --git a/qapi-schema.json b/qapi-schema.json
|
|
|
958e1b |
index aaa86f5..604ec69 100644
|
|
|
958e1b |
--- a/qapi-schema.json
|
|
|
958e1b |
+++ b/qapi-schema.json
|
|
|
958e1b |
@@ -418,12 +418,18 @@
|
|
|
958e1b |
#
|
|
|
958e1b |
# @filename: the filename of the character device
|
|
|
958e1b |
#
|
|
|
958e1b |
+# @frontend-open: shows whether the frontend device attached to this backend
|
|
|
958e1b |
+# (eg. with the chardev=... option) is in open or closed state
|
|
|
958e1b |
+# (since 2.1)
|
|
|
958e1b |
+#
|
|
|
958e1b |
# Notes: @filename is encoded using the QEMU command line character device
|
|
|
958e1b |
# encoding. See the QEMU man page for details.
|
|
|
958e1b |
#
|
|
|
958e1b |
# Since: 0.14.0
|
|
|
958e1b |
##
|
|
|
958e1b |
-{ 'type': 'ChardevInfo', 'data': {'label': 'str', 'filename': 'str'} }
|
|
|
958e1b |
+{ 'type': 'ChardevInfo', 'data': {'label': 'str',
|
|
|
958e1b |
+ 'filename': 'str',
|
|
|
958e1b |
+ 'frontend-open': 'bool'} }
|
|
|
958e1b |
|
|
|
958e1b |
##
|
|
|
958e1b |
# @query-chardev:
|
|
|
958e1b |
diff --git a/qemu-char.c b/qemu-char.c
|
|
|
958e1b |
index 930f3d4..47ac55a 100644
|
|
|
958e1b |
--- a/qemu-char.c
|
|
|
958e1b |
+++ b/qemu-char.c
|
|
|
958e1b |
@@ -3435,6 +3435,7 @@ ChardevInfoList *qmp_query_chardev(Error **errp)
|
|
|
958e1b |
info->value = g_malloc0(sizeof(*info->value));
|
|
|
958e1b |
info->value->label = g_strdup(chr->label);
|
|
|
958e1b |
info->value->filename = g_strdup(chr->filename);
|
|
|
958e1b |
+ info->value->frontend_open = chr->fe_open;
|
|
|
958e1b |
|
|
|
958e1b |
info->next = chr_list;
|
|
|
958e1b |
chr_list = info;
|
|
|
958e1b |
diff --git a/qmp-commands.hx b/qmp-commands.hx
|
|
|
958e1b |
index 1d4be84..405275c 100644
|
|
|
958e1b |
--- a/qmp-commands.hx
|
|
|
958e1b |
+++ b/qmp-commands.hx
|
|
|
958e1b |
@@ -1782,19 +1782,28 @@ Each json-object contain the following:
|
|
|
958e1b |
|
|
|
958e1b |
- "label": device's label (json-string)
|
|
|
958e1b |
- "filename": device's file (json-string)
|
|
|
958e1b |
+- "frontend-open": open/closed state of the frontend device attached to this
|
|
|
958e1b |
+ backend (json-bool)
|
|
|
958e1b |
|
|
|
958e1b |
Example:
|
|
|
958e1b |
|
|
|
958e1b |
-> { "execute": "query-chardev" }
|
|
|
958e1b |
<- {
|
|
|
958e1b |
- "return":[
|
|
|
958e1b |
+ "return": [
|
|
|
958e1b |
+ {
|
|
|
958e1b |
+ "label": "charchannel0",
|
|
|
958e1b |
+ "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.agent,server",
|
|
|
958e1b |
+ "frontend-open": false
|
|
|
958e1b |
+ },
|
|
|
958e1b |
{
|
|
|
958e1b |
- "label":"monitor",
|
|
|
958e1b |
- "filename":"stdio"
|
|
|
958e1b |
+ "label": "charmonitor",
|
|
|
958e1b |
+ "filename": "unix:/var/lib/libvirt/qemu/seabios.rhel6.monitor,server",
|
|
|
958e1b |
+ "frontend-open": true
|
|
|
958e1b |
},
|
|
|
958e1b |
{
|
|
|
958e1b |
- "label":"serial0",
|
|
|
958e1b |
- "filename":"vc"
|
|
|
958e1b |
+ "label": "charserial0",
|
|
|
958e1b |
+ "filename": "pty:/dev/pts/2",
|
|
|
958e1b |
+ "frontend-open": true
|
|
|
958e1b |
}
|
|
|
958e1b |
]
|
|
|
958e1b |
}
|
|
|
958e1b |
--
|
|
|
958e1b |
1.7.1
|
|
|
958e1b |
|