From patchwork Wed Dec 5 15:15:35 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [4/6] spice-qemu-char: keep a list of spice chardev Date: Wed, 05 Dec 2012 05:15:35 -0000 From: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= X-Patchwork-Id: 203887 Message-Id: <1354720537-12097-4-git-send-email-marcandre.lureau@redhat.com> To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , alevy@redhat.com, kraxel@redhat.com --- spice-qemu-char.c | 7 +++++++ 1 file changed, 7 insertions(+) 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; }