diff mbox

[5/6] spice-qemu-char: keep a list of spice chardev

Message ID 1354281947-20227-6-git-send-email-marcandre.lureau@redhat.com
State New
Headers show

Commit Message

Marc-André Lureau Nov. 30, 2012, 1:25 p.m. UTC
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 spice-qemu-char.c | 7 +++++++
 1 file changed, 7 insertions(+)
diff mbox

Patch

diff --git a/spice-qemu-char.c b/spice-qemu-char.c
index 629b500..13de037 100644
--- a/spice-qemu-char.c
+++ b/spice-qemu-char.c
@@ -25,8 +25,12 @@  typedef struct SpiceCharDriver {
     ssize_t               bufsize, datalen;
     uint32_t              debug;
     CharDriverState       *chardev;
+    QLIST_ENTRY(SpiceCharDriver) next;
 } SpiceCharDriver;
 
+static QLIST_HEAD(, SpiceCharDriver) spice_chars =
+    QLIST_HEAD_INITIALIZER(spice_chars);
+
 static int vmc_write(SpiceCharDeviceInstance *sin, const uint8_t *buf, int len)
 {
     SpiceCharDriver *scd = container_of(sin, SpiceCharDriver, sin);
@@ -180,6 +184,7 @@  static void spice_chr_close(struct CharDriverState *chr)
 
     printf("%s\n", __func__);
     vmc_unregister_interface(s);
+    QLIST_REMOVE(s, next);
     g_free(s);
 }
 
@@ -230,6 +235,8 @@  static CharDriverState *chr_open(QemuOpts *opts, const char *subtype)
     chr->chr_guest_open = spice_chr_guest_open;
     chr->chr_guest_close = spice_chr_guest_close;
 
+    QLIST_INSERT_HEAD(&spice_chars, s, next);
+
     return chr;
 }