baum: add destroy hook

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>
This commit is contained in:
Samuel Thibault 2010-03-28 20:39:42 +02:00 committed by Aurelien Jarno
parent 8e31209eea
commit 2c7faf318d

View File

@ -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;