From patchwork Mon Dec 17 13:04:37 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [6/8] spice-qemu-char: keep a list of spice chardev From: Gerd Hoffmann X-Patchwork-Id: 206857 Message-Id: <1355749479-25470-7-git-send-email-kraxel@redhat.com> To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Gerd Hoffmann Date: Mon, 17 Dec 2012 14:04:37 +0100 From: Marc-André Lureau Signed-off-by: Gerd Hoffmann --- spice-qemu-char.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/spice-qemu-char.c b/spice-qemu-char.c index 4be75ba..4eb85ae 100644 --- a/spice-qemu-char.c +++ b/spice-qemu-char.c @@ -24,8 +24,12 @@ typedef struct SpiceCharDriver { uint8_t *datapos; ssize_t bufsize, datalen; uint32_t debug; + 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); @@ -179,6 +183,7 @@ static void spice_chr_close(struct CharDriverState *chr) printf("%s\n", __func__); vmc_unregister_interface(s); + QLIST_REMOVE(s, next); g_free(s); } @@ -229,6 +234,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; }