#define VKBD_LOG(log_level, fmt, ...) \
printk(log_level "%s: " fmt, DRIVER_NAME, ##__VA_ARGS__)
-#define KBD_BUF_SIZE 10
+#define KBD_BUF_SIZE 100
struct EmulKbdEvent
{
while (index < KBD_BUF_SIZE) {
memcpy(&kbdevent, &vkbd->kbdevt[index], sizeof(kbdevent));
+ printk(KERN_ERR "from qemu code = %d, value = %d\n", kbdevent.code, kbdevent.value);
#if 1
if (kbdevent.code == 0) {
index++;
- continue;
+ break;
}
#endif
/* how to get keycode and value. */
input_event(vkbd->idev, EV_KEY, kbdevent.code, kbdevent.value);
input_sync(vkbd->idev);
-
+ printk(KERN_ERR "input_event code = %d, value = %d\n", kbdevent.code, kbdevent.value);
memset(&vkbd->kbdevt[index], 0x00, sizeof(kbdevent));
index++;
}
- err = virtqueue_add_buf (vq, vkbd->sg, 0, 10, (void *)10, GFP_ATOMIC);
+ err = virtqueue_add_buf (vq, vkbd->sg, 0, KBD_BUF_SIZE, (void *)KBD_BUF_SIZE, GFP_ATOMIC);
if (err < 0) {
VKBD_LOG(KERN_ERR, "failed to add buffer to virtqueue.\n");
return;
sizeof(struct EmulKbdEvent));
}
- ret = virtqueue_add_buf(vkbd->vq, vkbd->sg, 0, 10, (void *)(10), GFP_ATOMIC);
+ ret = virtqueue_add_buf(vkbd->vq, vkbd->sg, 0, KBD_BUF_SIZE, (void *)KBD_BUF_SIZE, GFP_ATOMIC);
if (ret < 0) {
VKBD_LOG(KERN_ERR, "failed to add buffer to virtqueue.\n");
kfree(vkbd);