From ec6971e3e6cc1541644434c24126032dca971189 Mon Sep 17 00:00:00 2001 From: sungmin ha Date: Tue, 9 Jul 2013 18:08:34 +0900 Subject: [PATCH] virtio-keyboard: modified for 1.5.1 upgrade Change-Id: I8e04c569750c16f3e819941974ba2f67f870c197 Signed-off-by: Sungmin Ha --- tizen/src/hw/maru_virtio_keyboard.c | 15 ++++++++------- tizen/src/hw/maru_virtio_keyboard.h | 2 ++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/tizen/src/hw/maru_virtio_keyboard.c b/tizen/src/hw/maru_virtio_keyboard.c index 98d017b..30f559f 100644 --- a/tizen/src/hw/maru_virtio_keyboard.c +++ b/tizen/src/hw/maru_virtio_keyboard.c @@ -223,9 +223,10 @@ VirtIODevice *virtio_keyboard_init(DeviceState *dev) VirtIOKeyboard *vkbd; INFO("initialize virtio-keyboard device\n"); - vkbd = (VirtIOKeyboard *)virtio_common_init(VIRTIO_KBD_DEVICE_NAME, - VIRTIO_ID_KEYBOARD, 0, sizeof(VirtIOKeyboard)); - if (vkbd == NULL) { + vkbd = g_malloc0(sizeof(VirtIOKeyboard)); + virtio_init(&vkbd->vdev, TYPE_VIRTIO_KEYBOARD, VIRTIO_ID_KEYBOARD, 0); + + if (&vkbd->vdev == NULL) { ERR("failed to initialize device\n"); return NULL; } @@ -234,8 +235,8 @@ VirtIODevice *virtio_keyboard_init(DeviceState *dev) vkbd->extension_key = 0; qemu_mutex_init(&vkbd->event_mutex); - - vkbd->vdev.get_features = virtio_keyboard_get_features; + VirtioDeviceClass *vdc = VIRTIO_DEVICE_GET_CLASS(&vkbd->vdev); + vdc->get_features = virtio_keyboard_get_features; vkbd->vq = virtio_add_queue(&vkbd->vdev, 128, virtio_keyboard_handle); vkbd->qdev = dev; @@ -243,7 +244,7 @@ VirtIODevice *virtio_keyboard_init(DeviceState *dev) vkbd->bh = qemu_bh_new(virtio_keyboard_bh, vkbd); /* register keyboard handler */ - qemu_add_kbd_event_handler(virtio_keyboard_event, vkbd); + vkbd->eh_entry = qemu_add_kbd_event_handler(virtio_keyboard_event, vkbd); return &vkbd->vdev; } @@ -253,7 +254,7 @@ void virtio_keyboard_exit(VirtIODevice *vdev) VirtIOKeyboard *vkbd = (VirtIOKeyboard *)vdev; INFO("destroy device\n"); - qemu_remove_kbd_event_handler(); + qemu_remove_kbd_event_handler(vkbd->eh_entry); if (vkbd->bh) { qemu_bh_delete(vkbd->bh); diff --git a/tizen/src/hw/maru_virtio_keyboard.h b/tizen/src/hw/maru_virtio_keyboard.h index 17aa0bd..ba86184 100644 --- a/tizen/src/hw/maru_virtio_keyboard.h +++ b/tizen/src/hw/maru_virtio_keyboard.h @@ -36,6 +36,7 @@ extern "C" { #endif #include "qemu/thread.h" +#include "ui/console.h" #include "hw/virtio/virtio.h" #define TYPE_VIRTIO_KEYBOARD "virtio-keyboard-device" @@ -61,6 +62,7 @@ typedef struct VirtIOKeyboard { VirtIOKbdQueue kbdqueue; QemuMutex event_mutex; QEMUBH *bh; + QEMUPutKbdEntry *eh_entry; } VirtIOKeyboard; VirtIODevice *virtio_keyboard_init(DeviceState *dev); -- 2.7.4