]> git.proxmox.com Git - mirror_qemu.git/commitdiff
baum: add destroy hook
authorSamuel Thibault <samuel.thibault@gnu.org>
Sun, 28 Mar 2010 18:39:42 +0000 (20:39 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Thu, 8 Apr 2010 19:17:10 +0000 (21:17 +0200)
Add a destroy hook for the baum character device, to properly close the BrlAPI
connection.

Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
hw/baum.c

index 18633f484248db8f6972cc4ef49a6ce23e519355..21326ae82bf3e584e2529af002a793825304ef21 100644 (file)
--- a/hw/baum.c
+++ b/hw/baum.c
@@ -564,6 +564,18 @@ static void baum_chr_read(void *opaque)
     }
 }
 
+static void baum_close(struct CharDriverState *chr)
+{
+    BaumDriverState *baum = chr->opaque;
+
+    qemu_free_timer(baum->cellCount_timer);
+    if (baum->brlapi) {
+        brlapi__closeConnection(baum->brlapi);
+        qemu_free(baum->brlapi);
+    }
+    qemu_free(baum);
+}
+
 CharDriverState *chr_baum_init(QemuOpts *opts)
 {
     BaumDriverState *baum;
@@ -581,6 +593,7 @@ CharDriverState *chr_baum_init(QemuOpts *opts)
     chr->chr_write = baum_write;
     chr->chr_send_event = baum_send_event;
     chr->chr_accept_input = baum_accept_input;
+    chr->chr_close = baum_close;
 
     handle = qemu_mallocz(brlapi_getHandleSize());
     baum->brlapi = handle;