While host keyboard is turned on/off repeatedly, emulator is terminated abnormally.
So, added mutex destruction and ignore key events routine when host keyboard is turned off.
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
VirtIOKeyboard *vkbd = (VirtIOKeyboard *)vdev;
INFO("destroy device\n");
+ qemu_mutex_destroy(&vkbd->event_mutex);
+
virtio_cleanup(vdev);
}
usbdisk = (USBDevice *)dev;
}
+int mloop_evcmd_get_hostkbd_status(void)
+{
+ return hostkbd ? 1 : 0;
+}
+
void mloop_evcmd_set_hostkbd(void *dev)
{
hostkbd = (PCIDevice *)dev;
void mloop_evcmd_hostkbd(int on);
int mloop_evcmd_get_usbkbd_status(void);
+int mloop_evcmd_get_hostkbd_status(void);
void mloop_evcmd_set_usbkbd(void *dev);
void mloop_evcmd_set_usbdisk(void *dev);
}
#endif
+#if defined(TARGET_I386)
+ if (!mloop_evcmd_get_hostkbd_status()) {
+ TRACE("ignore keyboard input because usb keyboard is dettached.\n");
+ return;
+ }
+#endif
+
#if defined(TARGET_ARM)
if (!mloop_evcmd_get_usbkbd_status()) {
TRACE("ignore keyboard input because usb keyboard is dettached.\n");