qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-ppc] [PATCH v4 4/5] adb.c: prevent NO_KEY value from going to gues


From: John Arbuckle
Subject: [Qemu-ppc] [PATCH v4 4/5] adb.c: prevent NO_KEY value from going to guest
Date: Fri, 12 Aug 2016 20:10:02 -0400

The NO_KEY value should not be sent to the guest. This patch drops that value.

Signed-off-by: John Arbuckle <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
---
v4 changes:
Added NO_KEY related code to this patch.
Added removal of "= 0" code near end of qcode_to_adb_keycode.

 hw/input/adb.c | 23 ++++++++---------------
 1 file changed, 8 insertions(+), 15 deletions(-)

diff --git a/hw/input/adb.c b/hw/input/adb.c
index 5ca7b4a..2042903 100644
--- a/hw/input/adb.c
+++ b/hw/input/adb.c
@@ -62,6 +62,9 @@ do { printf("ADB: " fmt , ## __VA_ARGS__); } while (0)
 /* error codes */
 #define ADB_RET_NOTPRESENT (-2)
 
+/* The adb keyboard doesn't have every key imaginable */
+#define NO_KEY 0xff
+
 static void adb_device_reset(ADBDevice *d)
 {
     qdev_reset_all(DEVICE(d));
@@ -191,6 +194,8 @@ typedef struct ADBKeyboardClass {
 } ADBKeyboardClass;
 
 int qcode_to_adb_keycode[] = {
+     /* Make sure future additions are automatically set to NO_KEY */
+    [0 ... 0xff]               = NO_KEY,
 
     [Q_KEY_CODE_SHIFT]         = ADB_KEY_LEFT_SHIFT,
     [Q_KEY_CODE_SHIFT_R]       = ADB_KEY_RIGHT_SHIFT,
@@ -305,20 +310,6 @@ int qcode_to_adb_keycode[] = {
     [Q_KEY_CODE_END]           = ADB_KEY_END,
     [Q_KEY_CODE_PGUP]          = ADB_KEY_PAGE_UP,
     [Q_KEY_CODE_PGDN]          = ADB_KEY_PAGE_DOWN,
-
-    [Q_KEY_CODE_LESS]          = 0xa,
-    [Q_KEY_CODE_STOP]          = 0,
-    [Q_KEY_CODE_AGAIN]         = 0,
-    [Q_KEY_CODE_PROPS]         = 0,
-    [Q_KEY_CODE_UNDO]          = 0,
-    [Q_KEY_CODE_FRONT]         = 0,
-    [Q_KEY_CODE_COPY]          = 0,
-    [Q_KEY_CODE_OPEN]          = 0,
-    [Q_KEY_CODE_PASTE]         = 0,
-    [Q_KEY_CODE_FIND]          = 0,
-    [Q_KEY_CODE_CUT]           = 0,
-    [Q_KEY_CODE_LF]            = 0,
-    [Q_KEY_CODE_COMPOSE]       = 0,
 };
 
 static void adb_kbd_put_keycode(void *opaque, int keycode)
@@ -430,7 +421,9 @@ static void adb_keyboard_event(DeviceState *dev, 
QemuConsole *src,
         return;
     }
     keycode = qcode_to_adb_keycode[qcode];
-
+    if (keycode == NO_KEY) {  /* We don't want to send this to the guest */
+        return;
+    }
     if (evt->u.key.data->down == false) { /* if key release event */
         keycode = keycode | 0x80;   /* create keyboard break code */
     }
-- 
2.7.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]