All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
@ 2017-09-12 12:37 Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 01/12] ui: add keycodemapdb repository as a GIT submodule Daniel P. Berrange
                   ` (15 more replies)
  0 siblings, 16 replies; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

An update of:

  v1: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg02047.html
  v2: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg02471.html
  v3: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg02517.html
  v4: https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg02708.html

The keycodemap project[1] provides a database mapping between many different
keysym/keycode/scancode sets, along with a tool to generate mapping/lookup
tables in various programming languages. It is already used by GTK-VNC,
SPICE-GTK and libvirt.

This series enables its use in QEMU, thus fixing a great many bugs/ommissions
in the 15+ key mapping tables people have manually written for QEMU.

The keycodemapdb code is designed to be used as a git sub-module, it is
not an external dependancy you need installed before use. In this version,
however, the sub-module is not directly use. Instead all the generated
files are checked into GIT. The downside to this is that we get an
enourmous pile of errors from checkpatch.pl. The tool that generates the
mapping files doesn't care about QEMU's coding style rules, because it is
a general purpose tool intended for use by many different projects.

As such I'm not very happy about the idea of checking the generated files into
GIT, and would prefer to go back to generating the files from the submodule
on every build, as was done in v4. I did this this in v5 way to illustrate the
approach, but on balance I think v4 approach was better. Using the v4 approach
would also means when updating the submodule later on, we don't have to post
largely meaningless patches of diffs to all the generated files.

This series converts all the front ends and all the input devices which are
using the new InputEvent framework. A handful of devices still use the
legacy kbd handler

  $ git grep -l add_kbd_event_handler hw
  hw/arm/musicpal.c
  hw/arm/nseries.c
  hw/arm/palm.c
  hw/arm/spitz.c
  hw/input/pxa2xx_keypad.c
  hw/input/stellaris_input.c

and could be usefully converted too.

I've not done much realworld testing of this yet. I did however write code
that compared the mapping tables before and after conversion to identify what
mapping changes have resulted in each frontend/backend.  What I still need to
go back and validate is the Print/Sysrq handling, because that is special
everywhere and I'm not entirely sure I've done that correctly yet. The GTK
frontend should now work correctly when run on X11 servers on Win32 and OS-X,
as well as when run on native Win32/OS-X display backends.

[1] https://gitlab.com/keycodemap/keycodemapdb/

Changed in v5:

 - Don't try to initialize git submodule at all
 - Store generate keymap files in GIT

Changed in v4:

 - Run submodule update in source_dir for vpath builds (patchew)
 - Force submodule update in docker rules in case they
   are run without configure (patchew)

Changed in v3:

 - Ensure docker builds pull in keycodemapdb submodule (patchew)
 - Add compat with py26 for RHEL-6 in keycodemapdb tools (patchew)
 - Initialize submodule in configure script (patchew)

Changed in v2:

 - Change filename pattern to 'ui/input-keymap-$SRC-to-$DST.c'
   and map names 'qemu_input_map_$SRC_to_$DST'  (Eric)
 - Fix typos (Eric)
 - Drop changes to InputKeyEvent struct (Eric)
 - Fix VPATH build (patchew)
 - Fix code style errors (patchew)


Daniel P. Berrange (12):
  ui: add keycodemapdb repository as a GIT submodule
  ui: convert common input code to keycodemapdb
  ui: convert key events to QKeyCodes immediately
  ui: don't export qemu_input_event_new_key
  input: convert virtio-input-hid device to keycodemapdb
  input: convert ps2 device to keycodemapdb
  input: convert the adb device to keycodemapdb
  char: convert the escc device to keycodemapdb
  ui: convert cocoa frontend to keycodemapdb
  ui: convert the SDL2 frontend to keycodemapdb
  ui: convert GTK and SDL1 frontends to keycodemapdb
  display: convert XenInput keyboard to keycodemapdb

 .gitmodules                            |   3 +
 hw/char/escc.c                         | 126 +--------
 hw/display/xenfb.c                     | 133 +++-------
 hw/input/adb.c                         | 124 +--------
 hw/input/ps2.c                         | 406 +----------------------------
 hw/input/virtio-input-hid.c            | 136 +---------
 include/hw/input/adb-keys.h            | 141 ----------
 include/ui/input.h                     |  57 +++-
 ui/Makefile.objs                       |  43 ++-
 ui/cocoa.m                             | 129 +--------
 ui/gtk.c                               | 205 +++++++++------
 ui/input-keymap-atset1-to-qcode.c      | 245 +++++++++++++++++
 ui/input-keymap-linux-to-qcode.c       | 463 +++++++++++++++++++++++++++++++++
 ui/input-keymap-osx-to-qcode.c         | 128 +++++++++
 ui/input-keymap-qcode-to-adb.c         | 156 +++++++++++
 ui/input-keymap-qcode-to-atset1.c      | 154 +++++++++++
 ui/input-keymap-qcode-to-atset2.c      | 142 ++++++++++
 ui/input-keymap-qcode-to-atset3.c      | 138 ++++++++++
 ui/input-keymap-qcode-to-linux.c       | 156 +++++++++++
 ui/input-keymap-qcode-to-qnum.c        | 154 +++++++++++
 ui/input-keymap-qnum-to-qcode.c        | 245 +++++++++++++++++
 ui/input-keymap-usb-to-qcode.c         | 177 +++++++++++++
 ui/input-keymap-win32-to-qcode.c       | 157 +++++++++++
 ui/input-keymap-x11-to-qcode.c         | 163 ++++++++++++
 ui/input-keymap-xorgevdev-to-qcode.c   | 463 +++++++++++++++++++++++++++++++++
 ui/input-keymap-xorgkbd-to-qcode.c     | 122 +++++++++
 ui/input-keymap-xorgxquartz-to-qcode.c | 128 +++++++++
 ui/input-keymap-xorgxwin-to-qcode.c    | 122 +++++++++
 ui/input-keymap.c                      | 341 +++---------------------
 ui/input.c                             |   8 +-
 ui/keycodemapdb                        |   1 +
 ui/sdl.c                               | 105 +++-----
 ui/sdl2-input.c                        |  16 +-
 ui/sdl2-keymap.h                       | 267 -------------------
 ui/trace-events                        |   9 +-
 ui/x_keymap.c                          | 250 +++++++-----------
 ui/x_keymap.h                          |   8 +-
 37 files changed, 3774 insertions(+), 2047 deletions(-)
 delete mode 100644 include/hw/input/adb-keys.h
 create mode 100644 ui/input-keymap-atset1-to-qcode.c
 create mode 100644 ui/input-keymap-linux-to-qcode.c
 create mode 100644 ui/input-keymap-osx-to-qcode.c
 create mode 100644 ui/input-keymap-qcode-to-adb.c
 create mode 100644 ui/input-keymap-qcode-to-atset1.c
 create mode 100644 ui/input-keymap-qcode-to-atset2.c
 create mode 100644 ui/input-keymap-qcode-to-atset3.c
 create mode 100644 ui/input-keymap-qcode-to-linux.c
 create mode 100644 ui/input-keymap-qcode-to-qnum.c
 create mode 100644 ui/input-keymap-qnum-to-qcode.c
 create mode 100644 ui/input-keymap-usb-to-qcode.c
 create mode 100644 ui/input-keymap-win32-to-qcode.c
 create mode 100644 ui/input-keymap-x11-to-qcode.c
 create mode 100644 ui/input-keymap-xorgevdev-to-qcode.c
 create mode 100644 ui/input-keymap-xorgkbd-to-qcode.c
 create mode 100644 ui/input-keymap-xorgxquartz-to-qcode.c
 create mode 100644 ui/input-keymap-xorgxwin-to-qcode.c
 create mode 160000 ui/keycodemapdb
 delete mode 100644 ui/sdl2-keymap.h

-- 
2.13.5

^ permalink raw reply	[flat|nested] 34+ messages in thread

* [Qemu-devel] [PATCH v5 01/12] ui: add keycodemapdb repository as a GIT submodule
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 02/12] ui: convert common input code to keycodemapdb Daniel P. Berrange
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

The https://gitlab.com/keycodemap/keycodemapdb/ repo contains a
data file mapping between all the different scancode/keycode/keysym
sets that are known, and a tool to auto-generate lookup tables for
different combinations.

It is used by GTK-VNC, SPICE-GTK and libvirt for mapping keys.
Using it in QEMU will let us replace many hand written lookup
tables with auto-generated tables from a master data source,
reducing bugs. Adding new QKeyCodes will now only require the
master table to be updated, all ~20 other tables will be
automatically updated to follow.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 .gitmodules      |  3 +++
 ui/Makefile.objs | 20 ++++++++++++++++++++
 ui/keycodemapdb  |  1 +
 3 files changed, 24 insertions(+)
 create mode 160000 ui/keycodemapdb

diff --git a/.gitmodules b/.gitmodules
index 5b0c212622..369989f19e 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -37,3 +37,6 @@
 [submodule "roms/QemuMacDrivers"]
 	path = roms/QemuMacDrivers
 	url = git://git.qemu.org/QemuMacDrivers.git
+[submodule "ui/keycodemapdb"]
+	path = ui/keycodemapdb
+	url = https://gitlab.com/keycodemap/keycodemapdb.git
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index 3369451285..5fcb3010b3 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -49,3 +49,23 @@ gtk-egl.o-libs += $(OPENGL_LIBS)
 shader.o-libs += $(OPENGL_LIBS)
 console-gl.o-libs += $(OPENGL_LIBS)
 egl-helpers.o-libs += $(OPENGL_LIBS)
+
+KEYCODEMAP_GEN = $(SRC_PATH)/ui/keycodemapdb/tools/keymap-gen
+KEYCODEMAP_CSV = $(SRC_PATH)/ui/keycodemapdb/data/keymaps.csv
+
+KEYCODEMAP_FILES = \
+		 $(NULL)
+
+# Generated input-keymap-XXX.c files are kept in GIT, so
+# the rule below is not normally run. It is only used when
+# the submodule is explicitly updated.
+
+ui/input-keymap-%.c: $(KEYCODEMAP_GEN) $(KEYCODEMAP_CSV) $(SRC_PATH)/ui/Makefile.objs
+	$(call quiet-command,\
+	    src=$$(echo $@ | sed -E -e "s,^ui/input-keymap-(.+)-to-(.+)\.c$$,\1,") && \
+	    dst=$$(echo $@ | sed -E -e "s,^ui/input-keymap-(.+)-to-(.+)\.c$$,\2,") && \
+	    $(PYTHON) $(KEYCODEMAP_GEN) \
+	          --lang glib2 \
+	          --varname qemu_input_map_$${src}_to_$${dst} \
+	          code-map $(KEYCODEMAP_CSV) $${src} $${dst} \
+	        > $@ || rm $@, "GEN", "$@")
diff --git a/ui/keycodemapdb b/ui/keycodemapdb
new file mode 160000
index 0000000000..56ce5650d2
--- /dev/null
+++ b/ui/keycodemapdb
@@ -0,0 +1 @@
+Subproject commit 56ce5650d2c6ea216b4580df44b9a6dd3bc92c3b
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [Qemu-devel] [PATCH v5 02/12] ui: convert common input code to keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 01/12] ui: add keycodemapdb repository as a GIT submodule Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 03/12] ui: convert key events to QKeyCodes immediately Daniel P. Berrange
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

Replace the number_to_qcode, qcode_to_number and linux_to_qcode
tables with automatically generated tables.

Missing entries in linux_to_qcode now fixed:

  KEY_LINEFEED -> Q_KEY_CODE_LF
  KEY_KPEQUAL -> Q_KEY_CODE_KP_EQUALS
  KEY_COMPOSE -> Q_KEY_CODE_COMPOSE
  KEY_AGAIN -> Q_KEY_CODE_AGAIN
  KEY_PROPS -> Q_KEY_CODE_PROPS
  KEY_UNDO -> Q_KEY_CODE_UNDO
  KEY_FRONT -> Q_KEY_CODE_FRONT
  KEY_COPY -> Q_KEY_CODE_COPY
  KEY_OPEN -> Q_KEY_CODE_OPEN
  KEY_PASTE -> Q_KEY_CODE_PASTE
  KEY_CUT -> Q_KEY_CODE_CUT
  KEY_HELP -> Q_KEY_CODE_HELP
  KEY_MEDIA -> Q_KEY_CODE_MEDIASELECT

In additionsome fixes:

 - KEY_PLAYPAUSE now maps to Q_KEY_CODE_AUDIOPLAY, instead of
   KEY_PLAYCD. KEY_PLAYPAUSE is defined across almost all scancodes
   sets, while KEY_PLAYCD only appears in AT set1, so the former is
   a more useful mapping.

Missing entries in qcode_to_number now fixed:

  Q_KEY_CODE_AGAIN -> 0x85
  Q_KEY_CODE_PROPS -> 0x86
  Q_KEY_CODE_UNDO -> 0x87
  Q_KEY_CODE_FRONT -> 0x8c
  Q_KEY_CODE_COPY -> 0xf8
  Q_KEY_CODE_OPEN -> 0x64
  Q_KEY_CODE_PASTE -> 0x65
  Q_KEY_CODE_CUT -> 0xbc
  Q_KEY_CODE_LF -> 0x5b
  Q_KEY_CODE_HELP -> 0xf5
  Q_KEY_CODE_COMPOSE -> 0xdd
  Q_KEY_CODE_KP_EQUALS -> 0x59
  Q_KEY_CODE_MEDIASELECT -> 0xed

In addition some fixes:

 - Q_KEY_CODE_MENU was incorrectly mapped to the compose
   scancode (0xdd) and is now mapped to 0x9e
 - Q_KEY_CODE_FIND was mapped to 0xe065 (Search) instead
   of to 0xe041 (Find)
 - Q_KEY_CODE_HIRAGANA was mapped to 0x70 (Katakanahiragana)
   instead of of 0x77 (Hirigana)
 - Q_KEY_CODE_PRINT was mapped to 0xb7 which is not a defined
   scan code in AT set 1, it is now mapped to 0x54 (sysrq)

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 include/ui/input.h               |  11 +-
 ui/Makefile.objs                 |   3 +
 ui/input-keymap-linux-to-qcode.c | 463 +++++++++++++++++++++++++++++++++++++++
 ui/input-keymap-qcode-to-qnum.c  | 154 +++++++++++++
 ui/input-keymap-qnum-to-qcode.c  | 245 +++++++++++++++++++++
 ui/input-keymap.c                | 326 ++-------------------------
 6 files changed, 890 insertions(+), 312 deletions(-)
 create mode 100644 ui/input-keymap-linux-to-qcode.c
 create mode 100644 ui/input-keymap-qcode-to-qnum.c
 create mode 100644 ui/input-keymap-qnum-to-qcode.c

diff --git a/include/ui/input.h b/include/ui/input.h
index c488585def..479cc46cfc 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -43,7 +43,7 @@ void qemu_input_event_send_key(QemuConsole *src, KeyValue *key, bool down);
 void qemu_input_event_send_key_number(QemuConsole *src, int num, bool down);
 void qemu_input_event_send_key_qcode(QemuConsole *src, QKeyCode q, bool down);
 void qemu_input_event_send_key_delay(uint32_t delay_ms);
-int qemu_input_key_number_to_qcode(uint8_t nr);
+int qemu_input_key_number_to_qcode(unsigned int nr);
 int qemu_input_key_value_to_number(const KeyValue *value);
 int qemu_input_key_value_to_qcode(const KeyValue *value);
 int qemu_input_key_value_to_scancode(const KeyValue *value, bool down,
@@ -69,4 +69,13 @@ void qemu_input_check_mode_change(void);
 void qemu_add_mouse_mode_change_notifier(Notifier *notify);
 void qemu_remove_mouse_mode_change_notifier(Notifier *notify);
 
+extern const guint qemu_input_map_linux_to_qcode_len;
+extern const guint16 qemu_input_map_linux_to_qcode[];
+
+extern const guint qemu_input_map_qcode_to_qnum_len;
+extern const guint16 qemu_input_map_qcode_to_qnum[];
+
+extern const guint qemu_input_map_qnum_to_qcode_len;
+extern const guint16 qemu_input_map_qnum_to_qcode[];
+
 #endif /* INPUT_H */
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index 5fcb3010b3..29e44c1baf 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -54,6 +54,9 @@ KEYCODEMAP_GEN = $(SRC_PATH)/ui/keycodemapdb/tools/keymap-gen
 KEYCODEMAP_CSV = $(SRC_PATH)/ui/keycodemapdb/data/keymaps.csv
 
 KEYCODEMAP_FILES = \
+		 ui/input-keymap-linux-to-qcode.c \
+		 ui/input-keymap-qcode-to-qnum.c \
+		 ui/input-keymap-qnum-to-qcode.c \
 		 $(NULL)
 
 # Generated input-keymap-XXX.c files are kept in GIT, so
diff --git a/ui/input-keymap-linux-to-qcode.c b/ui/input-keymap-linux-to-qcode.c
new file mode 100644
index 0000000000..c026ed106f
--- /dev/null
+++ b/ui/input-keymap-linux-to-qcode.c
@@ -0,0 +1,463 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:01
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_linux_to_qcode code-map keymaps.csv linux qcode
+*/
+const guint16 qemu_input_map_linux_to_qcode[525] = {
+  [0x0] = Q_KEY_CODE_UNMAPPED, /* linux:0 (KEY_RESERVED) -> linux:0 (KEY_RESERVED) -> qcode:Q_KEY_CODE_UNMAPPED (unmapped) */
+  [0x1] = Q_KEY_CODE_ESC, /* linux:1 (KEY_ESC) -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */
+  [0x2] = Q_KEY_CODE_1, /* linux:2 (KEY_1) -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */
+  [0x3] = Q_KEY_CODE_2, /* linux:3 (KEY_2) -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */
+  [0x4] = Q_KEY_CODE_3, /* linux:4 (KEY_3) -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */
+  [0x5] = Q_KEY_CODE_4, /* linux:5 (KEY_4) -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */
+  [0x6] = Q_KEY_CODE_5, /* linux:6 (KEY_5) -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */
+  [0x7] = Q_KEY_CODE_6, /* linux:7 (KEY_6) -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */
+  [0x8] = Q_KEY_CODE_7, /* linux:8 (KEY_7) -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */
+  [0x9] = Q_KEY_CODE_8, /* linux:9 (KEY_8) -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */
+  [0xa] = Q_KEY_CODE_9, /* linux:10 (KEY_9) -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */
+  [0xb] = Q_KEY_CODE_0, /* linux:11 (KEY_0) -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */
+  [0xc] = Q_KEY_CODE_MINUS, /* linux:12 (KEY_MINUS) -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */
+  [0xd] = Q_KEY_CODE_EQUAL, /* linux:13 (KEY_EQUAL) -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */
+  [0xe] = Q_KEY_CODE_BACKSPACE, /* linux:14 (KEY_BACKSPACE) -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */
+  [0xf] = Q_KEY_CODE_TAB, /* linux:15 (KEY_TAB) -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */
+  [0x10] = Q_KEY_CODE_Q, /* linux:16 (KEY_Q) -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */
+  [0x11] = Q_KEY_CODE_W, /* linux:17 (KEY_W) -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */
+  [0x12] = Q_KEY_CODE_E, /* linux:18 (KEY_E) -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */
+  [0x13] = Q_KEY_CODE_R, /* linux:19 (KEY_R) -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */
+  [0x14] = Q_KEY_CODE_T, /* linux:20 (KEY_T) -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */
+  [0x15] = Q_KEY_CODE_Y, /* linux:21 (KEY_Y) -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */
+  [0x16] = Q_KEY_CODE_U, /* linux:22 (KEY_U) -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */
+  [0x17] = Q_KEY_CODE_I, /* linux:23 (KEY_I) -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */
+  [0x18] = Q_KEY_CODE_O, /* linux:24 (KEY_O) -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */
+  [0x19] = Q_KEY_CODE_P, /* linux:25 (KEY_P) -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */
+  [0x1a] = Q_KEY_CODE_BRACKET_LEFT, /* linux:26 (KEY_LEFTBRACE) -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */
+  [0x1b] = Q_KEY_CODE_BRACKET_RIGHT, /* linux:27 (KEY_RIGHTBRACE) -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */
+  [0x1c] = Q_KEY_CODE_RET, /* linux:28 (KEY_ENTER) -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */
+  [0x1d] = Q_KEY_CODE_CTRL, /* linux:29 (KEY_LEFTCTRL) -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */
+  [0x1e] = Q_KEY_CODE_A, /* linux:30 (KEY_A) -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */
+  [0x1f] = Q_KEY_CODE_S, /* linux:31 (KEY_S) -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */
+  [0x20] = Q_KEY_CODE_D, /* linux:32 (KEY_D) -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */
+  [0x21] = Q_KEY_CODE_F, /* linux:33 (KEY_F) -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */
+  [0x22] = Q_KEY_CODE_G, /* linux:34 (KEY_G) -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */
+  [0x23] = Q_KEY_CODE_H, /* linux:35 (KEY_H) -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */
+  [0x24] = Q_KEY_CODE_J, /* linux:36 (KEY_J) -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */
+  [0x25] = Q_KEY_CODE_K, /* linux:37 (KEY_K) -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */
+  [0x26] = Q_KEY_CODE_L, /* linux:38 (KEY_L) -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */
+  [0x27] = Q_KEY_CODE_SEMICOLON, /* linux:39 (KEY_SEMICOLON) -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */
+  [0x28] = Q_KEY_CODE_APOSTROPHE, /* linux:40 (KEY_APOSTROPHE) -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */
+  [0x29] = Q_KEY_CODE_GRAVE_ACCENT, /* linux:41 (KEY_GRAVE) -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */
+  [0x2a] = Q_KEY_CODE_SHIFT, /* linux:42 (KEY_LEFTSHIFT) -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */
+  [0x2b] = Q_KEY_CODE_BACKSLASH, /* linux:43 (KEY_BACKSLASH) -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0x2c] = Q_KEY_CODE_Z, /* linux:44 (KEY_Z) -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */
+  [0x2d] = Q_KEY_CODE_X, /* linux:45 (KEY_X) -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */
+  [0x2e] = Q_KEY_CODE_C, /* linux:46 (KEY_C) -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */
+  [0x2f] = Q_KEY_CODE_V, /* linux:47 (KEY_V) -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */
+  [0x30] = Q_KEY_CODE_B, /* linux:48 (KEY_B) -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */
+  [0x31] = Q_KEY_CODE_N, /* linux:49 (KEY_N) -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */
+  [0x32] = Q_KEY_CODE_M, /* linux:50 (KEY_M) -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */
+  [0x33] = Q_KEY_CODE_COMMA, /* linux:51 (KEY_COMMA) -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */
+  [0x34] = Q_KEY_CODE_DOT, /* linux:52 (KEY_DOT) -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */
+  [0x35] = Q_KEY_CODE_SLASH, /* linux:53 (KEY_SLASH) -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */
+  [0x36] = Q_KEY_CODE_SHIFT_R, /* linux:54 (KEY_RIGHTSHIFT) -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */
+  [0x37] = Q_KEY_CODE_KP_MULTIPLY, /* linux:55 (KEY_KPASTERISK) -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */
+  [0x38] = Q_KEY_CODE_ALT, /* linux:56 (KEY_LEFTALT) -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */
+  [0x39] = Q_KEY_CODE_SPC, /* linux:57 (KEY_SPACE) -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */
+  [0x3a] = Q_KEY_CODE_CAPS_LOCK, /* linux:58 (KEY_CAPSLOCK) -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */
+  [0x3b] = Q_KEY_CODE_F1, /* linux:59 (KEY_F1) -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */
+  [0x3c] = Q_KEY_CODE_F2, /* linux:60 (KEY_F2) -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */
+  [0x3d] = Q_KEY_CODE_F3, /* linux:61 (KEY_F3) -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */
+  [0x3e] = Q_KEY_CODE_F4, /* linux:62 (KEY_F4) -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */
+  [0x3f] = Q_KEY_CODE_F5, /* linux:63 (KEY_F5) -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */
+  [0x40] = Q_KEY_CODE_F6, /* linux:64 (KEY_F6) -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */
+  [0x41] = Q_KEY_CODE_F7, /* linux:65 (KEY_F7) -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */
+  [0x42] = Q_KEY_CODE_F8, /* linux:66 (KEY_F8) -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */
+  [0x43] = Q_KEY_CODE_F9, /* linux:67 (KEY_F9) -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */
+  [0x44] = Q_KEY_CODE_F10, /* linux:68 (KEY_F10) -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */
+  [0x45] = Q_KEY_CODE_NUM_LOCK, /* linux:69 (KEY_NUMLOCK) -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */
+  [0x46] = Q_KEY_CODE_SCROLL_LOCK, /* linux:70 (KEY_SCROLLLOCK) -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */
+  [0x47] = Q_KEY_CODE_KP_7, /* linux:71 (KEY_KP7) -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */
+  [0x48] = Q_KEY_CODE_KP_8, /* linux:72 (KEY_KP8) -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */
+  [0x49] = Q_KEY_CODE_KP_9, /* linux:73 (KEY_KP9) -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */
+  [0x4a] = Q_KEY_CODE_KP_SUBTRACT, /* linux:74 (KEY_KPMINUS) -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */
+  [0x4b] = Q_KEY_CODE_KP_4, /* linux:75 (KEY_KP4) -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */
+  [0x4c] = Q_KEY_CODE_KP_5, /* linux:76 (KEY_KP5) -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */
+  [0x4d] = Q_KEY_CODE_KP_6, /* linux:77 (KEY_KP6) -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */
+  [0x4e] = Q_KEY_CODE_KP_ADD, /* linux:78 (KEY_KPPLUS) -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */
+  [0x4f] = Q_KEY_CODE_KP_1, /* linux:79 (KEY_KP1) -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */
+  [0x50] = Q_KEY_CODE_KP_2, /* linux:80 (KEY_KP2) -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */
+  [0x51] = Q_KEY_CODE_KP_3, /* linux:81 (KEY_KP3) -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */
+  [0x52] = Q_KEY_CODE_KP_0, /* linux:82 (KEY_KP0) -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */
+  [0x53] = Q_KEY_CODE_KP_DECIMAL, /* linux:83 (KEY_KPDOT) -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */
+  [0x54] = Q_KEY_CODE_UNMAPPED, /* linux:84 (unnamed) -> linux:84 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x55] = Q_KEY_CODE_UNMAPPED, /* linux:85 (KEY_ZENKAKUHANKAKU) -> linux:85 (KEY_ZENKAKUHANKAKU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x56] = Q_KEY_CODE_LESS, /* linux:86 (KEY_102ND) -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */
+  [0x57] = Q_KEY_CODE_F11, /* linux:87 (KEY_F11) -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */
+  [0x58] = Q_KEY_CODE_F12, /* linux:88 (KEY_F12) -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */
+  [0x59] = Q_KEY_CODE_RO, /* linux:89 (KEY_RO) -> linux:89 (KEY_RO) -> qcode:Q_KEY_CODE_RO (ro) */
+  [0x5a] = Q_KEY_CODE_UNMAPPED, /* linux:90 (KEY_KATAKANA) -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5b] = Q_KEY_CODE_HIRAGANA, /* linux:91 (KEY_HIRAGANA) -> linux:91 (KEY_HIRAGANA) -> qcode:Q_KEY_CODE_HIRAGANA (hiragana) */
+  [0x5c] = Q_KEY_CODE_HENKAN, /* linux:92 (KEY_HENKAN) -> linux:92 (KEY_HENKAN) -> qcode:Q_KEY_CODE_HENKAN (henkan) */
+  [0x5d] = Q_KEY_CODE_UNMAPPED, /* linux:93 (KEY_KATAKANAHIRAGANA) -> linux:93 (KEY_KATAKANAHIRAGANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5e] = Q_KEY_CODE_UNMAPPED, /* linux:94 (KEY_MUHENKAN) -> linux:94 (KEY_MUHENKAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5f] = Q_KEY_CODE_UNMAPPED, /* linux:95 (KEY_KPJPCOMMA) -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x60] = Q_KEY_CODE_KP_ENTER, /* linux:96 (KEY_KPENTER) -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */
+  [0x61] = Q_KEY_CODE_CTRL_R, /* linux:97 (KEY_RIGHTCTRL) -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */
+  [0x62] = Q_KEY_CODE_KP_DIVIDE, /* linux:98 (KEY_KPSLASH) -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */
+  [0x63] = Q_KEY_CODE_SYSRQ, /* linux:99 (KEY_SYSRQ) -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */
+  [0x64] = Q_KEY_CODE_ALT_R, /* linux:100 (KEY_RIGHTALT) -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */
+  [0x65] = Q_KEY_CODE_LF, /* linux:101 (KEY_LINEFEED) -> linux:101 (KEY_LINEFEED) -> qcode:Q_KEY_CODE_LF (lf) */
+  [0x66] = Q_KEY_CODE_HOME, /* linux:102 (KEY_HOME) -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */
+  [0x67] = Q_KEY_CODE_UP, /* linux:103 (KEY_UP) -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */
+  [0x68] = Q_KEY_CODE_PGUP, /* linux:104 (KEY_PAGEUP) -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */
+  [0x69] = Q_KEY_CODE_LEFT, /* linux:105 (KEY_LEFT) -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */
+  [0x6a] = Q_KEY_CODE_RIGHT, /* linux:106 (KEY_RIGHT) -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */
+  [0x6b] = Q_KEY_CODE_END, /* linux:107 (KEY_END) -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */
+  [0x6c] = Q_KEY_CODE_DOWN, /* linux:108 (KEY_DOWN) -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */
+  [0x6d] = Q_KEY_CODE_PGDN, /* linux:109 (KEY_PAGEDOWN) -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */
+  [0x6e] = Q_KEY_CODE_INSERT, /* linux:110 (KEY_INSERT) -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */
+  [0x6f] = Q_KEY_CODE_DELETE, /* linux:111 (KEY_DELETE) -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */
+  [0x70] = Q_KEY_CODE_UNMAPPED, /* linux:112 (KEY_MACRO) -> linux:112 (KEY_MACRO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x71] = Q_KEY_CODE_AUDIOMUTE, /* linux:113 (KEY_MUTE) -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */
+  [0x72] = Q_KEY_CODE_VOLUMEDOWN, /* linux:114 (KEY_VOLUMEDOWN) -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */
+  [0x73] = Q_KEY_CODE_VOLUMEUP, /* linux:115 (KEY_VOLUMEUP) -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */
+  [0x74] = Q_KEY_CODE_POWER, /* linux:116 (KEY_POWER) -> linux:116 (KEY_POWER) -> qcode:Q_KEY_CODE_POWER (power) */
+  [0x75] = Q_KEY_CODE_KP_EQUALS, /* linux:117 (KEY_KPEQUAL) -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */
+  [0x76] = Q_KEY_CODE_UNMAPPED, /* linux:118 (KEY_KPPLUSMINUS) -> linux:118 (KEY_KPPLUSMINUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x77] = Q_KEY_CODE_PAUSE, /* linux:119 (KEY_PAUSE) -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */
+  [0x78] = Q_KEY_CODE_UNMAPPED, /* linux:120 (KEY_SCALE) -> linux:120 (KEY_SCALE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x79] = Q_KEY_CODE_KP_COMMA, /* linux:121 (KEY_KPCOMMA) -> linux:121 (KEY_KPCOMMA) -> qcode:Q_KEY_CODE_KP_COMMA (kp_comma) */
+  [0x7a] = Q_KEY_CODE_UNMAPPED, /* linux:122 (KEY_HANGEUL) -> linux:122 (KEY_HANGEUL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7b] = Q_KEY_CODE_UNMAPPED, /* linux:123 (KEY_HANJA) -> linux:123 (KEY_HANJA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7c] = Q_KEY_CODE_YEN, /* linux:124 (KEY_YEN) -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */
+  [0x7d] = Q_KEY_CODE_META_L, /* linux:125 (KEY_LEFTMETA) -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */
+  [0x7e] = Q_KEY_CODE_META_R, /* linux:126 (KEY_RIGHTMETA) -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */
+  [0x7f] = Q_KEY_CODE_COMPOSE, /* linux:127 (KEY_COMPOSE) -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */
+  [0x80] = Q_KEY_CODE_STOP, /* linux:128 (KEY_STOP) -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */
+  [0x81] = Q_KEY_CODE_AGAIN, /* linux:129 (KEY_AGAIN) -> linux:129 (KEY_AGAIN) -> qcode:Q_KEY_CODE_AGAIN (again) */
+  [0x82] = Q_KEY_CODE_PROPS, /* linux:130 (KEY_PROPS) -> linux:130 (KEY_PROPS) -> qcode:Q_KEY_CODE_PROPS (props) */
+  [0x83] = Q_KEY_CODE_UNDO, /* linux:131 (KEY_UNDO) -> linux:131 (KEY_UNDO) -> qcode:Q_KEY_CODE_UNDO (undo) */
+  [0x84] = Q_KEY_CODE_FRONT, /* linux:132 (KEY_FRONT) -> linux:132 (KEY_FRONT) -> qcode:Q_KEY_CODE_FRONT (front) */
+  [0x85] = Q_KEY_CODE_COPY, /* linux:133 (KEY_COPY) -> linux:133 (KEY_COPY) -> qcode:Q_KEY_CODE_COPY (copy) */
+  [0x86] = Q_KEY_CODE_OPEN, /* linux:134 (KEY_OPEN) -> linux:134 (KEY_OPEN) -> qcode:Q_KEY_CODE_OPEN (open) */
+  [0x87] = Q_KEY_CODE_PASTE, /* linux:135 (KEY_PASTE) -> linux:135 (KEY_PASTE) -> qcode:Q_KEY_CODE_PASTE (paste) */
+  [0x88] = Q_KEY_CODE_FIND, /* linux:136 (KEY_FIND) -> linux:136 (KEY_FIND) -> qcode:Q_KEY_CODE_FIND (find) */
+  [0x89] = Q_KEY_CODE_CUT, /* linux:137 (KEY_CUT) -> linux:137 (KEY_CUT) -> qcode:Q_KEY_CODE_CUT (cut) */
+  [0x8a] = Q_KEY_CODE_HELP, /* linux:138 (KEY_HELP) -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */
+  [0x8b] = Q_KEY_CODE_MENU, /* linux:139 (KEY_MENU) -> linux:139 (KEY_MENU) -> qcode:Q_KEY_CODE_MENU (menu) */
+  [0x8c] = Q_KEY_CODE_CALCULATOR, /* linux:140 (KEY_CALC) -> linux:140 (KEY_CALC) -> qcode:Q_KEY_CODE_CALCULATOR (calculator) */
+  [0x8d] = Q_KEY_CODE_UNMAPPED, /* linux:141 (KEY_SETUP) -> linux:141 (KEY_SETUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x8e] = Q_KEY_CODE_SLEEP, /* linux:142 (KEY_SLEEP) -> linux:142 (KEY_SLEEP) -> qcode:Q_KEY_CODE_SLEEP (sleep) */
+  [0x8f] = Q_KEY_CODE_WAKE, /* linux:143 (KEY_WAKEUP) -> linux:143 (KEY_WAKEUP) -> qcode:Q_KEY_CODE_WAKE (wake) */
+  [0x90] = Q_KEY_CODE_UNMAPPED, /* linux:144 (KEY_FILE) -> linux:144 (KEY_FILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x91] = Q_KEY_CODE_UNMAPPED, /* linux:145 (KEY_SENDFILE) -> linux:145 (KEY_SENDFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x92] = Q_KEY_CODE_UNMAPPED, /* linux:146 (KEY_DELETEFILE) -> linux:146 (KEY_DELETEFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x93] = Q_KEY_CODE_UNMAPPED, /* linux:147 (KEY_XFER) -> linux:147 (KEY_XFER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x94] = Q_KEY_CODE_UNMAPPED, /* linux:148 (KEY_PROG1) -> linux:148 (KEY_PROG1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x95] = Q_KEY_CODE_UNMAPPED, /* linux:149 (KEY_PROG2) -> linux:149 (KEY_PROG2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x96] = Q_KEY_CODE_UNMAPPED, /* linux:150 (KEY_WWW) -> linux:150 (KEY_WWW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x97] = Q_KEY_CODE_UNMAPPED, /* linux:151 (KEY_MSDOS) -> linux:151 (KEY_MSDOS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x98] = Q_KEY_CODE_UNMAPPED, /* linux:152 (KEY_SCREENLOCK) -> linux:152 (KEY_SCREENLOCK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x99] = Q_KEY_CODE_UNMAPPED, /* linux:153 (KEY_DIRECTION) -> linux:153 (KEY_DIRECTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x9a] = Q_KEY_CODE_UNMAPPED, /* linux:154 (KEY_CYCLEWINDOWS) -> linux:154 (KEY_CYCLEWINDOWS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x9b] = Q_KEY_CODE_MAIL, /* linux:155 (KEY_MAIL) -> linux:155 (KEY_MAIL) -> qcode:Q_KEY_CODE_MAIL (mail) */
+  [0x9c] = Q_KEY_CODE_AC_BOOKMARKS, /* linux:156 (KEY_BOOKMARKS) -> linux:156 (KEY_BOOKMARKS) -> qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) */
+  [0x9d] = Q_KEY_CODE_COMPUTER, /* linux:157 (KEY_COMPUTER) -> linux:157 (KEY_COMPUTER) -> qcode:Q_KEY_CODE_COMPUTER (computer) */
+  [0x9e] = Q_KEY_CODE_AC_BACK, /* linux:158 (KEY_BACK) -> linux:158 (KEY_BACK) -> qcode:Q_KEY_CODE_AC_BACK (ac_back) */
+  [0x9f] = Q_KEY_CODE_AC_FORWARD, /* linux:159 (KEY_FORWARD) -> linux:159 (KEY_FORWARD) -> qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) */
+  [0xa0] = Q_KEY_CODE_UNMAPPED, /* linux:160 (KEY_CLOSECD) -> linux:160 (KEY_CLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa1] = Q_KEY_CODE_UNMAPPED, /* linux:161 (KEY_EJECTCD) -> linux:161 (KEY_EJECTCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa2] = Q_KEY_CODE_UNMAPPED, /* linux:162 (KEY_EJECTCLOSECD) -> linux:162 (KEY_EJECTCLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa3] = Q_KEY_CODE_AUDIONEXT, /* linux:163 (KEY_NEXTSONG) -> linux:163 (KEY_NEXTSONG) -> qcode:Q_KEY_CODE_AUDIONEXT (audionext) */
+  [0xa4] = Q_KEY_CODE_AUDIOPLAY, /* linux:164 (KEY_PLAYPAUSE) -> linux:164 (KEY_PLAYPAUSE) -> qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) */
+  [0xa5] = Q_KEY_CODE_AUDIOPREV, /* linux:165 (KEY_PREVIOUSSONG) -> linux:165 (KEY_PREVIOUSSONG) -> qcode:Q_KEY_CODE_AUDIOPREV (audioprev) */
+  [0xa6] = Q_KEY_CODE_AUDIOSTOP, /* linux:166 (KEY_STOPCD) -> linux:166 (KEY_STOPCD) -> qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) */
+  [0xa7] = Q_KEY_CODE_UNMAPPED, /* linux:167 (KEY_RECORD) -> linux:167 (KEY_RECORD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa8] = Q_KEY_CODE_UNMAPPED, /* linux:168 (KEY_REWIND) -> linux:168 (KEY_REWIND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa9] = Q_KEY_CODE_UNMAPPED, /* linux:169 (KEY_PHONE) -> linux:169 (KEY_PHONE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xaa] = Q_KEY_CODE_UNMAPPED, /* linux:170 (KEY_ISO) -> linux:170 (KEY_ISO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xab] = Q_KEY_CODE_UNMAPPED, /* linux:171 (KEY_CONFIG) -> linux:171 (KEY_CONFIG) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xac] = Q_KEY_CODE_AC_HOME, /* linux:172 (KEY_HOMEPAGE) -> linux:172 (KEY_HOMEPAGE) -> qcode:Q_KEY_CODE_AC_HOME (ac_home) */
+  [0xad] = Q_KEY_CODE_AC_REFRESH, /* linux:173 (KEY_REFRESH) -> linux:173 (KEY_REFRESH) -> qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) */
+  [0xae] = Q_KEY_CODE_UNMAPPED, /* linux:174 (KEY_EXIT) -> linux:174 (KEY_EXIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xaf] = Q_KEY_CODE_UNMAPPED, /* linux:175 (KEY_MOVE) -> linux:175 (KEY_MOVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb0] = Q_KEY_CODE_UNMAPPED, /* linux:176 (KEY_EDIT) -> linux:176 (KEY_EDIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb1] = Q_KEY_CODE_UNMAPPED, /* linux:177 (KEY_SCROLLUP) -> linux:177 (KEY_SCROLLUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb2] = Q_KEY_CODE_UNMAPPED, /* linux:178 (KEY_SCROLLDOWN) -> linux:178 (KEY_SCROLLDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb3] = Q_KEY_CODE_UNMAPPED, /* linux:179 (KEY_KPLEFTPAREN) -> linux:179 (KEY_KPLEFTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb4] = Q_KEY_CODE_UNMAPPED, /* linux:180 (KEY_KPRIGHTPAREN) -> linux:180 (KEY_KPRIGHTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb5] = Q_KEY_CODE_UNMAPPED, /* linux:181 (KEY_NEW) -> linux:181 (KEY_NEW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb6] = Q_KEY_CODE_UNMAPPED, /* linux:182 (KEY_REDO) -> linux:182 (KEY_REDO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb7] = Q_KEY_CODE_UNMAPPED, /* linux:183 (KEY_F13) -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb8] = Q_KEY_CODE_UNMAPPED, /* linux:184 (KEY_F14) -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb9] = Q_KEY_CODE_UNMAPPED, /* linux:185 (KEY_F15) -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xba] = Q_KEY_CODE_UNMAPPED, /* linux:186 (KEY_F16) -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbb] = Q_KEY_CODE_UNMAPPED, /* linux:187 (KEY_F17) -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbc] = Q_KEY_CODE_UNMAPPED, /* linux:188 (KEY_F18) -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbd] = Q_KEY_CODE_UNMAPPED, /* linux:189 (KEY_F19) -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbe] = Q_KEY_CODE_UNMAPPED, /* linux:190 (KEY_F20) -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbf] = Q_KEY_CODE_UNMAPPED, /* linux:191 (KEY_F21) -> linux:191 (KEY_F21) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc0] = Q_KEY_CODE_UNMAPPED, /* linux:192 (KEY_F22) -> linux:192 (KEY_F22) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc1] = Q_KEY_CODE_UNMAPPED, /* linux:193 (KEY_F23) -> linux:193 (KEY_F23) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc2] = Q_KEY_CODE_UNMAPPED, /* linux:194 (KEY_F24) -> linux:194 (KEY_F24) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc3] = Q_KEY_CODE_UNMAPPED, /* linux:195 (unnamed) -> linux:195 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc4] = Q_KEY_CODE_UNMAPPED, /* linux:196 (unnamed) -> linux:196 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc5] = Q_KEY_CODE_UNMAPPED, /* linux:197 (unnamed) -> linux:197 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc6] = Q_KEY_CODE_UNMAPPED, /* linux:198 (unnamed) -> linux:198 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc7] = Q_KEY_CODE_UNMAPPED, /* linux:199 (unnamed) -> linux:199 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc8] = Q_KEY_CODE_UNMAPPED, /* linux:200 (KEY_PLAYCD) -> linux:200 (KEY_PLAYCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc9] = Q_KEY_CODE_UNMAPPED, /* linux:201 (KEY_PAUSECD) -> linux:201 (KEY_PAUSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xca] = Q_KEY_CODE_UNMAPPED, /* linux:202 (KEY_PROG3) -> linux:202 (KEY_PROG3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xcb] = Q_KEY_CODE_UNMAPPED, /* linux:203 (KEY_PROG4) -> linux:203 (KEY_PROG4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xcc] = Q_KEY_CODE_UNMAPPED, /* linux:204 (KEY_DASHBOARD) -> linux:204 (KEY_DASHBOARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xcd] = Q_KEY_CODE_UNMAPPED, /* linux:205 (KEY_SUSPEND) -> linux:205 (KEY_SUSPEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xce] = Q_KEY_CODE_UNMAPPED, /* linux:206 (KEY_CLOSE) -> linux:206 (KEY_CLOSE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xcf] = Q_KEY_CODE_UNMAPPED, /* linux:207 (KEY_PLAY) -> linux:207 (KEY_PLAY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd0] = Q_KEY_CODE_UNMAPPED, /* linux:208 (KEY_FASTFORWARD) -> linux:208 (KEY_FASTFORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd1] = Q_KEY_CODE_UNMAPPED, /* linux:209 (KEY_BASSBOOST) -> linux:209 (KEY_BASSBOOST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd2] = Q_KEY_CODE_UNMAPPED, /* linux:210 (KEY_PRINT) -> linux:210 (KEY_PRINT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd3] = Q_KEY_CODE_UNMAPPED, /* linux:211 (KEY_HP) -> linux:211 (KEY_HP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd4] = Q_KEY_CODE_UNMAPPED, /* linux:212 (KEY_CAMERA) -> linux:212 (KEY_CAMERA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd5] = Q_KEY_CODE_UNMAPPED, /* linux:213 (KEY_SOUND) -> linux:213 (KEY_SOUND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd6] = Q_KEY_CODE_UNMAPPED, /* linux:214 (KEY_QUESTION) -> linux:214 (KEY_QUESTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd7] = Q_KEY_CODE_UNMAPPED, /* linux:215 (KEY_EMAIL) -> linux:215 (KEY_EMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd8] = Q_KEY_CODE_UNMAPPED, /* linux:216 (KEY_CHAT) -> linux:216 (KEY_CHAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd9] = Q_KEY_CODE_UNMAPPED, /* linux:217 (KEY_SEARCH) -> linux:217 (KEY_SEARCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xda] = Q_KEY_CODE_UNMAPPED, /* linux:218 (KEY_CONNECT) -> linux:218 (KEY_CONNECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xdb] = Q_KEY_CODE_UNMAPPED, /* linux:219 (KEY_FINANCE) -> linux:219 (KEY_FINANCE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xdc] = Q_KEY_CODE_UNMAPPED, /* linux:220 (KEY_SPORT) -> linux:220 (KEY_SPORT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xdd] = Q_KEY_CODE_UNMAPPED, /* linux:221 (KEY_SHOP) -> linux:221 (KEY_SHOP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xde] = Q_KEY_CODE_UNMAPPED, /* linux:222 (KEY_ALTERASE) -> linux:222 (KEY_ALTERASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xdf] = Q_KEY_CODE_UNMAPPED, /* linux:223 (KEY_CANCEL) -> linux:223 (KEY_CANCEL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe0] = Q_KEY_CODE_UNMAPPED, /* linux:224 (KEY_BRIGHTNESSDOWN) -> linux:224 (KEY_BRIGHTNESSDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe1] = Q_KEY_CODE_UNMAPPED, /* linux:225 (KEY_BRIGHTNESSUP) -> linux:225 (KEY_BRIGHTNESSUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe2] = Q_KEY_CODE_MEDIASELECT, /* linux:226 (KEY_MEDIA) -> linux:226 (KEY_MEDIA) -> qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) */
+  [0xe3] = Q_KEY_CODE_UNMAPPED, /* linux:227 (KEY_SWITCHVIDEOMODE) -> linux:227 (KEY_SWITCHVIDEOMODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe4] = Q_KEY_CODE_UNMAPPED, /* linux:228 (KEY_KBDILLUMTOGGLE) -> linux:228 (KEY_KBDILLUMTOGGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe5] = Q_KEY_CODE_UNMAPPED, /* linux:229 (KEY_KBDILLUMDOWN) -> linux:229 (KEY_KBDILLUMDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe6] = Q_KEY_CODE_UNMAPPED, /* linux:230 (KEY_KBDILLUMUP) -> linux:230 (KEY_KBDILLUMUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe7] = Q_KEY_CODE_UNMAPPED, /* linux:231 (KEY_SEND) -> linux:231 (KEY_SEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe8] = Q_KEY_CODE_UNMAPPED, /* linux:232 (KEY_REPLY) -> linux:232 (KEY_REPLY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe9] = Q_KEY_CODE_UNMAPPED, /* linux:233 (KEY_FORWARDMAIL) -> linux:233 (KEY_FORWARDMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xea] = Q_KEY_CODE_UNMAPPED, /* linux:234 (KEY_SAVE) -> linux:234 (KEY_SAVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xeb] = Q_KEY_CODE_UNMAPPED, /* linux:235 (KEY_DOCUMENTS) -> linux:235 (KEY_DOCUMENTS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xec] = Q_KEY_CODE_UNMAPPED, /* linux:236 (KEY_BATTERY) -> linux:236 (KEY_BATTERY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xed] = Q_KEY_CODE_UNMAPPED, /* linux:237 (KEY_BLUETOOTH) -> linux:237 (KEY_BLUETOOTH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xee] = Q_KEY_CODE_UNMAPPED, /* linux:238 (KEY_WLAN) -> linux:238 (KEY_WLAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xef] = Q_KEY_CODE_UNMAPPED, /* linux:239 (KEY_UWB) -> linux:239 (KEY_UWB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf0] = Q_KEY_CODE_UNMAPPED, /* linux:240 (KEY_UNKNOWN) -> linux:240 (KEY_UNKNOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf1] = Q_KEY_CODE_UNMAPPED, /* linux:241 (KEY_VIDEO_NEXT) -> linux:241 (KEY_VIDEO_NEXT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf2] = Q_KEY_CODE_UNMAPPED, /* linux:242 (KEY_VIDEO_PREV) -> linux:242 (KEY_VIDEO_PREV) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf3] = Q_KEY_CODE_UNMAPPED, /* linux:243 (KEY_BRIGHTNESS_CYCLE) -> linux:243 (KEY_BRIGHTNESS_CYCLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf4] = Q_KEY_CODE_UNMAPPED, /* linux:244 (KEY_BRIGHTNESS_ZERO) -> linux:244 (KEY_BRIGHTNESS_ZERO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf5] = Q_KEY_CODE_UNMAPPED, /* linux:245 (KEY_DISPLAY_OFF) -> linux:245 (KEY_DISPLAY_OFF) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf6] = Q_KEY_CODE_UNMAPPED, /* linux:246 (KEY_WIMAX) -> linux:246 (KEY_WIMAX) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf7] = Q_KEY_CODE_UNMAPPED, /* linux:247 (unnamed) -> linux:247 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf8] = Q_KEY_CODE_UNMAPPED, /* linux:248 (unnamed) -> linux:248 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf9] = Q_KEY_CODE_UNMAPPED, /* linux:249 (unnamed) -> linux:249 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfa] = Q_KEY_CODE_UNMAPPED, /* linux:250 (unnamed) -> linux:250 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfb] = Q_KEY_CODE_UNMAPPED, /* linux:251 (unnamed) -> linux:251 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfc] = Q_KEY_CODE_UNMAPPED, /* linux:252 (unnamed) -> linux:252 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfd] = Q_KEY_CODE_UNMAPPED, /* linux:253 (unnamed) -> linux:253 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfe] = Q_KEY_CODE_UNMAPPED, /* linux:254 (unnamed) -> linux:254 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xff] = Q_KEY_CODE_UNMAPPED, /* linux:255 (unnamed) -> linux:255 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x100] = Q_KEY_CODE_UNMAPPED, /* linux:256 (BTN_0) -> linux:256 (BTN_0) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x101] = Q_KEY_CODE_UNMAPPED, /* linux:257 (BTN_1) -> linux:257 (BTN_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x102] = Q_KEY_CODE_UNMAPPED, /* linux:258 (BTN_2) -> linux:258 (BTN_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x103] = Q_KEY_CODE_UNMAPPED, /* linux:259 (BTN_3) -> linux:259 (BTN_3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x104] = Q_KEY_CODE_UNMAPPED, /* linux:260 (BTN_4) -> linux:260 (BTN_4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x105] = Q_KEY_CODE_UNMAPPED, /* linux:261 (BTN_5) -> linux:261 (BTN_5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x106] = Q_KEY_CODE_UNMAPPED, /* linux:262 (BTN_6) -> linux:262 (BTN_6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x107] = Q_KEY_CODE_UNMAPPED, /* linux:263 (BTN_7) -> linux:263 (BTN_7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x108] = Q_KEY_CODE_UNMAPPED, /* linux:264 (BTN_8) -> linux:264 (BTN_8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x109] = Q_KEY_CODE_UNMAPPED, /* linux:265 (BTN_9) -> linux:265 (BTN_9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x110] = Q_KEY_CODE_UNMAPPED, /* linux:272 (BTN_LEFT) -> linux:272 (BTN_LEFT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x111] = Q_KEY_CODE_UNMAPPED, /* linux:273 (BTN_RIGHT) -> linux:273 (BTN_RIGHT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x112] = Q_KEY_CODE_UNMAPPED, /* linux:274 (BTN_MIDDLE) -> linux:274 (BTN_MIDDLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x113] = Q_KEY_CODE_UNMAPPED, /* linux:275 (BTN_SIDE) -> linux:275 (BTN_SIDE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x114] = Q_KEY_CODE_UNMAPPED, /* linux:276 (BTN_EXTRA) -> linux:276 (BTN_EXTRA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x115] = Q_KEY_CODE_UNMAPPED, /* linux:277 (BTN_FORWARD) -> linux:277 (BTN_FORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x116] = Q_KEY_CODE_UNMAPPED, /* linux:278 (BTN_BACK) -> linux:278 (BTN_BACK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x117] = Q_KEY_CODE_UNMAPPED, /* linux:279 (BTN_TASK) -> linux:279 (BTN_TASK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x120] = Q_KEY_CODE_UNMAPPED, /* linux:288 (BTN_TRIGGER) -> linux:288 (BTN_TRIGGER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x121] = Q_KEY_CODE_UNMAPPED, /* linux:289 (BTN_THUMB) -> linux:289 (BTN_THUMB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x122] = Q_KEY_CODE_UNMAPPED, /* linux:290 (BTN_THUMB2) -> linux:290 (BTN_THUMB2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x123] = Q_KEY_CODE_UNMAPPED, /* linux:291 (BTN_TOP) -> linux:291 (BTN_TOP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x124] = Q_KEY_CODE_UNMAPPED, /* linux:292 (BTN_TOP2) -> linux:292 (BTN_TOP2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x125] = Q_KEY_CODE_UNMAPPED, /* linux:293 (BTN_PINKIE) -> linux:293 (BTN_PINKIE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x126] = Q_KEY_CODE_UNMAPPED, /* linux:294 (BTN_BASE) -> linux:294 (BTN_BASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x127] = Q_KEY_CODE_UNMAPPED, /* linux:295 (BTN_BASE2) -> linux:295 (BTN_BASE2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x128] = Q_KEY_CODE_UNMAPPED, /* linux:296 (BTN_BASE3) -> linux:296 (BTN_BASE3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x129] = Q_KEY_CODE_UNMAPPED, /* linux:297 (BTN_BASE4) -> linux:297 (BTN_BASE4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x12a] = Q_KEY_CODE_UNMAPPED, /* linux:298 (BTN_BASE5) -> linux:298 (BTN_BASE5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x12b] = Q_KEY_CODE_UNMAPPED, /* linux:299 (BTN_BASE6) -> linux:299 (BTN_BASE6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x12f] = Q_KEY_CODE_UNMAPPED, /* linux:303 (BTN_DEAD) -> linux:303 (BTN_DEAD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x130] = Q_KEY_CODE_UNMAPPED, /* linux:304 (BTN_A) -> linux:304 (BTN_A) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x131] = Q_KEY_CODE_UNMAPPED, /* linux:305 (BTN_B) -> linux:305 (BTN_B) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x132] = Q_KEY_CODE_UNMAPPED, /* linux:306 (BTN_C) -> linux:306 (BTN_C) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x133] = Q_KEY_CODE_UNMAPPED, /* linux:307 (BTN_X) -> linux:307 (BTN_X) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x134] = Q_KEY_CODE_UNMAPPED, /* linux:308 (BTN_Y) -> linux:308 (BTN_Y) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x135] = Q_KEY_CODE_UNMAPPED, /* linux:309 (BTN_Z) -> linux:309 (BTN_Z) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x136] = Q_KEY_CODE_UNMAPPED, /* linux:310 (BTN_TL) -> linux:310 (BTN_TL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x137] = Q_KEY_CODE_UNMAPPED, /* linux:311 (BTN_TR) -> linux:311 (BTN_TR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x138] = Q_KEY_CODE_UNMAPPED, /* linux:312 (BTN_TL2) -> linux:312 (BTN_TL2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x139] = Q_KEY_CODE_UNMAPPED, /* linux:313 (BTN_TR2) -> linux:313 (BTN_TR2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x13a] = Q_KEY_CODE_UNMAPPED, /* linux:314 (BTN_SELECT) -> linux:314 (BTN_SELECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x13b] = Q_KEY_CODE_UNMAPPED, /* linux:315 (BTN_START) -> linux:315 (BTN_START) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x13c] = Q_KEY_CODE_UNMAPPED, /* linux:316 (BTN_MODE) -> linux:316 (BTN_MODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x13d] = Q_KEY_CODE_UNMAPPED, /* linux:317 (BTN_THUMBL) -> linux:317 (BTN_THUMBL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x13e] = Q_KEY_CODE_UNMAPPED, /* linux:318 (BTN_THUMBR) -> linux:318 (BTN_THUMBR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x140] = Q_KEY_CODE_UNMAPPED, /* linux:320 (BTN_TOOL_PEN) -> linux:320 (BTN_TOOL_PEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x141] = Q_KEY_CODE_UNMAPPED, /* linux:321 (BTN_TOOL_RUBBER) -> linux:321 (BTN_TOOL_RUBBER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x142] = Q_KEY_CODE_UNMAPPED, /* linux:322 (BTN_TOOL_BRUSH) -> linux:322 (BTN_TOOL_BRUSH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x143] = Q_KEY_CODE_UNMAPPED, /* linux:323 (BTN_TOOL_PENCIL) -> linux:323 (BTN_TOOL_PENCIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x144] = Q_KEY_CODE_UNMAPPED, /* linux:324 (BTN_TOOL_AIRBRUSH) -> linux:324 (BTN_TOOL_AIRBRUSH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x145] = Q_KEY_CODE_UNMAPPED, /* linux:325 (BTN_TOOL_FINGER) -> linux:325 (BTN_TOOL_FINGER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x146] = Q_KEY_CODE_UNMAPPED, /* linux:326 (BTN_TOOL_MOUSE) -> linux:326 (BTN_TOOL_MOUSE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x147] = Q_KEY_CODE_UNMAPPED, /* linux:327 (BTN_TOOL_LENS) -> linux:327 (BTN_TOOL_LENS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x14a] = Q_KEY_CODE_UNMAPPED, /* linux:330 (BTN_TOUCH) -> linux:330 (BTN_TOUCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x14b] = Q_KEY_CODE_UNMAPPED, /* linux:331 (BTN_STYLUS) -> linux:331 (BTN_STYLUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x14c] = Q_KEY_CODE_UNMAPPED, /* linux:332 (BTN_STYLUS2) -> linux:332 (BTN_STYLUS2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x14d] = Q_KEY_CODE_UNMAPPED, /* linux:333 (BTN_TOOL_DOUBLETAP) -> linux:333 (BTN_TOOL_DOUBLETAP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x14e] = Q_KEY_CODE_UNMAPPED, /* linux:334 (BTN_TOOL_TRIPLETAP) -> linux:334 (BTN_TOOL_TRIPLETAP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x14f] = Q_KEY_CODE_UNMAPPED, /* linux:335 (BTN_TOOL_QUADTAP) -> linux:335 (BTN_TOOL_QUADTAP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x150] = Q_KEY_CODE_UNMAPPED, /* linux:336 (BTN_GEAR_DOWN) -> linux:336 (BTN_GEAR_DOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x151] = Q_KEY_CODE_UNMAPPED, /* linux:337 (BTN_GEAR_UP) -> linux:337 (BTN_GEAR_UP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x160] = Q_KEY_CODE_UNMAPPED, /* linux:352 (KEY_OK) -> linux:352 (KEY_OK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x161] = Q_KEY_CODE_UNMAPPED, /* linux:353 (KEY_SELECT) -> linux:353 (KEY_SELECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x162] = Q_KEY_CODE_UNMAPPED, /* linux:354 (KEY_GOTO) -> linux:354 (KEY_GOTO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x163] = Q_KEY_CODE_UNMAPPED, /* linux:355 (KEY_CLEAR) -> linux:355 (KEY_CLEAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x164] = Q_KEY_CODE_UNMAPPED, /* linux:356 (KEY_POWER2) -> linux:356 (KEY_POWER2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x165] = Q_KEY_CODE_UNMAPPED, /* linux:357 (KEY_OPTION) -> linux:357 (KEY_OPTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x166] = Q_KEY_CODE_UNMAPPED, /* linux:358 (KEY_INFO) -> linux:358 (KEY_INFO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x167] = Q_KEY_CODE_UNMAPPED, /* linux:359 (KEY_TIME) -> linux:359 (KEY_TIME) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x168] = Q_KEY_CODE_UNMAPPED, /* linux:360 (KEY_VENDOR) -> linux:360 (KEY_VENDOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x169] = Q_KEY_CODE_UNMAPPED, /* linux:361 (KEY_ARCHIVE) -> linux:361 (KEY_ARCHIVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x16a] = Q_KEY_CODE_UNMAPPED, /* linux:362 (KEY_PROGRAM) -> linux:362 (KEY_PROGRAM) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x16b] = Q_KEY_CODE_UNMAPPED, /* linux:363 (KEY_CHANNEL) -> linux:363 (KEY_CHANNEL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x16c] = Q_KEY_CODE_UNMAPPED, /* linux:364 (KEY_FAVORITES) -> linux:364 (KEY_FAVORITES) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x16d] = Q_KEY_CODE_UNMAPPED, /* linux:365 (KEY_EPG) -> linux:365 (KEY_EPG) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x16e] = Q_KEY_CODE_UNMAPPED, /* linux:366 (KEY_PVR) -> linux:366 (KEY_PVR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x16f] = Q_KEY_CODE_UNMAPPED, /* linux:367 (KEY_MHP) -> linux:367 (KEY_MHP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x170] = Q_KEY_CODE_UNMAPPED, /* linux:368 (KEY_LANGUAGE) -> linux:368 (KEY_LANGUAGE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x171] = Q_KEY_CODE_UNMAPPED, /* linux:369 (KEY_TITLE) -> linux:369 (KEY_TITLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x172] = Q_KEY_CODE_UNMAPPED, /* linux:370 (KEY_SUBTITLE) -> linux:370 (KEY_SUBTITLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x173] = Q_KEY_CODE_UNMAPPED, /* linux:371 (KEY_ANGLE) -> linux:371 (KEY_ANGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x174] = Q_KEY_CODE_UNMAPPED, /* linux:372 (KEY_ZOOM) -> linux:372 (KEY_ZOOM) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x175] = Q_KEY_CODE_UNMAPPED, /* linux:373 (KEY_MODE) -> linux:373 (KEY_MODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x176] = Q_KEY_CODE_UNMAPPED, /* linux:374 (KEY_KEYBOARD) -> linux:374 (KEY_KEYBOARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x177] = Q_KEY_CODE_UNMAPPED, /* linux:375 (KEY_SCREEN) -> linux:375 (KEY_SCREEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x178] = Q_KEY_CODE_UNMAPPED, /* linux:376 (KEY_PC) -> linux:376 (KEY_PC) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x179] = Q_KEY_CODE_UNMAPPED, /* linux:377 (KEY_TV) -> linux:377 (KEY_TV) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x17a] = Q_KEY_CODE_UNMAPPED, /* linux:378 (KEY_TV2) -> linux:378 (KEY_TV2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x17b] = Q_KEY_CODE_UNMAPPED, /* linux:379 (KEY_VCR) -> linux:379 (KEY_VCR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x17c] = Q_KEY_CODE_UNMAPPED, /* linux:380 (KEY_VCR2) -> linux:380 (KEY_VCR2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x17d] = Q_KEY_CODE_UNMAPPED, /* linux:381 (KEY_SAT) -> linux:381 (KEY_SAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x17e] = Q_KEY_CODE_UNMAPPED, /* linux:382 (KEY_SAT2) -> linux:382 (KEY_SAT2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x17f] = Q_KEY_CODE_UNMAPPED, /* linux:383 (KEY_CD) -> linux:383 (KEY_CD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x180] = Q_KEY_CODE_UNMAPPED, /* linux:384 (KEY_TAPE) -> linux:384 (KEY_TAPE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x181] = Q_KEY_CODE_UNMAPPED, /* linux:385 (KEY_RADIO) -> linux:385 (KEY_RADIO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x182] = Q_KEY_CODE_UNMAPPED, /* linux:386 (KEY_TUNER) -> linux:386 (KEY_TUNER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x183] = Q_KEY_CODE_UNMAPPED, /* linux:387 (KEY_PLAYER) -> linux:387 (KEY_PLAYER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x184] = Q_KEY_CODE_UNMAPPED, /* linux:388 (KEY_TEXT) -> linux:388 (KEY_TEXT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x185] = Q_KEY_CODE_UNMAPPED, /* linux:389 (KEY_DVD) -> linux:389 (KEY_DVD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x186] = Q_KEY_CODE_UNMAPPED, /* linux:390 (KEY_AUX) -> linux:390 (KEY_AUX) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x187] = Q_KEY_CODE_UNMAPPED, /* linux:391 (KEY_MP3) -> linux:391 (KEY_MP3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x188] = Q_KEY_CODE_UNMAPPED, /* linux:392 (KEY_AUDIO) -> linux:392 (KEY_AUDIO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x189] = Q_KEY_CODE_UNMAPPED, /* linux:393 (KEY_VIDEO) -> linux:393 (KEY_VIDEO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x18a] = Q_KEY_CODE_UNMAPPED, /* linux:394 (KEY_DIRECTORY) -> linux:394 (KEY_DIRECTORY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x18b] = Q_KEY_CODE_UNMAPPED, /* linux:395 (KEY_LIST) -> linux:395 (KEY_LIST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x18c] = Q_KEY_CODE_UNMAPPED, /* linux:396 (KEY_MEMO) -> linux:396 (KEY_MEMO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x18d] = Q_KEY_CODE_UNMAPPED, /* linux:397 (KEY_CALENDAR) -> linux:397 (KEY_CALENDAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x18e] = Q_KEY_CODE_UNMAPPED, /* linux:398 (KEY_RED) -> linux:398 (KEY_RED) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x18f] = Q_KEY_CODE_UNMAPPED, /* linux:399 (KEY_GREEN) -> linux:399 (KEY_GREEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x190] = Q_KEY_CODE_UNMAPPED, /* linux:400 (KEY_YELLOW) -> linux:400 (KEY_YELLOW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x191] = Q_KEY_CODE_UNMAPPED, /* linux:401 (KEY_BLUE) -> linux:401 (KEY_BLUE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x192] = Q_KEY_CODE_UNMAPPED, /* linux:402 (KEY_CHANNELUP) -> linux:402 (KEY_CHANNELUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x193] = Q_KEY_CODE_UNMAPPED, /* linux:403 (KEY_CHANNELDOWN) -> linux:403 (KEY_CHANNELDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x194] = Q_KEY_CODE_UNMAPPED, /* linux:404 (KEY_FIRST) -> linux:404 (KEY_FIRST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x195] = Q_KEY_CODE_UNMAPPED, /* linux:405 (KEY_LAST) -> linux:405 (KEY_LAST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x196] = Q_KEY_CODE_UNMAPPED, /* linux:406 (KEY_AB) -> linux:406 (KEY_AB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x197] = Q_KEY_CODE_UNMAPPED, /* linux:407 (KEY_NEXT) -> linux:407 (KEY_NEXT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x198] = Q_KEY_CODE_UNMAPPED, /* linux:408 (KEY_RESTART) -> linux:408 (KEY_RESTART) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x199] = Q_KEY_CODE_UNMAPPED, /* linux:409 (KEY_SLOW) -> linux:409 (KEY_SLOW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19a] = Q_KEY_CODE_UNMAPPED, /* linux:410 (KEY_SHUFFLE) -> linux:410 (KEY_SHUFFLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19b] = Q_KEY_CODE_UNMAPPED, /* linux:411 (KEY_BREAK) -> linux:411 (KEY_BREAK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19c] = Q_KEY_CODE_UNMAPPED, /* linux:412 (KEY_PREVIOUS) -> linux:412 (KEY_PREVIOUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19d] = Q_KEY_CODE_UNMAPPED, /* linux:413 (KEY_DIGITS) -> linux:413 (KEY_DIGITS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19e] = Q_KEY_CODE_UNMAPPED, /* linux:414 (KEY_TEEN) -> linux:414 (KEY_TEEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19f] = Q_KEY_CODE_UNMAPPED, /* linux:415 (KEY_TWEN) -> linux:415 (KEY_TWEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a0] = Q_KEY_CODE_UNMAPPED, /* linux:416 (KEY_VIDEOPHONE) -> linux:416 (KEY_VIDEOPHONE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a1] = Q_KEY_CODE_UNMAPPED, /* linux:417 (KEY_GAMES) -> linux:417 (KEY_GAMES) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a2] = Q_KEY_CODE_UNMAPPED, /* linux:418 (KEY_ZOOMIN) -> linux:418 (KEY_ZOOMIN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a3] = Q_KEY_CODE_UNMAPPED, /* linux:419 (KEY_ZOOMOUT) -> linux:419 (KEY_ZOOMOUT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a4] = Q_KEY_CODE_UNMAPPED, /* linux:420 (KEY_ZOOMRESET) -> linux:420 (KEY_ZOOMRESET) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a5] = Q_KEY_CODE_UNMAPPED, /* linux:421 (KEY_WORDPROCESSOR) -> linux:421 (KEY_WORDPROCESSOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a6] = Q_KEY_CODE_UNMAPPED, /* linux:422 (KEY_EDITOR) -> linux:422 (KEY_EDITOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a7] = Q_KEY_CODE_UNMAPPED, /* linux:423 (KEY_SPREADSHEET) -> linux:423 (KEY_SPREADSHEET) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a8] = Q_KEY_CODE_UNMAPPED, /* linux:424 (KEY_GRAPHICSEDITOR) -> linux:424 (KEY_GRAPHICSEDITOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a9] = Q_KEY_CODE_UNMAPPED, /* linux:425 (KEY_PRESENTATION) -> linux:425 (KEY_PRESENTATION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1aa] = Q_KEY_CODE_UNMAPPED, /* linux:426 (KEY_DATABASE) -> linux:426 (KEY_DATABASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ab] = Q_KEY_CODE_UNMAPPED, /* linux:427 (KEY_NEWS) -> linux:427 (KEY_NEWS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ac] = Q_KEY_CODE_UNMAPPED, /* linux:428 (KEY_VOICEMAIL) -> linux:428 (KEY_VOICEMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ad] = Q_KEY_CODE_UNMAPPED, /* linux:429 (KEY_ADDRESSBOOK) -> linux:429 (KEY_ADDRESSBOOK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ae] = Q_KEY_CODE_UNMAPPED, /* linux:430 (KEY_MESSENGER) -> linux:430 (KEY_MESSENGER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1af] = Q_KEY_CODE_UNMAPPED, /* linux:431 (KEY_DISPLAYTOGGLE) -> linux:431 (KEY_DISPLAYTOGGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b0] = Q_KEY_CODE_UNMAPPED, /* linux:432 (KEY_SPELLCHECK) -> linux:432 (KEY_SPELLCHECK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b1] = Q_KEY_CODE_UNMAPPED, /* linux:433 (KEY_LOGOFF) -> linux:433 (KEY_LOGOFF) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b2] = Q_KEY_CODE_UNMAPPED, /* linux:434 (KEY_DOLLAR) -> linux:434 (KEY_DOLLAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b3] = Q_KEY_CODE_UNMAPPED, /* linux:435 (KEY_EURO) -> linux:435 (KEY_EURO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b4] = Q_KEY_CODE_UNMAPPED, /* linux:436 (KEY_FRAMEBACK) -> linux:436 (KEY_FRAMEBACK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b5] = Q_KEY_CODE_UNMAPPED, /* linux:437 (KEY_FRAMEFORWARD) -> linux:437 (KEY_FRAMEFORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b6] = Q_KEY_CODE_UNMAPPED, /* linux:438 (KEY_CONTEXT_MENU) -> linux:438 (KEY_CONTEXT_MENU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b7] = Q_KEY_CODE_UNMAPPED, /* linux:439 (KEY_MEDIA_REPEAT) -> linux:439 (KEY_MEDIA_REPEAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1c0] = Q_KEY_CODE_UNMAPPED, /* linux:448 (KEY_DEL_EOL) -> linux:448 (KEY_DEL_EOL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1c1] = Q_KEY_CODE_UNMAPPED, /* linux:449 (KEY_DEL_EOS) -> linux:449 (KEY_DEL_EOS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1c2] = Q_KEY_CODE_UNMAPPED, /* linux:450 (KEY_INS_LINE) -> linux:450 (KEY_INS_LINE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1c3] = Q_KEY_CODE_UNMAPPED, /* linux:451 (KEY_DEL_LINE) -> linux:451 (KEY_DEL_LINE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1d0] = Q_KEY_CODE_UNMAPPED, /* linux:464 (KEY_FN) -> linux:464 (KEY_FN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1d1] = Q_KEY_CODE_UNMAPPED, /* linux:465 (KEY_FN_ESC) -> linux:465 (KEY_FN_ESC) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1d2] = Q_KEY_CODE_UNMAPPED, /* linux:466 (KEY_FN_F1) -> linux:466 (KEY_FN_F1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1d3] = Q_KEY_CODE_UNMAPPED, /* linux:467 (KEY_FN_F2) -> linux:467 (KEY_FN_F2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1d4] = Q_KEY_CODE_UNMAPPED, /* linux:468 (KEY_FN_F3) -> linux:468 (KEY_FN_F3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1d5] = Q_KEY_CODE_UNMAPPED, /* linux:469 (KEY_FN_F4) -> linux:469 (KEY_FN_F4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1d6] = Q_KEY_CODE_UNMAPPED, /* linux:470 (KEY_FN_F5) -> linux:470 (KEY_FN_F5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1d7] = Q_KEY_CODE_UNMAPPED, /* linux:471 (KEY_FN_F6) -> linux:471 (KEY_FN_F6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1d8] = Q_KEY_CODE_UNMAPPED, /* linux:472 (KEY_FN_F7) -> linux:472 (KEY_FN_F7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1d9] = Q_KEY_CODE_UNMAPPED, /* linux:473 (KEY_FN_F8) -> linux:473 (KEY_FN_F8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1da] = Q_KEY_CODE_UNMAPPED, /* linux:474 (KEY_FN_F9) -> linux:474 (KEY_FN_F9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1db] = Q_KEY_CODE_UNMAPPED, /* linux:475 (KEY_FN_F10) -> linux:475 (KEY_FN_F10) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1dc] = Q_KEY_CODE_UNMAPPED, /* linux:476 (KEY_FN_F11) -> linux:476 (KEY_FN_F11) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1dd] = Q_KEY_CODE_UNMAPPED, /* linux:477 (KEY_FN_F12) -> linux:477 (KEY_FN_F12) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1de] = Q_KEY_CODE_UNMAPPED, /* linux:478 (KEY_FN_1) -> linux:478 (KEY_FN_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1df] = Q_KEY_CODE_UNMAPPED, /* linux:479 (KEY_FN_2) -> linux:479 (KEY_FN_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e0] = Q_KEY_CODE_UNMAPPED, /* linux:480 (KEY_FN_D) -> linux:480 (KEY_FN_D) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e1] = Q_KEY_CODE_UNMAPPED, /* linux:481 (KEY_FN_E) -> linux:481 (KEY_FN_E) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e2] = Q_KEY_CODE_UNMAPPED, /* linux:482 (KEY_FN_F) -> linux:482 (KEY_FN_F) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e3] = Q_KEY_CODE_UNMAPPED, /* linux:483 (KEY_FN_S) -> linux:483 (KEY_FN_S) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e4] = Q_KEY_CODE_UNMAPPED, /* linux:484 (KEY_FN_B) -> linux:484 (KEY_FN_B) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1f1] = Q_KEY_CODE_UNMAPPED, /* linux:497 (KEY_BRL_DOT1) -> linux:497 (KEY_BRL_DOT1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1f2] = Q_KEY_CODE_UNMAPPED, /* linux:498 (KEY_BRL_DOT2) -> linux:498 (KEY_BRL_DOT2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1f3] = Q_KEY_CODE_UNMAPPED, /* linux:499 (KEY_BRL_DOT3) -> linux:499 (KEY_BRL_DOT3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1f4] = Q_KEY_CODE_UNMAPPED, /* linux:500 (KEY_BRL_DOT4) -> linux:500 (KEY_BRL_DOT4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1f5] = Q_KEY_CODE_UNMAPPED, /* linux:501 (KEY_BRL_DOT5) -> linux:501 (KEY_BRL_DOT5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1f6] = Q_KEY_CODE_UNMAPPED, /* linux:502 (KEY_BRL_DOT6) -> linux:502 (KEY_BRL_DOT6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1f7] = Q_KEY_CODE_UNMAPPED, /* linux:503 (KEY_BRL_DOT7) -> linux:503 (KEY_BRL_DOT7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1f8] = Q_KEY_CODE_UNMAPPED, /* linux:504 (KEY_BRL_DOT8) -> linux:504 (KEY_BRL_DOT8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1f9] = Q_KEY_CODE_UNMAPPED, /* linux:505 (KEY_BRL_DOT9) -> linux:505 (KEY_BRL_DOT9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1fa] = Q_KEY_CODE_UNMAPPED, /* linux:506 (KEY_BRL_DOT10) -> linux:506 (KEY_BRL_DOT10) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x200] = Q_KEY_CODE_UNMAPPED, /* linux:512 (KEY_NUMERIC_0) -> linux:512 (KEY_NUMERIC_0) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x201] = Q_KEY_CODE_UNMAPPED, /* linux:513 (KEY_NUMERIC_1) -> linux:513 (KEY_NUMERIC_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x202] = Q_KEY_CODE_UNMAPPED, /* linux:514 (KEY_NUMERIC_2) -> linux:514 (KEY_NUMERIC_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x203] = Q_KEY_CODE_UNMAPPED, /* linux:515 (KEY_NUMERIC_3) -> linux:515 (KEY_NUMERIC_3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x204] = Q_KEY_CODE_UNMAPPED, /* linux:516 (KEY_NUMERIC_4) -> linux:516 (KEY_NUMERIC_4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x205] = Q_KEY_CODE_UNMAPPED, /* linux:517 (KEY_NUMERIC_5) -> linux:517 (KEY_NUMERIC_5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x206] = Q_KEY_CODE_UNMAPPED, /* linux:518 (KEY_NUMERIC_6) -> linux:518 (KEY_NUMERIC_6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x207] = Q_KEY_CODE_UNMAPPED, /* linux:519 (KEY_NUMERIC_7) -> linux:519 (KEY_NUMERIC_7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x208] = Q_KEY_CODE_UNMAPPED, /* linux:520 (KEY_NUMERIC_8) -> linux:520 (KEY_NUMERIC_8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x209] = Q_KEY_CODE_UNMAPPED, /* linux:521 (KEY_NUMERIC_9) -> linux:521 (KEY_NUMERIC_9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x20a] = Q_KEY_CODE_UNMAPPED, /* linux:522 (KEY_NUMERIC_STAR) -> linux:522 (KEY_NUMERIC_STAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x20b] = Q_KEY_CODE_UNMAPPED, /* linux:523 (KEY_NUMERIC_POUND) -> linux:523 (KEY_NUMERIC_POUND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x20c] = Q_KEY_CODE_UNMAPPED, /* linux:524 (KEY_RFKILL) -> linux:524 (KEY_RFKILL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+};
+const guint qemu_input_map_linux_to_qcode_len = sizeof(qemu_input_map_linux_to_qcode)/sizeof(qemu_input_map_linux_to_qcode[0]);
diff --git a/ui/input-keymap-qcode-to-qnum.c b/ui/input-keymap-qcode-to-qnum.c
new file mode 100644
index 0000000000..acaaa0f16d
--- /dev/null
+++ b/ui/input-keymap-qcode-to-qnum.c
@@ -0,0 +1,154 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:01
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qcode_to_qnum code-map keymaps.csv qcode qnum
+*/
+const guint16 qemu_input_map_qcode_to_qnum[Q_KEY_CODE__MAX] = {
+  [Q_KEY_CODE_0] = 0xb, /* qcode:Q_KEY_CODE_0 (0) -> linux:11 (KEY_0) -> qnum:11 */
+  [Q_KEY_CODE_1] = 0x2, /* qcode:Q_KEY_CODE_1 (1) -> linux:2 (KEY_1) -> qnum:2 */
+  [Q_KEY_CODE_2] = 0x3, /* qcode:Q_KEY_CODE_2 (2) -> linux:3 (KEY_2) -> qnum:3 */
+  [Q_KEY_CODE_3] = 0x4, /* qcode:Q_KEY_CODE_3 (3) -> linux:4 (KEY_3) -> qnum:4 */
+  [Q_KEY_CODE_4] = 0x5, /* qcode:Q_KEY_CODE_4 (4) -> linux:5 (KEY_4) -> qnum:5 */
+  [Q_KEY_CODE_5] = 0x6, /* qcode:Q_KEY_CODE_5 (5) -> linux:6 (KEY_5) -> qnum:6 */
+  [Q_KEY_CODE_6] = 0x7, /* qcode:Q_KEY_CODE_6 (6) -> linux:7 (KEY_6) -> qnum:7 */
+  [Q_KEY_CODE_7] = 0x8, /* qcode:Q_KEY_CODE_7 (7) -> linux:8 (KEY_7) -> qnum:8 */
+  [Q_KEY_CODE_8] = 0x9, /* qcode:Q_KEY_CODE_8 (8) -> linux:9 (KEY_8) -> qnum:9 */
+  [Q_KEY_CODE_9] = 0xa, /* qcode:Q_KEY_CODE_9 (9) -> linux:10 (KEY_9) -> qnum:10 */
+  [Q_KEY_CODE_A] = 0x1e, /* qcode:Q_KEY_CODE_A (a) -> linux:30 (KEY_A) -> qnum:30 */
+  [Q_KEY_CODE_AC_BACK] = 0xea, /* qcode:Q_KEY_CODE_AC_BACK (ac_back) -> linux:158 (KEY_BACK) -> qnum:234 */
+  [Q_KEY_CODE_AC_BOOKMARKS] = 0xe6, /* qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) -> linux:156 (KEY_BOOKMARKS) -> qnum:230 */
+  [Q_KEY_CODE_AC_FORWARD] = 0xe9, /* qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) -> linux:159 (KEY_FORWARD) -> qnum:233 */
+  [Q_KEY_CODE_AC_HOME] = 0xb2, /* qcode:Q_KEY_CODE_AC_HOME (ac_home) -> linux:172 (KEY_HOMEPAGE) -> qnum:178 */
+  [Q_KEY_CODE_AC_REFRESH] = 0xe7, /* qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) -> linux:173 (KEY_REFRESH) -> qnum:231 */
+  [Q_KEY_CODE_AGAIN] = 0x85, /* qcode:Q_KEY_CODE_AGAIN (again) -> linux:129 (KEY_AGAIN) -> qnum:133 */
+  [Q_KEY_CODE_ALT] = 0x38, /* qcode:Q_KEY_CODE_ALT (alt) -> linux:56 (KEY_LEFTALT) -> qnum:56 */
+  [Q_KEY_CODE_ALT_R] = 0xb8, /* qcode:Q_KEY_CODE_ALT_R (alt_r) -> linux:100 (KEY_RIGHTALT) -> qnum:184 */
+  [Q_KEY_CODE_APOSTROPHE] = 0x28, /* qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) -> linux:40 (KEY_APOSTROPHE) -> qnum:40 */
+  [Q_KEY_CODE_ASTERISK] = 0x37, /* qcode:Q_KEY_CODE_ASTERISK (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> qnum:55 */
+  [Q_KEY_CODE_AUDIOMUTE] = 0xa0, /* qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) -> linux:113 (KEY_MUTE) -> qnum:160 */
+  [Q_KEY_CODE_AUDIONEXT] = 0x99, /* qcode:Q_KEY_CODE_AUDIONEXT (audionext) -> linux:163 (KEY_NEXTSONG) -> qnum:153 */
+  [Q_KEY_CODE_AUDIOPLAY] = 0xa2, /* qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) -> linux:164 (KEY_PLAYPAUSE) -> qnum:162 */
+  [Q_KEY_CODE_AUDIOPREV] = 0x90, /* qcode:Q_KEY_CODE_AUDIOPREV (audioprev) -> linux:165 (KEY_PREVIOUSSONG) -> qnum:144 */
+  [Q_KEY_CODE_AUDIOSTOP] = 0xa4, /* qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) -> linux:166 (KEY_STOPCD) -> qnum:164 */
+  [Q_KEY_CODE_B] = 0x30, /* qcode:Q_KEY_CODE_B (b) -> linux:48 (KEY_B) -> qnum:48 */
+  [Q_KEY_CODE_BACKSLASH] = 0x2b, /* qcode:Q_KEY_CODE_BACKSLASH (backslash) -> linux:43 (KEY_BACKSLASH) -> qnum:43 */
+  [Q_KEY_CODE_BACKSPACE] = 0xe, /* qcode:Q_KEY_CODE_BACKSPACE (backspace) -> linux:14 (KEY_BACKSPACE) -> qnum:14 */
+  [Q_KEY_CODE_BRACKET_LEFT] = 0x1a, /* qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) -> linux:26 (KEY_LEFTBRACE) -> qnum:26 */
+  [Q_KEY_CODE_BRACKET_RIGHT] = 0x1b, /* qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) -> linux:27 (KEY_RIGHTBRACE) -> qnum:27 */
+  [Q_KEY_CODE_C] = 0x2e, /* qcode:Q_KEY_CODE_C (c) -> linux:46 (KEY_C) -> qnum:46 */
+  [Q_KEY_CODE_CALCULATOR] = 0xa1, /* qcode:Q_KEY_CODE_CALCULATOR (calculator) -> linux:140 (KEY_CALC) -> qnum:161 */
+  [Q_KEY_CODE_CAPS_LOCK] = 0x3a, /* qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) -> linux:58 (KEY_CAPSLOCK) -> qnum:58 */
+  [Q_KEY_CODE_COMMA] = 0x33, /* qcode:Q_KEY_CODE_COMMA (comma) -> linux:51 (KEY_COMMA) -> qnum:51 */
+  [Q_KEY_CODE_COMPOSE] = 0xdd, /* qcode:Q_KEY_CODE_COMPOSE (compose) -> linux:127 (KEY_COMPOSE) -> qnum:221 */
+  [Q_KEY_CODE_COMPUTER] = 0xeb, /* qcode:Q_KEY_CODE_COMPUTER (computer) -> linux:157 (KEY_COMPUTER) -> qnum:235 */
+  [Q_KEY_CODE_COPY] = 0xf8, /* qcode:Q_KEY_CODE_COPY (copy) -> linux:133 (KEY_COPY) -> qnum:248 */
+  [Q_KEY_CODE_CTRL] = 0x1d, /* qcode:Q_KEY_CODE_CTRL (ctrl) -> linux:29 (KEY_LEFTCTRL) -> qnum:29 */
+  [Q_KEY_CODE_CTRL_R] = 0x9d, /* qcode:Q_KEY_CODE_CTRL_R (ctrl_r) -> linux:97 (KEY_RIGHTCTRL) -> qnum:157 */
+  [Q_KEY_CODE_CUT] = 0xbc, /* qcode:Q_KEY_CODE_CUT (cut) -> linux:137 (KEY_CUT) -> qnum:188 */
+  [Q_KEY_CODE_D] = 0x20, /* qcode:Q_KEY_CODE_D (d) -> linux:32 (KEY_D) -> qnum:32 */
+  [Q_KEY_CODE_DELETE] = 0xd3, /* qcode:Q_KEY_CODE_DELETE (delete) -> linux:111 (KEY_DELETE) -> qnum:211 */
+  [Q_KEY_CODE_DOT] = 0x34, /* qcode:Q_KEY_CODE_DOT (dot) -> linux:52 (KEY_DOT) -> qnum:52 */
+  [Q_KEY_CODE_DOWN] = 0xd0, /* qcode:Q_KEY_CODE_DOWN (down) -> linux:108 (KEY_DOWN) -> qnum:208 */
+  [Q_KEY_CODE_E] = 0x12, /* qcode:Q_KEY_CODE_E (e) -> linux:18 (KEY_E) -> qnum:18 */
+  [Q_KEY_CODE_END] = 0xcf, /* qcode:Q_KEY_CODE_END (end) -> linux:107 (KEY_END) -> qnum:207 */
+  [Q_KEY_CODE_EQUAL] = 0xd, /* qcode:Q_KEY_CODE_EQUAL (equal) -> linux:13 (KEY_EQUAL) -> qnum:13 */
+  [Q_KEY_CODE_ESC] = 0x1, /* qcode:Q_KEY_CODE_ESC (esc) -> linux:1 (KEY_ESC) -> qnum:1 */
+  [Q_KEY_CODE_F] = 0x21, /* qcode:Q_KEY_CODE_F (f) -> linux:33 (KEY_F) -> qnum:33 */
+  [Q_KEY_CODE_F1] = 0x3b, /* qcode:Q_KEY_CODE_F1 (f1) -> linux:59 (KEY_F1) -> qnum:59 */
+  [Q_KEY_CODE_F10] = 0x44, /* qcode:Q_KEY_CODE_F10 (f10) -> linux:68 (KEY_F10) -> qnum:68 */
+  [Q_KEY_CODE_F11] = 0x57, /* qcode:Q_KEY_CODE_F11 (f11) -> linux:87 (KEY_F11) -> qnum:87 */
+  [Q_KEY_CODE_F12] = 0x58, /* qcode:Q_KEY_CODE_F12 (f12) -> linux:88 (KEY_F12) -> qnum:88 */
+  [Q_KEY_CODE_F2] = 0x3c, /* qcode:Q_KEY_CODE_F2 (f2) -> linux:60 (KEY_F2) -> qnum:60 */
+  [Q_KEY_CODE_F3] = 0x3d, /* qcode:Q_KEY_CODE_F3 (f3) -> linux:61 (KEY_F3) -> qnum:61 */
+  [Q_KEY_CODE_F4] = 0x3e, /* qcode:Q_KEY_CODE_F4 (f4) -> linux:62 (KEY_F4) -> qnum:62 */
+  [Q_KEY_CODE_F5] = 0x3f, /* qcode:Q_KEY_CODE_F5 (f5) -> linux:63 (KEY_F5) -> qnum:63 */
+  [Q_KEY_CODE_F6] = 0x40, /* qcode:Q_KEY_CODE_F6 (f6) -> linux:64 (KEY_F6) -> qnum:64 */
+  [Q_KEY_CODE_F7] = 0x41, /* qcode:Q_KEY_CODE_F7 (f7) -> linux:65 (KEY_F7) -> qnum:65 */
+  [Q_KEY_CODE_F8] = 0x42, /* qcode:Q_KEY_CODE_F8 (f8) -> linux:66 (KEY_F8) -> qnum:66 */
+  [Q_KEY_CODE_F9] = 0x43, /* qcode:Q_KEY_CODE_F9 (f9) -> linux:67 (KEY_F9) -> qnum:67 */
+  [Q_KEY_CODE_FIND] = 0xc1, /* qcode:Q_KEY_CODE_FIND (find) -> linux:136 (KEY_FIND) -> qnum:193 */
+  [Q_KEY_CODE_FRONT] = 0x8c, /* qcode:Q_KEY_CODE_FRONT (front) -> linux:132 (KEY_FRONT) -> qnum:140 */
+  [Q_KEY_CODE_G] = 0x22, /* qcode:Q_KEY_CODE_G (g) -> linux:34 (KEY_G) -> qnum:34 */
+  [Q_KEY_CODE_GRAVE_ACCENT] = 0x29, /* qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) -> linux:41 (KEY_GRAVE) -> qnum:41 */
+  [Q_KEY_CODE_H] = 0x23, /* qcode:Q_KEY_CODE_H (h) -> linux:35 (KEY_H) -> qnum:35 */
+  [Q_KEY_CODE_HELP] = 0xf5, /* qcode:Q_KEY_CODE_HELP (help) -> linux:138 (KEY_HELP) -> qnum:245 */
+  [Q_KEY_CODE_HENKAN] = 0x79, /* qcode:Q_KEY_CODE_HENKAN (henkan) -> linux:92 (KEY_HENKAN) -> qnum:121 */
+  [Q_KEY_CODE_HIRAGANA] = 0x77, /* qcode:Q_KEY_CODE_HIRAGANA (hiragana) -> linux:91 (KEY_HIRAGANA) -> qnum:119 */
+  [Q_KEY_CODE_HOME] = 0xc7, /* qcode:Q_KEY_CODE_HOME (home) -> linux:102 (KEY_HOME) -> qnum:199 */
+  [Q_KEY_CODE_I] = 0x17, /* qcode:Q_KEY_CODE_I (i) -> linux:23 (KEY_I) -> qnum:23 */
+  [Q_KEY_CODE_INSERT] = 0xd2, /* qcode:Q_KEY_CODE_INSERT (insert) -> linux:110 (KEY_INSERT) -> qnum:210 */
+  [Q_KEY_CODE_J] = 0x24, /* qcode:Q_KEY_CODE_J (j) -> linux:36 (KEY_J) -> qnum:36 */
+  [Q_KEY_CODE_K] = 0x25, /* qcode:Q_KEY_CODE_K (k) -> linux:37 (KEY_K) -> qnum:37 */
+  [Q_KEY_CODE_KP_0] = 0x52, /* qcode:Q_KEY_CODE_KP_0 (kp_0) -> linux:82 (KEY_KP0) -> qnum:82 */
+  [Q_KEY_CODE_KP_1] = 0x4f, /* qcode:Q_KEY_CODE_KP_1 (kp_1) -> linux:79 (KEY_KP1) -> qnum:79 */
+  [Q_KEY_CODE_KP_2] = 0x50, /* qcode:Q_KEY_CODE_KP_2 (kp_2) -> linux:80 (KEY_KP2) -> qnum:80 */
+  [Q_KEY_CODE_KP_3] = 0x51, /* qcode:Q_KEY_CODE_KP_3 (kp_3) -> linux:81 (KEY_KP3) -> qnum:81 */
+  [Q_KEY_CODE_KP_4] = 0x4b, /* qcode:Q_KEY_CODE_KP_4 (kp_4) -> linux:75 (KEY_KP4) -> qnum:75 */
+  [Q_KEY_CODE_KP_5] = 0x4c, /* qcode:Q_KEY_CODE_KP_5 (kp_5) -> linux:76 (KEY_KP5) -> qnum:76 */
+  [Q_KEY_CODE_KP_6] = 0x4d, /* qcode:Q_KEY_CODE_KP_6 (kp_6) -> linux:77 (KEY_KP6) -> qnum:77 */
+  [Q_KEY_CODE_KP_7] = 0x47, /* qcode:Q_KEY_CODE_KP_7 (kp_7) -> linux:71 (KEY_KP7) -> qnum:71 */
+  [Q_KEY_CODE_KP_8] = 0x48, /* qcode:Q_KEY_CODE_KP_8 (kp_8) -> linux:72 (KEY_KP8) -> qnum:72 */
+  [Q_KEY_CODE_KP_9] = 0x49, /* qcode:Q_KEY_CODE_KP_9 (kp_9) -> linux:73 (KEY_KP9) -> qnum:73 */
+  [Q_KEY_CODE_KP_ADD] = 0x4e, /* qcode:Q_KEY_CODE_KP_ADD (kp_add) -> linux:78 (KEY_KPPLUS) -> qnum:78 */
+  [Q_KEY_CODE_KP_COMMA] = 0x7e, /* qcode:Q_KEY_CODE_KP_COMMA (kp_comma) -> linux:121 (KEY_KPCOMMA) -> qnum:126 */
+  [Q_KEY_CODE_KP_DECIMAL] = 0x53, /* qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) -> linux:83 (KEY_KPDOT) -> qnum:83 */
+  [Q_KEY_CODE_KP_DIVIDE] = 0xb5, /* qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) -> linux:98 (KEY_KPSLASH) -> qnum:181 */
+  [Q_KEY_CODE_KP_ENTER] = 0x9c, /* qcode:Q_KEY_CODE_KP_ENTER (kp_enter) -> linux:96 (KEY_KPENTER) -> qnum:156 */
+  [Q_KEY_CODE_KP_EQUALS] = 0x59, /* qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) -> linux:117 (KEY_KPEQUAL) -> qnum:89 */
+  [Q_KEY_CODE_KP_MULTIPLY] = 0x37, /* qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> qnum:55 */
+  [Q_KEY_CODE_KP_SUBTRACT] = 0x4a, /* qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) -> linux:74 (KEY_KPMINUS) -> qnum:74 */
+  [Q_KEY_CODE_L] = 0x26, /* qcode:Q_KEY_CODE_L (l) -> linux:38 (KEY_L) -> qnum:38 */
+  [Q_KEY_CODE_LEFT] = 0xcb, /* qcode:Q_KEY_CODE_LEFT (left) -> linux:105 (KEY_LEFT) -> qnum:203 */
+  [Q_KEY_CODE_LESS] = 0x56, /* qcode:Q_KEY_CODE_LESS (less) -> linux:86 (KEY_102ND) -> qnum:86 */
+  [Q_KEY_CODE_LF] = 0x5b, /* qcode:Q_KEY_CODE_LF (lf) -> linux:101 (KEY_LINEFEED) -> qnum:91 */
+  [Q_KEY_CODE_M] = 0x32, /* qcode:Q_KEY_CODE_M (m) -> linux:50 (KEY_M) -> qnum:50 */
+  [Q_KEY_CODE_MAIL] = 0xec, /* qcode:Q_KEY_CODE_MAIL (mail) -> linux:155 (KEY_MAIL) -> qnum:236 */
+  [Q_KEY_CODE_MEDIASELECT] = 0xed, /* qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) -> linux:226 (KEY_MEDIA) -> qnum:237 */
+  [Q_KEY_CODE_MENU] = 0x9e, /* qcode:Q_KEY_CODE_MENU (menu) -> linux:139 (KEY_MENU) -> qnum:158 */
+  [Q_KEY_CODE_META_L] = 0xdb, /* qcode:Q_KEY_CODE_META_L (meta_l) -> linux:125 (KEY_LEFTMETA) -> qnum:219 */
+  [Q_KEY_CODE_META_R] = 0xdc, /* qcode:Q_KEY_CODE_META_R (meta_r) -> linux:126 (KEY_RIGHTMETA) -> qnum:220 */
+  [Q_KEY_CODE_MINUS] = 0xc, /* qcode:Q_KEY_CODE_MINUS (minus) -> linux:12 (KEY_MINUS) -> qnum:12 */
+  [Q_KEY_CODE_N] = 0x31, /* qcode:Q_KEY_CODE_N (n) -> linux:49 (KEY_N) -> qnum:49 */
+  [Q_KEY_CODE_NUM_LOCK] = 0x45, /* qcode:Q_KEY_CODE_NUM_LOCK (num_lock) -> linux:69 (KEY_NUMLOCK) -> qnum:69 */
+  [Q_KEY_CODE_O] = 0x18, /* qcode:Q_KEY_CODE_O (o) -> linux:24 (KEY_O) -> qnum:24 */
+  [Q_KEY_CODE_OPEN] = 0x64, /* qcode:Q_KEY_CODE_OPEN (open) -> linux:134 (KEY_OPEN) -> qnum:100 */
+  [Q_KEY_CODE_P] = 0x19, /* qcode:Q_KEY_CODE_P (p) -> linux:25 (KEY_P) -> qnum:25 */
+  [Q_KEY_CODE_PASTE] = 0x65, /* qcode:Q_KEY_CODE_PASTE (paste) -> linux:135 (KEY_PASTE) -> qnum:101 */
+  [Q_KEY_CODE_PAUSE] = 0xc6, /* qcode:Q_KEY_CODE_PAUSE (pause) -> linux:119 (KEY_PAUSE) -> qnum:198 */
+  [Q_KEY_CODE_PGDN] = 0xd1, /* qcode:Q_KEY_CODE_PGDN (pgdn) -> linux:109 (KEY_PAGEDOWN) -> qnum:209 */
+  [Q_KEY_CODE_PGUP] = 0xc9, /* qcode:Q_KEY_CODE_PGUP (pgup) -> linux:104 (KEY_PAGEUP) -> qnum:201 */
+  [Q_KEY_CODE_POWER] = 0xde, /* qcode:Q_KEY_CODE_POWER (power) -> linux:116 (KEY_POWER) -> qnum:222 */
+  [Q_KEY_CODE_PRINT] = 0x54, /* qcode:Q_KEY_CODE_PRINT (sysrq) -> linux:99 (KEY_SYSRQ) -> qnum:84 */
+  [Q_KEY_CODE_PROPS] = 0x86, /* qcode:Q_KEY_CODE_PROPS (props) -> linux:130 (KEY_PROPS) -> qnum:134 */
+  [Q_KEY_CODE_Q] = 0x10, /* qcode:Q_KEY_CODE_Q (q) -> linux:16 (KEY_Q) -> qnum:16 */
+  [Q_KEY_CODE_R] = 0x13, /* qcode:Q_KEY_CODE_R (r) -> linux:19 (KEY_R) -> qnum:19 */
+  [Q_KEY_CODE_RET] = 0x1c, /* qcode:Q_KEY_CODE_RET (ret) -> linux:28 (KEY_ENTER) -> qnum:28 */
+  [Q_KEY_CODE_RIGHT] = 0xcd, /* qcode:Q_KEY_CODE_RIGHT (right) -> linux:106 (KEY_RIGHT) -> qnum:205 */
+  [Q_KEY_CODE_RO] = 0x73, /* qcode:Q_KEY_CODE_RO (ro) -> linux:89 (KEY_RO) -> qnum:115 */
+  [Q_KEY_CODE_S] = 0x1f, /* qcode:Q_KEY_CODE_S (s) -> linux:31 (KEY_S) -> qnum:31 */
+  [Q_KEY_CODE_SCROLL_LOCK] = 0x46, /* qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) -> linux:70 (KEY_SCROLLLOCK) -> qnum:70 */
+  [Q_KEY_CODE_SEMICOLON] = 0x27, /* qcode:Q_KEY_CODE_SEMICOLON (semicolon) -> linux:39 (KEY_SEMICOLON) -> qnum:39 */
+  [Q_KEY_CODE_SHIFT] = 0x2a, /* qcode:Q_KEY_CODE_SHIFT (shift) -> linux:42 (KEY_LEFTSHIFT) -> qnum:42 */
+  [Q_KEY_CODE_SHIFT_R] = 0x36, /* qcode:Q_KEY_CODE_SHIFT_R (shift_r) -> linux:54 (KEY_RIGHTSHIFT) -> qnum:54 */
+  [Q_KEY_CODE_SLASH] = 0x35, /* qcode:Q_KEY_CODE_SLASH (slash) -> linux:53 (KEY_SLASH) -> qnum:53 */
+  [Q_KEY_CODE_SLEEP] = 0xdf, /* qcode:Q_KEY_CODE_SLEEP (sleep) -> linux:142 (KEY_SLEEP) -> qnum:223 */
+  [Q_KEY_CODE_SPC] = 0x39, /* qcode:Q_KEY_CODE_SPC (spc) -> linux:57 (KEY_SPACE) -> qnum:57 */
+  [Q_KEY_CODE_STOP] = 0xe8, /* qcode:Q_KEY_CODE_STOP (stop) -> linux:128 (KEY_STOP) -> qnum:232 */
+  [Q_KEY_CODE_SYSRQ] = 0x54, /* qcode:Q_KEY_CODE_SYSRQ (sysrq) -> linux:99 (KEY_SYSRQ) -> qnum:84 */
+  [Q_KEY_CODE_T] = 0x14, /* qcode:Q_KEY_CODE_T (t) -> linux:20 (KEY_T) -> qnum:20 */
+  [Q_KEY_CODE_TAB] = 0xf, /* qcode:Q_KEY_CODE_TAB (tab) -> linux:15 (KEY_TAB) -> qnum:15 */
+  [Q_KEY_CODE_U] = 0x16, /* qcode:Q_KEY_CODE_U (u) -> linux:22 (KEY_U) -> qnum:22 */
+  [Q_KEY_CODE_UNDO] = 0x87, /* qcode:Q_KEY_CODE_UNDO (undo) -> linux:131 (KEY_UNDO) -> qnum:135 */
+  [Q_KEY_CODE_UP] = 0xc8, /* qcode:Q_KEY_CODE_UP (up) -> linux:103 (KEY_UP) -> qnum:200 */
+  [Q_KEY_CODE_V] = 0x2f, /* qcode:Q_KEY_CODE_V (v) -> linux:47 (KEY_V) -> qnum:47 */
+  [Q_KEY_CODE_VOLUMEDOWN] = 0xae, /* qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) -> linux:114 (KEY_VOLUMEDOWN) -> qnum:174 */
+  [Q_KEY_CODE_VOLUMEUP] = 0xb0, /* qcode:Q_KEY_CODE_VOLUMEUP (volumeup) -> linux:115 (KEY_VOLUMEUP) -> qnum:176 */
+  [Q_KEY_CODE_W] = 0x11, /* qcode:Q_KEY_CODE_W (w) -> linux:17 (KEY_W) -> qnum:17 */
+  [Q_KEY_CODE_WAKE] = 0xe3, /* qcode:Q_KEY_CODE_WAKE (wake) -> linux:143 (KEY_WAKEUP) -> qnum:227 */
+  [Q_KEY_CODE_X] = 0x2d, /* qcode:Q_KEY_CODE_X (x) -> linux:45 (KEY_X) -> qnum:45 */
+  [Q_KEY_CODE_Y] = 0x15, /* qcode:Q_KEY_CODE_Y (y) -> linux:21 (KEY_Y) -> qnum:21 */
+  [Q_KEY_CODE_YEN] = 0x7d, /* qcode:Q_KEY_CODE_YEN (yen) -> linux:124 (KEY_YEN) -> qnum:125 */
+  [Q_KEY_CODE_Z] = 0x2c, /* qcode:Q_KEY_CODE_Z (z) -> linux:44 (KEY_Z) -> qnum:44 */
+};
+const guint qemu_input_map_qcode_to_qnum_len = sizeof(qemu_input_map_qcode_to_qnum)/sizeof(qemu_input_map_qcode_to_qnum[0]);
diff --git a/ui/input-keymap-qnum-to-qcode.c b/ui/input-keymap-qnum-to-qcode.c
new file mode 100644
index 0000000000..eba9ad0f96
--- /dev/null
+++ b/ui/input-keymap-qnum-to-qcode.c
@@ -0,0 +1,245 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:01
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qnum_to_qcode code-map keymaps.csv qnum qcode
+*/
+const guint16 qemu_input_map_qnum_to_qcode[254] = {
+  [0x1] = Q_KEY_CODE_ESC, /* qnum:1 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */
+  [0x2] = Q_KEY_CODE_1, /* qnum:2 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */
+  [0x3] = Q_KEY_CODE_2, /* qnum:3 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */
+  [0x4] = Q_KEY_CODE_3, /* qnum:4 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */
+  [0x5] = Q_KEY_CODE_4, /* qnum:5 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */
+  [0x6] = Q_KEY_CODE_5, /* qnum:6 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */
+  [0x7] = Q_KEY_CODE_6, /* qnum:7 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */
+  [0x8] = Q_KEY_CODE_7, /* qnum:8 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */
+  [0x9] = Q_KEY_CODE_8, /* qnum:9 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */
+  [0xa] = Q_KEY_CODE_9, /* qnum:10 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */
+  [0xb] = Q_KEY_CODE_0, /* qnum:11 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */
+  [0xc] = Q_KEY_CODE_MINUS, /* qnum:12 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */
+  [0xd] = Q_KEY_CODE_EQUAL, /* qnum:13 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */
+  [0xe] = Q_KEY_CODE_BACKSPACE, /* qnum:14 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */
+  [0xf] = Q_KEY_CODE_TAB, /* qnum:15 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */
+  [0x10] = Q_KEY_CODE_Q, /* qnum:16 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */
+  [0x11] = Q_KEY_CODE_W, /* qnum:17 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */
+  [0x12] = Q_KEY_CODE_E, /* qnum:18 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */
+  [0x13] = Q_KEY_CODE_R, /* qnum:19 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */
+  [0x14] = Q_KEY_CODE_T, /* qnum:20 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */
+  [0x15] = Q_KEY_CODE_Y, /* qnum:21 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */
+  [0x16] = Q_KEY_CODE_U, /* qnum:22 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */
+  [0x17] = Q_KEY_CODE_I, /* qnum:23 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */
+  [0x18] = Q_KEY_CODE_O, /* qnum:24 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */
+  [0x19] = Q_KEY_CODE_P, /* qnum:25 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */
+  [0x1a] = Q_KEY_CODE_BRACKET_LEFT, /* qnum:26 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */
+  [0x1b] = Q_KEY_CODE_BRACKET_RIGHT, /* qnum:27 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */
+  [0x1c] = Q_KEY_CODE_RET, /* qnum:28 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */
+  [0x1d] = Q_KEY_CODE_CTRL, /* qnum:29 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */
+  [0x1e] = Q_KEY_CODE_A, /* qnum:30 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */
+  [0x1f] = Q_KEY_CODE_S, /* qnum:31 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */
+  [0x20] = Q_KEY_CODE_D, /* qnum:32 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */
+  [0x21] = Q_KEY_CODE_F, /* qnum:33 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */
+  [0x22] = Q_KEY_CODE_G, /* qnum:34 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */
+  [0x23] = Q_KEY_CODE_H, /* qnum:35 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */
+  [0x24] = Q_KEY_CODE_J, /* qnum:36 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */
+  [0x25] = Q_KEY_CODE_K, /* qnum:37 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */
+  [0x26] = Q_KEY_CODE_L, /* qnum:38 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */
+  [0x27] = Q_KEY_CODE_SEMICOLON, /* qnum:39 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */
+  [0x28] = Q_KEY_CODE_APOSTROPHE, /* qnum:40 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */
+  [0x29] = Q_KEY_CODE_GRAVE_ACCENT, /* qnum:41 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */
+  [0x2a] = Q_KEY_CODE_SHIFT, /* qnum:42 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */
+  [0x2b] = Q_KEY_CODE_BACKSLASH, /* qnum:43 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0x2c] = Q_KEY_CODE_Z, /* qnum:44 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */
+  [0x2d] = Q_KEY_CODE_X, /* qnum:45 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */
+  [0x2e] = Q_KEY_CODE_C, /* qnum:46 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */
+  [0x2f] = Q_KEY_CODE_V, /* qnum:47 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */
+  [0x30] = Q_KEY_CODE_B, /* qnum:48 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */
+  [0x31] = Q_KEY_CODE_N, /* qnum:49 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */
+  [0x32] = Q_KEY_CODE_M, /* qnum:50 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */
+  [0x33] = Q_KEY_CODE_COMMA, /* qnum:51 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */
+  [0x34] = Q_KEY_CODE_DOT, /* qnum:52 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */
+  [0x35] = Q_KEY_CODE_SLASH, /* qnum:53 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */
+  [0x36] = Q_KEY_CODE_SHIFT_R, /* qnum:54 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */
+  [0x37] = Q_KEY_CODE_KP_MULTIPLY, /* qnum:55 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */
+  [0x38] = Q_KEY_CODE_ALT, /* qnum:56 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */
+  [0x39] = Q_KEY_CODE_SPC, /* qnum:57 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */
+  [0x3a] = Q_KEY_CODE_CAPS_LOCK, /* qnum:58 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */
+  [0x3b] = Q_KEY_CODE_F1, /* qnum:59 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */
+  [0x3c] = Q_KEY_CODE_F2, /* qnum:60 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */
+  [0x3d] = Q_KEY_CODE_F3, /* qnum:61 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */
+  [0x3e] = Q_KEY_CODE_F4, /* qnum:62 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */
+  [0x3f] = Q_KEY_CODE_F5, /* qnum:63 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */
+  [0x40] = Q_KEY_CODE_F6, /* qnum:64 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */
+  [0x41] = Q_KEY_CODE_F7, /* qnum:65 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */
+  [0x42] = Q_KEY_CODE_F8, /* qnum:66 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */
+  [0x43] = Q_KEY_CODE_F9, /* qnum:67 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */
+  [0x44] = Q_KEY_CODE_F10, /* qnum:68 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */
+  [0x45] = Q_KEY_CODE_NUM_LOCK, /* qnum:69 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */
+  [0x46] = Q_KEY_CODE_SCROLL_LOCK, /* qnum:70 -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */
+  [0x47] = Q_KEY_CODE_KP_7, /* qnum:71 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */
+  [0x48] = Q_KEY_CODE_KP_8, /* qnum:72 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */
+  [0x49] = Q_KEY_CODE_KP_9, /* qnum:73 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */
+  [0x4a] = Q_KEY_CODE_KP_SUBTRACT, /* qnum:74 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */
+  [0x4b] = Q_KEY_CODE_KP_4, /* qnum:75 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */
+  [0x4c] = Q_KEY_CODE_KP_5, /* qnum:76 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */
+  [0x4d] = Q_KEY_CODE_KP_6, /* qnum:77 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */
+  [0x4e] = Q_KEY_CODE_KP_ADD, /* qnum:78 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */
+  [0x4f] = Q_KEY_CODE_KP_1, /* qnum:79 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */
+  [0x50] = Q_KEY_CODE_KP_2, /* qnum:80 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */
+  [0x51] = Q_KEY_CODE_KP_3, /* qnum:81 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */
+  [0x52] = Q_KEY_CODE_KP_0, /* qnum:82 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */
+  [0x53] = Q_KEY_CODE_KP_DECIMAL, /* qnum:83 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */
+  [0x54] = Q_KEY_CODE_SYSRQ, /* qnum:84 -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */
+  [0x55] = Q_KEY_CODE_UNMAPPED, /* qnum:85 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x56] = Q_KEY_CODE_LESS, /* qnum:86 -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */
+  [0x57] = Q_KEY_CODE_F11, /* qnum:87 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */
+  [0x58] = Q_KEY_CODE_F12, /* qnum:88 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */
+  [0x59] = Q_KEY_CODE_KP_EQUALS, /* qnum:89 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */
+  [0x5a] = Q_KEY_CODE_UNMAPPED, /* qnum:90 -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5b] = Q_KEY_CODE_LF, /* qnum:91 -> linux:101 (KEY_LINEFEED) -> qcode:Q_KEY_CODE_LF (lf) */
+  [0x5c] = Q_KEY_CODE_UNMAPPED, /* qnum:92 -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5d] = Q_KEY_CODE_UNMAPPED, /* qnum:93 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5e] = Q_KEY_CODE_UNMAPPED, /* qnum:94 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5f] = Q_KEY_CODE_UNMAPPED, /* qnum:95 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x63] = Q_KEY_CODE_UNMAPPED, /* qnum:99 -> linux:169 (KEY_PHONE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x64] = Q_KEY_CODE_OPEN, /* qnum:100 -> linux:134 (KEY_OPEN) -> qcode:Q_KEY_CODE_OPEN (open) */
+  [0x65] = Q_KEY_CODE_PASTE, /* qnum:101 -> linux:135 (KEY_PASTE) -> qcode:Q_KEY_CODE_PASTE (paste) */
+  [0x66] = Q_KEY_CODE_UNMAPPED, /* qnum:102 -> linux:141 (KEY_SETUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x67] = Q_KEY_CODE_UNMAPPED, /* qnum:103 -> linux:144 (KEY_FILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x68] = Q_KEY_CODE_UNMAPPED, /* qnum:104 -> linux:145 (KEY_SENDFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x69] = Q_KEY_CODE_UNMAPPED, /* qnum:105 -> linux:146 (KEY_DELETEFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6a] = Q_KEY_CODE_UNMAPPED, /* qnum:106 -> linux:151 (KEY_MSDOS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6b] = Q_KEY_CODE_UNMAPPED, /* qnum:107 -> linux:153 (KEY_DIRECTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6c] = Q_KEY_CODE_UNMAPPED, /* qnum:108 -> linux:161 (KEY_EJECTCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6d] = Q_KEY_CODE_UNMAPPED, /* qnum:109 -> linux:193 (KEY_F23) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6f] = Q_KEY_CODE_UNMAPPED, /* qnum:111 -> linux:194 (KEY_F24) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x70] = Q_KEY_CODE_UNMAPPED, /* qnum:112 -> linux:170 (KEY_ISO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x71] = Q_KEY_CODE_UNMAPPED, /* qnum:113 -> linux:174 (KEY_EXIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x72] = Q_KEY_CODE_UNMAPPED, /* qnum:114 -> linux:175 (KEY_MOVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x73] = Q_KEY_CODE_RO, /* qnum:115 -> linux:89 (KEY_RO) -> qcode:Q_KEY_CODE_RO (ro) */
+  [0x74] = Q_KEY_CODE_UNMAPPED, /* qnum:116 -> linux:191 (KEY_F21) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x75] = Q_KEY_CODE_UNMAPPED, /* qnum:117 -> linux:177 (KEY_SCROLLUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x76] = Q_KEY_CODE_UNMAPPED, /* qnum:118 -> linux:85 (KEY_ZENKAKUHANKAKU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x77] = Q_KEY_CODE_HIRAGANA, /* qnum:119 -> linux:91 (KEY_HIRAGANA) -> qcode:Q_KEY_CODE_HIRAGANA (hiragana) */
+  [0x78] = Q_KEY_CODE_UNMAPPED, /* qnum:120 -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x79] = Q_KEY_CODE_HENKAN, /* qnum:121 -> linux:92 (KEY_HENKAN) -> qcode:Q_KEY_CODE_HENKAN (henkan) */
+  [0x7b] = Q_KEY_CODE_UNMAPPED, /* qnum:123 -> linux:94 (KEY_MUHENKAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7d] = Q_KEY_CODE_YEN, /* qnum:125 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */
+  [0x7e] = Q_KEY_CODE_KP_COMMA, /* qnum:126 -> linux:121 (KEY_KPCOMMA) -> qcode:Q_KEY_CODE_KP_COMMA (kp_comma) */
+  [0x81] = Q_KEY_CODE_UNMAPPED, /* qnum:129 -> linux:171 (KEY_CONFIG) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x82] = Q_KEY_CODE_UNMAPPED, /* qnum:130 -> linux:150 (KEY_WWW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x83] = Q_KEY_CODE_UNMAPPED, /* qnum:131 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x84] = Q_KEY_CODE_UNMAPPED, /* qnum:132 -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x85] = Q_KEY_CODE_AGAIN, /* qnum:133 -> linux:129 (KEY_AGAIN) -> qcode:Q_KEY_CODE_AGAIN (again) */
+  [0x86] = Q_KEY_CODE_PROPS, /* qnum:134 -> linux:130 (KEY_PROPS) -> qcode:Q_KEY_CODE_PROPS (props) */
+  [0x87] = Q_KEY_CODE_UNDO, /* qnum:135 -> linux:131 (KEY_UNDO) -> qcode:Q_KEY_CODE_UNDO (undo) */
+  [0x88] = Q_KEY_CODE_UNMAPPED, /* qnum:136 -> linux:176 (KEY_EDIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x89] = Q_KEY_CODE_UNMAPPED, /* qnum:137 -> linux:181 (KEY_NEW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x8a] = Q_KEY_CODE_UNMAPPED, /* qnum:138 -> linux:182 (KEY_REDO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x8b] = Q_KEY_CODE_UNMAPPED, /* qnum:139 -> linux:120 (KEY_SCALE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x8c] = Q_KEY_CODE_FRONT, /* qnum:140 -> linux:132 (KEY_FRONT) -> qcode:Q_KEY_CODE_FRONT (front) */
+  [0x8d] = Q_KEY_CODE_UNMAPPED, /* qnum:141 -> linux:123 (KEY_HANJA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x8e] = Q_KEY_CODE_UNMAPPED, /* qnum:142 -> linux:233 (KEY_FORWARDMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x8f] = Q_KEY_CODE_UNMAPPED, /* qnum:143 -> linux:178 (KEY_SCROLLDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x90] = Q_KEY_CODE_AUDIOPREV, /* qnum:144 -> linux:165 (KEY_PREVIOUSSONG) -> qcode:Q_KEY_CODE_AUDIOPREV (audioprev) */
+  [0x92] = Q_KEY_CODE_UNMAPPED, /* qnum:146 -> linux:152 (KEY_SCREENLOCK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x93] = Q_KEY_CODE_UNMAPPED, /* qnum:147 -> linux:147 (KEY_XFER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x94] = Q_KEY_CODE_UNMAPPED, /* qnum:148 -> linux:222 (KEY_ALTERASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x95] = Q_KEY_CODE_UNMAPPED, /* qnum:149 -> linux:195 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x96] = Q_KEY_CODE_UNMAPPED, /* qnum:150 -> linux:196 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x97] = Q_KEY_CODE_UNMAPPED, /* qnum:151 -> linux:149 (KEY_PROG2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x98] = Q_KEY_CODE_UNMAPPED, /* qnum:152 -> linux:168 (KEY_REWIND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x99] = Q_KEY_CODE_AUDIONEXT, /* qnum:153 -> linux:163 (KEY_NEXTSONG) -> qcode:Q_KEY_CODE_AUDIONEXT (audionext) */
+  [0x9a] = Q_KEY_CODE_UNMAPPED, /* qnum:154 -> linux:197 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x9b] = Q_KEY_CODE_UNMAPPED, /* qnum:155 -> linux:198 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x9c] = Q_KEY_CODE_KP_ENTER, /* qnum:156 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */
+  [0x9d] = Q_KEY_CODE_CTRL_R, /* qnum:157 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */
+  [0x9e] = Q_KEY_CODE_MENU, /* qnum:158 -> linux:139 (KEY_MENU) -> qcode:Q_KEY_CODE_MENU (menu) */
+  [0x9f] = Q_KEY_CODE_UNMAPPED, /* qnum:159 -> linux:148 (KEY_PROG1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa0] = Q_KEY_CODE_AUDIOMUTE, /* qnum:160 -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */
+  [0xa1] = Q_KEY_CODE_CALCULATOR, /* qnum:161 -> linux:140 (KEY_CALC) -> qcode:Q_KEY_CODE_CALCULATOR (calculator) */
+  [0xa2] = Q_KEY_CODE_AUDIOPLAY, /* qnum:162 -> linux:164 (KEY_PLAYPAUSE) -> qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) */
+  [0xa3] = Q_KEY_CODE_UNMAPPED, /* qnum:163 -> linux:160 (KEY_CLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa4] = Q_KEY_CODE_AUDIOSTOP, /* qnum:164 -> linux:166 (KEY_STOPCD) -> qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) */
+  [0xa5] = Q_KEY_CODE_UNMAPPED, /* qnum:165 -> linux:205 (KEY_SUSPEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa6] = Q_KEY_CODE_UNMAPPED, /* qnum:166 -> linux:154 (KEY_CYCLEWINDOWS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa7] = Q_KEY_CODE_UNMAPPED, /* qnum:167 -> linux:199 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa8] = Q_KEY_CODE_UNMAPPED, /* qnum:168 -> linux:200 (KEY_PLAYCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa9] = Q_KEY_CODE_UNMAPPED, /* qnum:169 -> linux:201 (KEY_PAUSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xab] = Q_KEY_CODE_UNMAPPED, /* qnum:171 -> linux:202 (KEY_PROG3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xac] = Q_KEY_CODE_UNMAPPED, /* qnum:172 -> linux:203 (KEY_PROG4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xad] = Q_KEY_CODE_UNMAPPED, /* qnum:173 -> linux:204 (KEY_DASHBOARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xae] = Q_KEY_CODE_VOLUMEDOWN, /* qnum:174 -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */
+  [0xaf] = Q_KEY_CODE_UNMAPPED, /* qnum:175 -> linux:206 (KEY_CLOSE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb0] = Q_KEY_CODE_VOLUMEUP, /* qnum:176 -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */
+  [0xb1] = Q_KEY_CODE_UNMAPPED, /* qnum:177 -> linux:167 (KEY_RECORD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb2] = Q_KEY_CODE_AC_HOME, /* qnum:178 -> linux:172 (KEY_HOMEPAGE) -> qcode:Q_KEY_CODE_AC_HOME (ac_home) */
+  [0xb3] = Q_KEY_CODE_UNMAPPED, /* qnum:179 -> linux:207 (KEY_PLAY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb4] = Q_KEY_CODE_UNMAPPED, /* qnum:180 -> linux:208 (KEY_FASTFORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb5] = Q_KEY_CODE_KP_DIVIDE, /* qnum:181 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */
+  [0xb6] = Q_KEY_CODE_UNMAPPED, /* qnum:182 -> linux:209 (KEY_BASSBOOST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb8] = Q_KEY_CODE_ALT_R, /* qnum:184 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */
+  [0xb9] = Q_KEY_CODE_UNMAPPED, /* qnum:185 -> linux:210 (KEY_PRINT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xba] = Q_KEY_CODE_UNMAPPED, /* qnum:186 -> linux:211 (KEY_HP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbb] = Q_KEY_CODE_UNMAPPED, /* qnum:187 -> linux:212 (KEY_CAMERA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbc] = Q_KEY_CODE_CUT, /* qnum:188 -> linux:137 (KEY_CUT) -> qcode:Q_KEY_CODE_CUT (cut) */
+  [0xbd] = Q_KEY_CODE_UNMAPPED, /* qnum:189 -> linux:213 (KEY_SOUND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbe] = Q_KEY_CODE_UNMAPPED, /* qnum:190 -> linux:214 (KEY_QUESTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbf] = Q_KEY_CODE_UNMAPPED, /* qnum:191 -> linux:215 (KEY_EMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc0] = Q_KEY_CODE_UNMAPPED, /* qnum:192 -> linux:216 (KEY_CHAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc1] = Q_KEY_CODE_FIND, /* qnum:193 -> linux:136 (KEY_FIND) -> qcode:Q_KEY_CODE_FIND (find) */
+  [0xc2] = Q_KEY_CODE_UNMAPPED, /* qnum:194 -> linux:218 (KEY_CONNECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc3] = Q_KEY_CODE_UNMAPPED, /* qnum:195 -> linux:219 (KEY_FINANCE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc4] = Q_KEY_CODE_UNMAPPED, /* qnum:196 -> linux:220 (KEY_SPORT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc5] = Q_KEY_CODE_UNMAPPED, /* qnum:197 -> linux:221 (KEY_SHOP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc6] = Q_KEY_CODE_PAUSE, /* qnum:198 -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */
+  [0xc7] = Q_KEY_CODE_HOME, /* qnum:199 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */
+  [0xc8] = Q_KEY_CODE_UP, /* qnum:200 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */
+  [0xc9] = Q_KEY_CODE_PGUP, /* qnum:201 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */
+  [0xca] = Q_KEY_CODE_UNMAPPED, /* qnum:202 -> linux:223 (KEY_CANCEL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xcb] = Q_KEY_CODE_LEFT, /* qnum:203 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */
+  [0xcc] = Q_KEY_CODE_UNMAPPED, /* qnum:204 -> linux:224 (KEY_BRIGHTNESSDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xcd] = Q_KEY_CODE_RIGHT, /* qnum:205 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */
+  [0xce] = Q_KEY_CODE_UNMAPPED, /* qnum:206 -> linux:118 (KEY_KPPLUSMINUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xcf] = Q_KEY_CODE_END, /* qnum:207 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */
+  [0xd0] = Q_KEY_CODE_DOWN, /* qnum:208 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */
+  [0xd1] = Q_KEY_CODE_PGDN, /* qnum:209 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */
+  [0xd2] = Q_KEY_CODE_INSERT, /* qnum:210 -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */
+  [0xd3] = Q_KEY_CODE_DELETE, /* qnum:211 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */
+  [0xd4] = Q_KEY_CODE_UNMAPPED, /* qnum:212 -> linux:225 (KEY_BRIGHTNESSUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd5] = Q_KEY_CODE_UNMAPPED, /* qnum:213 -> linux:234 (KEY_SAVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd6] = Q_KEY_CODE_UNMAPPED, /* qnum:214 -> linux:227 (KEY_SWITCHVIDEOMODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd7] = Q_KEY_CODE_UNMAPPED, /* qnum:215 -> linux:228 (KEY_KBDILLUMTOGGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd8] = Q_KEY_CODE_UNMAPPED, /* qnum:216 -> linux:229 (KEY_KBDILLUMDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd9] = Q_KEY_CODE_UNMAPPED, /* qnum:217 -> linux:230 (KEY_KBDILLUMUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xda] = Q_KEY_CODE_UNMAPPED, /* qnum:218 -> linux:231 (KEY_SEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xdb] = Q_KEY_CODE_META_L, /* qnum:219 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */
+  [0xdc] = Q_KEY_CODE_META_R, /* qnum:220 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */
+  [0xdd] = Q_KEY_CODE_COMPOSE, /* qnum:221 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */
+  [0xde] = Q_KEY_CODE_POWER, /* qnum:222 -> linux:116 (KEY_POWER) -> qcode:Q_KEY_CODE_POWER (power) */
+  [0xdf] = Q_KEY_CODE_SLEEP, /* qnum:223 -> linux:142 (KEY_SLEEP) -> qcode:Q_KEY_CODE_SLEEP (sleep) */
+  [0xe3] = Q_KEY_CODE_WAKE, /* qnum:227 -> linux:143 (KEY_WAKEUP) -> qcode:Q_KEY_CODE_WAKE (wake) */
+  [0xe4] = Q_KEY_CODE_UNMAPPED, /* qnum:228 -> linux:232 (KEY_REPLY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe5] = Q_KEY_CODE_UNMAPPED, /* qnum:229 -> linux:217 (KEY_SEARCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe6] = Q_KEY_CODE_AC_BOOKMARKS, /* qnum:230 -> linux:156 (KEY_BOOKMARKS) -> qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) */
+  [0xe7] = Q_KEY_CODE_AC_REFRESH, /* qnum:231 -> linux:173 (KEY_REFRESH) -> qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) */
+  [0xe8] = Q_KEY_CODE_STOP, /* qnum:232 -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */
+  [0xe9] = Q_KEY_CODE_AC_FORWARD, /* qnum:233 -> linux:159 (KEY_FORWARD) -> qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) */
+  [0xea] = Q_KEY_CODE_AC_BACK, /* qnum:234 -> linux:158 (KEY_BACK) -> qcode:Q_KEY_CODE_AC_BACK (ac_back) */
+  [0xeb] = Q_KEY_CODE_COMPUTER, /* qnum:235 -> linux:157 (KEY_COMPUTER) -> qcode:Q_KEY_CODE_COMPUTER (computer) */
+  [0xec] = Q_KEY_CODE_MAIL, /* qnum:236 -> linux:155 (KEY_MAIL) -> qcode:Q_KEY_CODE_MAIL (mail) */
+  [0xed] = Q_KEY_CODE_MEDIASELECT, /* qnum:237 -> linux:226 (KEY_MEDIA) -> qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) */
+  [0xef] = Q_KEY_CODE_UNMAPPED, /* qnum:239 -> linux:112 (KEY_MACRO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf0] = Q_KEY_CODE_UNMAPPED, /* qnum:240 -> linux:235 (KEY_DOCUMENTS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf1] = Q_KEY_CODE_UNMAPPED, /* qnum:241 -> linux:236 (KEY_BATTERY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf2] = Q_KEY_CODE_UNMAPPED, /* qnum:242 -> linux:237 (KEY_BLUETOOTH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf3] = Q_KEY_CODE_UNMAPPED, /* qnum:243 -> linux:238 (KEY_WLAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf4] = Q_KEY_CODE_UNMAPPED, /* qnum:244 -> linux:239 (KEY_UWB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf5] = Q_KEY_CODE_HELP, /* qnum:245 -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */
+  [0xf6] = Q_KEY_CODE_UNMAPPED, /* qnum:246 -> linux:179 (KEY_KPLEFTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf7] = Q_KEY_CODE_UNMAPPED, /* qnum:247 -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf8] = Q_KEY_CODE_COPY, /* qnum:248 -> linux:133 (KEY_COPY) -> qcode:Q_KEY_CODE_COPY (copy) */
+  [0xf9] = Q_KEY_CODE_UNMAPPED, /* qnum:249 -> linux:192 (KEY_F22) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfb] = Q_KEY_CODE_UNMAPPED, /* qnum:251 -> linux:180 (KEY_KPRIGHTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfd] = Q_KEY_CODE_UNMAPPED, /* qnum:253 -> linux:162 (KEY_EJECTCLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+};
+const guint qemu_input_map_qnum_to_qcode_len = sizeof(qemu_input_map_qnum_to_qcode)/sizeof(qemu_input_map_qnum_to_qcode[0]);
diff --git a/ui/input-keymap.c b/ui/input-keymap.c
index cf979c2ce9..3a19a169f5 100644
--- a/ui/input-keymap.c
+++ b/ui/input-keymap.c
@@ -5,333 +5,37 @@
 
 #include "standard-headers/linux/input.h"
 
-static int linux_to_qcode[KEY_CNT] = {
-    [KEY_ESC]            = Q_KEY_CODE_ESC,
-    [KEY_1]              = Q_KEY_CODE_1,
-    [KEY_2]              = Q_KEY_CODE_2,
-    [KEY_3]              = Q_KEY_CODE_3,
-    [KEY_4]              = Q_KEY_CODE_4,
-    [KEY_5]              = Q_KEY_CODE_5,
-    [KEY_6]              = Q_KEY_CODE_6,
-    [KEY_7]              = Q_KEY_CODE_7,
-    [KEY_8]              = Q_KEY_CODE_8,
-    [KEY_9]              = Q_KEY_CODE_9,
-    [KEY_0]              = Q_KEY_CODE_0,
-    [KEY_MINUS]          = Q_KEY_CODE_MINUS,
-    [KEY_EQUAL]          = Q_KEY_CODE_EQUAL,
-    [KEY_BACKSPACE]      = Q_KEY_CODE_BACKSPACE,
-    [KEY_TAB]            = Q_KEY_CODE_TAB,
-    [KEY_Q]              = Q_KEY_CODE_Q,
-    [KEY_W]              = Q_KEY_CODE_W,
-    [KEY_E]              = Q_KEY_CODE_E,
-    [KEY_R]              = Q_KEY_CODE_R,
-    [KEY_T]              = Q_KEY_CODE_T,
-    [KEY_Y]              = Q_KEY_CODE_Y,
-    [KEY_U]              = Q_KEY_CODE_U,
-    [KEY_I]              = Q_KEY_CODE_I,
-    [KEY_O]              = Q_KEY_CODE_O,
-    [KEY_P]              = Q_KEY_CODE_P,
-    [KEY_LEFTBRACE]      = Q_KEY_CODE_BRACKET_LEFT,
-    [KEY_RIGHTBRACE]     = Q_KEY_CODE_BRACKET_RIGHT,
-    [KEY_ENTER]          = Q_KEY_CODE_RET,
-    [KEY_LEFTCTRL]       = Q_KEY_CODE_CTRL,
-    [KEY_A]              = Q_KEY_CODE_A,
-    [KEY_S]              = Q_KEY_CODE_S,
-    [KEY_D]              = Q_KEY_CODE_D,
-    [KEY_F]              = Q_KEY_CODE_F,
-    [KEY_G]              = Q_KEY_CODE_G,
-    [KEY_H]              = Q_KEY_CODE_H,
-    [KEY_J]              = Q_KEY_CODE_J,
-    [KEY_K]              = Q_KEY_CODE_K,
-    [KEY_L]              = Q_KEY_CODE_L,
-    [KEY_SEMICOLON]      = Q_KEY_CODE_SEMICOLON,
-    [KEY_APOSTROPHE]     = Q_KEY_CODE_APOSTROPHE,
-    [KEY_GRAVE]          = Q_KEY_CODE_GRAVE_ACCENT,
-    [KEY_LEFTSHIFT]      = Q_KEY_CODE_SHIFT,
-    [KEY_BACKSLASH]      = Q_KEY_CODE_BACKSLASH,
-    [KEY_102ND]          = Q_KEY_CODE_LESS,
-    [KEY_Z]              = Q_KEY_CODE_Z,
-    [KEY_X]              = Q_KEY_CODE_X,
-    [KEY_C]              = Q_KEY_CODE_C,
-    [KEY_V]              = Q_KEY_CODE_V,
-    [KEY_B]              = Q_KEY_CODE_B,
-    [KEY_N]              = Q_KEY_CODE_N,
-    [KEY_M]              = Q_KEY_CODE_M,
-    [KEY_COMMA]          = Q_KEY_CODE_COMMA,
-    [KEY_DOT]            = Q_KEY_CODE_DOT,
-    [KEY_SLASH]          = Q_KEY_CODE_SLASH,
-    [KEY_RIGHTSHIFT]     = Q_KEY_CODE_SHIFT_R,
-    [KEY_LEFTALT]        = Q_KEY_CODE_ALT,
-    [KEY_SPACE]          = Q_KEY_CODE_SPC,
-    [KEY_CAPSLOCK]       = Q_KEY_CODE_CAPS_LOCK,
-    [KEY_F1]             = Q_KEY_CODE_F1,
-    [KEY_F2]             = Q_KEY_CODE_F2,
-    [KEY_F3]             = Q_KEY_CODE_F3,
-    [KEY_F4]             = Q_KEY_CODE_F4,
-    [KEY_F5]             = Q_KEY_CODE_F5,
-    [KEY_F6]             = Q_KEY_CODE_F6,
-    [KEY_F7]             = Q_KEY_CODE_F7,
-    [KEY_F8]             = Q_KEY_CODE_F8,
-    [KEY_F9]             = Q_KEY_CODE_F9,
-    [KEY_F10]            = Q_KEY_CODE_F10,
-    [KEY_NUMLOCK]        = Q_KEY_CODE_NUM_LOCK,
-    [KEY_SCROLLLOCK]     = Q_KEY_CODE_SCROLL_LOCK,
-    [KEY_KP0]            = Q_KEY_CODE_KP_0,
-    [KEY_KP1]            = Q_KEY_CODE_KP_1,
-    [KEY_KP2]            = Q_KEY_CODE_KP_2,
-    [KEY_KP3]            = Q_KEY_CODE_KP_3,
-    [KEY_KP4]            = Q_KEY_CODE_KP_4,
-    [KEY_KP5]            = Q_KEY_CODE_KP_5,
-    [KEY_KP6]            = Q_KEY_CODE_KP_6,
-    [KEY_KP7]            = Q_KEY_CODE_KP_7,
-    [KEY_KP8]            = Q_KEY_CODE_KP_8,
-    [KEY_KP9]            = Q_KEY_CODE_KP_9,
-    [KEY_KPMINUS]        = Q_KEY_CODE_KP_SUBTRACT,
-    [KEY_KPPLUS]         = Q_KEY_CODE_KP_ADD,
-    [KEY_KPDOT]          = Q_KEY_CODE_KP_DECIMAL,
-    [KEY_KPENTER]        = Q_KEY_CODE_KP_ENTER,
-    [KEY_KPSLASH]        = Q_KEY_CODE_KP_DIVIDE,
-    [KEY_KPASTERISK]     = Q_KEY_CODE_KP_MULTIPLY,
-    [KEY_F11]            = Q_KEY_CODE_F11,
-    [KEY_F12]            = Q_KEY_CODE_F12,
-    [KEY_RO]             = Q_KEY_CODE_RO,
-    [KEY_HIRAGANA]       = Q_KEY_CODE_HIRAGANA,
-    [KEY_HENKAN]         = Q_KEY_CODE_HENKAN,
-    [KEY_RIGHTCTRL]      = Q_KEY_CODE_CTRL_R,
-    [KEY_SYSRQ]          = Q_KEY_CODE_SYSRQ,
-    [KEY_RIGHTALT]       = Q_KEY_CODE_ALT_R,
-    [KEY_HOME]           = Q_KEY_CODE_HOME,
-    [KEY_UP]             = Q_KEY_CODE_UP,
-    [KEY_PAGEUP]         = Q_KEY_CODE_PGUP,
-    [KEY_LEFT]           = Q_KEY_CODE_LEFT,
-    [KEY_RIGHT]          = Q_KEY_CODE_RIGHT,
-    [KEY_END]            = Q_KEY_CODE_END,
-    [KEY_DOWN]           = Q_KEY_CODE_DOWN,
-    [KEY_PAGEDOWN]       = Q_KEY_CODE_PGDN,
-    [KEY_INSERT]         = Q_KEY_CODE_INSERT,
-    [KEY_DELETE]         = Q_KEY_CODE_DELETE,
-    [KEY_POWER]          = Q_KEY_CODE_POWER,
-    [KEY_KPCOMMA]        = Q_KEY_CODE_KP_COMMA,
-    [KEY_YEN]            = Q_KEY_CODE_YEN,
-    [KEY_LEFTMETA]       = Q_KEY_CODE_META_L,
-    [KEY_RIGHTMETA]      = Q_KEY_CODE_META_R,
-    [KEY_MENU]           = Q_KEY_CODE_MENU,
-    [KEY_PAUSE]          = Q_KEY_CODE_PAUSE,
-
-    [KEY_SLEEP]          = Q_KEY_CODE_SLEEP,
-    [KEY_WAKEUP]         = Q_KEY_CODE_WAKE,
-    [KEY_CALC]           = Q_KEY_CODE_CALCULATOR,
-    [KEY_MAIL]           = Q_KEY_CODE_MAIL,
-    [KEY_COMPUTER]       = Q_KEY_CODE_COMPUTER,
-
-    [KEY_STOP]           = Q_KEY_CODE_STOP,
-    [KEY_BOOKMARKS]      = Q_KEY_CODE_AC_BOOKMARKS,
-    [KEY_BACK]           = Q_KEY_CODE_AC_BACK,
-    [KEY_FORWARD]        = Q_KEY_CODE_AC_FORWARD,
-    [KEY_HOMEPAGE]       = Q_KEY_CODE_AC_HOME,
-    [KEY_REFRESH]        = Q_KEY_CODE_AC_REFRESH,
-    [KEY_FIND]           = Q_KEY_CODE_FIND,
-
-    [KEY_NEXTSONG]       = Q_KEY_CODE_AUDIONEXT,
-    [KEY_PREVIOUSSONG]   = Q_KEY_CODE_AUDIOPREV,
-    [KEY_STOPCD]         = Q_KEY_CODE_AUDIOSTOP,
-    [KEY_PLAYCD]         = Q_KEY_CODE_AUDIOPLAY,
-    [KEY_MUTE]           = Q_KEY_CODE_AUDIOMUTE,
-    [KEY_VOLUMEDOWN]     = Q_KEY_CODE_VOLUMEDOWN,
-    [KEY_VOLUMEUP]       = Q_KEY_CODE_VOLUMEUP,
-};
-
-static const int qcode_to_number[] = {
-    [Q_KEY_CODE_SHIFT] = 0x2a,
-    [Q_KEY_CODE_SHIFT_R] = 0x36,
-
-    [Q_KEY_CODE_ALT] = 0x38,
-    [Q_KEY_CODE_ALT_R] = 0xb8,
-    [Q_KEY_CODE_CTRL] = 0x1d,
-    [Q_KEY_CODE_CTRL_R] = 0x9d,
-
-    [Q_KEY_CODE_META_L] = 0xdb,
-    [Q_KEY_CODE_META_R] = 0xdc,
-    [Q_KEY_CODE_MENU] = 0xdd,
-
-    [Q_KEY_CODE_ESC] = 0x01,
-
-    [Q_KEY_CODE_1] = 0x02,
-    [Q_KEY_CODE_2] = 0x03,
-    [Q_KEY_CODE_3] = 0x04,
-    [Q_KEY_CODE_4] = 0x05,
-    [Q_KEY_CODE_5] = 0x06,
-    [Q_KEY_CODE_6] = 0x07,
-    [Q_KEY_CODE_7] = 0x08,
-    [Q_KEY_CODE_8] = 0x09,
-    [Q_KEY_CODE_9] = 0x0a,
-    [Q_KEY_CODE_0] = 0x0b,
-    [Q_KEY_CODE_MINUS] = 0x0c,
-    [Q_KEY_CODE_EQUAL] = 0x0d,
-    [Q_KEY_CODE_BACKSPACE] = 0x0e,
-
-    [Q_KEY_CODE_TAB] = 0x0f,
-    [Q_KEY_CODE_Q] = 0x10,
-    [Q_KEY_CODE_W] = 0x11,
-    [Q_KEY_CODE_E] = 0x12,
-    [Q_KEY_CODE_R] = 0x13,
-    [Q_KEY_CODE_T] = 0x14,
-    [Q_KEY_CODE_Y] = 0x15,
-    [Q_KEY_CODE_U] = 0x16,
-    [Q_KEY_CODE_I] = 0x17,
-    [Q_KEY_CODE_O] = 0x18,
-    [Q_KEY_CODE_P] = 0x19,
-    [Q_KEY_CODE_BRACKET_LEFT] = 0x1a,
-    [Q_KEY_CODE_BRACKET_RIGHT] = 0x1b,
-    [Q_KEY_CODE_RET] = 0x1c,
-
-    [Q_KEY_CODE_A] = 0x1e,
-    [Q_KEY_CODE_S] = 0x1f,
-    [Q_KEY_CODE_D] = 0x20,
-    [Q_KEY_CODE_F] = 0x21,
-    [Q_KEY_CODE_G] = 0x22,
-    [Q_KEY_CODE_H] = 0x23,
-    [Q_KEY_CODE_J] = 0x24,
-    [Q_KEY_CODE_K] = 0x25,
-    [Q_KEY_CODE_L] = 0x26,
-    [Q_KEY_CODE_SEMICOLON] = 0x27,
-    [Q_KEY_CODE_APOSTROPHE] = 0x28,
-    [Q_KEY_CODE_GRAVE_ACCENT] = 0x29,
-
-    [Q_KEY_CODE_BACKSLASH] = 0x2b,
-    [Q_KEY_CODE_Z] = 0x2c,
-    [Q_KEY_CODE_X] = 0x2d,
-    [Q_KEY_CODE_C] = 0x2e,
-    [Q_KEY_CODE_V] = 0x2f,
-    [Q_KEY_CODE_B] = 0x30,
-    [Q_KEY_CODE_N] = 0x31,
-    [Q_KEY_CODE_M] = 0x32,
-    [Q_KEY_CODE_COMMA] = 0x33,
-    [Q_KEY_CODE_DOT] = 0x34,
-    [Q_KEY_CODE_SLASH] = 0x35,
-
-    [Q_KEY_CODE_ASTERISK] = 0x37,
-
-    [Q_KEY_CODE_SPC] = 0x39,
-    [Q_KEY_CODE_CAPS_LOCK] = 0x3a,
-    [Q_KEY_CODE_F1] = 0x3b,
-    [Q_KEY_CODE_F2] = 0x3c,
-    [Q_KEY_CODE_F3] = 0x3d,
-    [Q_KEY_CODE_F4] = 0x3e,
-    [Q_KEY_CODE_F5] = 0x3f,
-    [Q_KEY_CODE_F6] = 0x40,
-    [Q_KEY_CODE_F7] = 0x41,
-    [Q_KEY_CODE_F8] = 0x42,
-    [Q_KEY_CODE_F9] = 0x43,
-    [Q_KEY_CODE_F10] = 0x44,
-    [Q_KEY_CODE_NUM_LOCK] = 0x45,
-    [Q_KEY_CODE_SCROLL_LOCK] = 0x46,
-
-    [Q_KEY_CODE_KP_DIVIDE] = 0xb5,
-    [Q_KEY_CODE_KP_MULTIPLY] = 0x37,
-    [Q_KEY_CODE_KP_SUBTRACT] = 0x4a,
-    [Q_KEY_CODE_KP_ADD] = 0x4e,
-    [Q_KEY_CODE_KP_ENTER] = 0x9c,
-    [Q_KEY_CODE_KP_DECIMAL] = 0x53,
-    [Q_KEY_CODE_SYSRQ] = 0x54,
-    [Q_KEY_CODE_PAUSE] = 0xc6,
-
-    [Q_KEY_CODE_KP_0] = 0x52,
-    [Q_KEY_CODE_KP_1] = 0x4f,
-    [Q_KEY_CODE_KP_2] = 0x50,
-    [Q_KEY_CODE_KP_3] = 0x51,
-    [Q_KEY_CODE_KP_4] = 0x4b,
-    [Q_KEY_CODE_KP_5] = 0x4c,
-    [Q_KEY_CODE_KP_6] = 0x4d,
-    [Q_KEY_CODE_KP_7] = 0x47,
-    [Q_KEY_CODE_KP_8] = 0x48,
-    [Q_KEY_CODE_KP_9] = 0x49,
-
-    [Q_KEY_CODE_LESS] = 0x56,
-
-    [Q_KEY_CODE_F11] = 0x57,
-    [Q_KEY_CODE_F12] = 0x58,
-
-    [Q_KEY_CODE_PRINT] = 0xb7,
-
-    [Q_KEY_CODE_HOME] = 0xc7,
-    [Q_KEY_CODE_PGUP] = 0xc9,
-    [Q_KEY_CODE_PGDN] = 0xd1,
-    [Q_KEY_CODE_END] = 0xcf,
-
-    [Q_KEY_CODE_LEFT] = 0xcb,
-    [Q_KEY_CODE_UP] = 0xc8,
-    [Q_KEY_CODE_DOWN] = 0xd0,
-    [Q_KEY_CODE_RIGHT] = 0xcd,
-
-    [Q_KEY_CODE_INSERT] = 0xd2,
-    [Q_KEY_CODE_DELETE] = 0xd3,
-
-    [Q_KEY_CODE_RO] = 0x73,
-    [Q_KEY_CODE_HIRAGANA] = 0x70,
-    [Q_KEY_CODE_HENKAN] = 0x79,
-    [Q_KEY_CODE_POWER] = 0xde,
-    [Q_KEY_CODE_YEN] = 0x7d,
-    [Q_KEY_CODE_KP_COMMA] = 0x7e,
-
-    [Q_KEY_CODE_SLEEP] = 0xdf,
-    [Q_KEY_CODE_WAKE] = 0xe3,
-    [Q_KEY_CODE_CALCULATOR] = 0xa1,
-    [Q_KEY_CODE_MAIL] = 0xec,
-    [Q_KEY_CODE_COMPUTER] = 0xeb,
-
-    [Q_KEY_CODE_STOP] = 0xe8,
-    [Q_KEY_CODE_AC_BOOKMARKS] = 0xe6,
-    [Q_KEY_CODE_AC_BACK] = 0xea,
-    [Q_KEY_CODE_AC_FORWARD] = 0xe9,
-    [Q_KEY_CODE_AC_HOME] = 0xb2,
-    [Q_KEY_CODE_AC_REFRESH] = 0xe7,
-    [Q_KEY_CODE_FIND] = 0xe5,
-
-    [Q_KEY_CODE_AUDIONEXT] = 0x99,
-    [Q_KEY_CODE_AUDIOPREV] = 0x90,
-    [Q_KEY_CODE_AUDIOSTOP] = 0xa4,
-    [Q_KEY_CODE_AUDIOPLAY] = 0xa2,
-    [Q_KEY_CODE_AUDIOMUTE] = 0xa0,
-    [Q_KEY_CODE_VOLUMEDOWN] = 0xae,
-    [Q_KEY_CODE_VOLUMEUP] = 0xb0,
-
-    [Q_KEY_CODE__MAX] = 0,
-};
-
-static int number_to_qcode[0x100];
+#include "ui/input-keymap-linux-to-qcode.c"
+#include "ui/input-keymap-qcode-to-qnum.c"
+#include "ui/input-keymap-qnum-to-qcode.c"
 
 int qemu_input_linux_to_qcode(unsigned int lnx)
 {
-    assert(lnx < KEY_CNT);
-    return linux_to_qcode[lnx];
+    if (lnx >= qemu_input_map_linux_to_qcode_len) {
+        return 0;
+    }
+    return qemu_input_map_linux_to_qcode[lnx];
 }
 
 int qemu_input_key_value_to_number(const KeyValue *value)
 {
     if (value->type == KEY_VALUE_KIND_QCODE) {
-        return qcode_to_number[value->u.qcode.data];
+        if (value->u.qcode.data >= qemu_input_map_qcode_to_qnum_len) {
+            return 0;
+        }
+        return qemu_input_map_qcode_to_qnum[value->u.qcode.data];
     } else {
         assert(value->type == KEY_VALUE_KIND_NUMBER);
         return value->u.number.data;
     }
 }
 
-int qemu_input_key_number_to_qcode(uint8_t nr)
+int qemu_input_key_number_to_qcode(unsigned int nr)
 {
-    static int first = true;
-
-    if (first) {
-        int qcode, number;
-        first = false;
-        for (qcode = 0; qcode < Q_KEY_CODE__MAX; qcode++) {
-            number = qcode_to_number[qcode];
-            assert(number < ARRAY_SIZE(number_to_qcode));
-            number_to_qcode[number] = qcode;
-        }
+    if (nr >= qemu_input_map_qnum_to_qcode_len) {
+        return 0;
     }
-
-    return number_to_qcode[nr];
+    return qemu_input_map_qnum_to_qcode[nr];
 }
 
 int qemu_input_key_value_to_qcode(const KeyValue *value)
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [Qemu-devel] [PATCH v5 03/12] ui: convert key events to QKeyCodes immediately
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 01/12] ui: add keycodemapdb repository as a GIT submodule Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 02/12] ui: convert common input code to keycodemapdb Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  2017-09-12 13:31   ` Gerd Hoffmann
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 04/12] ui: don't export qemu_input_event_new_key Daniel P. Berrange
                   ` (12 subsequent siblings)
  15 siblings, 1 reply; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

Always use QKeyCode in the InputKeyEvent struct, by converting key
numbers to QKeyCode at the time the event is created.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 ui/input.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/ui/input.c b/ui/input.c
index 3422d4a8ef..9914daf0b4 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -400,10 +400,8 @@ void qemu_input_event_send_key(QemuConsole *src, KeyValue *key, bool down)
 
 void qemu_input_event_send_key_number(QemuConsole *src, int num, bool down)
 {
-    KeyValue *key = g_new0(KeyValue, 1);
-    key->type = KEY_VALUE_KIND_NUMBER;
-    key->u.number.data = num;
-    qemu_input_event_send_key(src, key, down);
+    QKeyCode code = qemu_input_key_number_to_qcode(num);
+    qemu_input_event_send_key_qcode(src, code, down);
 }
 
 void qemu_input_event_send_key_qcode(QemuConsole *src, QKeyCode q, bool down)
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [Qemu-devel] [PATCH v5 04/12] ui: don't export qemu_input_event_new_key
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (2 preceding siblings ...)
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 03/12] ui: convert key events to QKeyCodes immediately Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 05/12] input: convert virtio-input-hid device to keycodemapdb Daniel P. Berrange
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

All public code should use qemu_input_event_send_key* functions
instead of creating an event directly.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 include/ui/input.h | 1 -
 ui/input.c         | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/include/ui/input.h b/include/ui/input.h
index 479cc46cfc..f8cee43f65 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -38,7 +38,6 @@ void qemu_input_event_send_impl(QemuConsole *src, InputEvent *evt);
 void qemu_input_event_sync(void);
 void qemu_input_event_sync_impl(void);
 
-InputEvent *qemu_input_event_new_key(KeyValue *key, bool down);
 void qemu_input_event_send_key(QemuConsole *src, KeyValue *key, bool down);
 void qemu_input_event_send_key_number(QemuConsole *src, int num, bool down);
 void qemu_input_event_send_key_qcode(QemuConsole *src, QKeyCode q, bool down);
diff --git a/ui/input.c b/ui/input.c
index 9914daf0b4..23f9f2c5e0 100644
--- a/ui/input.c
+++ b/ui/input.c
@@ -374,7 +374,7 @@ void qemu_input_event_sync(void)
     replay_input_sync_event();
 }
 
-InputEvent *qemu_input_event_new_key(KeyValue *key, bool down)
+static InputEvent *qemu_input_event_new_key(KeyValue *key, bool down)
 {
     InputEvent *evt = g_new0(InputEvent, 1);
     evt->u.key.data = g_new0(InputKeyEvent, 1);
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [Qemu-devel] [PATCH v5 05/12] input: convert virtio-input-hid device to keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (3 preceding siblings ...)
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 04/12] ui: don't export qemu_input_event_new_key Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  2017-09-12 12:47   ` Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 06/12] input: convert ps2 " Daniel P. Berrange
                   ` (10 subsequent siblings)
  15 siblings, 1 reply; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

Replace the keymap_qcode table with automatically generated
tables.

Missing entries in keymap_qcode now fixed:

  Q_KEY_CODE_ASTERISK -> KEY_KPASTERISK
  Q_KEY_CODE_KP_MULTIPLY -> KEY_KPASTERISK
  Q_KEY_CODE_STOP -> KEY_STOP
  Q_KEY_CODE_AGAIN -> KEY_AGAIN
  Q_KEY_CODE_PROPS -> KEY_PROPS
  Q_KEY_CODE_UNDO -> KEY_UNDO
  Q_KEY_CODE_FRONT -> KEY_FRONT
  Q_KEY_CODE_COPY -> KEY_COPY
  Q_KEY_CODE_OPEN -> KEY_OPEN
  Q_KEY_CODE_PASTE -> KEY_PASTE
  Q_KEY_CODE_FIND -> KEY_FIND
  Q_KEY_CODE_CUT -> KEY_CUT
  Q_KEY_CODE_LF -> KEY_LINEFEED
  Q_KEY_CODE_HELP -> KEY_HELP
  Q_KEY_CODE_COMPOSE -> KEY_COMPOSE
  Q_KEY_CODE_RO -> KEY_RO
  Q_KEY_CODE_HIRAGANA -> KEY_HIRAGANA
  Q_KEY_CODE_HENKAN -> KEY_HENKAN
  Q_KEY_CODE_YEN -> KEY_YEN
  Q_KEY_CODE_KP_COMMA -> KEY_KPCOMMA
  Q_KEY_CODE_KP_EQUALS -> KEY_KPEQUAL
  Q_KEY_CODE_POWER -> KEY_POWER
  Q_KEY_CODE_SLEEP -> KEY_SLEEP
  Q_KEY_CODE_WAKE -> KEY_WAKEUP
  Q_KEY_CODE_AUDIONEXT -> KEY_NEXTSONG
  Q_KEY_CODE_AUDIOPREV -> KEY_PREVIOUSSONG
  Q_KEY_CODE_AUDIOSTOP -> KEY_STOPCD
  Q_KEY_CODE_AUDIOPLAY -> KEY_PLAYPAUSE
  Q_KEY_CODE_AUDIOMUTE -> KEY_MUTE
  Q_KEY_CODE_VOLUMEUP -> KEY_VOLUMEUP
  Q_KEY_CODE_VOLUMEDOWN -> KEY_VOLUMEDOWN
  Q_KEY_CODE_MEDIASELECT -> KEY_MEDIA
  Q_KEY_CODE_MAIL -> KEY_MAIL
  Q_KEY_CODE_CALCULATOR -> KEY_CALC
  Q_KEY_CODE_COMPUTER -> KEY_COMPUTER
  Q_KEY_CODE_AC_HOME -> KEY_HOMEPAGE
  Q_KEY_CODE_AC_BACK -> KEY_BACK
  Q_KEY_CODE_AC_FORWARD -> KEY_FORWARD
  Q_KEY_CODE_AC_REFRESH -> KEY_REFRESH
  Q_KEY_CODE_AC_BOOKMARKS -> KEY_BOOKMARKS

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 hw/input/virtio-input-hid.c      | 136 +++-------------------------------
 include/ui/input.h               |   3 +
 ui/Makefile.objs                 |   1 +
 ui/input-keymap-qcode-to-linux.c | 156 +++++++++++++++++++++++++++++++++++++++
 ui/input-keymap.c                |   1 +
 5 files changed, 170 insertions(+), 127 deletions(-)
 create mode 100644 ui/input-keymap-qcode-to-linux.c

diff --git a/hw/input/virtio-input-hid.c b/hw/input/virtio-input-hid.c
index 4d3afc1b14..bb1296bedf 100644
--- a/hw/input/virtio-input-hid.c
+++ b/hw/input/virtio-input-hid.c
@@ -22,126 +22,7 @@
 
 /* ----------------------------------------------------------------- */
 
-static const unsigned int keymap_qcode[Q_KEY_CODE__MAX] = {
-    [Q_KEY_CODE_ESC]                 = KEY_ESC,
-    [Q_KEY_CODE_1]                   = KEY_1,
-    [Q_KEY_CODE_2]                   = KEY_2,
-    [Q_KEY_CODE_3]                   = KEY_3,
-    [Q_KEY_CODE_4]                   = KEY_4,
-    [Q_KEY_CODE_5]                   = KEY_5,
-    [Q_KEY_CODE_6]                   = KEY_6,
-    [Q_KEY_CODE_7]                   = KEY_7,
-    [Q_KEY_CODE_8]                   = KEY_8,
-    [Q_KEY_CODE_9]                   = KEY_9,
-    [Q_KEY_CODE_0]                   = KEY_0,
-    [Q_KEY_CODE_MINUS]               = KEY_MINUS,
-    [Q_KEY_CODE_EQUAL]               = KEY_EQUAL,
-    [Q_KEY_CODE_BACKSPACE]           = KEY_BACKSPACE,
-
-    [Q_KEY_CODE_TAB]                 = KEY_TAB,
-    [Q_KEY_CODE_Q]                   = KEY_Q,
-    [Q_KEY_CODE_W]                   = KEY_W,
-    [Q_KEY_CODE_E]                   = KEY_E,
-    [Q_KEY_CODE_R]                   = KEY_R,
-    [Q_KEY_CODE_T]                   = KEY_T,
-    [Q_KEY_CODE_Y]                   = KEY_Y,
-    [Q_KEY_CODE_U]                   = KEY_U,
-    [Q_KEY_CODE_I]                   = KEY_I,
-    [Q_KEY_CODE_O]                   = KEY_O,
-    [Q_KEY_CODE_P]                   = KEY_P,
-    [Q_KEY_CODE_BRACKET_LEFT]        = KEY_LEFTBRACE,
-    [Q_KEY_CODE_BRACKET_RIGHT]       = KEY_RIGHTBRACE,
-    [Q_KEY_CODE_RET]                 = KEY_ENTER,
-
-    [Q_KEY_CODE_CTRL]                = KEY_LEFTCTRL,
-    [Q_KEY_CODE_A]                   = KEY_A,
-    [Q_KEY_CODE_S]                   = KEY_S,
-    [Q_KEY_CODE_D]                   = KEY_D,
-    [Q_KEY_CODE_F]                   = KEY_F,
-    [Q_KEY_CODE_G]                   = KEY_G,
-    [Q_KEY_CODE_H]                   = KEY_H,
-    [Q_KEY_CODE_J]                   = KEY_J,
-    [Q_KEY_CODE_K]                   = KEY_K,
-    [Q_KEY_CODE_L]                   = KEY_L,
-    [Q_KEY_CODE_SEMICOLON]           = KEY_SEMICOLON,
-    [Q_KEY_CODE_APOSTROPHE]          = KEY_APOSTROPHE,
-    [Q_KEY_CODE_GRAVE_ACCENT]        = KEY_GRAVE,
-
-    [Q_KEY_CODE_SHIFT]               = KEY_LEFTSHIFT,
-    [Q_KEY_CODE_BACKSLASH]           = KEY_BACKSLASH,
-    [Q_KEY_CODE_LESS]                = KEY_102ND,
-    [Q_KEY_CODE_Z]                   = KEY_Z,
-    [Q_KEY_CODE_X]                   = KEY_X,
-    [Q_KEY_CODE_C]                   = KEY_C,
-    [Q_KEY_CODE_V]                   = KEY_V,
-    [Q_KEY_CODE_B]                   = KEY_B,
-    [Q_KEY_CODE_N]                   = KEY_N,
-    [Q_KEY_CODE_M]                   = KEY_M,
-    [Q_KEY_CODE_COMMA]               = KEY_COMMA,
-    [Q_KEY_CODE_DOT]                 = KEY_DOT,
-    [Q_KEY_CODE_SLASH]               = KEY_SLASH,
-    [Q_KEY_CODE_SHIFT_R]             = KEY_RIGHTSHIFT,
-
-    [Q_KEY_CODE_ALT]                 = KEY_LEFTALT,
-    [Q_KEY_CODE_SPC]                 = KEY_SPACE,
-    [Q_KEY_CODE_CAPS_LOCK]           = KEY_CAPSLOCK,
-
-    [Q_KEY_CODE_F1]                  = KEY_F1,
-    [Q_KEY_CODE_F2]                  = KEY_F2,
-    [Q_KEY_CODE_F3]                  = KEY_F3,
-    [Q_KEY_CODE_F4]                  = KEY_F4,
-    [Q_KEY_CODE_F5]                  = KEY_F5,
-    [Q_KEY_CODE_F6]                  = KEY_F6,
-    [Q_KEY_CODE_F7]                  = KEY_F7,
-    [Q_KEY_CODE_F8]                  = KEY_F8,
-    [Q_KEY_CODE_F9]                  = KEY_F9,
-    [Q_KEY_CODE_F10]                 = KEY_F10,
-    [Q_KEY_CODE_NUM_LOCK]            = KEY_NUMLOCK,
-    [Q_KEY_CODE_SCROLL_LOCK]         = KEY_SCROLLLOCK,
-
-    [Q_KEY_CODE_KP_0]                = KEY_KP0,
-    [Q_KEY_CODE_KP_1]                = KEY_KP1,
-    [Q_KEY_CODE_KP_2]                = KEY_KP2,
-    [Q_KEY_CODE_KP_3]                = KEY_KP3,
-    [Q_KEY_CODE_KP_4]                = KEY_KP4,
-    [Q_KEY_CODE_KP_5]                = KEY_KP5,
-    [Q_KEY_CODE_KP_6]                = KEY_KP6,
-    [Q_KEY_CODE_KP_7]                = KEY_KP7,
-    [Q_KEY_CODE_KP_8]                = KEY_KP8,
-    [Q_KEY_CODE_KP_9]                = KEY_KP9,
-    [Q_KEY_CODE_KP_SUBTRACT]         = KEY_KPMINUS,
-    [Q_KEY_CODE_KP_ADD]              = KEY_KPPLUS,
-    [Q_KEY_CODE_KP_DECIMAL]          = KEY_KPDOT,
-    [Q_KEY_CODE_KP_ENTER]            = KEY_KPENTER,
-    [Q_KEY_CODE_KP_DIVIDE]           = KEY_KPSLASH,
-    [Q_KEY_CODE_KP_MULTIPLY]         = KEY_KPASTERISK,
-
-    [Q_KEY_CODE_F11]                 = KEY_F11,
-    [Q_KEY_CODE_F12]                 = KEY_F12,
-
-    [Q_KEY_CODE_CTRL_R]              = KEY_RIGHTCTRL,
-    [Q_KEY_CODE_SYSRQ]               = KEY_SYSRQ,
-    [Q_KEY_CODE_PRINT]               = KEY_SYSRQ,
-    [Q_KEY_CODE_PAUSE]               = KEY_PAUSE,
-    [Q_KEY_CODE_ALT_R]               = KEY_RIGHTALT,
-
-    [Q_KEY_CODE_HOME]                = KEY_HOME,
-    [Q_KEY_CODE_UP]                  = KEY_UP,
-    [Q_KEY_CODE_PGUP]                = KEY_PAGEUP,
-    [Q_KEY_CODE_LEFT]                = KEY_LEFT,
-    [Q_KEY_CODE_RIGHT]               = KEY_RIGHT,
-    [Q_KEY_CODE_END]                 = KEY_END,
-    [Q_KEY_CODE_DOWN]                = KEY_DOWN,
-    [Q_KEY_CODE_PGDN]                = KEY_PAGEDOWN,
-    [Q_KEY_CODE_INSERT]              = KEY_INSERT,
-    [Q_KEY_CODE_DELETE]              = KEY_DELETE,
-
-    [Q_KEY_CODE_META_L]              = KEY_LEFTMETA,
-    [Q_KEY_CODE_META_R]              = KEY_RIGHTMETA,
-    [Q_KEY_CODE_MENU]                = KEY_MENU,
-};
-
-static const unsigned int keymap_button[INPUT_BUTTON__MAX] = {
+static const unsigned short keymap_button[INPUT_BUTTON__MAX] = {
     [INPUT_BUTTON_LEFT]              = BTN_LEFT,
     [INPUT_BUTTON_RIGHT]             = BTN_RIGHT,
     [INPUT_BUTTON_MIDDLE]            = BTN_MIDDLE,
@@ -149,12 +30,12 @@ static const unsigned int keymap_button[INPUT_BUTTON__MAX] = {
     [INPUT_BUTTON_WHEEL_DOWN]        = BTN_GEAR_DOWN,
 };
 
-static const unsigned int axismap_rel[INPUT_AXIS__MAX] = {
+static const unsigned short axismap_rel[INPUT_AXIS__MAX] = {
     [INPUT_AXIS_X]                   = REL_X,
     [INPUT_AXIS_Y]                   = REL_Y,
 };
 
-static const unsigned int axismap_abs[INPUT_AXIS__MAX] = {
+static const unsigned short axismap_abs[INPUT_AXIS__MAX] = {
     [INPUT_AXIS_X]                   = ABS_X,
     [INPUT_AXIS_Y]                   = ABS_Y,
 };
@@ -162,7 +43,7 @@ static const unsigned int axismap_abs[INPUT_AXIS__MAX] = {
 /* ----------------------------------------------------------------- */
 
 static void virtio_input_key_config(VirtIOInput *vinput,
-                                    const unsigned int *keymap,
+                                    const unsigned short *keymap,
                                     size_t mapsize)
 {
     virtio_input_config keys;
@@ -201,9 +82,10 @@ static void virtio_input_handle_event(DeviceState *dev, QemuConsole *src,
     case INPUT_EVENT_KIND_KEY:
         key = evt->u.key.data;
         qcode = qemu_input_key_value_to_qcode(key->key);
-        if (qcode && keymap_qcode[qcode]) {
+        if (qcode < qemu_input_map_qcode_to_linux_len &&
+            qemu_input_map_qcode_to_linux[qcode]) {
             event.type  = cpu_to_le16(EV_KEY);
-            event.code  = cpu_to_le16(keymap_qcode[qcode]);
+            event.code  = cpu_to_le16(qemu_input_map_qcode_to_linux[qcode]);
             event.value = cpu_to_le32(key->down ? 1 : 0);
             virtio_input_send(vinput, &event);
         } else {
@@ -387,8 +269,8 @@ static void virtio_keyboard_init(Object *obj)
 
     vhid->handler = &virtio_keyboard_handler;
     virtio_input_init_config(vinput, virtio_keyboard_config);
-    virtio_input_key_config(vinput, keymap_qcode,
-                            ARRAY_SIZE(keymap_qcode));
+    virtio_input_key_config(vinput, qemu_input_map_qcode_to_linux,
+                            qemu_input_map_qcode_to_linux_len);
 }
 
 static const TypeInfo virtio_keyboard_info = {
diff --git a/include/ui/input.h b/include/ui/input.h
index f8cee43f65..6f56d868c7 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -71,6 +71,9 @@ void qemu_remove_mouse_mode_change_notifier(Notifier *notify);
 extern const guint qemu_input_map_linux_to_qcode_len;
 extern const guint16 qemu_input_map_linux_to_qcode[];
 
+extern const guint qemu_input_map_qcode_to_linux_len;
+extern const guint16 qemu_input_map_qcode_to_linux[];
+
 extern const guint qemu_input_map_qcode_to_qnum_len;
 extern const guint16 qemu_input_map_qcode_to_qnum[];
 
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index 29e44c1baf..baf6f4e56f 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -55,6 +55,7 @@ KEYCODEMAP_CSV = $(SRC_PATH)/ui/keycodemapdb/data/keymaps.csv
 
 KEYCODEMAP_FILES = \
 		 ui/input-keymap-linux-to-qcode.c \
+		 ui/input-keymap-qcode-to-linux.c \
 		 ui/input-keymap-qcode-to-qnum.c \
 		 ui/input-keymap-qnum-to-qcode.c \
 		 $(NULL)
diff --git a/ui/input-keymap-qcode-to-linux.c b/ui/input-keymap-qcode-to-linux.c
new file mode 100644
index 0000000000..2a718566fb
--- /dev/null
+++ b/ui/input-keymap-qcode-to-linux.c
@@ -0,0 +1,156 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:06
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qcode_to_linux code-map keymaps.csv qcode linux
+*/
+const guint16 qemu_input_map_qcode_to_linux[Q_KEY_CODE__MAX] = {
+  [0 ... Q_KEY_CODE__MAX-1] = 0x0,
+  [Q_KEY_CODE_0] = 0xb, /* qcode:Q_KEY_CODE_0 (0) -> linux:11 (KEY_0) -> linux:11 (KEY_0) */
+  [Q_KEY_CODE_1] = 0x2, /* qcode:Q_KEY_CODE_1 (1) -> linux:2 (KEY_1) -> linux:2 (KEY_1) */
+  [Q_KEY_CODE_2] = 0x3, /* qcode:Q_KEY_CODE_2 (2) -> linux:3 (KEY_2) -> linux:3 (KEY_2) */
+  [Q_KEY_CODE_3] = 0x4, /* qcode:Q_KEY_CODE_3 (3) -> linux:4 (KEY_3) -> linux:4 (KEY_3) */
+  [Q_KEY_CODE_4] = 0x5, /* qcode:Q_KEY_CODE_4 (4) -> linux:5 (KEY_4) -> linux:5 (KEY_4) */
+  [Q_KEY_CODE_5] = 0x6, /* qcode:Q_KEY_CODE_5 (5) -> linux:6 (KEY_5) -> linux:6 (KEY_5) */
+  [Q_KEY_CODE_6] = 0x7, /* qcode:Q_KEY_CODE_6 (6) -> linux:7 (KEY_6) -> linux:7 (KEY_6) */
+  [Q_KEY_CODE_7] = 0x8, /* qcode:Q_KEY_CODE_7 (7) -> linux:8 (KEY_7) -> linux:8 (KEY_7) */
+  [Q_KEY_CODE_8] = 0x9, /* qcode:Q_KEY_CODE_8 (8) -> linux:9 (KEY_8) -> linux:9 (KEY_8) */
+  [Q_KEY_CODE_9] = 0xa, /* qcode:Q_KEY_CODE_9 (9) -> linux:10 (KEY_9) -> linux:10 (KEY_9) */
+  [Q_KEY_CODE_A] = 0x1e, /* qcode:Q_KEY_CODE_A (a) -> linux:30 (KEY_A) -> linux:30 (KEY_A) */
+  [Q_KEY_CODE_AC_BACK] = 0x9e, /* qcode:Q_KEY_CODE_AC_BACK (ac_back) -> linux:158 (KEY_BACK) -> linux:158 (KEY_BACK) */
+  [Q_KEY_CODE_AC_BOOKMARKS] = 0x9c, /* qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) -> linux:156 (KEY_BOOKMARKS) -> linux:156 (KEY_BOOKMARKS) */
+  [Q_KEY_CODE_AC_FORWARD] = 0x9f, /* qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) -> linux:159 (KEY_FORWARD) -> linux:159 (KEY_FORWARD) */
+  [Q_KEY_CODE_AC_HOME] = 0xac, /* qcode:Q_KEY_CODE_AC_HOME (ac_home) -> linux:172 (KEY_HOMEPAGE) -> linux:172 (KEY_HOMEPAGE) */
+  [Q_KEY_CODE_AC_REFRESH] = 0xad, /* qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) -> linux:173 (KEY_REFRESH) -> linux:173 (KEY_REFRESH) */
+  [Q_KEY_CODE_AGAIN] = 0x81, /* qcode:Q_KEY_CODE_AGAIN (again) -> linux:129 (KEY_AGAIN) -> linux:129 (KEY_AGAIN) */
+  [Q_KEY_CODE_ALT] = 0x38, /* qcode:Q_KEY_CODE_ALT (alt) -> linux:56 (KEY_LEFTALT) -> linux:56 (KEY_LEFTALT) */
+  [Q_KEY_CODE_ALT_R] = 0x64, /* qcode:Q_KEY_CODE_ALT_R (alt_r) -> linux:100 (KEY_RIGHTALT) -> linux:100 (KEY_RIGHTALT) */
+  [Q_KEY_CODE_APOSTROPHE] = 0x28, /* qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) -> linux:40 (KEY_APOSTROPHE) -> linux:40 (KEY_APOSTROPHE) */
+  [Q_KEY_CODE_ASTERISK] = 0x37, /* qcode:Q_KEY_CODE_ASTERISK (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> linux:55 (KEY_KPASTERISK) */
+  [Q_KEY_CODE_AUDIOMUTE] = 0x71, /* qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) -> linux:113 (KEY_MUTE) -> linux:113 (KEY_MUTE) */
+  [Q_KEY_CODE_AUDIONEXT] = 0xa3, /* qcode:Q_KEY_CODE_AUDIONEXT (audionext) -> linux:163 (KEY_NEXTSONG) -> linux:163 (KEY_NEXTSONG) */
+  [Q_KEY_CODE_AUDIOPLAY] = 0xa4, /* qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) -> linux:164 (KEY_PLAYPAUSE) -> linux:164 (KEY_PLAYPAUSE) */
+  [Q_KEY_CODE_AUDIOPREV] = 0xa5, /* qcode:Q_KEY_CODE_AUDIOPREV (audioprev) -> linux:165 (KEY_PREVIOUSSONG) -> linux:165 (KEY_PREVIOUSSONG) */
+  [Q_KEY_CODE_AUDIOSTOP] = 0xa6, /* qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) -> linux:166 (KEY_STOPCD) -> linux:166 (KEY_STOPCD) */
+  [Q_KEY_CODE_B] = 0x30, /* qcode:Q_KEY_CODE_B (b) -> linux:48 (KEY_B) -> linux:48 (KEY_B) */
+  [Q_KEY_CODE_BACKSLASH] = 0x2b, /* qcode:Q_KEY_CODE_BACKSLASH (backslash) -> linux:43 (KEY_BACKSLASH) -> linux:43 (KEY_BACKSLASH) */
+  [Q_KEY_CODE_BACKSPACE] = 0xe, /* qcode:Q_KEY_CODE_BACKSPACE (backspace) -> linux:14 (KEY_BACKSPACE) -> linux:14 (KEY_BACKSPACE) */
+  [Q_KEY_CODE_BRACKET_LEFT] = 0x1a, /* qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) -> linux:26 (KEY_LEFTBRACE) -> linux:26 (KEY_LEFTBRACE) */
+  [Q_KEY_CODE_BRACKET_RIGHT] = 0x1b, /* qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) -> linux:27 (KEY_RIGHTBRACE) -> linux:27 (KEY_RIGHTBRACE) */
+  [Q_KEY_CODE_C] = 0x2e, /* qcode:Q_KEY_CODE_C (c) -> linux:46 (KEY_C) -> linux:46 (KEY_C) */
+  [Q_KEY_CODE_CALCULATOR] = 0x8c, /* qcode:Q_KEY_CODE_CALCULATOR (calculator) -> linux:140 (KEY_CALC) -> linux:140 (KEY_CALC) */
+  [Q_KEY_CODE_CAPS_LOCK] = 0x3a, /* qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) -> linux:58 (KEY_CAPSLOCK) -> linux:58 (KEY_CAPSLOCK) */
+  [Q_KEY_CODE_COMMA] = 0x33, /* qcode:Q_KEY_CODE_COMMA (comma) -> linux:51 (KEY_COMMA) -> linux:51 (KEY_COMMA) */
+  [Q_KEY_CODE_COMPOSE] = 0x7f, /* qcode:Q_KEY_CODE_COMPOSE (compose) -> linux:127 (KEY_COMPOSE) -> linux:127 (KEY_COMPOSE) */
+  [Q_KEY_CODE_COMPUTER] = 0x9d, /* qcode:Q_KEY_CODE_COMPUTER (computer) -> linux:157 (KEY_COMPUTER) -> linux:157 (KEY_COMPUTER) */
+  [Q_KEY_CODE_COPY] = 0x85, /* qcode:Q_KEY_CODE_COPY (copy) -> linux:133 (KEY_COPY) -> linux:133 (KEY_COPY) */
+  [Q_KEY_CODE_CTRL] = 0x1d, /* qcode:Q_KEY_CODE_CTRL (ctrl) -> linux:29 (KEY_LEFTCTRL) -> linux:29 (KEY_LEFTCTRL) */
+  [Q_KEY_CODE_CTRL_R] = 0x61, /* qcode:Q_KEY_CODE_CTRL_R (ctrl_r) -> linux:97 (KEY_RIGHTCTRL) -> linux:97 (KEY_RIGHTCTRL) */
+  [Q_KEY_CODE_CUT] = 0x89, /* qcode:Q_KEY_CODE_CUT (cut) -> linux:137 (KEY_CUT) -> linux:137 (KEY_CUT) */
+  [Q_KEY_CODE_D] = 0x20, /* qcode:Q_KEY_CODE_D (d) -> linux:32 (KEY_D) -> linux:32 (KEY_D) */
+  [Q_KEY_CODE_DELETE] = 0x6f, /* qcode:Q_KEY_CODE_DELETE (delete) -> linux:111 (KEY_DELETE) -> linux:111 (KEY_DELETE) */
+  [Q_KEY_CODE_DOT] = 0x34, /* qcode:Q_KEY_CODE_DOT (dot) -> linux:52 (KEY_DOT) -> linux:52 (KEY_DOT) */
+  [Q_KEY_CODE_DOWN] = 0x6c, /* qcode:Q_KEY_CODE_DOWN (down) -> linux:108 (KEY_DOWN) -> linux:108 (KEY_DOWN) */
+  [Q_KEY_CODE_E] = 0x12, /* qcode:Q_KEY_CODE_E (e) -> linux:18 (KEY_E) -> linux:18 (KEY_E) */
+  [Q_KEY_CODE_END] = 0x6b, /* qcode:Q_KEY_CODE_END (end) -> linux:107 (KEY_END) -> linux:107 (KEY_END) */
+  [Q_KEY_CODE_EQUAL] = 0xd, /* qcode:Q_KEY_CODE_EQUAL (equal) -> linux:13 (KEY_EQUAL) -> linux:13 (KEY_EQUAL) */
+  [Q_KEY_CODE_ESC] = 0x1, /* qcode:Q_KEY_CODE_ESC (esc) -> linux:1 (KEY_ESC) -> linux:1 (KEY_ESC) */
+  [Q_KEY_CODE_F] = 0x21, /* qcode:Q_KEY_CODE_F (f) -> linux:33 (KEY_F) -> linux:33 (KEY_F) */
+  [Q_KEY_CODE_F1] = 0x3b, /* qcode:Q_KEY_CODE_F1 (f1) -> linux:59 (KEY_F1) -> linux:59 (KEY_F1) */
+  [Q_KEY_CODE_F10] = 0x44, /* qcode:Q_KEY_CODE_F10 (f10) -> linux:68 (KEY_F10) -> linux:68 (KEY_F10) */
+  [Q_KEY_CODE_F11] = 0x57, /* qcode:Q_KEY_CODE_F11 (f11) -> linux:87 (KEY_F11) -> linux:87 (KEY_F11) */
+  [Q_KEY_CODE_F12] = 0x58, /* qcode:Q_KEY_CODE_F12 (f12) -> linux:88 (KEY_F12) -> linux:88 (KEY_F12) */
+  [Q_KEY_CODE_F2] = 0x3c, /* qcode:Q_KEY_CODE_F2 (f2) -> linux:60 (KEY_F2) -> linux:60 (KEY_F2) */
+  [Q_KEY_CODE_F3] = 0x3d, /* qcode:Q_KEY_CODE_F3 (f3) -> linux:61 (KEY_F3) -> linux:61 (KEY_F3) */
+  [Q_KEY_CODE_F4] = 0x3e, /* qcode:Q_KEY_CODE_F4 (f4) -> linux:62 (KEY_F4) -> linux:62 (KEY_F4) */
+  [Q_KEY_CODE_F5] = 0x3f, /* qcode:Q_KEY_CODE_F5 (f5) -> linux:63 (KEY_F5) -> linux:63 (KEY_F5) */
+  [Q_KEY_CODE_F6] = 0x40, /* qcode:Q_KEY_CODE_F6 (f6) -> linux:64 (KEY_F6) -> linux:64 (KEY_F6) */
+  [Q_KEY_CODE_F7] = 0x41, /* qcode:Q_KEY_CODE_F7 (f7) -> linux:65 (KEY_F7) -> linux:65 (KEY_F7) */
+  [Q_KEY_CODE_F8] = 0x42, /* qcode:Q_KEY_CODE_F8 (f8) -> linux:66 (KEY_F8) -> linux:66 (KEY_F8) */
+  [Q_KEY_CODE_F9] = 0x43, /* qcode:Q_KEY_CODE_F9 (f9) -> linux:67 (KEY_F9) -> linux:67 (KEY_F9) */
+  [Q_KEY_CODE_FIND] = 0x88, /* qcode:Q_KEY_CODE_FIND (find) -> linux:136 (KEY_FIND) -> linux:136 (KEY_FIND) */
+  [Q_KEY_CODE_FRONT] = 0x84, /* qcode:Q_KEY_CODE_FRONT (front) -> linux:132 (KEY_FRONT) -> linux:132 (KEY_FRONT) */
+  [Q_KEY_CODE_G] = 0x22, /* qcode:Q_KEY_CODE_G (g) -> linux:34 (KEY_G) -> linux:34 (KEY_G) */
+  [Q_KEY_CODE_GRAVE_ACCENT] = 0x29, /* qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) -> linux:41 (KEY_GRAVE) -> linux:41 (KEY_GRAVE) */
+  [Q_KEY_CODE_H] = 0x23, /* qcode:Q_KEY_CODE_H (h) -> linux:35 (KEY_H) -> linux:35 (KEY_H) */
+  [Q_KEY_CODE_HELP] = 0x8a, /* qcode:Q_KEY_CODE_HELP (help) -> linux:138 (KEY_HELP) -> linux:138 (KEY_HELP) */
+  [Q_KEY_CODE_HENKAN] = 0x5c, /* qcode:Q_KEY_CODE_HENKAN (henkan) -> linux:92 (KEY_HENKAN) -> linux:92 (KEY_HENKAN) */
+  [Q_KEY_CODE_HIRAGANA] = 0x5b, /* qcode:Q_KEY_CODE_HIRAGANA (hiragana) -> linux:91 (KEY_HIRAGANA) -> linux:91 (KEY_HIRAGANA) */
+  [Q_KEY_CODE_HOME] = 0x66, /* qcode:Q_KEY_CODE_HOME (home) -> linux:102 (KEY_HOME) -> linux:102 (KEY_HOME) */
+  [Q_KEY_CODE_I] = 0x17, /* qcode:Q_KEY_CODE_I (i) -> linux:23 (KEY_I) -> linux:23 (KEY_I) */
+  [Q_KEY_CODE_INSERT] = 0x6e, /* qcode:Q_KEY_CODE_INSERT (insert) -> linux:110 (KEY_INSERT) -> linux:110 (KEY_INSERT) */
+  [Q_KEY_CODE_J] = 0x24, /* qcode:Q_KEY_CODE_J (j) -> linux:36 (KEY_J) -> linux:36 (KEY_J) */
+  [Q_KEY_CODE_K] = 0x25, /* qcode:Q_KEY_CODE_K (k) -> linux:37 (KEY_K) -> linux:37 (KEY_K) */
+  [Q_KEY_CODE_KP_0] = 0x52, /* qcode:Q_KEY_CODE_KP_0 (kp_0) -> linux:82 (KEY_KP0) -> linux:82 (KEY_KP0) */
+  [Q_KEY_CODE_KP_1] = 0x4f, /* qcode:Q_KEY_CODE_KP_1 (kp_1) -> linux:79 (KEY_KP1) -> linux:79 (KEY_KP1) */
+  [Q_KEY_CODE_KP_2] = 0x50, /* qcode:Q_KEY_CODE_KP_2 (kp_2) -> linux:80 (KEY_KP2) -> linux:80 (KEY_KP2) */
+  [Q_KEY_CODE_KP_3] = 0x51, /* qcode:Q_KEY_CODE_KP_3 (kp_3) -> linux:81 (KEY_KP3) -> linux:81 (KEY_KP3) */
+  [Q_KEY_CODE_KP_4] = 0x4b, /* qcode:Q_KEY_CODE_KP_4 (kp_4) -> linux:75 (KEY_KP4) -> linux:75 (KEY_KP4) */
+  [Q_KEY_CODE_KP_5] = 0x4c, /* qcode:Q_KEY_CODE_KP_5 (kp_5) -> linux:76 (KEY_KP5) -> linux:76 (KEY_KP5) */
+  [Q_KEY_CODE_KP_6] = 0x4d, /* qcode:Q_KEY_CODE_KP_6 (kp_6) -> linux:77 (KEY_KP6) -> linux:77 (KEY_KP6) */
+  [Q_KEY_CODE_KP_7] = 0x47, /* qcode:Q_KEY_CODE_KP_7 (kp_7) -> linux:71 (KEY_KP7) -> linux:71 (KEY_KP7) */
+  [Q_KEY_CODE_KP_8] = 0x48, /* qcode:Q_KEY_CODE_KP_8 (kp_8) -> linux:72 (KEY_KP8) -> linux:72 (KEY_KP8) */
+  [Q_KEY_CODE_KP_9] = 0x49, /* qcode:Q_KEY_CODE_KP_9 (kp_9) -> linux:73 (KEY_KP9) -> linux:73 (KEY_KP9) */
+  [Q_KEY_CODE_KP_ADD] = 0x4e, /* qcode:Q_KEY_CODE_KP_ADD (kp_add) -> linux:78 (KEY_KPPLUS) -> linux:78 (KEY_KPPLUS) */
+  [Q_KEY_CODE_KP_COMMA] = 0x79, /* qcode:Q_KEY_CODE_KP_COMMA (kp_comma) -> linux:121 (KEY_KPCOMMA) -> linux:121 (KEY_KPCOMMA) */
+  [Q_KEY_CODE_KP_DECIMAL] = 0x53, /* qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) -> linux:83 (KEY_KPDOT) -> linux:83 (KEY_KPDOT) */
+  [Q_KEY_CODE_KP_DIVIDE] = 0x62, /* qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) -> linux:98 (KEY_KPSLASH) -> linux:98 (KEY_KPSLASH) */
+  [Q_KEY_CODE_KP_ENTER] = 0x60, /* qcode:Q_KEY_CODE_KP_ENTER (kp_enter) -> linux:96 (KEY_KPENTER) -> linux:96 (KEY_KPENTER) */
+  [Q_KEY_CODE_KP_EQUALS] = 0x75, /* qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) -> linux:117 (KEY_KPEQUAL) -> linux:117 (KEY_KPEQUAL) */
+  [Q_KEY_CODE_KP_MULTIPLY] = 0x37, /* qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> linux:55 (KEY_KPASTERISK) */
+  [Q_KEY_CODE_KP_SUBTRACT] = 0x4a, /* qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) -> linux:74 (KEY_KPMINUS) -> linux:74 (KEY_KPMINUS) */
+  [Q_KEY_CODE_L] = 0x26, /* qcode:Q_KEY_CODE_L (l) -> linux:38 (KEY_L) -> linux:38 (KEY_L) */
+  [Q_KEY_CODE_LEFT] = 0x69, /* qcode:Q_KEY_CODE_LEFT (left) -> linux:105 (KEY_LEFT) -> linux:105 (KEY_LEFT) */
+  [Q_KEY_CODE_LESS] = 0x56, /* qcode:Q_KEY_CODE_LESS (less) -> linux:86 (KEY_102ND) -> linux:86 (KEY_102ND) */
+  [Q_KEY_CODE_LF] = 0x65, /* qcode:Q_KEY_CODE_LF (lf) -> linux:101 (KEY_LINEFEED) -> linux:101 (KEY_LINEFEED) */
+  [Q_KEY_CODE_M] = 0x32, /* qcode:Q_KEY_CODE_M (m) -> linux:50 (KEY_M) -> linux:50 (KEY_M) */
+  [Q_KEY_CODE_MAIL] = 0x9b, /* qcode:Q_KEY_CODE_MAIL (mail) -> linux:155 (KEY_MAIL) -> linux:155 (KEY_MAIL) */
+  [Q_KEY_CODE_MEDIASELECT] = 0xe2, /* qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) -> linux:226 (KEY_MEDIA) -> linux:226 (KEY_MEDIA) */
+  [Q_KEY_CODE_MENU] = 0x8b, /* qcode:Q_KEY_CODE_MENU (menu) -> linux:139 (KEY_MENU) -> linux:139 (KEY_MENU) */
+  [Q_KEY_CODE_META_L] = 0x7d, /* qcode:Q_KEY_CODE_META_L (meta_l) -> linux:125 (KEY_LEFTMETA) -> linux:125 (KEY_LEFTMETA) */
+  [Q_KEY_CODE_META_R] = 0x7e, /* qcode:Q_KEY_CODE_META_R (meta_r) -> linux:126 (KEY_RIGHTMETA) -> linux:126 (KEY_RIGHTMETA) */
+  [Q_KEY_CODE_MINUS] = 0xc, /* qcode:Q_KEY_CODE_MINUS (minus) -> linux:12 (KEY_MINUS) -> linux:12 (KEY_MINUS) */
+  [Q_KEY_CODE_N] = 0x31, /* qcode:Q_KEY_CODE_N (n) -> linux:49 (KEY_N) -> linux:49 (KEY_N) */
+  [Q_KEY_CODE_NUM_LOCK] = 0x45, /* qcode:Q_KEY_CODE_NUM_LOCK (num_lock) -> linux:69 (KEY_NUMLOCK) -> linux:69 (KEY_NUMLOCK) */
+  [Q_KEY_CODE_O] = 0x18, /* qcode:Q_KEY_CODE_O (o) -> linux:24 (KEY_O) -> linux:24 (KEY_O) */
+  [Q_KEY_CODE_OPEN] = 0x86, /* qcode:Q_KEY_CODE_OPEN (open) -> linux:134 (KEY_OPEN) -> linux:134 (KEY_OPEN) */
+  [Q_KEY_CODE_P] = 0x19, /* qcode:Q_KEY_CODE_P (p) -> linux:25 (KEY_P) -> linux:25 (KEY_P) */
+  [Q_KEY_CODE_PASTE] = 0x87, /* qcode:Q_KEY_CODE_PASTE (paste) -> linux:135 (KEY_PASTE) -> linux:135 (KEY_PASTE) */
+  [Q_KEY_CODE_PAUSE] = 0x77, /* qcode:Q_KEY_CODE_PAUSE (pause) -> linux:119 (KEY_PAUSE) -> linux:119 (KEY_PAUSE) */
+  [Q_KEY_CODE_PGDN] = 0x6d, /* qcode:Q_KEY_CODE_PGDN (pgdn) -> linux:109 (KEY_PAGEDOWN) -> linux:109 (KEY_PAGEDOWN) */
+  [Q_KEY_CODE_PGUP] = 0x68, /* qcode:Q_KEY_CODE_PGUP (pgup) -> linux:104 (KEY_PAGEUP) -> linux:104 (KEY_PAGEUP) */
+  [Q_KEY_CODE_POWER] = 0x74, /* qcode:Q_KEY_CODE_POWER (power) -> linux:116 (KEY_POWER) -> linux:116 (KEY_POWER) */
+  [Q_KEY_CODE_PRINT] = 0x63, /* qcode:Q_KEY_CODE_PRINT (sysrq) -> linux:99 (KEY_SYSRQ) -> linux:99 (KEY_SYSRQ) */
+  [Q_KEY_CODE_PROPS] = 0x82, /* qcode:Q_KEY_CODE_PROPS (props) -> linux:130 (KEY_PROPS) -> linux:130 (KEY_PROPS) */
+  [Q_KEY_CODE_Q] = 0x10, /* qcode:Q_KEY_CODE_Q (q) -> linux:16 (KEY_Q) -> linux:16 (KEY_Q) */
+  [Q_KEY_CODE_R] = 0x13, /* qcode:Q_KEY_CODE_R (r) -> linux:19 (KEY_R) -> linux:19 (KEY_R) */
+  [Q_KEY_CODE_RET] = 0x1c, /* qcode:Q_KEY_CODE_RET (ret) -> linux:28 (KEY_ENTER) -> linux:28 (KEY_ENTER) */
+  [Q_KEY_CODE_RIGHT] = 0x6a, /* qcode:Q_KEY_CODE_RIGHT (right) -> linux:106 (KEY_RIGHT) -> linux:106 (KEY_RIGHT) */
+  [Q_KEY_CODE_RO] = 0x59, /* qcode:Q_KEY_CODE_RO (ro) -> linux:89 (KEY_RO) -> linux:89 (KEY_RO) */
+  [Q_KEY_CODE_S] = 0x1f, /* qcode:Q_KEY_CODE_S (s) -> linux:31 (KEY_S) -> linux:31 (KEY_S) */
+  [Q_KEY_CODE_SCROLL_LOCK] = 0x46, /* qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) -> linux:70 (KEY_SCROLLLOCK) -> linux:70 (KEY_SCROLLLOCK) */
+  [Q_KEY_CODE_SEMICOLON] = 0x27, /* qcode:Q_KEY_CODE_SEMICOLON (semicolon) -> linux:39 (KEY_SEMICOLON) -> linux:39 (KEY_SEMICOLON) */
+  [Q_KEY_CODE_SHIFT] = 0x2a, /* qcode:Q_KEY_CODE_SHIFT (shift) -> linux:42 (KEY_LEFTSHIFT) -> linux:42 (KEY_LEFTSHIFT) */
+  [Q_KEY_CODE_SHIFT_R] = 0x36, /* qcode:Q_KEY_CODE_SHIFT_R (shift_r) -> linux:54 (KEY_RIGHTSHIFT) -> linux:54 (KEY_RIGHTSHIFT) */
+  [Q_KEY_CODE_SLASH] = 0x35, /* qcode:Q_KEY_CODE_SLASH (slash) -> linux:53 (KEY_SLASH) -> linux:53 (KEY_SLASH) */
+  [Q_KEY_CODE_SLEEP] = 0x8e, /* qcode:Q_KEY_CODE_SLEEP (sleep) -> linux:142 (KEY_SLEEP) -> linux:142 (KEY_SLEEP) */
+  [Q_KEY_CODE_SPC] = 0x39, /* qcode:Q_KEY_CODE_SPC (spc) -> linux:57 (KEY_SPACE) -> linux:57 (KEY_SPACE) */
+  [Q_KEY_CODE_STOP] = 0x80, /* qcode:Q_KEY_CODE_STOP (stop) -> linux:128 (KEY_STOP) -> linux:128 (KEY_STOP) */
+  [Q_KEY_CODE_SYSRQ] = 0x63, /* qcode:Q_KEY_CODE_SYSRQ (sysrq) -> linux:99 (KEY_SYSRQ) -> linux:99 (KEY_SYSRQ) */
+  [Q_KEY_CODE_T] = 0x14, /* qcode:Q_KEY_CODE_T (t) -> linux:20 (KEY_T) -> linux:20 (KEY_T) */
+  [Q_KEY_CODE_TAB] = 0xf, /* qcode:Q_KEY_CODE_TAB (tab) -> linux:15 (KEY_TAB) -> linux:15 (KEY_TAB) */
+  [Q_KEY_CODE_U] = 0x16, /* qcode:Q_KEY_CODE_U (u) -> linux:22 (KEY_U) -> linux:22 (KEY_U) */
+  [Q_KEY_CODE_UNDO] = 0x83, /* qcode:Q_KEY_CODE_UNDO (undo) -> linux:131 (KEY_UNDO) -> linux:131 (KEY_UNDO) */
+  [Q_KEY_CODE_UNMAPPED] = 0x0, /* qcode:Q_KEY_CODE_UNMAPPED (unmapped) -> linux:0 (KEY_RESERVED) -> linux:0 (KEY_RESERVED) */
+  [Q_KEY_CODE_UP] = 0x67, /* qcode:Q_KEY_CODE_UP (up) -> linux:103 (KEY_UP) -> linux:103 (KEY_UP) */
+  [Q_KEY_CODE_V] = 0x2f, /* qcode:Q_KEY_CODE_V (v) -> linux:47 (KEY_V) -> linux:47 (KEY_V) */
+  [Q_KEY_CODE_VOLUMEDOWN] = 0x72, /* qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) -> linux:114 (KEY_VOLUMEDOWN) -> linux:114 (KEY_VOLUMEDOWN) */
+  [Q_KEY_CODE_VOLUMEUP] = 0x73, /* qcode:Q_KEY_CODE_VOLUMEUP (volumeup) -> linux:115 (KEY_VOLUMEUP) -> linux:115 (KEY_VOLUMEUP) */
+  [Q_KEY_CODE_W] = 0x11, /* qcode:Q_KEY_CODE_W (w) -> linux:17 (KEY_W) -> linux:17 (KEY_W) */
+  [Q_KEY_CODE_WAKE] = 0x8f, /* qcode:Q_KEY_CODE_WAKE (wake) -> linux:143 (KEY_WAKEUP) -> linux:143 (KEY_WAKEUP) */
+  [Q_KEY_CODE_X] = 0x2d, /* qcode:Q_KEY_CODE_X (x) -> linux:45 (KEY_X) -> linux:45 (KEY_X) */
+  [Q_KEY_CODE_Y] = 0x15, /* qcode:Q_KEY_CODE_Y (y) -> linux:21 (KEY_Y) -> linux:21 (KEY_Y) */
+  [Q_KEY_CODE_YEN] = 0x7c, /* qcode:Q_KEY_CODE_YEN (yen) -> linux:124 (KEY_YEN) -> linux:124 (KEY_YEN) */
+  [Q_KEY_CODE_Z] = 0x2c, /* qcode:Q_KEY_CODE_Z (z) -> linux:44 (KEY_Z) -> linux:44 (KEY_Z) */
+};
+const guint qemu_input_map_qcode_to_linux_len = sizeof(qemu_input_map_qcode_to_linux)/sizeof(qemu_input_map_qcode_to_linux[0]);
diff --git a/ui/input-keymap.c b/ui/input-keymap.c
index 3a19a169f5..6e543d651f 100644
--- a/ui/input-keymap.c
+++ b/ui/input-keymap.c
@@ -6,6 +6,7 @@
 #include "standard-headers/linux/input.h"
 
 #include "ui/input-keymap-linux-to-qcode.c"
+#include "ui/input-keymap-qcode-to-linux.c"
 #include "ui/input-keymap-qcode-to-qnum.c"
 #include "ui/input-keymap-qnum-to-qcode.c"
 
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [Qemu-devel] [PATCH v5 06/12] input: convert ps2 device to keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (4 preceding siblings ...)
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 05/12] input: convert virtio-input-hid device to keycodemapdb Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 07/12] input: convert the adb " Daniel P. Berrange
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

Replace the qcode_to_keycode_set1, qcode_to_keycode_set2,
and qcode_to_keycode_set3 tables with automatically
generated tables.

Missing entries in qcode_to_keycode_set1 now fixed:

 - Q_KEY_CODE_SYSRQ -> 0x54
 - Q_KEY_CODE_PRINT -> 0x54 (NB ignored due to special case)
 - Q_KEY_CODE_AGAIN -> 0xe005
 - Q_KEY_CODE_PROPS -> 0xe006
 - Q_KEY_CODE_UNDO -> 0xe007
 - Q_KEY_CODE_FRONT -> 0xe00c
 - Q_KEY_CODE_COPY -> 0xe078
 - Q_KEY_CODE_OPEN -> 0x64
 - Q_KEY_CODE_PASTE -> 0x65
 - Q_KEY_CODE_CUT -> 0xe03c
 - Q_KEY_CODE_LF -> 0x5b
 - Q_KEY_CODE_HELP -> 0xe075
 - Q_KEY_CODE_COMPOSE -> 0xe05d
 - Q_KEY_CODE_PAUSE -> 0xe046
 - Q_KEY_CODE_KP_EQUALS -> 0x59

And some mistakes corrected:

 - Q_KEY_CODE_HIRAGANA was mapped to 0x70 (Katakanahiragana)
   instead of of 0x77 (Hirigana)
 - Q_KEY_CODE_MENU was incorrectly mapped to the compose
   scancode (0xe05d) and is now mapped to 0xe01e
 - Q_KEY_CODE_FIND was mapped to 0xe065 (Search) instead
   of to 0xe041 (Find)
 - Q_KEY_CODE_POWER, SLEEP & WAKE had 0x0e instead of 0xe0
   as the prefix

Missing entries in qcode_to_keycode_set2 now fixed:

 - Q_KEY_CODE_PRINT -> 0x7f (NB ignored due to special case)
 - Q_KEY_CODE_COMPOSE -> 0xe02f
 - Q_KEY_CODE_PAUSE -> 0xe077
 - Q_KEY_CODE_KP_EQUALS -> 0x0f

And some mistakes corrected:

 - Q_KEY_CODE_HIRAGANA was mapped to 0x13 (Katakanahiragana)
   instead of of 0x62 (Hirigana)
 - Q_KEY_CODE_MENU was incorrectly mapped to the compose
   scancode (0xe02f) and is now not mapped
 - Q_KEY_CODE_FIND was mapped to 0xe010 (Search) and is now
   not mapped.
 - Q_KEY_CODE_POWER, SLEEP & WAKE had 0x0e instead of 0xe0
   as the prefix

Missing entries in qcode_to_keycode_set3 now fixed:

 - Q_KEY_CODE_ASTERISK -> 0x7e
 - Q_KEY_CODE_SYSRQ -> 0x57
 - Q_KEY_CODE_LESS -> 0x13
 - Q_KEY_CODE_STOP -> 0x0a
 - Q_KEY_CODE_AGAIN -> 0x0b
 - Q_KEY_CODE_PROPS -> 0x0c
 - Q_KEY_CODE_UNDO -> 0x10
 - Q_KEY_CODE_COPY -> 0x18
 - Q_KEY_CODE_OPEN -> 0x20
 - Q_KEY_CODE_PASTE -> 0x28
 - Q_KEY_CODE_FIND -> 0x30
 - Q_KEY_CODE_CUT -> 0x38
 - Q_KEY_CODE_HELP -> 0x09
 - Q_KEY_CODE_COMPOSE -> 0x8d
 - Q_KEY_CODE_AUDIONEXT -> 0x93
 - Q_KEY_CODE_AUDIOPREV -> 0x94
 - Q_KEY_CODE_AUDIOSTOP -> 0x98
 - Q_KEY_CODE_AUDIOMUTE -> 0x9c
 - Q_KEY_CODE_VOLUMEUP -> 0x95
 - Q_KEY_CODE_VOLUMEDOWN -> 0x9d
 - Q_KEY_CODE_CALCULATOR -> 0xa3
 - Q_KEY_CODE_AC_HOME -> 0x97

And some mistakes corrected:

 - Q_KEY_CODE_MENU was incorrectly mapped to the compose
   scancode (0x8d) and is now 0x91

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 hw/input/ps2.c                    | 406 +-------------------------------------
 include/ui/input.h                |   9 +
 ui/Makefile.objs                  |   3 +
 ui/input-keymap-qcode-to-atset1.c | 154 +++++++++++++++
 ui/input-keymap-qcode-to-atset2.c | 142 +++++++++++++
 ui/input-keymap-qcode-to-atset3.c | 138 +++++++++++++
 ui/input-keymap.c                 |   3 +
 7 files changed, 456 insertions(+), 399 deletions(-)
 create mode 100644 ui/input-keymap-qcode-to-atset1.c
 create mode 100644 ui/input-keymap-qcode-to-atset2.c
 create mode 100644 ui/input-keymap-qcode-to-atset3.c

diff --git a/hw/input/ps2.c b/hw/input/ps2.c
index 77906d5f46..7eeadc144d 100644
--- a/hw/input/ps2.c
+++ b/hw/input/ps2.c
@@ -115,401 +115,6 @@ typedef struct {
     uint8_t mouse_buttons;
 } PS2MouseState;
 
-/* Table to convert from QEMU codes to scancodes.  */
-static const uint16_t qcode_to_keycode_set1[Q_KEY_CODE__MAX] = {
-    [0 ... Q_KEY_CODE__MAX - 1] = 0,
-
-    [Q_KEY_CODE_A] = 0x1e,
-    [Q_KEY_CODE_B] = 0x30,
-    [Q_KEY_CODE_C] = 0x2e,
-    [Q_KEY_CODE_D] = 0x20,
-    [Q_KEY_CODE_E] = 0x12,
-    [Q_KEY_CODE_F] = 0x21,
-    [Q_KEY_CODE_G] = 0x22,
-    [Q_KEY_CODE_H] = 0x23,
-    [Q_KEY_CODE_I] = 0x17,
-    [Q_KEY_CODE_J] = 0x24,
-    [Q_KEY_CODE_K] = 0x25,
-    [Q_KEY_CODE_L] = 0x26,
-    [Q_KEY_CODE_M] = 0x32,
-    [Q_KEY_CODE_N] = 0x31,
-    [Q_KEY_CODE_O] = 0x18,
-    [Q_KEY_CODE_P] = 0x19,
-    [Q_KEY_CODE_Q] = 0x10,
-    [Q_KEY_CODE_R] = 0x13,
-    [Q_KEY_CODE_S] = 0x1f,
-    [Q_KEY_CODE_T] = 0x14,
-    [Q_KEY_CODE_U] = 0x16,
-    [Q_KEY_CODE_V] = 0x2f,
-    [Q_KEY_CODE_W] = 0x11,
-    [Q_KEY_CODE_X] = 0x2d,
-    [Q_KEY_CODE_Y] = 0x15,
-    [Q_KEY_CODE_Z] = 0x2c,
-    [Q_KEY_CODE_0] = 0x0b,
-    [Q_KEY_CODE_1] = 0x02,
-    [Q_KEY_CODE_2] = 0x03,
-    [Q_KEY_CODE_3] = 0x04,
-    [Q_KEY_CODE_4] = 0x05,
-    [Q_KEY_CODE_5] = 0x06,
-    [Q_KEY_CODE_6] = 0x07,
-    [Q_KEY_CODE_7] = 0x08,
-    [Q_KEY_CODE_8] = 0x09,
-    [Q_KEY_CODE_9] = 0x0a,
-    [Q_KEY_CODE_GRAVE_ACCENT] = 0x29,
-    [Q_KEY_CODE_MINUS] = 0x0c,
-    [Q_KEY_CODE_EQUAL] = 0x0d,
-    [Q_KEY_CODE_BACKSLASH] = 0x2b,
-    [Q_KEY_CODE_BACKSPACE] = 0x0e,
-    [Q_KEY_CODE_SPC] = 0x39,
-    [Q_KEY_CODE_TAB] = 0x0f,
-    [Q_KEY_CODE_CAPS_LOCK] = 0x3a,
-    [Q_KEY_CODE_SHIFT] = 0x2a,
-    [Q_KEY_CODE_CTRL] = 0x1d,
-    [Q_KEY_CODE_META_L] = 0xe05b,
-    [Q_KEY_CODE_ALT] = 0x38,
-    [Q_KEY_CODE_SHIFT_R] = 0x36,
-    [Q_KEY_CODE_CTRL_R] = 0xe01d,
-    [Q_KEY_CODE_META_R] = 0xe05c,
-    [Q_KEY_CODE_ALT_R] = 0xe038,
-    [Q_KEY_CODE_MENU] = 0xe05d,
-    [Q_KEY_CODE_RET] = 0x1c,
-    [Q_KEY_CODE_ESC] = 0x01,
-    [Q_KEY_CODE_F1] = 0x3b,
-    [Q_KEY_CODE_F2] = 0x3c,
-    [Q_KEY_CODE_F3] = 0x3d,
-    [Q_KEY_CODE_F4] = 0x3e,
-    [Q_KEY_CODE_F5] = 0x3f,
-    [Q_KEY_CODE_F6] = 0x40,
-    [Q_KEY_CODE_F7] = 0x41,
-    [Q_KEY_CODE_F8] = 0x42,
-    [Q_KEY_CODE_F9] = 0x43,
-    [Q_KEY_CODE_F10] = 0x44,
-    [Q_KEY_CODE_F11] = 0x57,
-    [Q_KEY_CODE_F12] = 0x58,
-    /* special handling for Q_KEY_CODE_PRINT */
-    [Q_KEY_CODE_SCROLL_LOCK] = 0x46,
-    /* special handling for Q_KEY_CODE_PAUSE */
-    [Q_KEY_CODE_BRACKET_LEFT] = 0x1a,
-    [Q_KEY_CODE_INSERT] = 0xe052,
-    [Q_KEY_CODE_HOME] = 0xe047,
-    [Q_KEY_CODE_PGUP] = 0xe049,
-    [Q_KEY_CODE_DELETE] = 0xe053,
-    [Q_KEY_CODE_END] = 0xe04f,
-    [Q_KEY_CODE_PGDN] = 0xe051,
-    [Q_KEY_CODE_UP] = 0xe048,
-    [Q_KEY_CODE_LEFT] = 0xe04b,
-    [Q_KEY_CODE_DOWN] = 0xe050,
-    [Q_KEY_CODE_RIGHT] = 0xe04d,
-    [Q_KEY_CODE_NUM_LOCK] = 0x45,
-    [Q_KEY_CODE_KP_DIVIDE] = 0xe035,
-    [Q_KEY_CODE_KP_MULTIPLY] = 0x37,
-    [Q_KEY_CODE_KP_SUBTRACT] = 0x4a,
-    [Q_KEY_CODE_KP_ADD] = 0x4e,
-    [Q_KEY_CODE_KP_ENTER] = 0xe01c,
-    [Q_KEY_CODE_KP_DECIMAL] = 0x53,
-    [Q_KEY_CODE_KP_0] = 0x52,
-    [Q_KEY_CODE_KP_1] = 0x4f,
-    [Q_KEY_CODE_KP_2] = 0x50,
-    [Q_KEY_CODE_KP_3] = 0x51,
-    [Q_KEY_CODE_KP_4] = 0x4b,
-    [Q_KEY_CODE_KP_5] = 0x4c,
-    [Q_KEY_CODE_KP_6] = 0x4d,
-    [Q_KEY_CODE_KP_7] = 0x47,
-    [Q_KEY_CODE_KP_8] = 0x48,
-    [Q_KEY_CODE_KP_9] = 0x49,
-    [Q_KEY_CODE_BRACKET_RIGHT] = 0x1b,
-    [Q_KEY_CODE_SEMICOLON] = 0x27,
-    [Q_KEY_CODE_APOSTROPHE] = 0x28,
-    [Q_KEY_CODE_COMMA] = 0x33,
-    [Q_KEY_CODE_DOT] = 0x34,
-    [Q_KEY_CODE_SLASH] = 0x35,
-
-    [Q_KEY_CODE_POWER] = 0x0e5e,
-    [Q_KEY_CODE_SLEEP] = 0x0e5f,
-    [Q_KEY_CODE_WAKE] = 0x0e63,
-
-    [Q_KEY_CODE_AUDIONEXT] = 0xe019,
-    [Q_KEY_CODE_AUDIOPREV] = 0xe010,
-    [Q_KEY_CODE_AUDIOSTOP] = 0xe024,
-    [Q_KEY_CODE_AUDIOPLAY] = 0xe022,
-    [Q_KEY_CODE_AUDIOMUTE] = 0xe020,
-    [Q_KEY_CODE_VOLUMEUP] = 0xe030,
-    [Q_KEY_CODE_VOLUMEDOWN] = 0xe02e,
-    [Q_KEY_CODE_MEDIASELECT] = 0xe06d,
-    [Q_KEY_CODE_MAIL] = 0xe06c,
-    [Q_KEY_CODE_CALCULATOR] = 0xe021,
-    [Q_KEY_CODE_COMPUTER] = 0xe06b,
-    [Q_KEY_CODE_FIND] = 0xe065,
-    [Q_KEY_CODE_AC_HOME] = 0xe032,
-    [Q_KEY_CODE_AC_BACK] = 0xe06a,
-    [Q_KEY_CODE_AC_FORWARD] = 0xe069,
-    [Q_KEY_CODE_STOP] = 0xe068,
-    [Q_KEY_CODE_AC_REFRESH] = 0xe067,
-    [Q_KEY_CODE_AC_BOOKMARKS] = 0xe066,
-
-    [Q_KEY_CODE_ASTERISK] = 0x37,
-    [Q_KEY_CODE_LESS] = 0x56,
-    [Q_KEY_CODE_RO] = 0x73,
-    [Q_KEY_CODE_HIRAGANA] = 0x70,
-    [Q_KEY_CODE_HENKAN] = 0x79,
-    [Q_KEY_CODE_YEN] = 0x7d,
-    [Q_KEY_CODE_KP_COMMA] = 0x7e,
-};
-
-static const uint16_t qcode_to_keycode_set2[Q_KEY_CODE__MAX] = {
-    [0 ... Q_KEY_CODE__MAX - 1] = 0,
-
-    [Q_KEY_CODE_A] = 0x1c,
-    [Q_KEY_CODE_B] = 0x32,
-    [Q_KEY_CODE_C] = 0x21,
-    [Q_KEY_CODE_D] = 0x23,
-    [Q_KEY_CODE_E] = 0x24,
-    [Q_KEY_CODE_F] = 0x2b,
-    [Q_KEY_CODE_G] = 0x34,
-    [Q_KEY_CODE_H] = 0x33,
-    [Q_KEY_CODE_I] = 0x43,
-    [Q_KEY_CODE_J] = 0x3b,
-    [Q_KEY_CODE_K] = 0x42,
-    [Q_KEY_CODE_L] = 0x4b,
-    [Q_KEY_CODE_M] = 0x3a,
-    [Q_KEY_CODE_N] = 0x31,
-    [Q_KEY_CODE_O] = 0x44,
-    [Q_KEY_CODE_P] = 0x4d,
-    [Q_KEY_CODE_Q] = 0x15,
-    [Q_KEY_CODE_R] = 0x2d,
-    [Q_KEY_CODE_S] = 0x1b,
-    [Q_KEY_CODE_T] = 0x2c,
-    [Q_KEY_CODE_U] = 0x3c,
-    [Q_KEY_CODE_V] = 0x2a,
-    [Q_KEY_CODE_W] = 0x1d,
-    [Q_KEY_CODE_X] = 0x22,
-    [Q_KEY_CODE_Y] = 0x35,
-    [Q_KEY_CODE_Z] = 0x1a,
-    [Q_KEY_CODE_0] = 0x45,
-    [Q_KEY_CODE_1] = 0x16,
-    [Q_KEY_CODE_2] = 0x1e,
-    [Q_KEY_CODE_3] = 0x26,
-    [Q_KEY_CODE_4] = 0x25,
-    [Q_KEY_CODE_5] = 0x2e,
-    [Q_KEY_CODE_6] = 0x36,
-    [Q_KEY_CODE_7] = 0x3d,
-    [Q_KEY_CODE_8] = 0x3e,
-    [Q_KEY_CODE_9] = 0x46,
-    [Q_KEY_CODE_GRAVE_ACCENT] = 0x0e,
-    [Q_KEY_CODE_MINUS] = 0x4e,
-    [Q_KEY_CODE_EQUAL] = 0x55,
-    [Q_KEY_CODE_BACKSLASH] = 0x5d,
-    [Q_KEY_CODE_BACKSPACE] = 0x66,
-    [Q_KEY_CODE_SPC] = 0x29,
-    [Q_KEY_CODE_TAB] = 0x0d,
-    [Q_KEY_CODE_CAPS_LOCK] = 0x58,
-    [Q_KEY_CODE_SHIFT] = 0x12,
-    [Q_KEY_CODE_CTRL] = 0x14,
-    [Q_KEY_CODE_META_L] = 0xe01f,
-    [Q_KEY_CODE_ALT] = 0x11,
-    [Q_KEY_CODE_SHIFT_R] = 0x59,
-    [Q_KEY_CODE_CTRL_R] = 0xe014,
-    [Q_KEY_CODE_META_R] = 0xe027,
-    [Q_KEY_CODE_ALT_R] = 0xe011,
-    [Q_KEY_CODE_MENU] = 0xe02f,
-    [Q_KEY_CODE_RET] = 0x5a,
-    [Q_KEY_CODE_ESC] = 0x76,
-    [Q_KEY_CODE_F1] = 0x05,
-    [Q_KEY_CODE_F2] = 0x06,
-    [Q_KEY_CODE_F3] = 0x04,
-    [Q_KEY_CODE_F4] = 0x0c,
-    [Q_KEY_CODE_F5] = 0x03,
-    [Q_KEY_CODE_F6] = 0x0b,
-    [Q_KEY_CODE_F7] = 0x83,
-    [Q_KEY_CODE_F8] = 0x0a,
-    [Q_KEY_CODE_F9] = 0x01,
-    [Q_KEY_CODE_F10] = 0x09,
-    [Q_KEY_CODE_F11] = 0x78,
-    [Q_KEY_CODE_F12] = 0x07,
-    /* special handling for Q_KEY_CODE_PRINT */
-    [Q_KEY_CODE_SCROLL_LOCK] = 0x7e,
-    /* special handling for Q_KEY_CODE_PAUSE */
-    [Q_KEY_CODE_BRACKET_LEFT] = 0x54,
-    [Q_KEY_CODE_INSERT] = 0xe070,
-    [Q_KEY_CODE_HOME] = 0xe06c,
-    [Q_KEY_CODE_PGUP] = 0xe07d,
-    [Q_KEY_CODE_DELETE] = 0xe071,
-    [Q_KEY_CODE_END] = 0xe069,
-    [Q_KEY_CODE_PGDN] = 0xe07a,
-    [Q_KEY_CODE_UP] = 0xe075,
-    [Q_KEY_CODE_LEFT] = 0xe06b,
-    [Q_KEY_CODE_DOWN] = 0xe072,
-    [Q_KEY_CODE_RIGHT] = 0xe074,
-    [Q_KEY_CODE_NUM_LOCK] = 0x77,
-    [Q_KEY_CODE_KP_DIVIDE] = 0xe04a,
-    [Q_KEY_CODE_KP_MULTIPLY] = 0x7c,
-    [Q_KEY_CODE_KP_SUBTRACT] = 0x7b,
-    [Q_KEY_CODE_KP_ADD] = 0x79,
-    [Q_KEY_CODE_KP_ENTER] = 0xe05a,
-    [Q_KEY_CODE_KP_DECIMAL] = 0x71,
-    [Q_KEY_CODE_KP_0] = 0x70,
-    [Q_KEY_CODE_KP_1] = 0x69,
-    [Q_KEY_CODE_KP_2] = 0x72,
-    [Q_KEY_CODE_KP_3] = 0x7a,
-    [Q_KEY_CODE_KP_4] = 0x6b,
-    [Q_KEY_CODE_KP_5] = 0x73,
-    [Q_KEY_CODE_KP_6] = 0x74,
-    [Q_KEY_CODE_KP_7] = 0x6c,
-    [Q_KEY_CODE_KP_8] = 0x75,
-    [Q_KEY_CODE_KP_9] = 0x7d,
-    [Q_KEY_CODE_BRACKET_RIGHT] = 0x5b,
-    [Q_KEY_CODE_SEMICOLON] = 0x4c,
-    [Q_KEY_CODE_APOSTROPHE] = 0x52,
-    [Q_KEY_CODE_COMMA] = 0x41,
-    [Q_KEY_CODE_DOT] = 0x49,
-    [Q_KEY_CODE_SLASH] = 0x4a,
-
-    [Q_KEY_CODE_POWER] = 0x0e37,
-    [Q_KEY_CODE_SLEEP] = 0x0e3f,
-    [Q_KEY_CODE_WAKE] = 0x0e5e,
-
-    [Q_KEY_CODE_AUDIONEXT] = 0xe04d,
-    [Q_KEY_CODE_AUDIOPREV] = 0xe015,
-    [Q_KEY_CODE_AUDIOSTOP] = 0xe03b,
-    [Q_KEY_CODE_AUDIOPLAY] = 0xe034,
-    [Q_KEY_CODE_AUDIOMUTE] = 0xe023,
-    [Q_KEY_CODE_VOLUMEUP] = 0xe032,
-    [Q_KEY_CODE_VOLUMEDOWN] = 0xe021,
-    [Q_KEY_CODE_MEDIASELECT] = 0xe050,
-    [Q_KEY_CODE_MAIL] = 0xe048,
-    [Q_KEY_CODE_CALCULATOR] = 0xe02b,
-    [Q_KEY_CODE_COMPUTER] = 0xe040,
-    [Q_KEY_CODE_FIND] = 0xe010,
-    [Q_KEY_CODE_AC_HOME] = 0xe03a,
-    [Q_KEY_CODE_AC_BACK] = 0xe038,
-    [Q_KEY_CODE_AC_FORWARD] = 0xe030,
-    [Q_KEY_CODE_STOP] = 0xe028,
-    [Q_KEY_CODE_AC_REFRESH] = 0xe020,
-    [Q_KEY_CODE_AC_BOOKMARKS] = 0xe018,
-
-    [Q_KEY_CODE_ASTERISK] = 0x7c,
-    [Q_KEY_CODE_LESS] = 0x61,
-    [Q_KEY_CODE_SYSRQ] = 0x7f,
-    [Q_KEY_CODE_RO] = 0x51,
-    [Q_KEY_CODE_HIRAGANA] = 0x13,
-    [Q_KEY_CODE_HENKAN] = 0x64,
-    [Q_KEY_CODE_YEN] = 0x6a,
-    [Q_KEY_CODE_KP_COMMA] = 0x6d,
-};
-
-static const uint16_t qcode_to_keycode_set3[Q_KEY_CODE__MAX] = {
-    [0 ... Q_KEY_CODE__MAX - 1] = 0,
-
-    [Q_KEY_CODE_A] = 0x1c,
-    [Q_KEY_CODE_B] = 0x32,
-    [Q_KEY_CODE_C] = 0x21,
-    [Q_KEY_CODE_D] = 0x23,
-    [Q_KEY_CODE_E] = 0x24,
-    [Q_KEY_CODE_F] = 0x2b,
-    [Q_KEY_CODE_G] = 0x34,
-    [Q_KEY_CODE_H] = 0x33,
-    [Q_KEY_CODE_I] = 0x43,
-    [Q_KEY_CODE_J] = 0x3b,
-    [Q_KEY_CODE_K] = 0x42,
-    [Q_KEY_CODE_L] = 0x4b,
-    [Q_KEY_CODE_M] = 0x3a,
-    [Q_KEY_CODE_N] = 0x31,
-    [Q_KEY_CODE_O] = 0x44,
-    [Q_KEY_CODE_P] = 0x4d,
-    [Q_KEY_CODE_Q] = 0x15,
-    [Q_KEY_CODE_R] = 0x2d,
-    [Q_KEY_CODE_S] = 0x1b,
-    [Q_KEY_CODE_T] = 0x2c,
-    [Q_KEY_CODE_U] = 0x3c,
-    [Q_KEY_CODE_V] = 0x2a,
-    [Q_KEY_CODE_W] = 0x1d,
-    [Q_KEY_CODE_X] = 0x22,
-    [Q_KEY_CODE_Y] = 0x35,
-    [Q_KEY_CODE_Z] = 0x1a,
-    [Q_KEY_CODE_0] = 0x45,
-    [Q_KEY_CODE_1] = 0x16,
-    [Q_KEY_CODE_2] = 0x1e,
-    [Q_KEY_CODE_3] = 0x26,
-    [Q_KEY_CODE_4] = 0x25,
-    [Q_KEY_CODE_5] = 0x2e,
-    [Q_KEY_CODE_6] = 0x36,
-    [Q_KEY_CODE_7] = 0x3d,
-    [Q_KEY_CODE_8] = 0x3e,
-    [Q_KEY_CODE_9] = 0x46,
-    [Q_KEY_CODE_GRAVE_ACCENT] = 0x0e,
-    [Q_KEY_CODE_MINUS] = 0x4e,
-    [Q_KEY_CODE_EQUAL] = 0x55,
-    [Q_KEY_CODE_BACKSLASH] = 0x5c,
-    [Q_KEY_CODE_BACKSPACE] = 0x66,
-    [Q_KEY_CODE_SPC] = 0x29,
-    [Q_KEY_CODE_TAB] = 0x0d,
-    [Q_KEY_CODE_CAPS_LOCK] = 0x14,
-    [Q_KEY_CODE_SHIFT] = 0x12,
-    [Q_KEY_CODE_CTRL] = 0x11,
-    [Q_KEY_CODE_META_L] = 0x8b,
-    [Q_KEY_CODE_ALT] = 0x19,
-    [Q_KEY_CODE_SHIFT_R] = 0x59,
-    [Q_KEY_CODE_CTRL_R] = 0x58,
-    [Q_KEY_CODE_META_R] = 0x8c,
-    [Q_KEY_CODE_ALT_R] = 0x39,
-    [Q_KEY_CODE_MENU] = 0x8d,
-    [Q_KEY_CODE_RET] = 0x5a,
-    [Q_KEY_CODE_ESC] = 0x08,
-    [Q_KEY_CODE_F1] = 0x07,
-    [Q_KEY_CODE_F2] = 0x0f,
-    [Q_KEY_CODE_F3] = 0x17,
-    [Q_KEY_CODE_F4] = 0x1f,
-    [Q_KEY_CODE_F5] = 0x27,
-    [Q_KEY_CODE_F6] = 0x2f,
-    [Q_KEY_CODE_F7] = 0x37,
-    [Q_KEY_CODE_F8] = 0x3f,
-    [Q_KEY_CODE_F9] = 0x47,
-    [Q_KEY_CODE_F10] = 0x4f,
-    [Q_KEY_CODE_F11] = 0x56,
-    [Q_KEY_CODE_F12] = 0x5e,
-    [Q_KEY_CODE_PRINT] = 0x57,
-    [Q_KEY_CODE_SCROLL_LOCK] = 0x5f,
-    [Q_KEY_CODE_PAUSE] = 0x62,
-    [Q_KEY_CODE_BRACKET_LEFT] = 0x54,
-    [Q_KEY_CODE_INSERT] = 0x67,
-    [Q_KEY_CODE_HOME] = 0x6e,
-    [Q_KEY_CODE_PGUP] = 0x6f,
-    [Q_KEY_CODE_DELETE] = 0x64,
-    [Q_KEY_CODE_END] = 0x65,
-    [Q_KEY_CODE_PGDN] = 0x6d,
-    [Q_KEY_CODE_UP] = 0x63,
-    [Q_KEY_CODE_LEFT] = 0x61,
-    [Q_KEY_CODE_DOWN] = 0x60,
-    [Q_KEY_CODE_RIGHT] = 0x6a,
-    [Q_KEY_CODE_NUM_LOCK] = 0x76,
-    [Q_KEY_CODE_KP_DIVIDE] = 0x4a,
-    [Q_KEY_CODE_KP_MULTIPLY] = 0x7e,
-    [Q_KEY_CODE_KP_SUBTRACT] = 0x4e,
-    [Q_KEY_CODE_KP_ADD] = 0x7c,
-    [Q_KEY_CODE_KP_ENTER] = 0x79,
-    [Q_KEY_CODE_KP_DECIMAL] = 0x71,
-    [Q_KEY_CODE_KP_0] = 0x70,
-    [Q_KEY_CODE_KP_1] = 0x69,
-    [Q_KEY_CODE_KP_2] = 0x72,
-    [Q_KEY_CODE_KP_3] = 0x7a,
-    [Q_KEY_CODE_KP_4] = 0x6b,
-    [Q_KEY_CODE_KP_5] = 0x73,
-    [Q_KEY_CODE_KP_6] = 0x74,
-    [Q_KEY_CODE_KP_7] = 0x6c,
-    [Q_KEY_CODE_KP_8] = 0x75,
-    [Q_KEY_CODE_KP_9] = 0x7d,
-    [Q_KEY_CODE_BRACKET_RIGHT] = 0x5b,
-    [Q_KEY_CODE_SEMICOLON] = 0x4c,
-    [Q_KEY_CODE_APOSTROPHE] = 0x52,
-    [Q_KEY_CODE_COMMA] = 0x41,
-    [Q_KEY_CODE_DOT] = 0x49,
-    [Q_KEY_CODE_SLASH] = 0x4a,
-
-    [Q_KEY_CODE_HIRAGANA] = 0x87,
-    [Q_KEY_CODE_HENKAN] = 0x86,
-    [Q_KEY_CODE_YEN] = 0x5d,
-};
-
 static uint8_t translate_table[256] = {
     0xff, 0x43, 0x41, 0x3f, 0x3d, 0x3b, 0x3c, 0x58,
     0x64, 0x44, 0x42, 0x40, 0x3e, 0x0f, 0x29, 0x59,
@@ -595,7 +200,7 @@ static void ps2_keyboard_event(DeviceState *dev, QemuConsole *src,
     PS2KbdState *s = (PS2KbdState *)dev;
     InputKeyEvent *key = evt->u.key.data;
     int qcode;
-    uint16_t keycode;
+    uint16_t keycode = 0;
 
     qemu_system_wakeup_request(QEMU_WAKEUP_REASON_OTHER);
     assert(evt->type == INPUT_EVENT_KIND_KEY);
@@ -624,7 +229,8 @@ static void ps2_keyboard_event(DeviceState *dev, QemuConsole *src,
                 ps2_put_keycode(s, 0xaa);
             }
         } else {
-            keycode = qcode_to_keycode_set1[qcode];
+            if (qcode < qemu_input_map_qcode_to_atset1_len)
+                keycode = qemu_input_map_qcode_to_atset1[qcode];
             if (keycode) {
                 if (keycode & 0xff00) {
                     ps2_put_keycode(s, keycode >> 8);
@@ -665,7 +271,8 @@ static void ps2_keyboard_event(DeviceState *dev, QemuConsole *src,
                 ps2_put_keycode(s, 0x12);
             }
         } else {
-            keycode = qcode_to_keycode_set2[qcode];
+            if (qcode < qemu_input_map_qcode_to_atset2_len)
+                keycode = qemu_input_map_qcode_to_atset2[qcode];
             if (keycode) {
                 if (keycode & 0xff00) {
                     ps2_put_keycode(s, keycode >> 8);
@@ -680,7 +287,8 @@ static void ps2_keyboard_event(DeviceState *dev, QemuConsole *src,
             }
         }
     } else if (s->scancode_set == 3) {
-        keycode = qcode_to_keycode_set3[qcode];
+        if (qcode < qemu_input_map_qcode_to_atset3_len)
+            keycode = qemu_input_map_qcode_to_atset3[qcode];
         if (keycode) {
             /* FIXME: break code should be configured on a key by key basis */
             if (!key->down) {
diff --git a/include/ui/input.h b/include/ui/input.h
index 6f56d868c7..76235ba97a 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -71,6 +71,15 @@ void qemu_remove_mouse_mode_change_notifier(Notifier *notify);
 extern const guint qemu_input_map_linux_to_qcode_len;
 extern const guint16 qemu_input_map_linux_to_qcode[];
 
+extern const guint qemu_input_map_qcode_to_atset1_len;
+extern const guint16 qemu_input_map_qcode_to_atset1[];
+
+extern const guint qemu_input_map_qcode_to_atset2_len;
+extern const guint16 qemu_input_map_qcode_to_atset2[];
+
+extern const guint qemu_input_map_qcode_to_atset3_len;
+extern const guint16 qemu_input_map_qcode_to_atset3[];
+
 extern const guint qemu_input_map_qcode_to_linux_len;
 extern const guint16 qemu_input_map_qcode_to_linux[];
 
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index baf6f4e56f..8ba843c0c9 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -55,6 +55,9 @@ KEYCODEMAP_CSV = $(SRC_PATH)/ui/keycodemapdb/data/keymaps.csv
 
 KEYCODEMAP_FILES = \
 		 ui/input-keymap-linux-to-qcode.c \
+		 ui/input-keymap-qcode-to-atset1.c \
+		 ui/input-keymap-qcode-to-atset2.c \
+		 ui/input-keymap-qcode-to-atset3.c \
 		 ui/input-keymap-qcode-to-linux.c \
 		 ui/input-keymap-qcode-to-qnum.c \
 		 ui/input-keymap-qnum-to-qcode.c \
diff --git a/ui/input-keymap-qcode-to-atset1.c b/ui/input-keymap-qcode-to-atset1.c
new file mode 100644
index 0000000000..3793e38cd4
--- /dev/null
+++ b/ui/input-keymap-qcode-to-atset1.c
@@ -0,0 +1,154 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:06
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qcode_to_atset1 code-map keymaps.csv qcode atset1
+*/
+const guint16 qemu_input_map_qcode_to_atset1[Q_KEY_CODE__MAX] = {
+  [Q_KEY_CODE_0] = 0xb, /* qcode:Q_KEY_CODE_0 (0) -> linux:11 (KEY_0) -> atset1:11 */
+  [Q_KEY_CODE_1] = 0x2, /* qcode:Q_KEY_CODE_1 (1) -> linux:2 (KEY_1) -> atset1:2 */
+  [Q_KEY_CODE_2] = 0x3, /* qcode:Q_KEY_CODE_2 (2) -> linux:3 (KEY_2) -> atset1:3 */
+  [Q_KEY_CODE_3] = 0x4, /* qcode:Q_KEY_CODE_3 (3) -> linux:4 (KEY_3) -> atset1:4 */
+  [Q_KEY_CODE_4] = 0x5, /* qcode:Q_KEY_CODE_4 (4) -> linux:5 (KEY_4) -> atset1:5 */
+  [Q_KEY_CODE_5] = 0x6, /* qcode:Q_KEY_CODE_5 (5) -> linux:6 (KEY_5) -> atset1:6 */
+  [Q_KEY_CODE_6] = 0x7, /* qcode:Q_KEY_CODE_6 (6) -> linux:7 (KEY_6) -> atset1:7 */
+  [Q_KEY_CODE_7] = 0x8, /* qcode:Q_KEY_CODE_7 (7) -> linux:8 (KEY_7) -> atset1:8 */
+  [Q_KEY_CODE_8] = 0x9, /* qcode:Q_KEY_CODE_8 (8) -> linux:9 (KEY_8) -> atset1:9 */
+  [Q_KEY_CODE_9] = 0xa, /* qcode:Q_KEY_CODE_9 (9) -> linux:10 (KEY_9) -> atset1:10 */
+  [Q_KEY_CODE_A] = 0x1e, /* qcode:Q_KEY_CODE_A (a) -> linux:30 (KEY_A) -> atset1:30 */
+  [Q_KEY_CODE_AC_BACK] = 0xe06a, /* qcode:Q_KEY_CODE_AC_BACK (ac_back) -> linux:158 (KEY_BACK) -> atset1:57450 */
+  [Q_KEY_CODE_AC_BOOKMARKS] = 0xe066, /* qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) -> linux:156 (KEY_BOOKMARKS) -> atset1:57446 */
+  [Q_KEY_CODE_AC_FORWARD] = 0xe069, /* qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) -> linux:159 (KEY_FORWARD) -> atset1:57449 */
+  [Q_KEY_CODE_AC_HOME] = 0xe032, /* qcode:Q_KEY_CODE_AC_HOME (ac_home) -> linux:172 (KEY_HOMEPAGE) -> atset1:57394 */
+  [Q_KEY_CODE_AC_REFRESH] = 0xe067, /* qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) -> linux:173 (KEY_REFRESH) -> atset1:57447 */
+  [Q_KEY_CODE_AGAIN] = 0xe005, /* qcode:Q_KEY_CODE_AGAIN (again) -> linux:129 (KEY_AGAIN) -> atset1:57349 */
+  [Q_KEY_CODE_ALT] = 0x38, /* qcode:Q_KEY_CODE_ALT (alt) -> linux:56 (KEY_LEFTALT) -> atset1:56 */
+  [Q_KEY_CODE_ALT_R] = 0xe038, /* qcode:Q_KEY_CODE_ALT_R (alt_r) -> linux:100 (KEY_RIGHTALT) -> atset1:57400 */
+  [Q_KEY_CODE_APOSTROPHE] = 0x28, /* qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) -> linux:40 (KEY_APOSTROPHE) -> atset1:40 */
+  [Q_KEY_CODE_ASTERISK] = 0x37, /* qcode:Q_KEY_CODE_ASTERISK (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> atset1:55 */
+  [Q_KEY_CODE_AUDIOMUTE] = 0xe020, /* qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) -> linux:113 (KEY_MUTE) -> atset1:57376 */
+  [Q_KEY_CODE_AUDIONEXT] = 0xe019, /* qcode:Q_KEY_CODE_AUDIONEXT (audionext) -> linux:163 (KEY_NEXTSONG) -> atset1:57369 */
+  [Q_KEY_CODE_AUDIOPLAY] = 0xe022, /* qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) -> linux:164 (KEY_PLAYPAUSE) -> atset1:57378 */
+  [Q_KEY_CODE_AUDIOPREV] = 0xe010, /* qcode:Q_KEY_CODE_AUDIOPREV (audioprev) -> linux:165 (KEY_PREVIOUSSONG) -> atset1:57360 */
+  [Q_KEY_CODE_AUDIOSTOP] = 0xe024, /* qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) -> linux:166 (KEY_STOPCD) -> atset1:57380 */
+  [Q_KEY_CODE_B] = 0x30, /* qcode:Q_KEY_CODE_B (b) -> linux:48 (KEY_B) -> atset1:48 */
+  [Q_KEY_CODE_BACKSLASH] = 0x2b, /* qcode:Q_KEY_CODE_BACKSLASH (backslash) -> linux:43 (KEY_BACKSLASH) -> atset1:43 */
+  [Q_KEY_CODE_BACKSPACE] = 0xe, /* qcode:Q_KEY_CODE_BACKSPACE (backspace) -> linux:14 (KEY_BACKSPACE) -> atset1:14 */
+  [Q_KEY_CODE_BRACKET_LEFT] = 0x1a, /* qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) -> linux:26 (KEY_LEFTBRACE) -> atset1:26 */
+  [Q_KEY_CODE_BRACKET_RIGHT] = 0x1b, /* qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) -> linux:27 (KEY_RIGHTBRACE) -> atset1:27 */
+  [Q_KEY_CODE_C] = 0x2e, /* qcode:Q_KEY_CODE_C (c) -> linux:46 (KEY_C) -> atset1:46 */
+  [Q_KEY_CODE_CALCULATOR] = 0xe021, /* qcode:Q_KEY_CODE_CALCULATOR (calculator) -> linux:140 (KEY_CALC) -> atset1:57377 */
+  [Q_KEY_CODE_CAPS_LOCK] = 0x3a, /* qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) -> linux:58 (KEY_CAPSLOCK) -> atset1:58 */
+  [Q_KEY_CODE_COMMA] = 0x33, /* qcode:Q_KEY_CODE_COMMA (comma) -> linux:51 (KEY_COMMA) -> atset1:51 */
+  [Q_KEY_CODE_COMPOSE] = 0xe05d, /* qcode:Q_KEY_CODE_COMPOSE (compose) -> linux:127 (KEY_COMPOSE) -> atset1:57437 */
+  [Q_KEY_CODE_COMPUTER] = 0xe06b, /* qcode:Q_KEY_CODE_COMPUTER (computer) -> linux:157 (KEY_COMPUTER) -> atset1:57451 */
+  [Q_KEY_CODE_COPY] = 0xe078, /* qcode:Q_KEY_CODE_COPY (copy) -> linux:133 (KEY_COPY) -> atset1:57464 */
+  [Q_KEY_CODE_CTRL] = 0x1d, /* qcode:Q_KEY_CODE_CTRL (ctrl) -> linux:29 (KEY_LEFTCTRL) -> atset1:29 */
+  [Q_KEY_CODE_CTRL_R] = 0xe01d, /* qcode:Q_KEY_CODE_CTRL_R (ctrl_r) -> linux:97 (KEY_RIGHTCTRL) -> atset1:57373 */
+  [Q_KEY_CODE_CUT] = 0xe03c, /* qcode:Q_KEY_CODE_CUT (cut) -> linux:137 (KEY_CUT) -> atset1:57404 */
+  [Q_KEY_CODE_D] = 0x20, /* qcode:Q_KEY_CODE_D (d) -> linux:32 (KEY_D) -> atset1:32 */
+  [Q_KEY_CODE_DELETE] = 0xe053, /* qcode:Q_KEY_CODE_DELETE (delete) -> linux:111 (KEY_DELETE) -> atset1:57427 */
+  [Q_KEY_CODE_DOT] = 0x34, /* qcode:Q_KEY_CODE_DOT (dot) -> linux:52 (KEY_DOT) -> atset1:52 */
+  [Q_KEY_CODE_DOWN] = 0xe050, /* qcode:Q_KEY_CODE_DOWN (down) -> linux:108 (KEY_DOWN) -> atset1:57424 */
+  [Q_KEY_CODE_E] = 0x12, /* qcode:Q_KEY_CODE_E (e) -> linux:18 (KEY_E) -> atset1:18 */
+  [Q_KEY_CODE_END] = 0xe04f, /* qcode:Q_KEY_CODE_END (end) -> linux:107 (KEY_END) -> atset1:57423 */
+  [Q_KEY_CODE_EQUAL] = 0xd, /* qcode:Q_KEY_CODE_EQUAL (equal) -> linux:13 (KEY_EQUAL) -> atset1:13 */
+  [Q_KEY_CODE_ESC] = 0x1, /* qcode:Q_KEY_CODE_ESC (esc) -> linux:1 (KEY_ESC) -> atset1:1 */
+  [Q_KEY_CODE_F] = 0x21, /* qcode:Q_KEY_CODE_F (f) -> linux:33 (KEY_F) -> atset1:33 */
+  [Q_KEY_CODE_F1] = 0x3b, /* qcode:Q_KEY_CODE_F1 (f1) -> linux:59 (KEY_F1) -> atset1:59 */
+  [Q_KEY_CODE_F10] = 0x44, /* qcode:Q_KEY_CODE_F10 (f10) -> linux:68 (KEY_F10) -> atset1:68 */
+  [Q_KEY_CODE_F11] = 0x57, /* qcode:Q_KEY_CODE_F11 (f11) -> linux:87 (KEY_F11) -> atset1:87 */
+  [Q_KEY_CODE_F12] = 0x58, /* qcode:Q_KEY_CODE_F12 (f12) -> linux:88 (KEY_F12) -> atset1:88 */
+  [Q_KEY_CODE_F2] = 0x3c, /* qcode:Q_KEY_CODE_F2 (f2) -> linux:60 (KEY_F2) -> atset1:60 */
+  [Q_KEY_CODE_F3] = 0x3d, /* qcode:Q_KEY_CODE_F3 (f3) -> linux:61 (KEY_F3) -> atset1:61 */
+  [Q_KEY_CODE_F4] = 0x3e, /* qcode:Q_KEY_CODE_F4 (f4) -> linux:62 (KEY_F4) -> atset1:62 */
+  [Q_KEY_CODE_F5] = 0x3f, /* qcode:Q_KEY_CODE_F5 (f5) -> linux:63 (KEY_F5) -> atset1:63 */
+  [Q_KEY_CODE_F6] = 0x40, /* qcode:Q_KEY_CODE_F6 (f6) -> linux:64 (KEY_F6) -> atset1:64 */
+  [Q_KEY_CODE_F7] = 0x41, /* qcode:Q_KEY_CODE_F7 (f7) -> linux:65 (KEY_F7) -> atset1:65 */
+  [Q_KEY_CODE_F8] = 0x42, /* qcode:Q_KEY_CODE_F8 (f8) -> linux:66 (KEY_F8) -> atset1:66 */
+  [Q_KEY_CODE_F9] = 0x43, /* qcode:Q_KEY_CODE_F9 (f9) -> linux:67 (KEY_F9) -> atset1:67 */
+  [Q_KEY_CODE_FIND] = 0xe041, /* qcode:Q_KEY_CODE_FIND (find) -> linux:136 (KEY_FIND) -> atset1:57409 */
+  [Q_KEY_CODE_FRONT] = 0xe00c, /* qcode:Q_KEY_CODE_FRONT (front) -> linux:132 (KEY_FRONT) -> atset1:57356 */
+  [Q_KEY_CODE_G] = 0x22, /* qcode:Q_KEY_CODE_G (g) -> linux:34 (KEY_G) -> atset1:34 */
+  [Q_KEY_CODE_GRAVE_ACCENT] = 0x29, /* qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) -> linux:41 (KEY_GRAVE) -> atset1:41 */
+  [Q_KEY_CODE_H] = 0x23, /* qcode:Q_KEY_CODE_H (h) -> linux:35 (KEY_H) -> atset1:35 */
+  [Q_KEY_CODE_HELP] = 0xe075, /* qcode:Q_KEY_CODE_HELP (help) -> linux:138 (KEY_HELP) -> atset1:57461 */
+  [Q_KEY_CODE_HENKAN] = 0x79, /* qcode:Q_KEY_CODE_HENKAN (henkan) -> linux:92 (KEY_HENKAN) -> atset1:121 */
+  [Q_KEY_CODE_HIRAGANA] = 0x77, /* qcode:Q_KEY_CODE_HIRAGANA (hiragana) -> linux:91 (KEY_HIRAGANA) -> atset1:119 */
+  [Q_KEY_CODE_HOME] = 0xe047, /* qcode:Q_KEY_CODE_HOME (home) -> linux:102 (KEY_HOME) -> atset1:57415 */
+  [Q_KEY_CODE_I] = 0x17, /* qcode:Q_KEY_CODE_I (i) -> linux:23 (KEY_I) -> atset1:23 */
+  [Q_KEY_CODE_INSERT] = 0xe052, /* qcode:Q_KEY_CODE_INSERT (insert) -> linux:110 (KEY_INSERT) -> atset1:57426 */
+  [Q_KEY_CODE_J] = 0x24, /* qcode:Q_KEY_CODE_J (j) -> linux:36 (KEY_J) -> atset1:36 */
+  [Q_KEY_CODE_K] = 0x25, /* qcode:Q_KEY_CODE_K (k) -> linux:37 (KEY_K) -> atset1:37 */
+  [Q_KEY_CODE_KP_0] = 0x52, /* qcode:Q_KEY_CODE_KP_0 (kp_0) -> linux:82 (KEY_KP0) -> atset1:82 */
+  [Q_KEY_CODE_KP_1] = 0x4f, /* qcode:Q_KEY_CODE_KP_1 (kp_1) -> linux:79 (KEY_KP1) -> atset1:79 */
+  [Q_KEY_CODE_KP_2] = 0x50, /* qcode:Q_KEY_CODE_KP_2 (kp_2) -> linux:80 (KEY_KP2) -> atset1:80 */
+  [Q_KEY_CODE_KP_3] = 0x51, /* qcode:Q_KEY_CODE_KP_3 (kp_3) -> linux:81 (KEY_KP3) -> atset1:81 */
+  [Q_KEY_CODE_KP_4] = 0x4b, /* qcode:Q_KEY_CODE_KP_4 (kp_4) -> linux:75 (KEY_KP4) -> atset1:75 */
+  [Q_KEY_CODE_KP_5] = 0x4c, /* qcode:Q_KEY_CODE_KP_5 (kp_5) -> linux:76 (KEY_KP5) -> atset1:76 */
+  [Q_KEY_CODE_KP_6] = 0x4d, /* qcode:Q_KEY_CODE_KP_6 (kp_6) -> linux:77 (KEY_KP6) -> atset1:77 */
+  [Q_KEY_CODE_KP_7] = 0x47, /* qcode:Q_KEY_CODE_KP_7 (kp_7) -> linux:71 (KEY_KP7) -> atset1:71 */
+  [Q_KEY_CODE_KP_8] = 0x48, /* qcode:Q_KEY_CODE_KP_8 (kp_8) -> linux:72 (KEY_KP8) -> atset1:72 */
+  [Q_KEY_CODE_KP_9] = 0x49, /* qcode:Q_KEY_CODE_KP_9 (kp_9) -> linux:73 (KEY_KP9) -> atset1:73 */
+  [Q_KEY_CODE_KP_ADD] = 0x4e, /* qcode:Q_KEY_CODE_KP_ADD (kp_add) -> linux:78 (KEY_KPPLUS) -> atset1:78 */
+  [Q_KEY_CODE_KP_COMMA] = 0x7e, /* qcode:Q_KEY_CODE_KP_COMMA (kp_comma) -> linux:121 (KEY_KPCOMMA) -> atset1:126 */
+  [Q_KEY_CODE_KP_DECIMAL] = 0x53, /* qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) -> linux:83 (KEY_KPDOT) -> atset1:83 */
+  [Q_KEY_CODE_KP_DIVIDE] = 0xe035, /* qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) -> linux:98 (KEY_KPSLASH) -> atset1:57397 */
+  [Q_KEY_CODE_KP_ENTER] = 0xe01c, /* qcode:Q_KEY_CODE_KP_ENTER (kp_enter) -> linux:96 (KEY_KPENTER) -> atset1:57372 */
+  [Q_KEY_CODE_KP_EQUALS] = 0x59, /* qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) -> linux:117 (KEY_KPEQUAL) -> atset1:89 */
+  [Q_KEY_CODE_KP_MULTIPLY] = 0x37, /* qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> atset1:55 */
+  [Q_KEY_CODE_KP_SUBTRACT] = 0x4a, /* qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) -> linux:74 (KEY_KPMINUS) -> atset1:74 */
+  [Q_KEY_CODE_L] = 0x26, /* qcode:Q_KEY_CODE_L (l) -> linux:38 (KEY_L) -> atset1:38 */
+  [Q_KEY_CODE_LEFT] = 0xe04b, /* qcode:Q_KEY_CODE_LEFT (left) -> linux:105 (KEY_LEFT) -> atset1:57419 */
+  [Q_KEY_CODE_LESS] = 0x56, /* qcode:Q_KEY_CODE_LESS (less) -> linux:86 (KEY_102ND) -> atset1:86 */
+  [Q_KEY_CODE_LF] = 0x5b, /* qcode:Q_KEY_CODE_LF (lf) -> linux:101 (KEY_LINEFEED) -> atset1:91 */
+  [Q_KEY_CODE_M] = 0x32, /* qcode:Q_KEY_CODE_M (m) -> linux:50 (KEY_M) -> atset1:50 */
+  [Q_KEY_CODE_MAIL] = 0xe06c, /* qcode:Q_KEY_CODE_MAIL (mail) -> linux:155 (KEY_MAIL) -> atset1:57452 */
+  [Q_KEY_CODE_MEDIASELECT] = 0xe06d, /* qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) -> linux:226 (KEY_MEDIA) -> atset1:57453 */
+  [Q_KEY_CODE_MENU] = 0xe01e, /* qcode:Q_KEY_CODE_MENU (menu) -> linux:139 (KEY_MENU) -> atset1:57374 */
+  [Q_KEY_CODE_META_L] = 0xe05b, /* qcode:Q_KEY_CODE_META_L (meta_l) -> linux:125 (KEY_LEFTMETA) -> atset1:57435 */
+  [Q_KEY_CODE_META_R] = 0xe05c, /* qcode:Q_KEY_CODE_META_R (meta_r) -> linux:126 (KEY_RIGHTMETA) -> atset1:57436 */
+  [Q_KEY_CODE_MINUS] = 0xc, /* qcode:Q_KEY_CODE_MINUS (minus) -> linux:12 (KEY_MINUS) -> atset1:12 */
+  [Q_KEY_CODE_N] = 0x31, /* qcode:Q_KEY_CODE_N (n) -> linux:49 (KEY_N) -> atset1:49 */
+  [Q_KEY_CODE_NUM_LOCK] = 0x45, /* qcode:Q_KEY_CODE_NUM_LOCK (num_lock) -> linux:69 (KEY_NUMLOCK) -> atset1:69 */
+  [Q_KEY_CODE_O] = 0x18, /* qcode:Q_KEY_CODE_O (o) -> linux:24 (KEY_O) -> atset1:24 */
+  [Q_KEY_CODE_OPEN] = 0x64, /* qcode:Q_KEY_CODE_OPEN (open) -> linux:134 (KEY_OPEN) -> atset1:100 */
+  [Q_KEY_CODE_P] = 0x19, /* qcode:Q_KEY_CODE_P (p) -> linux:25 (KEY_P) -> atset1:25 */
+  [Q_KEY_CODE_PASTE] = 0x65, /* qcode:Q_KEY_CODE_PASTE (paste) -> linux:135 (KEY_PASTE) -> atset1:101 */
+  [Q_KEY_CODE_PAUSE] = 0xe046, /* qcode:Q_KEY_CODE_PAUSE (pause) -> linux:119 (KEY_PAUSE) -> atset1:57414 */
+  [Q_KEY_CODE_PGDN] = 0xe051, /* qcode:Q_KEY_CODE_PGDN (pgdn) -> linux:109 (KEY_PAGEDOWN) -> atset1:57425 */
+  [Q_KEY_CODE_PGUP] = 0xe049, /* qcode:Q_KEY_CODE_PGUP (pgup) -> linux:104 (KEY_PAGEUP) -> atset1:57417 */
+  [Q_KEY_CODE_POWER] = 0xe05e, /* qcode:Q_KEY_CODE_POWER (power) -> linux:116 (KEY_POWER) -> atset1:57438 */
+  [Q_KEY_CODE_PRINT] = 0x54, /* qcode:Q_KEY_CODE_PRINT (sysrq) -> linux:99 (KEY_SYSRQ) -> atset1:84 */
+  [Q_KEY_CODE_PROPS] = 0xe006, /* qcode:Q_KEY_CODE_PROPS (props) -> linux:130 (KEY_PROPS) -> atset1:57350 */
+  [Q_KEY_CODE_Q] = 0x10, /* qcode:Q_KEY_CODE_Q (q) -> linux:16 (KEY_Q) -> atset1:16 */
+  [Q_KEY_CODE_R] = 0x13, /* qcode:Q_KEY_CODE_R (r) -> linux:19 (KEY_R) -> atset1:19 */
+  [Q_KEY_CODE_RET] = 0x1c, /* qcode:Q_KEY_CODE_RET (ret) -> linux:28 (KEY_ENTER) -> atset1:28 */
+  [Q_KEY_CODE_RIGHT] = 0xe04d, /* qcode:Q_KEY_CODE_RIGHT (right) -> linux:106 (KEY_RIGHT) -> atset1:57421 */
+  [Q_KEY_CODE_RO] = 0x73, /* qcode:Q_KEY_CODE_RO (ro) -> linux:89 (KEY_RO) -> atset1:115 */
+  [Q_KEY_CODE_S] = 0x1f, /* qcode:Q_KEY_CODE_S (s) -> linux:31 (KEY_S) -> atset1:31 */
+  [Q_KEY_CODE_SCROLL_LOCK] = 0x46, /* qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) -> linux:70 (KEY_SCROLLLOCK) -> atset1:70 */
+  [Q_KEY_CODE_SEMICOLON] = 0x27, /* qcode:Q_KEY_CODE_SEMICOLON (semicolon) -> linux:39 (KEY_SEMICOLON) -> atset1:39 */
+  [Q_KEY_CODE_SHIFT] = 0x2a, /* qcode:Q_KEY_CODE_SHIFT (shift) -> linux:42 (KEY_LEFTSHIFT) -> atset1:42 */
+  [Q_KEY_CODE_SHIFT_R] = 0x36, /* qcode:Q_KEY_CODE_SHIFT_R (shift_r) -> linux:54 (KEY_RIGHTSHIFT) -> atset1:54 */
+  [Q_KEY_CODE_SLASH] = 0x35, /* qcode:Q_KEY_CODE_SLASH (slash) -> linux:53 (KEY_SLASH) -> atset1:53 */
+  [Q_KEY_CODE_SLEEP] = 0xe05f, /* qcode:Q_KEY_CODE_SLEEP (sleep) -> linux:142 (KEY_SLEEP) -> atset1:57439 */
+  [Q_KEY_CODE_SPC] = 0x39, /* qcode:Q_KEY_CODE_SPC (spc) -> linux:57 (KEY_SPACE) -> atset1:57 */
+  [Q_KEY_CODE_STOP] = 0xe068, /* qcode:Q_KEY_CODE_STOP (stop) -> linux:128 (KEY_STOP) -> atset1:57448 */
+  [Q_KEY_CODE_SYSRQ] = 0x54, /* qcode:Q_KEY_CODE_SYSRQ (sysrq) -> linux:99 (KEY_SYSRQ) -> atset1:84 */
+  [Q_KEY_CODE_T] = 0x14, /* qcode:Q_KEY_CODE_T (t) -> linux:20 (KEY_T) -> atset1:20 */
+  [Q_KEY_CODE_TAB] = 0xf, /* qcode:Q_KEY_CODE_TAB (tab) -> linux:15 (KEY_TAB) -> atset1:15 */
+  [Q_KEY_CODE_U] = 0x16, /* qcode:Q_KEY_CODE_U (u) -> linux:22 (KEY_U) -> atset1:22 */
+  [Q_KEY_CODE_UNDO] = 0xe007, /* qcode:Q_KEY_CODE_UNDO (undo) -> linux:131 (KEY_UNDO) -> atset1:57351 */
+  [Q_KEY_CODE_UP] = 0xe048, /* qcode:Q_KEY_CODE_UP (up) -> linux:103 (KEY_UP) -> atset1:57416 */
+  [Q_KEY_CODE_V] = 0x2f, /* qcode:Q_KEY_CODE_V (v) -> linux:47 (KEY_V) -> atset1:47 */
+  [Q_KEY_CODE_VOLUMEDOWN] = 0xe02e, /* qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) -> linux:114 (KEY_VOLUMEDOWN) -> atset1:57390 */
+  [Q_KEY_CODE_VOLUMEUP] = 0xe030, /* qcode:Q_KEY_CODE_VOLUMEUP (volumeup) -> linux:115 (KEY_VOLUMEUP) -> atset1:57392 */
+  [Q_KEY_CODE_W] = 0x11, /* qcode:Q_KEY_CODE_W (w) -> linux:17 (KEY_W) -> atset1:17 */
+  [Q_KEY_CODE_WAKE] = 0xe063, /* qcode:Q_KEY_CODE_WAKE (wake) -> linux:143 (KEY_WAKEUP) -> atset1:57443 */
+  [Q_KEY_CODE_X] = 0x2d, /* qcode:Q_KEY_CODE_X (x) -> linux:45 (KEY_X) -> atset1:45 */
+  [Q_KEY_CODE_Y] = 0x15, /* qcode:Q_KEY_CODE_Y (y) -> linux:21 (KEY_Y) -> atset1:21 */
+  [Q_KEY_CODE_YEN] = 0x7d, /* qcode:Q_KEY_CODE_YEN (yen) -> linux:124 (KEY_YEN) -> atset1:125 */
+  [Q_KEY_CODE_Z] = 0x2c, /* qcode:Q_KEY_CODE_Z (z) -> linux:44 (KEY_Z) -> atset1:44 */
+};
+const guint qemu_input_map_qcode_to_atset1_len = sizeof(qemu_input_map_qcode_to_atset1)/sizeof(qemu_input_map_qcode_to_atset1[0]);
diff --git a/ui/input-keymap-qcode-to-atset2.c b/ui/input-keymap-qcode-to-atset2.c
new file mode 100644
index 0000000000..ba168db5f7
--- /dev/null
+++ b/ui/input-keymap-qcode-to-atset2.c
@@ -0,0 +1,142 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:06
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qcode_to_atset2 code-map keymaps.csv qcode atset2
+*/
+const guint16 qemu_input_map_qcode_to_atset2[Q_KEY_CODE__MAX] = {
+  [Q_KEY_CODE_0] = 0x45, /* qcode:Q_KEY_CODE_0 (0) -> linux:11 (KEY_0) -> atset2:69 */
+  [Q_KEY_CODE_1] = 0x16, /* qcode:Q_KEY_CODE_1 (1) -> linux:2 (KEY_1) -> atset2:22 */
+  [Q_KEY_CODE_2] = 0x1e, /* qcode:Q_KEY_CODE_2 (2) -> linux:3 (KEY_2) -> atset2:30 */
+  [Q_KEY_CODE_3] = 0x26, /* qcode:Q_KEY_CODE_3 (3) -> linux:4 (KEY_3) -> atset2:38 */
+  [Q_KEY_CODE_4] = 0x25, /* qcode:Q_KEY_CODE_4 (4) -> linux:5 (KEY_4) -> atset2:37 */
+  [Q_KEY_CODE_5] = 0x2e, /* qcode:Q_KEY_CODE_5 (5) -> linux:6 (KEY_5) -> atset2:46 */
+  [Q_KEY_CODE_6] = 0x36, /* qcode:Q_KEY_CODE_6 (6) -> linux:7 (KEY_6) -> atset2:54 */
+  [Q_KEY_CODE_7] = 0x3d, /* qcode:Q_KEY_CODE_7 (7) -> linux:8 (KEY_7) -> atset2:61 */
+  [Q_KEY_CODE_8] = 0x3e, /* qcode:Q_KEY_CODE_8 (8) -> linux:9 (KEY_8) -> atset2:62 */
+  [Q_KEY_CODE_9] = 0x46, /* qcode:Q_KEY_CODE_9 (9) -> linux:10 (KEY_9) -> atset2:70 */
+  [Q_KEY_CODE_A] = 0x1c, /* qcode:Q_KEY_CODE_A (a) -> linux:30 (KEY_A) -> atset2:28 */
+  [Q_KEY_CODE_AC_BACK] = 0xe038, /* qcode:Q_KEY_CODE_AC_BACK (ac_back) -> linux:158 (KEY_BACK) -> atset2:57400 */
+  [Q_KEY_CODE_AC_BOOKMARKS] = 0xe018, /* qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) -> linux:156 (KEY_BOOKMARKS) -> atset2:57368 */
+  [Q_KEY_CODE_AC_FORWARD] = 0xe030, /* qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) -> linux:159 (KEY_FORWARD) -> atset2:57392 */
+  [Q_KEY_CODE_AC_HOME] = 0xe03a, /* qcode:Q_KEY_CODE_AC_HOME (ac_home) -> linux:172 (KEY_HOMEPAGE) -> atset2:57402 */
+  [Q_KEY_CODE_AC_REFRESH] = 0xe020, /* qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) -> linux:173 (KEY_REFRESH) -> atset2:57376 */
+  [Q_KEY_CODE_ALT] = 0x11, /* qcode:Q_KEY_CODE_ALT (alt) -> linux:56 (KEY_LEFTALT) -> atset2:17 */
+  [Q_KEY_CODE_ALT_R] = 0xe011, /* qcode:Q_KEY_CODE_ALT_R (alt_r) -> linux:100 (KEY_RIGHTALT) -> atset2:57361 */
+  [Q_KEY_CODE_APOSTROPHE] = 0x52, /* qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) -> linux:40 (KEY_APOSTROPHE) -> atset2:82 */
+  [Q_KEY_CODE_ASTERISK] = 0x7c, /* qcode:Q_KEY_CODE_ASTERISK (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> atset2:124 */
+  [Q_KEY_CODE_AUDIOMUTE] = 0xe023, /* qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) -> linux:113 (KEY_MUTE) -> atset2:57379 */
+  [Q_KEY_CODE_AUDIONEXT] = 0xe04d, /* qcode:Q_KEY_CODE_AUDIONEXT (audionext) -> linux:163 (KEY_NEXTSONG) -> atset2:57421 */
+  [Q_KEY_CODE_AUDIOPLAY] = 0xe034, /* qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) -> linux:164 (KEY_PLAYPAUSE) -> atset2:57396 */
+  [Q_KEY_CODE_AUDIOPREV] = 0xe015, /* qcode:Q_KEY_CODE_AUDIOPREV (audioprev) -> linux:165 (KEY_PREVIOUSSONG) -> atset2:57365 */
+  [Q_KEY_CODE_AUDIOSTOP] = 0xe03b, /* qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) -> linux:166 (KEY_STOPCD) -> atset2:57403 */
+  [Q_KEY_CODE_B] = 0x32, /* qcode:Q_KEY_CODE_B (b) -> linux:48 (KEY_B) -> atset2:50 */
+  [Q_KEY_CODE_BACKSLASH] = 0x5d, /* qcode:Q_KEY_CODE_BACKSLASH (backslash) -> linux:43 (KEY_BACKSLASH) -> atset2:93 */
+  [Q_KEY_CODE_BACKSPACE] = 0x66, /* qcode:Q_KEY_CODE_BACKSPACE (backspace) -> linux:14 (KEY_BACKSPACE) -> atset2:102 */
+  [Q_KEY_CODE_BRACKET_LEFT] = 0x54, /* qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) -> linux:26 (KEY_LEFTBRACE) -> atset2:84 */
+  [Q_KEY_CODE_BRACKET_RIGHT] = 0x5b, /* qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) -> linux:27 (KEY_RIGHTBRACE) -> atset2:91 */
+  [Q_KEY_CODE_C] = 0x21, /* qcode:Q_KEY_CODE_C (c) -> linux:46 (KEY_C) -> atset2:33 */
+  [Q_KEY_CODE_CALCULATOR] = 0xe02b, /* qcode:Q_KEY_CODE_CALCULATOR (calculator) -> linux:140 (KEY_CALC) -> atset2:57387 */
+  [Q_KEY_CODE_CAPS_LOCK] = 0x58, /* qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) -> linux:58 (KEY_CAPSLOCK) -> atset2:88 */
+  [Q_KEY_CODE_COMMA] = 0x41, /* qcode:Q_KEY_CODE_COMMA (comma) -> linux:51 (KEY_COMMA) -> atset2:65 */
+  [Q_KEY_CODE_COMPOSE] = 0xe02f, /* qcode:Q_KEY_CODE_COMPOSE (compose) -> linux:127 (KEY_COMPOSE) -> atset2:57391 */
+  [Q_KEY_CODE_COMPUTER] = 0xe040, /* qcode:Q_KEY_CODE_COMPUTER (computer) -> linux:157 (KEY_COMPUTER) -> atset2:57408 */
+  [Q_KEY_CODE_CTRL] = 0x14, /* qcode:Q_KEY_CODE_CTRL (ctrl) -> linux:29 (KEY_LEFTCTRL) -> atset2:20 */
+  [Q_KEY_CODE_CTRL_R] = 0xe014, /* qcode:Q_KEY_CODE_CTRL_R (ctrl_r) -> linux:97 (KEY_RIGHTCTRL) -> atset2:57364 */
+  [Q_KEY_CODE_D] = 0x23, /* qcode:Q_KEY_CODE_D (d) -> linux:32 (KEY_D) -> atset2:35 */
+  [Q_KEY_CODE_DELETE] = 0xe071, /* qcode:Q_KEY_CODE_DELETE (delete) -> linux:111 (KEY_DELETE) -> atset2:57457 */
+  [Q_KEY_CODE_DOT] = 0x49, /* qcode:Q_KEY_CODE_DOT (dot) -> linux:52 (KEY_DOT) -> atset2:73 */
+  [Q_KEY_CODE_DOWN] = 0xe072, /* qcode:Q_KEY_CODE_DOWN (down) -> linux:108 (KEY_DOWN) -> atset2:57458 */
+  [Q_KEY_CODE_E] = 0x24, /* qcode:Q_KEY_CODE_E (e) -> linux:18 (KEY_E) -> atset2:36 */
+  [Q_KEY_CODE_END] = 0xe069, /* qcode:Q_KEY_CODE_END (end) -> linux:107 (KEY_END) -> atset2:57449 */
+  [Q_KEY_CODE_EQUAL] = 0x55, /* qcode:Q_KEY_CODE_EQUAL (equal) -> linux:13 (KEY_EQUAL) -> atset2:85 */
+  [Q_KEY_CODE_ESC] = 0x76, /* qcode:Q_KEY_CODE_ESC (esc) -> linux:1 (KEY_ESC) -> atset2:118 */
+  [Q_KEY_CODE_F] = 0x2b, /* qcode:Q_KEY_CODE_F (f) -> linux:33 (KEY_F) -> atset2:43 */
+  [Q_KEY_CODE_F1] = 0x5, /* qcode:Q_KEY_CODE_F1 (f1) -> linux:59 (KEY_F1) -> atset2:5 */
+  [Q_KEY_CODE_F10] = 0x9, /* qcode:Q_KEY_CODE_F10 (f10) -> linux:68 (KEY_F10) -> atset2:9 */
+  [Q_KEY_CODE_F11] = 0x78, /* qcode:Q_KEY_CODE_F11 (f11) -> linux:87 (KEY_F11) -> atset2:120 */
+  [Q_KEY_CODE_F12] = 0x7, /* qcode:Q_KEY_CODE_F12 (f12) -> linux:88 (KEY_F12) -> atset2:7 */
+  [Q_KEY_CODE_F2] = 0x6, /* qcode:Q_KEY_CODE_F2 (f2) -> linux:60 (KEY_F2) -> atset2:6 */
+  [Q_KEY_CODE_F3] = 0x4, /* qcode:Q_KEY_CODE_F3 (f3) -> linux:61 (KEY_F3) -> atset2:4 */
+  [Q_KEY_CODE_F4] = 0xc, /* qcode:Q_KEY_CODE_F4 (f4) -> linux:62 (KEY_F4) -> atset2:12 */
+  [Q_KEY_CODE_F5] = 0x3, /* qcode:Q_KEY_CODE_F5 (f5) -> linux:63 (KEY_F5) -> atset2:3 */
+  [Q_KEY_CODE_F6] = 0xb, /* qcode:Q_KEY_CODE_F6 (f6) -> linux:64 (KEY_F6) -> atset2:11 */
+  [Q_KEY_CODE_F7] = 0x83, /* qcode:Q_KEY_CODE_F7 (f7) -> linux:65 (KEY_F7) -> atset2:131 */
+  [Q_KEY_CODE_F8] = 0xa, /* qcode:Q_KEY_CODE_F8 (f8) -> linux:66 (KEY_F8) -> atset2:10 */
+  [Q_KEY_CODE_F9] = 0x1, /* qcode:Q_KEY_CODE_F9 (f9) -> linux:67 (KEY_F9) -> atset2:1 */
+  [Q_KEY_CODE_G] = 0x34, /* qcode:Q_KEY_CODE_G (g) -> linux:34 (KEY_G) -> atset2:52 */
+  [Q_KEY_CODE_GRAVE_ACCENT] = 0xe, /* qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) -> linux:41 (KEY_GRAVE) -> atset2:14 */
+  [Q_KEY_CODE_H] = 0x33, /* qcode:Q_KEY_CODE_H (h) -> linux:35 (KEY_H) -> atset2:51 */
+  [Q_KEY_CODE_HENKAN] = 0x64, /* qcode:Q_KEY_CODE_HENKAN (henkan) -> linux:92 (KEY_HENKAN) -> atset2:100 */
+  [Q_KEY_CODE_HIRAGANA] = 0x62, /* qcode:Q_KEY_CODE_HIRAGANA (hiragana) -> linux:91 (KEY_HIRAGANA) -> atset2:98 */
+  [Q_KEY_CODE_HOME] = 0xe06c, /* qcode:Q_KEY_CODE_HOME (home) -> linux:102 (KEY_HOME) -> atset2:57452 */
+  [Q_KEY_CODE_I] = 0x43, /* qcode:Q_KEY_CODE_I (i) -> linux:23 (KEY_I) -> atset2:67 */
+  [Q_KEY_CODE_INSERT] = 0xe070, /* qcode:Q_KEY_CODE_INSERT (insert) -> linux:110 (KEY_INSERT) -> atset2:57456 */
+  [Q_KEY_CODE_J] = 0x3b, /* qcode:Q_KEY_CODE_J (j) -> linux:36 (KEY_J) -> atset2:59 */
+  [Q_KEY_CODE_K] = 0x42, /* qcode:Q_KEY_CODE_K (k) -> linux:37 (KEY_K) -> atset2:66 */
+  [Q_KEY_CODE_KP_0] = 0x70, /* qcode:Q_KEY_CODE_KP_0 (kp_0) -> linux:82 (KEY_KP0) -> atset2:112 */
+  [Q_KEY_CODE_KP_1] = 0x69, /* qcode:Q_KEY_CODE_KP_1 (kp_1) -> linux:79 (KEY_KP1) -> atset2:105 */
+  [Q_KEY_CODE_KP_2] = 0x72, /* qcode:Q_KEY_CODE_KP_2 (kp_2) -> linux:80 (KEY_KP2) -> atset2:114 */
+  [Q_KEY_CODE_KP_3] = 0x7a, /* qcode:Q_KEY_CODE_KP_3 (kp_3) -> linux:81 (KEY_KP3) -> atset2:122 */
+  [Q_KEY_CODE_KP_4] = 0x6b, /* qcode:Q_KEY_CODE_KP_4 (kp_4) -> linux:75 (KEY_KP4) -> atset2:107 */
+  [Q_KEY_CODE_KP_5] = 0x73, /* qcode:Q_KEY_CODE_KP_5 (kp_5) -> linux:76 (KEY_KP5) -> atset2:115 */
+  [Q_KEY_CODE_KP_6] = 0x74, /* qcode:Q_KEY_CODE_KP_6 (kp_6) -> linux:77 (KEY_KP6) -> atset2:116 */
+  [Q_KEY_CODE_KP_7] = 0x6c, /* qcode:Q_KEY_CODE_KP_7 (kp_7) -> linux:71 (KEY_KP7) -> atset2:108 */
+  [Q_KEY_CODE_KP_8] = 0x75, /* qcode:Q_KEY_CODE_KP_8 (kp_8) -> linux:72 (KEY_KP8) -> atset2:117 */
+  [Q_KEY_CODE_KP_9] = 0x7d, /* qcode:Q_KEY_CODE_KP_9 (kp_9) -> linux:73 (KEY_KP9) -> atset2:125 */
+  [Q_KEY_CODE_KP_ADD] = 0x79, /* qcode:Q_KEY_CODE_KP_ADD (kp_add) -> linux:78 (KEY_KPPLUS) -> atset2:121 */
+  [Q_KEY_CODE_KP_COMMA] = 0x6d, /* qcode:Q_KEY_CODE_KP_COMMA (kp_comma) -> linux:121 (KEY_KPCOMMA) -> atset2:109 */
+  [Q_KEY_CODE_KP_DECIMAL] = 0x71, /* qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) -> linux:83 (KEY_KPDOT) -> atset2:113 */
+  [Q_KEY_CODE_KP_DIVIDE] = 0xe04a, /* qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) -> linux:98 (KEY_KPSLASH) -> atset2:57418 */
+  [Q_KEY_CODE_KP_ENTER] = 0xe05a, /* qcode:Q_KEY_CODE_KP_ENTER (kp_enter) -> linux:96 (KEY_KPENTER) -> atset2:57434 */
+  [Q_KEY_CODE_KP_EQUALS] = 0xf, /* qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) -> linux:117 (KEY_KPEQUAL) -> atset2:15 */
+  [Q_KEY_CODE_KP_MULTIPLY] = 0x7c, /* qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> atset2:124 */
+  [Q_KEY_CODE_KP_SUBTRACT] = 0x7b, /* qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) -> linux:74 (KEY_KPMINUS) -> atset2:123 */
+  [Q_KEY_CODE_L] = 0x4b, /* qcode:Q_KEY_CODE_L (l) -> linux:38 (KEY_L) -> atset2:75 */
+  [Q_KEY_CODE_LEFT] = 0xe06b, /* qcode:Q_KEY_CODE_LEFT (left) -> linux:105 (KEY_LEFT) -> atset2:57451 */
+  [Q_KEY_CODE_LESS] = 0x61, /* qcode:Q_KEY_CODE_LESS (less) -> linux:86 (KEY_102ND) -> atset2:97 */
+  [Q_KEY_CODE_M] = 0x3a, /* qcode:Q_KEY_CODE_M (m) -> linux:50 (KEY_M) -> atset2:58 */
+  [Q_KEY_CODE_MAIL] = 0xe048, /* qcode:Q_KEY_CODE_MAIL (mail) -> linux:155 (KEY_MAIL) -> atset2:57416 */
+  [Q_KEY_CODE_MEDIASELECT] = 0xe050, /* qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) -> linux:226 (KEY_MEDIA) -> atset2:57424 */
+  [Q_KEY_CODE_META_L] = 0xe01f, /* qcode:Q_KEY_CODE_META_L (meta_l) -> linux:125 (KEY_LEFTMETA) -> atset2:57375 */
+  [Q_KEY_CODE_META_R] = 0xe027, /* qcode:Q_KEY_CODE_META_R (meta_r) -> linux:126 (KEY_RIGHTMETA) -> atset2:57383 */
+  [Q_KEY_CODE_MINUS] = 0x4e, /* qcode:Q_KEY_CODE_MINUS (minus) -> linux:12 (KEY_MINUS) -> atset2:78 */
+  [Q_KEY_CODE_N] = 0x31, /* qcode:Q_KEY_CODE_N (n) -> linux:49 (KEY_N) -> atset2:49 */
+  [Q_KEY_CODE_NUM_LOCK] = 0x77, /* qcode:Q_KEY_CODE_NUM_LOCK (num_lock) -> linux:69 (KEY_NUMLOCK) -> atset2:119 */
+  [Q_KEY_CODE_O] = 0x44, /* qcode:Q_KEY_CODE_O (o) -> linux:24 (KEY_O) -> atset2:68 */
+  [Q_KEY_CODE_P] = 0x4d, /* qcode:Q_KEY_CODE_P (p) -> linux:25 (KEY_P) -> atset2:77 */
+  [Q_KEY_CODE_PAUSE] = 0xe077, /* qcode:Q_KEY_CODE_PAUSE (pause) -> linux:119 (KEY_PAUSE) -> atset2:57463 */
+  [Q_KEY_CODE_PGDN] = 0xe07a, /* qcode:Q_KEY_CODE_PGDN (pgdn) -> linux:109 (KEY_PAGEDOWN) -> atset2:57466 */
+  [Q_KEY_CODE_PGUP] = 0xe07d, /* qcode:Q_KEY_CODE_PGUP (pgup) -> linux:104 (KEY_PAGEUP) -> atset2:57469 */
+  [Q_KEY_CODE_POWER] = 0xe037, /* qcode:Q_KEY_CODE_POWER (power) -> linux:116 (KEY_POWER) -> atset2:57399 */
+  [Q_KEY_CODE_PRINT] = 0x7f, /* qcode:Q_KEY_CODE_PRINT (sysrq) -> linux:99 (KEY_SYSRQ) -> atset2:127 */
+  [Q_KEY_CODE_Q] = 0x15, /* qcode:Q_KEY_CODE_Q (q) -> linux:16 (KEY_Q) -> atset2:21 */
+  [Q_KEY_CODE_R] = 0x2d, /* qcode:Q_KEY_CODE_R (r) -> linux:19 (KEY_R) -> atset2:45 */
+  [Q_KEY_CODE_RET] = 0x5a, /* qcode:Q_KEY_CODE_RET (ret) -> linux:28 (KEY_ENTER) -> atset2:90 */
+  [Q_KEY_CODE_RIGHT] = 0xe074, /* qcode:Q_KEY_CODE_RIGHT (right) -> linux:106 (KEY_RIGHT) -> atset2:57460 */
+  [Q_KEY_CODE_RO] = 0x51, /* qcode:Q_KEY_CODE_RO (ro) -> linux:89 (KEY_RO) -> atset2:81 */
+  [Q_KEY_CODE_S] = 0x1b, /* qcode:Q_KEY_CODE_S (s) -> linux:31 (KEY_S) -> atset2:27 */
+  [Q_KEY_CODE_SCROLL_LOCK] = 0x7e, /* qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) -> linux:70 (KEY_SCROLLLOCK) -> atset2:126 */
+  [Q_KEY_CODE_SEMICOLON] = 0x4c, /* qcode:Q_KEY_CODE_SEMICOLON (semicolon) -> linux:39 (KEY_SEMICOLON) -> atset2:76 */
+  [Q_KEY_CODE_SHIFT] = 0x12, /* qcode:Q_KEY_CODE_SHIFT (shift) -> linux:42 (KEY_LEFTSHIFT) -> atset2:18 */
+  [Q_KEY_CODE_SHIFT_R] = 0x59, /* qcode:Q_KEY_CODE_SHIFT_R (shift_r) -> linux:54 (KEY_RIGHTSHIFT) -> atset2:89 */
+  [Q_KEY_CODE_SLASH] = 0x4a, /* qcode:Q_KEY_CODE_SLASH (slash) -> linux:53 (KEY_SLASH) -> atset2:74 */
+  [Q_KEY_CODE_SLEEP] = 0xe03f, /* qcode:Q_KEY_CODE_SLEEP (sleep) -> linux:142 (KEY_SLEEP) -> atset2:57407 */
+  [Q_KEY_CODE_SPC] = 0x29, /* qcode:Q_KEY_CODE_SPC (spc) -> linux:57 (KEY_SPACE) -> atset2:41 */
+  [Q_KEY_CODE_STOP] = 0xe028, /* qcode:Q_KEY_CODE_STOP (stop) -> linux:128 (KEY_STOP) -> atset2:57384 */
+  [Q_KEY_CODE_SYSRQ] = 0x7f, /* qcode:Q_KEY_CODE_SYSRQ (sysrq) -> linux:99 (KEY_SYSRQ) -> atset2:127 */
+  [Q_KEY_CODE_T] = 0x2c, /* qcode:Q_KEY_CODE_T (t) -> linux:20 (KEY_T) -> atset2:44 */
+  [Q_KEY_CODE_TAB] = 0xd, /* qcode:Q_KEY_CODE_TAB (tab) -> linux:15 (KEY_TAB) -> atset2:13 */
+  [Q_KEY_CODE_U] = 0x3c, /* qcode:Q_KEY_CODE_U (u) -> linux:22 (KEY_U) -> atset2:60 */
+  [Q_KEY_CODE_UP] = 0xe075, /* qcode:Q_KEY_CODE_UP (up) -> linux:103 (KEY_UP) -> atset2:57461 */
+  [Q_KEY_CODE_V] = 0x2a, /* qcode:Q_KEY_CODE_V (v) -> linux:47 (KEY_V) -> atset2:42 */
+  [Q_KEY_CODE_VOLUMEDOWN] = 0xe021, /* qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) -> linux:114 (KEY_VOLUMEDOWN) -> atset2:57377 */
+  [Q_KEY_CODE_VOLUMEUP] = 0xe032, /* qcode:Q_KEY_CODE_VOLUMEUP (volumeup) -> linux:115 (KEY_VOLUMEUP) -> atset2:57394 */
+  [Q_KEY_CODE_W] = 0x1d, /* qcode:Q_KEY_CODE_W (w) -> linux:17 (KEY_W) -> atset2:29 */
+  [Q_KEY_CODE_WAKE] = 0xe05e, /* qcode:Q_KEY_CODE_WAKE (wake) -> linux:143 (KEY_WAKEUP) -> atset2:57438 */
+  [Q_KEY_CODE_X] = 0x22, /* qcode:Q_KEY_CODE_X (x) -> linux:45 (KEY_X) -> atset2:34 */
+  [Q_KEY_CODE_Y] = 0x35, /* qcode:Q_KEY_CODE_Y (y) -> linux:21 (KEY_Y) -> atset2:53 */
+  [Q_KEY_CODE_YEN] = 0x6a, /* qcode:Q_KEY_CODE_YEN (yen) -> linux:124 (KEY_YEN) -> atset2:106 */
+  [Q_KEY_CODE_Z] = 0x1a, /* qcode:Q_KEY_CODE_Z (z) -> linux:44 (KEY_Z) -> atset2:26 */
+};
+const guint qemu_input_map_qcode_to_atset2_len = sizeof(qemu_input_map_qcode_to_atset2)/sizeof(qemu_input_map_qcode_to_atset2[0]);
diff --git a/ui/input-keymap-qcode-to-atset3.c b/ui/input-keymap-qcode-to-atset3.c
new file mode 100644
index 0000000000..58aaed63a1
--- /dev/null
+++ b/ui/input-keymap-qcode-to-atset3.c
@@ -0,0 +1,138 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:06
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qcode_to_atset3 code-map keymaps.csv qcode atset3
+*/
+const guint16 qemu_input_map_qcode_to_atset3[Q_KEY_CODE__MAX] = {
+  [Q_KEY_CODE_0] = 0x45, /* qcode:Q_KEY_CODE_0 (0) -> linux:11 (KEY_0) -> atset3:69 */
+  [Q_KEY_CODE_1] = 0x16, /* qcode:Q_KEY_CODE_1 (1) -> linux:2 (KEY_1) -> atset3:22 */
+  [Q_KEY_CODE_2] = 0x1e, /* qcode:Q_KEY_CODE_2 (2) -> linux:3 (KEY_2) -> atset3:30 */
+  [Q_KEY_CODE_3] = 0x26, /* qcode:Q_KEY_CODE_3 (3) -> linux:4 (KEY_3) -> atset3:38 */
+  [Q_KEY_CODE_4] = 0x25, /* qcode:Q_KEY_CODE_4 (4) -> linux:5 (KEY_4) -> atset3:37 */
+  [Q_KEY_CODE_5] = 0x2e, /* qcode:Q_KEY_CODE_5 (5) -> linux:6 (KEY_5) -> atset3:46 */
+  [Q_KEY_CODE_6] = 0x36, /* qcode:Q_KEY_CODE_6 (6) -> linux:7 (KEY_6) -> atset3:54 */
+  [Q_KEY_CODE_7] = 0x3d, /* qcode:Q_KEY_CODE_7 (7) -> linux:8 (KEY_7) -> atset3:61 */
+  [Q_KEY_CODE_8] = 0x3e, /* qcode:Q_KEY_CODE_8 (8) -> linux:9 (KEY_8) -> atset3:62 */
+  [Q_KEY_CODE_9] = 0x46, /* qcode:Q_KEY_CODE_9 (9) -> linux:10 (KEY_9) -> atset3:70 */
+  [Q_KEY_CODE_A] = 0x1c, /* qcode:Q_KEY_CODE_A (a) -> linux:30 (KEY_A) -> atset3:28 */
+  [Q_KEY_CODE_AC_HOME] = 0x97, /* qcode:Q_KEY_CODE_AC_HOME (ac_home) -> linux:172 (KEY_HOMEPAGE) -> atset3:151 */
+  [Q_KEY_CODE_AGAIN] = 0xb, /* qcode:Q_KEY_CODE_AGAIN (again) -> linux:129 (KEY_AGAIN) -> atset3:11 */
+  [Q_KEY_CODE_ALT] = 0x19, /* qcode:Q_KEY_CODE_ALT (alt) -> linux:56 (KEY_LEFTALT) -> atset3:25 */
+  [Q_KEY_CODE_ALT_R] = 0x39, /* qcode:Q_KEY_CODE_ALT_R (alt_r) -> linux:100 (KEY_RIGHTALT) -> atset3:57 */
+  [Q_KEY_CODE_APOSTROPHE] = 0x52, /* qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) -> linux:40 (KEY_APOSTROPHE) -> atset3:82 */
+  [Q_KEY_CODE_ASTERISK] = 0x7e, /* qcode:Q_KEY_CODE_ASTERISK (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> atset3:126 */
+  [Q_KEY_CODE_AUDIOMUTE] = 0x9c, /* qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) -> linux:113 (KEY_MUTE) -> atset3:156 */
+  [Q_KEY_CODE_AUDIONEXT] = 0x93, /* qcode:Q_KEY_CODE_AUDIONEXT (audionext) -> linux:163 (KEY_NEXTSONG) -> atset3:147 */
+  [Q_KEY_CODE_AUDIOPREV] = 0x94, /* qcode:Q_KEY_CODE_AUDIOPREV (audioprev) -> linux:165 (KEY_PREVIOUSSONG) -> atset3:148 */
+  [Q_KEY_CODE_AUDIOSTOP] = 0x98, /* qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) -> linux:166 (KEY_STOPCD) -> atset3:152 */
+  [Q_KEY_CODE_B] = 0x32, /* qcode:Q_KEY_CODE_B (b) -> linux:48 (KEY_B) -> atset3:50 */
+  [Q_KEY_CODE_BACKSLASH] = 0x5c, /* qcode:Q_KEY_CODE_BACKSLASH (backslash) -> linux:43 (KEY_BACKSLASH) -> atset3:92 */
+  [Q_KEY_CODE_BACKSPACE] = 0x66, /* qcode:Q_KEY_CODE_BACKSPACE (backspace) -> linux:14 (KEY_BACKSPACE) -> atset3:102 */
+  [Q_KEY_CODE_BRACKET_LEFT] = 0x54, /* qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) -> linux:26 (KEY_LEFTBRACE) -> atset3:84 */
+  [Q_KEY_CODE_BRACKET_RIGHT] = 0x5b, /* qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) -> linux:27 (KEY_RIGHTBRACE) -> atset3:91 */
+  [Q_KEY_CODE_C] = 0x21, /* qcode:Q_KEY_CODE_C (c) -> linux:46 (KEY_C) -> atset3:33 */
+  [Q_KEY_CODE_CALCULATOR] = 0xa3, /* qcode:Q_KEY_CODE_CALCULATOR (calculator) -> linux:140 (KEY_CALC) -> atset3:163 */
+  [Q_KEY_CODE_CAPS_LOCK] = 0x14, /* qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) -> linux:58 (KEY_CAPSLOCK) -> atset3:20 */
+  [Q_KEY_CODE_COMMA] = 0x41, /* qcode:Q_KEY_CODE_COMMA (comma) -> linux:51 (KEY_COMMA) -> atset3:65 */
+  [Q_KEY_CODE_COMPOSE] = 0x8d, /* qcode:Q_KEY_CODE_COMPOSE (compose) -> linux:127 (KEY_COMPOSE) -> atset3:141 */
+  [Q_KEY_CODE_COPY] = 0x18, /* qcode:Q_KEY_CODE_COPY (copy) -> linux:133 (KEY_COPY) -> atset3:24 */
+  [Q_KEY_CODE_CTRL] = 0x11, /* qcode:Q_KEY_CODE_CTRL (ctrl) -> linux:29 (KEY_LEFTCTRL) -> atset3:17 */
+  [Q_KEY_CODE_CTRL_R] = 0x58, /* qcode:Q_KEY_CODE_CTRL_R (ctrl_r) -> linux:97 (KEY_RIGHTCTRL) -> atset3:88 */
+  [Q_KEY_CODE_CUT] = 0x38, /* qcode:Q_KEY_CODE_CUT (cut) -> linux:137 (KEY_CUT) -> atset3:56 */
+  [Q_KEY_CODE_D] = 0x23, /* qcode:Q_KEY_CODE_D (d) -> linux:32 (KEY_D) -> atset3:35 */
+  [Q_KEY_CODE_DELETE] = 0x64, /* qcode:Q_KEY_CODE_DELETE (delete) -> linux:111 (KEY_DELETE) -> atset3:100 */
+  [Q_KEY_CODE_DOT] = 0x49, /* qcode:Q_KEY_CODE_DOT (dot) -> linux:52 (KEY_DOT) -> atset3:73 */
+  [Q_KEY_CODE_DOWN] = 0x60, /* qcode:Q_KEY_CODE_DOWN (down) -> linux:108 (KEY_DOWN) -> atset3:96 */
+  [Q_KEY_CODE_E] = 0x24, /* qcode:Q_KEY_CODE_E (e) -> linux:18 (KEY_E) -> atset3:36 */
+  [Q_KEY_CODE_END] = 0x65, /* qcode:Q_KEY_CODE_END (end) -> linux:107 (KEY_END) -> atset3:101 */
+  [Q_KEY_CODE_EQUAL] = 0x55, /* qcode:Q_KEY_CODE_EQUAL (equal) -> linux:13 (KEY_EQUAL) -> atset3:85 */
+  [Q_KEY_CODE_ESC] = 0x8, /* qcode:Q_KEY_CODE_ESC (esc) -> linux:1 (KEY_ESC) -> atset3:8 */
+  [Q_KEY_CODE_F] = 0x2b, /* qcode:Q_KEY_CODE_F (f) -> linux:33 (KEY_F) -> atset3:43 */
+  [Q_KEY_CODE_F1] = 0x7, /* qcode:Q_KEY_CODE_F1 (f1) -> linux:59 (KEY_F1) -> atset3:7 */
+  [Q_KEY_CODE_F10] = 0x4f, /* qcode:Q_KEY_CODE_F10 (f10) -> linux:68 (KEY_F10) -> atset3:79 */
+  [Q_KEY_CODE_F11] = 0x56, /* qcode:Q_KEY_CODE_F11 (f11) -> linux:87 (KEY_F11) -> atset3:86 */
+  [Q_KEY_CODE_F12] = 0x5e, /* qcode:Q_KEY_CODE_F12 (f12) -> linux:88 (KEY_F12) -> atset3:94 */
+  [Q_KEY_CODE_F2] = 0xf, /* qcode:Q_KEY_CODE_F2 (f2) -> linux:60 (KEY_F2) -> atset3:15 */
+  [Q_KEY_CODE_F3] = 0x17, /* qcode:Q_KEY_CODE_F3 (f3) -> linux:61 (KEY_F3) -> atset3:23 */
+  [Q_KEY_CODE_F4] = 0x1f, /* qcode:Q_KEY_CODE_F4 (f4) -> linux:62 (KEY_F4) -> atset3:31 */
+  [Q_KEY_CODE_F5] = 0x27, /* qcode:Q_KEY_CODE_F5 (f5) -> linux:63 (KEY_F5) -> atset3:39 */
+  [Q_KEY_CODE_F6] = 0x2f, /* qcode:Q_KEY_CODE_F6 (f6) -> linux:64 (KEY_F6) -> atset3:47 */
+  [Q_KEY_CODE_F7] = 0x37, /* qcode:Q_KEY_CODE_F7 (f7) -> linux:65 (KEY_F7) -> atset3:55 */
+  [Q_KEY_CODE_F8] = 0x3f, /* qcode:Q_KEY_CODE_F8 (f8) -> linux:66 (KEY_F8) -> atset3:63 */
+  [Q_KEY_CODE_F9] = 0x47, /* qcode:Q_KEY_CODE_F9 (f9) -> linux:67 (KEY_F9) -> atset3:71 */
+  [Q_KEY_CODE_FIND] = 0x30, /* qcode:Q_KEY_CODE_FIND (find) -> linux:136 (KEY_FIND) -> atset3:48 */
+  [Q_KEY_CODE_G] = 0x34, /* qcode:Q_KEY_CODE_G (g) -> linux:34 (KEY_G) -> atset3:52 */
+  [Q_KEY_CODE_GRAVE_ACCENT] = 0xe, /* qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) -> linux:41 (KEY_GRAVE) -> atset3:14 */
+  [Q_KEY_CODE_H] = 0x33, /* qcode:Q_KEY_CODE_H (h) -> linux:35 (KEY_H) -> atset3:51 */
+  [Q_KEY_CODE_HELP] = 0x9, /* qcode:Q_KEY_CODE_HELP (help) -> linux:138 (KEY_HELP) -> atset3:9 */
+  [Q_KEY_CODE_HENKAN] = 0x86, /* qcode:Q_KEY_CODE_HENKAN (henkan) -> linux:92 (KEY_HENKAN) -> atset3:134 */
+  [Q_KEY_CODE_HIRAGANA] = 0x87, /* qcode:Q_KEY_CODE_HIRAGANA (hiragana) -> linux:91 (KEY_HIRAGANA) -> atset3:135 */
+  [Q_KEY_CODE_HOME] = 0x6e, /* qcode:Q_KEY_CODE_HOME (home) -> linux:102 (KEY_HOME) -> atset3:110 */
+  [Q_KEY_CODE_I] = 0x43, /* qcode:Q_KEY_CODE_I (i) -> linux:23 (KEY_I) -> atset3:67 */
+  [Q_KEY_CODE_INSERT] = 0x67, /* qcode:Q_KEY_CODE_INSERT (insert) -> linux:110 (KEY_INSERT) -> atset3:103 */
+  [Q_KEY_CODE_J] = 0x3b, /* qcode:Q_KEY_CODE_J (j) -> linux:36 (KEY_J) -> atset3:59 */
+  [Q_KEY_CODE_K] = 0x42, /* qcode:Q_KEY_CODE_K (k) -> linux:37 (KEY_K) -> atset3:66 */
+  [Q_KEY_CODE_KP_0] = 0x70, /* qcode:Q_KEY_CODE_KP_0 (kp_0) -> linux:82 (KEY_KP0) -> atset3:112 */
+  [Q_KEY_CODE_KP_1] = 0x69, /* qcode:Q_KEY_CODE_KP_1 (kp_1) -> linux:79 (KEY_KP1) -> atset3:105 */
+  [Q_KEY_CODE_KP_2] = 0x72, /* qcode:Q_KEY_CODE_KP_2 (kp_2) -> linux:80 (KEY_KP2) -> atset3:114 */
+  [Q_KEY_CODE_KP_3] = 0x7a, /* qcode:Q_KEY_CODE_KP_3 (kp_3) -> linux:81 (KEY_KP3) -> atset3:122 */
+  [Q_KEY_CODE_KP_4] = 0x6b, /* qcode:Q_KEY_CODE_KP_4 (kp_4) -> linux:75 (KEY_KP4) -> atset3:107 */
+  [Q_KEY_CODE_KP_5] = 0x73, /* qcode:Q_KEY_CODE_KP_5 (kp_5) -> linux:76 (KEY_KP5) -> atset3:115 */
+  [Q_KEY_CODE_KP_6] = 0x74, /* qcode:Q_KEY_CODE_KP_6 (kp_6) -> linux:77 (KEY_KP6) -> atset3:116 */
+  [Q_KEY_CODE_KP_7] = 0x6c, /* qcode:Q_KEY_CODE_KP_7 (kp_7) -> linux:71 (KEY_KP7) -> atset3:108 */
+  [Q_KEY_CODE_KP_8] = 0x75, /* qcode:Q_KEY_CODE_KP_8 (kp_8) -> linux:72 (KEY_KP8) -> atset3:117 */
+  [Q_KEY_CODE_KP_9] = 0x7d, /* qcode:Q_KEY_CODE_KP_9 (kp_9) -> linux:73 (KEY_KP9) -> atset3:125 */
+  [Q_KEY_CODE_KP_ADD] = 0x7c, /* qcode:Q_KEY_CODE_KP_ADD (kp_add) -> linux:78 (KEY_KPPLUS) -> atset3:124 */
+  [Q_KEY_CODE_KP_DECIMAL] = 0x71, /* qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) -> linux:83 (KEY_KPDOT) -> atset3:113 */
+  [Q_KEY_CODE_KP_DIVIDE] = 0x4a, /* qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) -> linux:98 (KEY_KPSLASH) -> atset3:74 */
+  [Q_KEY_CODE_KP_ENTER] = 0x79, /* qcode:Q_KEY_CODE_KP_ENTER (kp_enter) -> linux:96 (KEY_KPENTER) -> atset3:121 */
+  [Q_KEY_CODE_KP_MULTIPLY] = 0x7e, /* qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> atset3:126 */
+  [Q_KEY_CODE_KP_SUBTRACT] = 0x4e, /* qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) -> linux:74 (KEY_KPMINUS) -> atset3:78 */
+  [Q_KEY_CODE_L] = 0x4b, /* qcode:Q_KEY_CODE_L (l) -> linux:38 (KEY_L) -> atset3:75 */
+  [Q_KEY_CODE_LEFT] = 0x61, /* qcode:Q_KEY_CODE_LEFT (left) -> linux:105 (KEY_LEFT) -> atset3:97 */
+  [Q_KEY_CODE_LESS] = 0x13, /* qcode:Q_KEY_CODE_LESS (less) -> linux:86 (KEY_102ND) -> atset3:19 */
+  [Q_KEY_CODE_M] = 0x3a, /* qcode:Q_KEY_CODE_M (m) -> linux:50 (KEY_M) -> atset3:58 */
+  [Q_KEY_CODE_MENU] = 0x91, /* qcode:Q_KEY_CODE_MENU (menu) -> linux:139 (KEY_MENU) -> atset3:145 */
+  [Q_KEY_CODE_META_L] = 0x8b, /* qcode:Q_KEY_CODE_META_L (meta_l) -> linux:125 (KEY_LEFTMETA) -> atset3:139 */
+  [Q_KEY_CODE_META_R] = 0x8c, /* qcode:Q_KEY_CODE_META_R (meta_r) -> linux:126 (KEY_RIGHTMETA) -> atset3:140 */
+  [Q_KEY_CODE_MINUS] = 0x4e, /* qcode:Q_KEY_CODE_MINUS (minus) -> linux:12 (KEY_MINUS) -> atset3:78 */
+  [Q_KEY_CODE_N] = 0x31, /* qcode:Q_KEY_CODE_N (n) -> linux:49 (KEY_N) -> atset3:49 */
+  [Q_KEY_CODE_NUM_LOCK] = 0x76, /* qcode:Q_KEY_CODE_NUM_LOCK (num_lock) -> linux:69 (KEY_NUMLOCK) -> atset3:118 */
+  [Q_KEY_CODE_O] = 0x44, /* qcode:Q_KEY_CODE_O (o) -> linux:24 (KEY_O) -> atset3:68 */
+  [Q_KEY_CODE_OPEN] = 0x20, /* qcode:Q_KEY_CODE_OPEN (open) -> linux:134 (KEY_OPEN) -> atset3:32 */
+  [Q_KEY_CODE_P] = 0x4d, /* qcode:Q_KEY_CODE_P (p) -> linux:25 (KEY_P) -> atset3:77 */
+  [Q_KEY_CODE_PASTE] = 0x28, /* qcode:Q_KEY_CODE_PASTE (paste) -> linux:135 (KEY_PASTE) -> atset3:40 */
+  [Q_KEY_CODE_PAUSE] = 0x62, /* qcode:Q_KEY_CODE_PAUSE (pause) -> linux:119 (KEY_PAUSE) -> atset3:98 */
+  [Q_KEY_CODE_PGDN] = 0x6d, /* qcode:Q_KEY_CODE_PGDN (pgdn) -> linux:109 (KEY_PAGEDOWN) -> atset3:109 */
+  [Q_KEY_CODE_PGUP] = 0x6f, /* qcode:Q_KEY_CODE_PGUP (pgup) -> linux:104 (KEY_PAGEUP) -> atset3:111 */
+  [Q_KEY_CODE_PRINT] = 0x57, /* qcode:Q_KEY_CODE_PRINT (sysrq) -> linux:99 (KEY_SYSRQ) -> atset3:87 */
+  [Q_KEY_CODE_PROPS] = 0xc, /* qcode:Q_KEY_CODE_PROPS (props) -> linux:130 (KEY_PROPS) -> atset3:12 */
+  [Q_KEY_CODE_Q] = 0x15, /* qcode:Q_KEY_CODE_Q (q) -> linux:16 (KEY_Q) -> atset3:21 */
+  [Q_KEY_CODE_R] = 0x2d, /* qcode:Q_KEY_CODE_R (r) -> linux:19 (KEY_R) -> atset3:45 */
+  [Q_KEY_CODE_RET] = 0x5a, /* qcode:Q_KEY_CODE_RET (ret) -> linux:28 (KEY_ENTER) -> atset3:90 */
+  [Q_KEY_CODE_RIGHT] = 0x6a, /* qcode:Q_KEY_CODE_RIGHT (right) -> linux:106 (KEY_RIGHT) -> atset3:106 */
+  [Q_KEY_CODE_S] = 0x1b, /* qcode:Q_KEY_CODE_S (s) -> linux:31 (KEY_S) -> atset3:27 */
+  [Q_KEY_CODE_SCROLL_LOCK] = 0x5f, /* qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) -> linux:70 (KEY_SCROLLLOCK) -> atset3:95 */
+  [Q_KEY_CODE_SEMICOLON] = 0x4c, /* qcode:Q_KEY_CODE_SEMICOLON (semicolon) -> linux:39 (KEY_SEMICOLON) -> atset3:76 */
+  [Q_KEY_CODE_SHIFT] = 0x12, /* qcode:Q_KEY_CODE_SHIFT (shift) -> linux:42 (KEY_LEFTSHIFT) -> atset3:18 */
+  [Q_KEY_CODE_SHIFT_R] = 0x59, /* qcode:Q_KEY_CODE_SHIFT_R (shift_r) -> linux:54 (KEY_RIGHTSHIFT) -> atset3:89 */
+  [Q_KEY_CODE_SLASH] = 0x4a, /* qcode:Q_KEY_CODE_SLASH (slash) -> linux:53 (KEY_SLASH) -> atset3:74 */
+  [Q_KEY_CODE_SPC] = 0x29, /* qcode:Q_KEY_CODE_SPC (spc) -> linux:57 (KEY_SPACE) -> atset3:41 */
+  [Q_KEY_CODE_STOP] = 0xa, /* qcode:Q_KEY_CODE_STOP (stop) -> linux:128 (KEY_STOP) -> atset3:10 */
+  [Q_KEY_CODE_SYSRQ] = 0x57, /* qcode:Q_KEY_CODE_SYSRQ (sysrq) -> linux:99 (KEY_SYSRQ) -> atset3:87 */
+  [Q_KEY_CODE_T] = 0x2c, /* qcode:Q_KEY_CODE_T (t) -> linux:20 (KEY_T) -> atset3:44 */
+  [Q_KEY_CODE_TAB] = 0xd, /* qcode:Q_KEY_CODE_TAB (tab) -> linux:15 (KEY_TAB) -> atset3:13 */
+  [Q_KEY_CODE_U] = 0x3c, /* qcode:Q_KEY_CODE_U (u) -> linux:22 (KEY_U) -> atset3:60 */
+  [Q_KEY_CODE_UNDO] = 0x10, /* qcode:Q_KEY_CODE_UNDO (undo) -> linux:131 (KEY_UNDO) -> atset3:16 */
+  [Q_KEY_CODE_UP] = 0x63, /* qcode:Q_KEY_CODE_UP (up) -> linux:103 (KEY_UP) -> atset3:99 */
+  [Q_KEY_CODE_V] = 0x2a, /* qcode:Q_KEY_CODE_V (v) -> linux:47 (KEY_V) -> atset3:42 */
+  [Q_KEY_CODE_VOLUMEDOWN] = 0x9d, /* qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) -> linux:114 (KEY_VOLUMEDOWN) -> atset3:157 */
+  [Q_KEY_CODE_VOLUMEUP] = 0x95, /* qcode:Q_KEY_CODE_VOLUMEUP (volumeup) -> linux:115 (KEY_VOLUMEUP) -> atset3:149 */
+  [Q_KEY_CODE_W] = 0x1d, /* qcode:Q_KEY_CODE_W (w) -> linux:17 (KEY_W) -> atset3:29 */
+  [Q_KEY_CODE_X] = 0x22, /* qcode:Q_KEY_CODE_X (x) -> linux:45 (KEY_X) -> atset3:34 */
+  [Q_KEY_CODE_Y] = 0x35, /* qcode:Q_KEY_CODE_Y (y) -> linux:21 (KEY_Y) -> atset3:53 */
+  [Q_KEY_CODE_YEN] = 0x5d, /* qcode:Q_KEY_CODE_YEN (yen) -> linux:124 (KEY_YEN) -> atset3:93 */
+  [Q_KEY_CODE_Z] = 0x1a, /* qcode:Q_KEY_CODE_Z (z) -> linux:44 (KEY_Z) -> atset3:26 */
+};
+const guint qemu_input_map_qcode_to_atset3_len = sizeof(qemu_input_map_qcode_to_atset3)/sizeof(qemu_input_map_qcode_to_atset3[0]);
diff --git a/ui/input-keymap.c b/ui/input-keymap.c
index 6e543d651f..d90f6a16f7 100644
--- a/ui/input-keymap.c
+++ b/ui/input-keymap.c
@@ -6,6 +6,9 @@
 #include "standard-headers/linux/input.h"
 
 #include "ui/input-keymap-linux-to-qcode.c"
+#include "ui/input-keymap-qcode-to-atset1.c"
+#include "ui/input-keymap-qcode-to-atset2.c"
+#include "ui/input-keymap-qcode-to-atset3.c"
 #include "ui/input-keymap-qcode-to-linux.c"
 #include "ui/input-keymap-qcode-to-qnum.c"
 #include "ui/input-keymap-qnum-to-qcode.c"
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [Qemu-devel] [PATCH v5 07/12] input: convert the adb device to keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (5 preceding siblings ...)
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 06/12] input: convert ps2 " Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 08/12] char: convert the escc " Daniel P. Berrange
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

Replace the qcode_to_adb_keycode table with automatically
generated tables.

Missing entries in qcode_to_adb_keycode now fixed:

 - Q_KEY_CODE_KP_COMMA -> 0x47

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 hw/input/adb.c                 | 124 +-------------------------------
 include/hw/input/adb-keys.h    | 141 -------------------------------------
 include/ui/input.h             |   3 +
 ui/Makefile.objs               |   1 +
 ui/input-keymap-qcode-to-adb.c | 156 +++++++++++++++++++++++++++++++++++++++++
 ui/input-keymap.c              |   1 +
 6 files changed, 163 insertions(+), 263 deletions(-)
 delete mode 100644 include/hw/input/adb-keys.h
 create mode 100644 ui/input-keymap-qcode-to-adb.c

diff --git a/hw/input/adb.c b/hw/input/adb.c
index fcca3a8eb9..1fe5d298a3 100644
--- a/hw/input/adb.c
+++ b/hw/input/adb.c
@@ -25,7 +25,6 @@
 #include "hw/hw.h"
 #include "hw/input/adb.h"
 #include "ui/console.h"
-#include "include/hw/input/adb-keys.h"
 #include "ui/input.h"
 #include "sysemu/sysemu.h"
 
@@ -193,125 +192,6 @@ typedef struct ADBKeyboardClass {
     DeviceRealize parent_realize;
 } 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,
-    [Q_KEY_CODE_ALT]           = ADB_KEY_LEFT_OPTION,
-    [Q_KEY_CODE_ALT_R]         = ADB_KEY_RIGHT_OPTION,
-    [Q_KEY_CODE_CTRL]          = ADB_KEY_LEFT_CONTROL,
-    [Q_KEY_CODE_CTRL_R]        = ADB_KEY_RIGHT_CONTROL,
-    [Q_KEY_CODE_META_L]        = ADB_KEY_COMMAND,
-    [Q_KEY_CODE_META_R]        = ADB_KEY_COMMAND,
-    [Q_KEY_CODE_SPC]           = ADB_KEY_SPACEBAR,
-
-    [Q_KEY_CODE_ESC]           = ADB_KEY_ESC,
-    [Q_KEY_CODE_1]             = ADB_KEY_1,
-    [Q_KEY_CODE_2]             = ADB_KEY_2,
-    [Q_KEY_CODE_3]             = ADB_KEY_3,
-    [Q_KEY_CODE_4]             = ADB_KEY_4,
-    [Q_KEY_CODE_5]             = ADB_KEY_5,
-    [Q_KEY_CODE_6]             = ADB_KEY_6,
-    [Q_KEY_CODE_7]             = ADB_KEY_7,
-    [Q_KEY_CODE_8]             = ADB_KEY_8,
-    [Q_KEY_CODE_9]             = ADB_KEY_9,
-    [Q_KEY_CODE_0]             = ADB_KEY_0,
-    [Q_KEY_CODE_MINUS]         = ADB_KEY_MINUS,
-    [Q_KEY_CODE_EQUAL]         = ADB_KEY_EQUAL,
-    [Q_KEY_CODE_BACKSPACE]     = ADB_KEY_DELETE,
-    [Q_KEY_CODE_TAB]           = ADB_KEY_TAB,
-    [Q_KEY_CODE_Q]             = ADB_KEY_Q,
-    [Q_KEY_CODE_W]             = ADB_KEY_W,
-    [Q_KEY_CODE_E]             = ADB_KEY_E,
-    [Q_KEY_CODE_R]             = ADB_KEY_R,
-    [Q_KEY_CODE_T]             = ADB_KEY_T,
-    [Q_KEY_CODE_Y]             = ADB_KEY_Y,
-    [Q_KEY_CODE_U]             = ADB_KEY_U,
-    [Q_KEY_CODE_I]             = ADB_KEY_I,
-    [Q_KEY_CODE_O]             = ADB_KEY_O,
-    [Q_KEY_CODE_P]             = ADB_KEY_P,
-    [Q_KEY_CODE_BRACKET_LEFT]  = ADB_KEY_LEFT_BRACKET,
-    [Q_KEY_CODE_BRACKET_RIGHT] = ADB_KEY_RIGHT_BRACKET,
-    [Q_KEY_CODE_RET]           = ADB_KEY_RETURN,
-    [Q_KEY_CODE_A]             = ADB_KEY_A,
-    [Q_KEY_CODE_S]             = ADB_KEY_S,
-    [Q_KEY_CODE_D]             = ADB_KEY_D,
-    [Q_KEY_CODE_F]             = ADB_KEY_F,
-    [Q_KEY_CODE_G]             = ADB_KEY_G,
-    [Q_KEY_CODE_H]             = ADB_KEY_H,
-    [Q_KEY_CODE_J]             = ADB_KEY_J,
-    [Q_KEY_CODE_K]             = ADB_KEY_K,
-    [Q_KEY_CODE_L]             = ADB_KEY_L,
-    [Q_KEY_CODE_SEMICOLON]     = ADB_KEY_SEMICOLON,
-    [Q_KEY_CODE_APOSTROPHE]    = ADB_KEY_APOSTROPHE,
-    [Q_KEY_CODE_GRAVE_ACCENT]  = ADB_KEY_GRAVE_ACCENT,
-    [Q_KEY_CODE_BACKSLASH]     = ADB_KEY_BACKSLASH,
-    [Q_KEY_CODE_Z]             = ADB_KEY_Z,
-    [Q_KEY_CODE_X]             = ADB_KEY_X,
-    [Q_KEY_CODE_C]             = ADB_KEY_C,
-    [Q_KEY_CODE_V]             = ADB_KEY_V,
-    [Q_KEY_CODE_B]             = ADB_KEY_B,
-    [Q_KEY_CODE_N]             = ADB_KEY_N,
-    [Q_KEY_CODE_M]             = ADB_KEY_M,
-    [Q_KEY_CODE_COMMA]         = ADB_KEY_COMMA,
-    [Q_KEY_CODE_DOT]           = ADB_KEY_PERIOD,
-    [Q_KEY_CODE_SLASH]         = ADB_KEY_FORWARD_SLASH,
-    [Q_KEY_CODE_ASTERISK]      = ADB_KEY_KP_MULTIPLY,
-    [Q_KEY_CODE_CAPS_LOCK]     = ADB_KEY_CAPS_LOCK,
-
-    [Q_KEY_CODE_F1]            = ADB_KEY_F1,
-    [Q_KEY_CODE_F2]            = ADB_KEY_F2,
-    [Q_KEY_CODE_F3]            = ADB_KEY_F3,
-    [Q_KEY_CODE_F4]            = ADB_KEY_F4,
-    [Q_KEY_CODE_F5]            = ADB_KEY_F5,
-    [Q_KEY_CODE_F6]            = ADB_KEY_F6,
-    [Q_KEY_CODE_F7]            = ADB_KEY_F7,
-    [Q_KEY_CODE_F8]            = ADB_KEY_F8,
-    [Q_KEY_CODE_F9]            = ADB_KEY_F9,
-    [Q_KEY_CODE_F10]           = ADB_KEY_F10,
-    [Q_KEY_CODE_F11]           = ADB_KEY_F11,
-    [Q_KEY_CODE_F12]           = ADB_KEY_F12,
-    [Q_KEY_CODE_PRINT]         = ADB_KEY_F13,
-    [Q_KEY_CODE_SYSRQ]         = ADB_KEY_F13,
-    [Q_KEY_CODE_SCROLL_LOCK]   = ADB_KEY_F14,
-    [Q_KEY_CODE_PAUSE]         = ADB_KEY_F15,
-
-    [Q_KEY_CODE_NUM_LOCK]      = ADB_KEY_KP_CLEAR,
-    [Q_KEY_CODE_KP_EQUALS]     = ADB_KEY_KP_EQUAL,
-    [Q_KEY_CODE_KP_DIVIDE]     = ADB_KEY_KP_DIVIDE,
-    [Q_KEY_CODE_KP_MULTIPLY]   = ADB_KEY_KP_MULTIPLY,
-    [Q_KEY_CODE_KP_SUBTRACT]   = ADB_KEY_KP_SUBTRACT,
-    [Q_KEY_CODE_KP_ADD]        = ADB_KEY_KP_PLUS,
-    [Q_KEY_CODE_KP_ENTER]      = ADB_KEY_KP_ENTER,
-    [Q_KEY_CODE_KP_DECIMAL]    = ADB_KEY_KP_PERIOD,
-    [Q_KEY_CODE_KP_0]          = ADB_KEY_KP_0,
-    [Q_KEY_CODE_KP_1]          = ADB_KEY_KP_1,
-    [Q_KEY_CODE_KP_2]          = ADB_KEY_KP_2,
-    [Q_KEY_CODE_KP_3]          = ADB_KEY_KP_3,
-    [Q_KEY_CODE_KP_4]          = ADB_KEY_KP_4,
-    [Q_KEY_CODE_KP_5]          = ADB_KEY_KP_5,
-    [Q_KEY_CODE_KP_6]          = ADB_KEY_KP_6,
-    [Q_KEY_CODE_KP_7]          = ADB_KEY_KP_7,
-    [Q_KEY_CODE_KP_8]          = ADB_KEY_KP_8,
-    [Q_KEY_CODE_KP_9]          = ADB_KEY_KP_9,
-
-    [Q_KEY_CODE_UP]            = ADB_KEY_UP,
-    [Q_KEY_CODE_DOWN]          = ADB_KEY_DOWN,
-    [Q_KEY_CODE_LEFT]          = ADB_KEY_LEFT,
-    [Q_KEY_CODE_RIGHT]         = ADB_KEY_RIGHT,
-
-    [Q_KEY_CODE_HELP]          = ADB_KEY_HELP,
-    [Q_KEY_CODE_INSERT]        = ADB_KEY_HELP,
-    [Q_KEY_CODE_DELETE]        = ADB_KEY_FORWARD_DELETE,
-    [Q_KEY_CODE_HOME]          = ADB_KEY_HOME,
-    [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_POWER]         = ADB_KEY_POWER
-};
 
 static void adb_kbd_put_keycode(void *opaque, int keycode)
 {
@@ -439,11 +319,11 @@ static void adb_keyboard_event(DeviceState *dev, QemuConsole *src,
     int qcode, keycode;
 
     qcode = qemu_input_key_value_to_qcode(evt->u.key.data->key);
-    if (qcode >= ARRAY_SIZE(qcode_to_adb_keycode)) {
+    if (qcode >= qemu_input_map_qcode_to_adb_len) {
         return;
     }
     /* FIXME: take handler into account when translating qcode */
-    keycode = qcode_to_adb_keycode[qcode];
+    keycode = qemu_input_map_qcode_to_adb[qcode];
     if (keycode == NO_KEY) {  /* We don't want to send this to the guest */
         ADB_DPRINTF("Ignoring NO_KEY\n");
         return;
diff --git a/include/hw/input/adb-keys.h b/include/hw/input/adb-keys.h
deleted file mode 100644
index 525fba8a61..0000000000
--- a/include/hw/input/adb-keys.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * QEMU System Emulator
- *
- * Copyright (c) 2016 John Arbuckle
- *
- * This work is licensed under the terms of the GNU GPL, version 2 or later.
- * See the COPYING file in the top-level directory.
- */
-
-/*
- *  adb-keys.h
- *
- *  Provides an enum of all the Macintosh keycodes.
- *  Additional information: http://www.archive.org/stream/apple-guide-macintosh-family-hardware/Apple_Guide_to_the_Macintosh_Family_Hardware_2e#page/n345/mode/2up
- *                          page 308
- */
-
-#ifndef ADB_KEYS_H
-#define ADB_KEYS_H
-
-enum {
-    ADB_KEY_A = 0x00,
-    ADB_KEY_B = 0x0b,
-    ADB_KEY_C = 0x08,
-    ADB_KEY_D = 0x02,
-    ADB_KEY_E = 0x0e,
-    ADB_KEY_F = 0x03,
-    ADB_KEY_G = 0x05,
-    ADB_KEY_H = 0x04,
-    ADB_KEY_I = 0x22,
-    ADB_KEY_J = 0x26,
-    ADB_KEY_K = 0x28,
-    ADB_KEY_L = 0x25,
-    ADB_KEY_M = 0x2e,
-    ADB_KEY_N = 0x2d,
-    ADB_KEY_O = 0x1f,
-    ADB_KEY_P = 0x23,
-    ADB_KEY_Q = 0x0c,
-    ADB_KEY_R = 0x0f,
-    ADB_KEY_S = 0x01,
-    ADB_KEY_T = 0x11,
-    ADB_KEY_U = 0x20,
-    ADB_KEY_V = 0x09,
-    ADB_KEY_W = 0x0d,
-    ADB_KEY_X = 0x07,
-    ADB_KEY_Y = 0x10,
-    ADB_KEY_Z = 0x06,
-
-    ADB_KEY_0 = 0x1d,
-    ADB_KEY_1 = 0x12,
-    ADB_KEY_2 = 0x13,
-    ADB_KEY_3 = 0x14,
-    ADB_KEY_4 = 0x15,
-    ADB_KEY_5 = 0x17,
-    ADB_KEY_6 = 0x16,
-    ADB_KEY_7 = 0x1a,
-    ADB_KEY_8 = 0x1c,
-    ADB_KEY_9 = 0x19,
-
-    ADB_KEY_GRAVE_ACCENT = 0x32,
-    ADB_KEY_MINUS = 0x1b,
-    ADB_KEY_EQUAL = 0x18,
-    ADB_KEY_DELETE = 0x33,
-    ADB_KEY_CAPS_LOCK = 0x39,
-    ADB_KEY_TAB = 0x30,
-    ADB_KEY_RETURN = 0x24,
-    ADB_KEY_LEFT_BRACKET = 0x21,
-    ADB_KEY_RIGHT_BRACKET = 0x1e,
-    ADB_KEY_BACKSLASH = 0x2a,
-    ADB_KEY_SEMICOLON = 0x29,
-    ADB_KEY_APOSTROPHE = 0x27,
-    ADB_KEY_COMMA = 0x2b,
-    ADB_KEY_PERIOD = 0x2f,
-    ADB_KEY_FORWARD_SLASH = 0x2c,
-    ADB_KEY_LEFT_SHIFT = 0x38,
-    ADB_KEY_RIGHT_SHIFT = 0x7b,
-    ADB_KEY_SPACEBAR = 0x31,
-    ADB_KEY_LEFT_CONTROL = 0x36,
-    ADB_KEY_RIGHT_CONTROL = 0x7d,
-    ADB_KEY_LEFT_OPTION = 0x3a,
-    ADB_KEY_RIGHT_OPTION = 0x7c,
-    ADB_KEY_COMMAND = 0x37,
-
-    ADB_KEY_KP_0 = 0x52,
-    ADB_KEY_KP_1 = 0x53,
-    ADB_KEY_KP_2 = 0x54,
-    ADB_KEY_KP_3 = 0x55,
-    ADB_KEY_KP_4 = 0x56,
-    ADB_KEY_KP_5 = 0x57,
-    ADB_KEY_KP_6 = 0x58,
-    ADB_KEY_KP_7 = 0x59,
-    ADB_KEY_KP_8 = 0x5b,
-    ADB_KEY_KP_9 = 0x5c,
-    ADB_KEY_KP_PERIOD = 0x41,
-    ADB_KEY_KP_ENTER = 0x4c,
-    ADB_KEY_KP_PLUS = 0x45,
-    ADB_KEY_KP_SUBTRACT = 0x4e,
-    ADB_KEY_KP_MULTIPLY = 0x43,
-    ADB_KEY_KP_DIVIDE = 0x4b,
-    ADB_KEY_KP_EQUAL = 0x51,
-    ADB_KEY_KP_CLEAR = 0x47,
-
-    ADB_KEY_UP = 0x3e,
-    ADB_KEY_DOWN = 0x3d,
-    ADB_KEY_LEFT = 0x3b,
-    ADB_KEY_RIGHT = 0x3c,
-
-    ADB_KEY_HELP = 0x72,
-    ADB_KEY_HOME = 0x73,
-    ADB_KEY_PAGE_UP = 0x74,
-    ADB_KEY_PAGE_DOWN = 0x79,
-    ADB_KEY_END = 0x77,
-    ADB_KEY_FORWARD_DELETE = 0x75,
-
-    ADB_KEY_ESC = 0x35,
-    ADB_KEY_F1 = 0x7a,
-    ADB_KEY_F2 = 0x78,
-    ADB_KEY_F3 = 0x63,
-    ADB_KEY_F4 = 0x76,
-    ADB_KEY_F5 = 0x60,
-    ADB_KEY_F6 = 0x61,
-    ADB_KEY_F7 = 0x62,
-    ADB_KEY_F8 = 0x64,
-    ADB_KEY_F9 = 0x65,
-    ADB_KEY_F10 = 0x6d,
-    ADB_KEY_F11 = 0x67,
-    ADB_KEY_F12 = 0x6f,
-    ADB_KEY_F13 = 0x69,
-    ADB_KEY_F14 = 0x6b,
-    ADB_KEY_F15 = 0x71,
-
-    ADB_KEY_VOLUME_UP = 0x48,
-    ADB_KEY_VOLUME_DOWN = 0x49,
-    ADB_KEY_VOLUME_MUTE = 0x4a,
-    ADB_KEY_POWER = 0x7f7f
-};
-
-/* Could not find the value for this key. */
-/* #define ADB_KEY_EJECT */
-
-#endif /* ADB_KEYS_H */
diff --git a/include/ui/input.h b/include/ui/input.h
index 76235ba97a..4aa5655a0b 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -71,6 +71,9 @@ void qemu_remove_mouse_mode_change_notifier(Notifier *notify);
 extern const guint qemu_input_map_linux_to_qcode_len;
 extern const guint16 qemu_input_map_linux_to_qcode[];
 
+extern const guint qemu_input_map_qcode_to_adb_len;
+extern const guint16 qemu_input_map_qcode_to_adb[];
+
 extern const guint qemu_input_map_qcode_to_atset1_len;
 extern const guint16 qemu_input_map_qcode_to_atset1[];
 
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index 8ba843c0c9..6846636f39 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -55,6 +55,7 @@ KEYCODEMAP_CSV = $(SRC_PATH)/ui/keycodemapdb/data/keymaps.csv
 
 KEYCODEMAP_FILES = \
 		 ui/input-keymap-linux-to-qcode.c \
+		 ui/input-keymap-qcode-to-adb.c \
 		 ui/input-keymap-qcode-to-atset1.c \
 		 ui/input-keymap-qcode-to-atset2.c \
 		 ui/input-keymap-qcode-to-atset3.c \
diff --git a/ui/input-keymap-qcode-to-adb.c b/ui/input-keymap-qcode-to-adb.c
new file mode 100644
index 0000000000..979f40a953
--- /dev/null
+++ b/ui/input-keymap-qcode-to-adb.c
@@ -0,0 +1,156 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:07
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qcode_to_adb code-map keymaps.csv qcode adb
+*/
+const guint16 qemu_input_map_qcode_to_adb[Q_KEY_CODE__MAX] = {
+  [0 ... Q_KEY_CODE__MAX-1] = 0xff,
+  [Q_KEY_CODE_0] = 0x1d, /* qcode:Q_KEY_CODE_0 (0) -> linux:11 (KEY_0) -> adb:29 */
+  [Q_KEY_CODE_1] = 0x12, /* qcode:Q_KEY_CODE_1 (1) -> linux:2 (KEY_1) -> adb:18 */
+  [Q_KEY_CODE_2] = 0x13, /* qcode:Q_KEY_CODE_2 (2) -> linux:3 (KEY_2) -> adb:19 */
+  [Q_KEY_CODE_3] = 0x14, /* qcode:Q_KEY_CODE_3 (3) -> linux:4 (KEY_3) -> adb:20 */
+  [Q_KEY_CODE_4] = 0x15, /* qcode:Q_KEY_CODE_4 (4) -> linux:5 (KEY_4) -> adb:21 */
+  [Q_KEY_CODE_5] = 0x17, /* qcode:Q_KEY_CODE_5 (5) -> linux:6 (KEY_5) -> adb:23 */
+  [Q_KEY_CODE_6] = 0x16, /* qcode:Q_KEY_CODE_6 (6) -> linux:7 (KEY_6) -> adb:22 */
+  [Q_KEY_CODE_7] = 0x1a, /* qcode:Q_KEY_CODE_7 (7) -> linux:8 (KEY_7) -> adb:26 */
+  [Q_KEY_CODE_8] = 0x1c, /* qcode:Q_KEY_CODE_8 (8) -> linux:9 (KEY_8) -> adb:28 */
+  [Q_KEY_CODE_9] = 0x19, /* qcode:Q_KEY_CODE_9 (9) -> linux:10 (KEY_9) -> adb:25 */
+  [Q_KEY_CODE_A] = 0x0, /* qcode:Q_KEY_CODE_A (a) -> linux:30 (KEY_A) -> adb:0 */
+  [Q_KEY_CODE_AC_BACK] = 0xff, /* qcode:Q_KEY_CODE_AC_BACK (ac_back) -> linux:158 (KEY_BACK) -> adb:255 */
+  [Q_KEY_CODE_AC_BOOKMARKS] = 0xff, /* qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) -> linux:156 (KEY_BOOKMARKS) -> adb:255 */
+  [Q_KEY_CODE_AC_FORWARD] = 0xff, /* qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) -> linux:159 (KEY_FORWARD) -> adb:255 */
+  [Q_KEY_CODE_AC_HOME] = 0xff, /* qcode:Q_KEY_CODE_AC_HOME (ac_home) -> linux:172 (KEY_HOMEPAGE) -> adb:255 */
+  [Q_KEY_CODE_AC_REFRESH] = 0xff, /* qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) -> linux:173 (KEY_REFRESH) -> adb:255 */
+  [Q_KEY_CODE_AGAIN] = 0xff, /* qcode:Q_KEY_CODE_AGAIN (again) -> linux:129 (KEY_AGAIN) -> adb:255 */
+  [Q_KEY_CODE_ALT] = 0x3a, /* qcode:Q_KEY_CODE_ALT (alt) -> linux:56 (KEY_LEFTALT) -> adb:58 */
+  [Q_KEY_CODE_ALT_R] = 0x7c, /* qcode:Q_KEY_CODE_ALT_R (alt_r) -> linux:100 (KEY_RIGHTALT) -> adb:124 */
+  [Q_KEY_CODE_APOSTROPHE] = 0x27, /* qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) -> linux:40 (KEY_APOSTROPHE) -> adb:39 */
+  [Q_KEY_CODE_ASTERISK] = 0x43, /* qcode:Q_KEY_CODE_ASTERISK (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> adb:67 */
+  [Q_KEY_CODE_AUDIOMUTE] = 0xff, /* qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) -> linux:113 (KEY_MUTE) -> adb:255 */
+  [Q_KEY_CODE_AUDIONEXT] = 0xff, /* qcode:Q_KEY_CODE_AUDIONEXT (audionext) -> linux:163 (KEY_NEXTSONG) -> adb:255 */
+  [Q_KEY_CODE_AUDIOPLAY] = 0xff, /* qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) -> linux:164 (KEY_PLAYPAUSE) -> adb:255 */
+  [Q_KEY_CODE_AUDIOPREV] = 0xff, /* qcode:Q_KEY_CODE_AUDIOPREV (audioprev) -> linux:165 (KEY_PREVIOUSSONG) -> adb:255 */
+  [Q_KEY_CODE_AUDIOSTOP] = 0xff, /* qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) -> linux:166 (KEY_STOPCD) -> adb:255 */
+  [Q_KEY_CODE_B] = 0xb, /* qcode:Q_KEY_CODE_B (b) -> linux:48 (KEY_B) -> adb:11 */
+  [Q_KEY_CODE_BACKSLASH] = 0x2a, /* qcode:Q_KEY_CODE_BACKSLASH (backslash) -> linux:43 (KEY_BACKSLASH) -> adb:42 */
+  [Q_KEY_CODE_BACKSPACE] = 0x33, /* qcode:Q_KEY_CODE_BACKSPACE (backspace) -> linux:14 (KEY_BACKSPACE) -> adb:51 */
+  [Q_KEY_CODE_BRACKET_LEFT] = 0x21, /* qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) -> linux:26 (KEY_LEFTBRACE) -> adb:33 */
+  [Q_KEY_CODE_BRACKET_RIGHT] = 0x1e, /* qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) -> linux:27 (KEY_RIGHTBRACE) -> adb:30 */
+  [Q_KEY_CODE_C] = 0x8, /* qcode:Q_KEY_CODE_C (c) -> linux:46 (KEY_C) -> adb:8 */
+  [Q_KEY_CODE_CALCULATOR] = 0xff, /* qcode:Q_KEY_CODE_CALCULATOR (calculator) -> linux:140 (KEY_CALC) -> adb:255 */
+  [Q_KEY_CODE_CAPS_LOCK] = 0x39, /* qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) -> linux:58 (KEY_CAPSLOCK) -> adb:57 */
+  [Q_KEY_CODE_COMMA] = 0x2b, /* qcode:Q_KEY_CODE_COMMA (comma) -> linux:51 (KEY_COMMA) -> adb:43 */
+  [Q_KEY_CODE_COMPOSE] = 0xff, /* qcode:Q_KEY_CODE_COMPOSE (compose) -> linux:127 (KEY_COMPOSE) -> adb:255 */
+  [Q_KEY_CODE_COMPUTER] = 0xff, /* qcode:Q_KEY_CODE_COMPUTER (computer) -> linux:157 (KEY_COMPUTER) -> adb:255 */
+  [Q_KEY_CODE_COPY] = 0xff, /* qcode:Q_KEY_CODE_COPY (copy) -> linux:133 (KEY_COPY) -> adb:255 */
+  [Q_KEY_CODE_CTRL] = 0x36, /* qcode:Q_KEY_CODE_CTRL (ctrl) -> linux:29 (KEY_LEFTCTRL) -> adb:54 */
+  [Q_KEY_CODE_CTRL_R] = 0x7d, /* qcode:Q_KEY_CODE_CTRL_R (ctrl_r) -> linux:97 (KEY_RIGHTCTRL) -> adb:125 */
+  [Q_KEY_CODE_CUT] = 0xff, /* qcode:Q_KEY_CODE_CUT (cut) -> linux:137 (KEY_CUT) -> adb:255 */
+  [Q_KEY_CODE_D] = 0x2, /* qcode:Q_KEY_CODE_D (d) -> linux:32 (KEY_D) -> adb:2 */
+  [Q_KEY_CODE_DELETE] = 0x75, /* qcode:Q_KEY_CODE_DELETE (delete) -> linux:111 (KEY_DELETE) -> adb:117 */
+  [Q_KEY_CODE_DOT] = 0x2f, /* qcode:Q_KEY_CODE_DOT (dot) -> linux:52 (KEY_DOT) -> adb:47 */
+  [Q_KEY_CODE_DOWN] = 0x3d, /* qcode:Q_KEY_CODE_DOWN (down) -> linux:108 (KEY_DOWN) -> adb:61 */
+  [Q_KEY_CODE_E] = 0xe, /* qcode:Q_KEY_CODE_E (e) -> linux:18 (KEY_E) -> adb:14 */
+  [Q_KEY_CODE_END] = 0x77, /* qcode:Q_KEY_CODE_END (end) -> linux:107 (KEY_END) -> adb:119 */
+  [Q_KEY_CODE_EQUAL] = 0x18, /* qcode:Q_KEY_CODE_EQUAL (equal) -> linux:13 (KEY_EQUAL) -> adb:24 */
+  [Q_KEY_CODE_ESC] = 0x35, /* qcode:Q_KEY_CODE_ESC (esc) -> linux:1 (KEY_ESC) -> adb:53 */
+  [Q_KEY_CODE_F] = 0x3, /* qcode:Q_KEY_CODE_F (f) -> linux:33 (KEY_F) -> adb:3 */
+  [Q_KEY_CODE_F1] = 0x7a, /* qcode:Q_KEY_CODE_F1 (f1) -> linux:59 (KEY_F1) -> adb:122 */
+  [Q_KEY_CODE_F10] = 0x6d, /* qcode:Q_KEY_CODE_F10 (f10) -> linux:68 (KEY_F10) -> adb:109 */
+  [Q_KEY_CODE_F11] = 0x67, /* qcode:Q_KEY_CODE_F11 (f11) -> linux:87 (KEY_F11) -> adb:103 */
+  [Q_KEY_CODE_F12] = 0x6f, /* qcode:Q_KEY_CODE_F12 (f12) -> linux:88 (KEY_F12) -> adb:111 */
+  [Q_KEY_CODE_F2] = 0x78, /* qcode:Q_KEY_CODE_F2 (f2) -> linux:60 (KEY_F2) -> adb:120 */
+  [Q_KEY_CODE_F3] = 0x63, /* qcode:Q_KEY_CODE_F3 (f3) -> linux:61 (KEY_F3) -> adb:99 */
+  [Q_KEY_CODE_F4] = 0x76, /* qcode:Q_KEY_CODE_F4 (f4) -> linux:62 (KEY_F4) -> adb:118 */
+  [Q_KEY_CODE_F5] = 0x60, /* qcode:Q_KEY_CODE_F5 (f5) -> linux:63 (KEY_F5) -> adb:96 */
+  [Q_KEY_CODE_F6] = 0x61, /* qcode:Q_KEY_CODE_F6 (f6) -> linux:64 (KEY_F6) -> adb:97 */
+  [Q_KEY_CODE_F7] = 0x62, /* qcode:Q_KEY_CODE_F7 (f7) -> linux:65 (KEY_F7) -> adb:98 */
+  [Q_KEY_CODE_F8] = 0x64, /* qcode:Q_KEY_CODE_F8 (f8) -> linux:66 (KEY_F8) -> adb:100 */
+  [Q_KEY_CODE_F9] = 0x65, /* qcode:Q_KEY_CODE_F9 (f9) -> linux:67 (KEY_F9) -> adb:101 */
+  [Q_KEY_CODE_FIND] = 0xff, /* qcode:Q_KEY_CODE_FIND (find) -> linux:136 (KEY_FIND) -> adb:255 */
+  [Q_KEY_CODE_FRONT] = 0xff, /* qcode:Q_KEY_CODE_FRONT (front) -> linux:132 (KEY_FRONT) -> adb:255 */
+  [Q_KEY_CODE_G] = 0x5, /* qcode:Q_KEY_CODE_G (g) -> linux:34 (KEY_G) -> adb:5 */
+  [Q_KEY_CODE_GRAVE_ACCENT] = 0x32, /* qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) -> linux:41 (KEY_GRAVE) -> adb:50 */
+  [Q_KEY_CODE_H] = 0x4, /* qcode:Q_KEY_CODE_H (h) -> linux:35 (KEY_H) -> adb:4 */
+  [Q_KEY_CODE_HELP] = 0xff, /* qcode:Q_KEY_CODE_HELP (help) -> linux:138 (KEY_HELP) -> adb:255 */
+  [Q_KEY_CODE_HENKAN] = 0xff, /* qcode:Q_KEY_CODE_HENKAN (henkan) -> linux:92 (KEY_HENKAN) -> adb:255 */
+  [Q_KEY_CODE_HIRAGANA] = 0xff, /* qcode:Q_KEY_CODE_HIRAGANA (hiragana) -> linux:91 (KEY_HIRAGANA) -> adb:255 */
+  [Q_KEY_CODE_HOME] = 0x73, /* qcode:Q_KEY_CODE_HOME (home) -> linux:102 (KEY_HOME) -> adb:115 */
+  [Q_KEY_CODE_I] = 0x22, /* qcode:Q_KEY_CODE_I (i) -> linux:23 (KEY_I) -> adb:34 */
+  [Q_KEY_CODE_INSERT] = 0x72, /* qcode:Q_KEY_CODE_INSERT (insert) -> linux:110 (KEY_INSERT) -> adb:114 */
+  [Q_KEY_CODE_J] = 0x26, /* qcode:Q_KEY_CODE_J (j) -> linux:36 (KEY_J) -> adb:38 */
+  [Q_KEY_CODE_K] = 0x28, /* qcode:Q_KEY_CODE_K (k) -> linux:37 (KEY_K) -> adb:40 */
+  [Q_KEY_CODE_KP_0] = 0x52, /* qcode:Q_KEY_CODE_KP_0 (kp_0) -> linux:82 (KEY_KP0) -> adb:82 */
+  [Q_KEY_CODE_KP_1] = 0x53, /* qcode:Q_KEY_CODE_KP_1 (kp_1) -> linux:79 (KEY_KP1) -> adb:83 */
+  [Q_KEY_CODE_KP_2] = 0x54, /* qcode:Q_KEY_CODE_KP_2 (kp_2) -> linux:80 (KEY_KP2) -> adb:84 */
+  [Q_KEY_CODE_KP_3] = 0x55, /* qcode:Q_KEY_CODE_KP_3 (kp_3) -> linux:81 (KEY_KP3) -> adb:85 */
+  [Q_KEY_CODE_KP_4] = 0x56, /* qcode:Q_KEY_CODE_KP_4 (kp_4) -> linux:75 (KEY_KP4) -> adb:86 */
+  [Q_KEY_CODE_KP_5] = 0x57, /* qcode:Q_KEY_CODE_KP_5 (kp_5) -> linux:76 (KEY_KP5) -> adb:87 */
+  [Q_KEY_CODE_KP_6] = 0x58, /* qcode:Q_KEY_CODE_KP_6 (kp_6) -> linux:77 (KEY_KP6) -> adb:88 */
+  [Q_KEY_CODE_KP_7] = 0x59, /* qcode:Q_KEY_CODE_KP_7 (kp_7) -> linux:71 (KEY_KP7) -> adb:89 */
+  [Q_KEY_CODE_KP_8] = 0x5b, /* qcode:Q_KEY_CODE_KP_8 (kp_8) -> linux:72 (KEY_KP8) -> adb:91 */
+  [Q_KEY_CODE_KP_9] = 0x5c, /* qcode:Q_KEY_CODE_KP_9 (kp_9) -> linux:73 (KEY_KP9) -> adb:92 */
+  [Q_KEY_CODE_KP_ADD] = 0x45, /* qcode:Q_KEY_CODE_KP_ADD (kp_add) -> linux:78 (KEY_KPPLUS) -> adb:69 */
+  [Q_KEY_CODE_KP_COMMA] = 0xff, /* qcode:Q_KEY_CODE_KP_COMMA (kp_comma) -> linux:121 (KEY_KPCOMMA) -> adb:255 */
+  [Q_KEY_CODE_KP_DECIMAL] = 0x41, /* qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) -> linux:83 (KEY_KPDOT) -> adb:65 */
+  [Q_KEY_CODE_KP_DIVIDE] = 0x4b, /* qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) -> linux:98 (KEY_KPSLASH) -> adb:75 */
+  [Q_KEY_CODE_KP_ENTER] = 0x4c, /* qcode:Q_KEY_CODE_KP_ENTER (kp_enter) -> linux:96 (KEY_KPENTER) -> adb:76 */
+  [Q_KEY_CODE_KP_EQUALS] = 0x51, /* qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) -> linux:117 (KEY_KPEQUAL) -> adb:81 */
+  [Q_KEY_CODE_KP_MULTIPLY] = 0x43, /* qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> adb:67 */
+  [Q_KEY_CODE_KP_SUBTRACT] = 0x4e, /* qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) -> linux:74 (KEY_KPMINUS) -> adb:78 */
+  [Q_KEY_CODE_L] = 0x25, /* qcode:Q_KEY_CODE_L (l) -> linux:38 (KEY_L) -> adb:37 */
+  [Q_KEY_CODE_LEFT] = 0x3b, /* qcode:Q_KEY_CODE_LEFT (left) -> linux:105 (KEY_LEFT) -> adb:59 */
+  [Q_KEY_CODE_LESS] = 0xff, /* qcode:Q_KEY_CODE_LESS (less) -> linux:86 (KEY_102ND) -> adb:255 */
+  [Q_KEY_CODE_LF] = 0xff, /* qcode:Q_KEY_CODE_LF (lf) -> linux:101 (KEY_LINEFEED) -> adb:255 */
+  [Q_KEY_CODE_M] = 0x2e, /* qcode:Q_KEY_CODE_M (m) -> linux:50 (KEY_M) -> adb:46 */
+  [Q_KEY_CODE_MAIL] = 0xff, /* qcode:Q_KEY_CODE_MAIL (mail) -> linux:155 (KEY_MAIL) -> adb:255 */
+  [Q_KEY_CODE_MEDIASELECT] = 0xff, /* qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) -> linux:226 (KEY_MEDIA) -> adb:255 */
+  [Q_KEY_CODE_MENU] = 0xff, /* qcode:Q_KEY_CODE_MENU (menu) -> linux:139 (KEY_MENU) -> adb:255 */
+  [Q_KEY_CODE_META_L] = 0x37, /* qcode:Q_KEY_CODE_META_L (meta_l) -> linux:125 (KEY_LEFTMETA) -> adb:55 */
+  [Q_KEY_CODE_META_R] = 0x37, /* qcode:Q_KEY_CODE_META_R (meta_r) -> linux:126 (KEY_RIGHTMETA) -> adb:55 */
+  [Q_KEY_CODE_MINUS] = 0x1b, /* qcode:Q_KEY_CODE_MINUS (minus) -> linux:12 (KEY_MINUS) -> adb:27 */
+  [Q_KEY_CODE_N] = 0x2d, /* qcode:Q_KEY_CODE_N (n) -> linux:49 (KEY_N) -> adb:45 */
+  [Q_KEY_CODE_NUM_LOCK] = 0x47, /* qcode:Q_KEY_CODE_NUM_LOCK (num_lock) -> linux:69 (KEY_NUMLOCK) -> adb:71 */
+  [Q_KEY_CODE_O] = 0x1f, /* qcode:Q_KEY_CODE_O (o) -> linux:24 (KEY_O) -> adb:31 */
+  [Q_KEY_CODE_OPEN] = 0xff, /* qcode:Q_KEY_CODE_OPEN (open) -> linux:134 (KEY_OPEN) -> adb:255 */
+  [Q_KEY_CODE_P] = 0x23, /* qcode:Q_KEY_CODE_P (p) -> linux:25 (KEY_P) -> adb:35 */
+  [Q_KEY_CODE_PASTE] = 0xff, /* qcode:Q_KEY_CODE_PASTE (paste) -> linux:135 (KEY_PASTE) -> adb:255 */
+  [Q_KEY_CODE_PAUSE] = 0x71, /* qcode:Q_KEY_CODE_PAUSE (pause) -> linux:119 (KEY_PAUSE) -> adb:113 */
+  [Q_KEY_CODE_PGDN] = 0x79, /* qcode:Q_KEY_CODE_PGDN (pgdn) -> linux:109 (KEY_PAGEDOWN) -> adb:121 */
+  [Q_KEY_CODE_PGUP] = 0x74, /* qcode:Q_KEY_CODE_PGUP (pgup) -> linux:104 (KEY_PAGEUP) -> adb:116 */
+  [Q_KEY_CODE_POWER] = 0x7f7f, /* qcode:Q_KEY_CODE_POWER (power) -> linux:116 (KEY_POWER) -> adb:32639 */
+  [Q_KEY_CODE_PRINT] = 0x69, /* qcode:Q_KEY_CODE_PRINT (sysrq) -> linux:99 (KEY_SYSRQ) -> adb:105 */
+  [Q_KEY_CODE_PROPS] = 0xff, /* qcode:Q_KEY_CODE_PROPS (props) -> linux:130 (KEY_PROPS) -> adb:255 */
+  [Q_KEY_CODE_Q] = 0xc, /* qcode:Q_KEY_CODE_Q (q) -> linux:16 (KEY_Q) -> adb:12 */
+  [Q_KEY_CODE_R] = 0xf, /* qcode:Q_KEY_CODE_R (r) -> linux:19 (KEY_R) -> adb:15 */
+  [Q_KEY_CODE_RET] = 0x24, /* qcode:Q_KEY_CODE_RET (ret) -> linux:28 (KEY_ENTER) -> adb:36 */
+  [Q_KEY_CODE_RIGHT] = 0x3c, /* qcode:Q_KEY_CODE_RIGHT (right) -> linux:106 (KEY_RIGHT) -> adb:60 */
+  [Q_KEY_CODE_RO] = 0xff, /* qcode:Q_KEY_CODE_RO (ro) -> linux:89 (KEY_RO) -> adb:255 */
+  [Q_KEY_CODE_S] = 0x1, /* qcode:Q_KEY_CODE_S (s) -> linux:31 (KEY_S) -> adb:1 */
+  [Q_KEY_CODE_SCROLL_LOCK] = 0x6b, /* qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) -> linux:70 (KEY_SCROLLLOCK) -> adb:107 */
+  [Q_KEY_CODE_SEMICOLON] = 0x29, /* qcode:Q_KEY_CODE_SEMICOLON (semicolon) -> linux:39 (KEY_SEMICOLON) -> adb:41 */
+  [Q_KEY_CODE_SHIFT] = 0x38, /* qcode:Q_KEY_CODE_SHIFT (shift) -> linux:42 (KEY_LEFTSHIFT) -> adb:56 */
+  [Q_KEY_CODE_SHIFT_R] = 0x7b, /* qcode:Q_KEY_CODE_SHIFT_R (shift_r) -> linux:54 (KEY_RIGHTSHIFT) -> adb:123 */
+  [Q_KEY_CODE_SLASH] = 0x2c, /* qcode:Q_KEY_CODE_SLASH (slash) -> linux:53 (KEY_SLASH) -> adb:44 */
+  [Q_KEY_CODE_SLEEP] = 0xff, /* qcode:Q_KEY_CODE_SLEEP (sleep) -> linux:142 (KEY_SLEEP) -> adb:255 */
+  [Q_KEY_CODE_SPC] = 0x31, /* qcode:Q_KEY_CODE_SPC (spc) -> linux:57 (KEY_SPACE) -> adb:49 */
+  [Q_KEY_CODE_STOP] = 0xff, /* qcode:Q_KEY_CODE_STOP (stop) -> linux:128 (KEY_STOP) -> adb:255 */
+  [Q_KEY_CODE_SYSRQ] = 0x69, /* qcode:Q_KEY_CODE_SYSRQ (sysrq) -> linux:99 (KEY_SYSRQ) -> adb:105 */
+  [Q_KEY_CODE_T] = 0x11, /* qcode:Q_KEY_CODE_T (t) -> linux:20 (KEY_T) -> adb:17 */
+  [Q_KEY_CODE_TAB] = 0x30, /* qcode:Q_KEY_CODE_TAB (tab) -> linux:15 (KEY_TAB) -> adb:48 */
+  [Q_KEY_CODE_U] = 0x20, /* qcode:Q_KEY_CODE_U (u) -> linux:22 (KEY_U) -> adb:32 */
+  [Q_KEY_CODE_UNDO] = 0xff, /* qcode:Q_KEY_CODE_UNDO (undo) -> linux:131 (KEY_UNDO) -> adb:255 */
+  [Q_KEY_CODE_UNMAPPED] = 0xff, /* qcode:Q_KEY_CODE_UNMAPPED (unmapped) -> linux:0 (KEY_RESERVED) -> adb:255 */
+  [Q_KEY_CODE_UP] = 0x3e, /* qcode:Q_KEY_CODE_UP (up) -> linux:103 (KEY_UP) -> adb:62 */
+  [Q_KEY_CODE_V] = 0x9, /* qcode:Q_KEY_CODE_V (v) -> linux:47 (KEY_V) -> adb:9 */
+  [Q_KEY_CODE_VOLUMEDOWN] = 0xff, /* qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) -> linux:114 (KEY_VOLUMEDOWN) -> adb:255 */
+  [Q_KEY_CODE_VOLUMEUP] = 0xff, /* qcode:Q_KEY_CODE_VOLUMEUP (volumeup) -> linux:115 (KEY_VOLUMEUP) -> adb:255 */
+  [Q_KEY_CODE_W] = 0xd, /* qcode:Q_KEY_CODE_W (w) -> linux:17 (KEY_W) -> adb:13 */
+  [Q_KEY_CODE_WAKE] = 0xff, /* qcode:Q_KEY_CODE_WAKE (wake) -> linux:143 (KEY_WAKEUP) -> adb:255 */
+  [Q_KEY_CODE_X] = 0x7, /* qcode:Q_KEY_CODE_X (x) -> linux:45 (KEY_X) -> adb:7 */
+  [Q_KEY_CODE_Y] = 0x10, /* qcode:Q_KEY_CODE_Y (y) -> linux:21 (KEY_Y) -> adb:16 */
+  [Q_KEY_CODE_YEN] = 0xff, /* qcode:Q_KEY_CODE_YEN (yen) -> linux:124 (KEY_YEN) -> adb:255 */
+  [Q_KEY_CODE_Z] = 0x6, /* qcode:Q_KEY_CODE_Z (z) -> linux:44 (KEY_Z) -> adb:6 */
+};
+const guint qemu_input_map_qcode_to_adb_len = sizeof(qemu_input_map_qcode_to_adb)/sizeof(qemu_input_map_qcode_to_adb[0]);
diff --git a/ui/input-keymap.c b/ui/input-keymap.c
index d90f6a16f7..5d97a38c42 100644
--- a/ui/input-keymap.c
+++ b/ui/input-keymap.c
@@ -6,6 +6,7 @@
 #include "standard-headers/linux/input.h"
 
 #include "ui/input-keymap-linux-to-qcode.c"
+#include "ui/input-keymap-qcode-to-adb.c"
 #include "ui/input-keymap-qcode-to-atset1.c"
 #include "ui/input-keymap-qcode-to-atset2.c"
 #include "ui/input-keymap-qcode-to-atset3.c"
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [Qemu-devel] [PATCH v5 08/12] char: convert the escc device to keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (6 preceding siblings ...)
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 07/12] input: convert the adb " Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 09/12] ui: convert cocoa frontend " Daniel P. Berrange
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

Replace the qcode_to_keycode table with automatically
generated tables.

Missing entries in qcode_to_keycode now fixed:

 - Q_KEY_CODE_KP_COMMA -> 0x2d

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 hw/char/escc.c     | 126 +++--------------------------------------------------
 include/ui/input.h |   3 ++
 ui/Makefile.objs   |   1 +
 ui/input-keymap.c  |   1 +
 4 files changed, 10 insertions(+), 121 deletions(-)

diff --git a/hw/char/escc.c b/hw/char/escc.c
index 3ab831a6a7..449bf2fc63 100644
--- a/hw/char/escc.c
+++ b/hw/char/escc.c
@@ -717,126 +717,6 @@ MemoryRegion *escc_init(hwaddr base, qemu_irq irqA, qemu_irq irqB,
     return &d->mmio;
 }
 
-static const uint8_t qcode_to_keycode[Q_KEY_CODE__MAX] = {
-    [Q_KEY_CODE_SHIFT]         = 99,
-    [Q_KEY_CODE_SHIFT_R]       = 110,
-    [Q_KEY_CODE_ALT]           = 19,
-    [Q_KEY_CODE_ALT_R]         = 13,
-    [Q_KEY_CODE_CTRL]          = 76,
-    [Q_KEY_CODE_CTRL_R]        = 76,
-    [Q_KEY_CODE_ESC]           = 29,
-    [Q_KEY_CODE_1]             = 30,
-    [Q_KEY_CODE_2]             = 31,
-    [Q_KEY_CODE_3]             = 32,
-    [Q_KEY_CODE_4]             = 33,
-    [Q_KEY_CODE_5]             = 34,
-    [Q_KEY_CODE_6]             = 35,
-    [Q_KEY_CODE_7]             = 36,
-    [Q_KEY_CODE_8]             = 37,
-    [Q_KEY_CODE_9]             = 38,
-    [Q_KEY_CODE_0]             = 39,
-    [Q_KEY_CODE_MINUS]         = 40,
-    [Q_KEY_CODE_EQUAL]         = 41,
-    [Q_KEY_CODE_BACKSPACE]     = 43,
-    [Q_KEY_CODE_TAB]           = 53,
-    [Q_KEY_CODE_Q]             = 54,
-    [Q_KEY_CODE_W]             = 55,
-    [Q_KEY_CODE_E]             = 56,
-    [Q_KEY_CODE_R]             = 57,
-    [Q_KEY_CODE_T]             = 58,
-    [Q_KEY_CODE_Y]             = 59,
-    [Q_KEY_CODE_U]             = 60,
-    [Q_KEY_CODE_I]             = 61,
-    [Q_KEY_CODE_O]             = 62,
-    [Q_KEY_CODE_P]             = 63,
-    [Q_KEY_CODE_BRACKET_LEFT]  = 64,
-    [Q_KEY_CODE_BRACKET_RIGHT] = 65,
-    [Q_KEY_CODE_RET]           = 89,
-    [Q_KEY_CODE_A]             = 77,
-    [Q_KEY_CODE_S]             = 78,
-    [Q_KEY_CODE_D]             = 79,
-    [Q_KEY_CODE_F]             = 80,
-    [Q_KEY_CODE_G]             = 81,
-    [Q_KEY_CODE_H]             = 82,
-    [Q_KEY_CODE_J]             = 83,
-    [Q_KEY_CODE_K]             = 84,
-    [Q_KEY_CODE_L]             = 85,
-    [Q_KEY_CODE_SEMICOLON]     = 86,
-    [Q_KEY_CODE_APOSTROPHE]    = 87,
-    [Q_KEY_CODE_GRAVE_ACCENT]  = 42,
-    [Q_KEY_CODE_BACKSLASH]     = 88,
-    [Q_KEY_CODE_Z]             = 100,
-    [Q_KEY_CODE_X]             = 101,
-    [Q_KEY_CODE_C]             = 102,
-    [Q_KEY_CODE_V]             = 103,
-    [Q_KEY_CODE_B]             = 104,
-    [Q_KEY_CODE_N]             = 105,
-    [Q_KEY_CODE_M]             = 106,
-    [Q_KEY_CODE_COMMA]         = 107,
-    [Q_KEY_CODE_DOT]           = 108,
-    [Q_KEY_CODE_SLASH]         = 109,
-    [Q_KEY_CODE_ASTERISK]      = 47,
-    [Q_KEY_CODE_SPC]           = 121,
-    [Q_KEY_CODE_CAPS_LOCK]     = 119,
-    [Q_KEY_CODE_F1]            = 5,
-    [Q_KEY_CODE_F2]            = 6,
-    [Q_KEY_CODE_F3]            = 8,
-    [Q_KEY_CODE_F4]            = 10,
-    [Q_KEY_CODE_F5]            = 12,
-    [Q_KEY_CODE_F6]            = 14,
-    [Q_KEY_CODE_F7]            = 16,
-    [Q_KEY_CODE_F8]            = 17,
-    [Q_KEY_CODE_F9]            = 18,
-    [Q_KEY_CODE_F10]           = 7,
-    [Q_KEY_CODE_NUM_LOCK]      = 98,
-    [Q_KEY_CODE_SCROLL_LOCK]   = 23,
-    [Q_KEY_CODE_KP_DIVIDE]     = 46,
-    [Q_KEY_CODE_KP_MULTIPLY]   = 47,
-    [Q_KEY_CODE_KP_SUBTRACT]   = 71,
-    [Q_KEY_CODE_KP_ADD]        = 125,
-    [Q_KEY_CODE_KP_ENTER]      = 90,
-    [Q_KEY_CODE_KP_DECIMAL]    = 50,
-    [Q_KEY_CODE_KP_0]          = 94,
-    [Q_KEY_CODE_KP_1]          = 112,
-    [Q_KEY_CODE_KP_2]          = 113,
-    [Q_KEY_CODE_KP_3]          = 114,
-    [Q_KEY_CODE_KP_4]          = 91,
-    [Q_KEY_CODE_KP_5]          = 92,
-    [Q_KEY_CODE_KP_6]          = 93,
-    [Q_KEY_CODE_KP_7]          = 68,
-    [Q_KEY_CODE_KP_8]          = 69,
-    [Q_KEY_CODE_KP_9]          = 70,
-    [Q_KEY_CODE_LESS]          = 124,
-    [Q_KEY_CODE_F11]           = 9,
-    [Q_KEY_CODE_F12]           = 11,
-    [Q_KEY_CODE_HOME]          = 52,
-    [Q_KEY_CODE_PGUP]          = 96,
-    [Q_KEY_CODE_PGDN]          = 123,
-    [Q_KEY_CODE_END]           = 74,
-    [Q_KEY_CODE_LEFT]          = 24,
-    [Q_KEY_CODE_UP]            = 20,
-    [Q_KEY_CODE_DOWN]          = 27,
-    [Q_KEY_CODE_RIGHT]         = 28,
-    [Q_KEY_CODE_INSERT]        = 44,
-    [Q_KEY_CODE_DELETE]        = 66,
-    [Q_KEY_CODE_STOP]          = 1,
-    [Q_KEY_CODE_AGAIN]         = 3,
-    [Q_KEY_CODE_PROPS]         = 25,
-    [Q_KEY_CODE_UNDO]          = 26,
-    [Q_KEY_CODE_FRONT]         = 49,
-    [Q_KEY_CODE_COPY]          = 51,
-    [Q_KEY_CODE_OPEN]          = 72,
-    [Q_KEY_CODE_PASTE]         = 73,
-    [Q_KEY_CODE_FIND]          = 95,
-    [Q_KEY_CODE_CUT]           = 97,
-    [Q_KEY_CODE_LF]            = 111,
-    [Q_KEY_CODE_HELP]          = 118,
-    [Q_KEY_CODE_META_L]        = 120,
-    [Q_KEY_CODE_META_R]        = 122,
-    [Q_KEY_CODE_COMPOSE]       = 67,
-    [Q_KEY_CODE_PRINT]         = 22,
-    [Q_KEY_CODE_SYSRQ]         = 21,
-};
 
 static void sunkbd_handle_event(DeviceState *dev, QemuConsole *src,
                                 InputEvent *evt)
@@ -879,7 +759,11 @@ static void sunkbd_handle_event(DeviceState *dev, QemuConsole *src,
         }
     }
 
-    keycode = qcode_to_keycode[qcode];
+    if (qcode > qemu_input_map_qcode_to_sun_len) {
+        return;
+    }
+
+    keycode = qemu_input_map_qcode_to_sun[qcode];
     if (!key->down) {
         keycode |= 0x80;
     }
diff --git a/include/ui/input.h b/include/ui/input.h
index 4aa5655a0b..4ba7340b7b 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -89,6 +89,9 @@ extern const guint16 qemu_input_map_qcode_to_linux[];
 extern const guint qemu_input_map_qcode_to_qnum_len;
 extern const guint16 qemu_input_map_qcode_to_qnum[];
 
+extern const guint qemu_input_map_qcode_to_sun_len;
+extern const guint16 qemu_input_map_qcode_to_sun[];
+
 extern const guint qemu_input_map_qnum_to_qcode_len;
 extern const guint16 qemu_input_map_qnum_to_qcode[];
 
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index 6846636f39..3cd1122ea9 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -61,6 +61,7 @@ KEYCODEMAP_FILES = \
 		 ui/input-keymap-qcode-to-atset3.c \
 		 ui/input-keymap-qcode-to-linux.c \
 		 ui/input-keymap-qcode-to-qnum.c \
+		 ui/input-keymap-qcode-to-sun.c \
 		 ui/input-keymap-qnum-to-qcode.c \
 		 $(NULL)
 
diff --git a/ui/input-keymap.c b/ui/input-keymap.c
index 5d97a38c42..1b53cb4d0a 100644
--- a/ui/input-keymap.c
+++ b/ui/input-keymap.c
@@ -12,6 +12,7 @@
 #include "ui/input-keymap-qcode-to-atset3.c"
 #include "ui/input-keymap-qcode-to-linux.c"
 #include "ui/input-keymap-qcode-to-qnum.c"
+#include "ui/input-keymap-qcode-to-sun.c"
 #include "ui/input-keymap-qnum-to-qcode.c"
 
 int qemu_input_linux_to_qcode(unsigned int lnx)
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [Qemu-devel] [PATCH v5 09/12] ui: convert cocoa frontend to keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (7 preceding siblings ...)
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 08/12] char: convert the escc " Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 10/12] ui: convert the SDL2 " Daniel P. Berrange
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

Replace the mac_to_qkeycode_map table with automatically
generated table.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 include/ui/input.h             |   3 +
 ui/Makefile.objs               |   1 +
 ui/cocoa.m                     | 129 +----------------------------------------
 ui/input-keymap-osx-to-qcode.c | 128 ++++++++++++++++++++++++++++++++++++++++
 ui/input-keymap.c              |   1 +
 5 files changed, 135 insertions(+), 127 deletions(-)
 create mode 100644 ui/input-keymap-osx-to-qcode.c

diff --git a/include/ui/input.h b/include/ui/input.h
index 4ba7340b7b..df3eb439bf 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -71,6 +71,9 @@ void qemu_remove_mouse_mode_change_notifier(Notifier *notify);
 extern const guint qemu_input_map_linux_to_qcode_len;
 extern const guint16 qemu_input_map_linux_to_qcode[];
 
+extern const guint qemu_input_map_osx_to_qcode_len;
+extern const guint16 qemu_input_map_osx_to_qcode[];
+
 extern const guint qemu_input_map_qcode_to_adb_len;
 extern const guint16 qemu_input_map_qcode_to_adb[];
 
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index 3cd1122ea9..9cf398e5c6 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -55,6 +55,7 @@ KEYCODEMAP_CSV = $(SRC_PATH)/ui/keycodemapdb/data/keymaps.csv
 
 KEYCODEMAP_FILES = \
 		 ui/input-keymap-linux-to-qcode.c \
+		 ui/input-keymap-osx-to-qcode.c \
 		 ui/input-keymap-qcode-to-adb.c \
 		 ui/input-keymap-qcode-to-atset1.c \
 		 ui/input-keymap-qcode-to-atset2.c \
diff --git a/ui/cocoa.m b/ui/cocoa.m
index 93e56d0518..e966605914 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -106,139 +106,14 @@ bool stretch_video;
 NSTextField *pauseLabel;
 NSArray * supportedImageFileTypes;
 
-// Mac to QKeyCode conversion
-const int mac_to_qkeycode_map[] = {
-    [kVK_ANSI_A] = Q_KEY_CODE_A,
-    [kVK_ANSI_B] = Q_KEY_CODE_B,
-    [kVK_ANSI_C] = Q_KEY_CODE_C,
-    [kVK_ANSI_D] = Q_KEY_CODE_D,
-    [kVK_ANSI_E] = Q_KEY_CODE_E,
-    [kVK_ANSI_F] = Q_KEY_CODE_F,
-    [kVK_ANSI_G] = Q_KEY_CODE_G,
-    [kVK_ANSI_H] = Q_KEY_CODE_H,
-    [kVK_ANSI_I] = Q_KEY_CODE_I,
-    [kVK_ANSI_J] = Q_KEY_CODE_J,
-    [kVK_ANSI_K] = Q_KEY_CODE_K,
-    [kVK_ANSI_L] = Q_KEY_CODE_L,
-    [kVK_ANSI_M] = Q_KEY_CODE_M,
-    [kVK_ANSI_N] = Q_KEY_CODE_N,
-    [kVK_ANSI_O] = Q_KEY_CODE_O,
-    [kVK_ANSI_P] = Q_KEY_CODE_P,
-    [kVK_ANSI_Q] = Q_KEY_CODE_Q,
-    [kVK_ANSI_R] = Q_KEY_CODE_R,
-    [kVK_ANSI_S] = Q_KEY_CODE_S,
-    [kVK_ANSI_T] = Q_KEY_CODE_T,
-    [kVK_ANSI_U] = Q_KEY_CODE_U,
-    [kVK_ANSI_V] = Q_KEY_CODE_V,
-    [kVK_ANSI_W] = Q_KEY_CODE_W,
-    [kVK_ANSI_X] = Q_KEY_CODE_X,
-    [kVK_ANSI_Y] = Q_KEY_CODE_Y,
-    [kVK_ANSI_Z] = Q_KEY_CODE_Z,
-
-    [kVK_ANSI_0] = Q_KEY_CODE_0,
-    [kVK_ANSI_1] = Q_KEY_CODE_1,
-    [kVK_ANSI_2] = Q_KEY_CODE_2,
-    [kVK_ANSI_3] = Q_KEY_CODE_3,
-    [kVK_ANSI_4] = Q_KEY_CODE_4,
-    [kVK_ANSI_5] = Q_KEY_CODE_5,
-    [kVK_ANSI_6] = Q_KEY_CODE_6,
-    [kVK_ANSI_7] = Q_KEY_CODE_7,
-    [kVK_ANSI_8] = Q_KEY_CODE_8,
-    [kVK_ANSI_9] = Q_KEY_CODE_9,
-
-    [kVK_ANSI_Grave] = Q_KEY_CODE_GRAVE_ACCENT,
-    [kVK_ANSI_Minus] = Q_KEY_CODE_MINUS,
-    [kVK_ANSI_Equal] = Q_KEY_CODE_EQUAL,
-    [kVK_Delete] = Q_KEY_CODE_BACKSPACE,
-    [kVK_CapsLock] = Q_KEY_CODE_CAPS_LOCK,
-    [kVK_Tab] = Q_KEY_CODE_TAB,
-    [kVK_Return] = Q_KEY_CODE_RET,
-    [kVK_ANSI_LeftBracket] = Q_KEY_CODE_BRACKET_LEFT,
-    [kVK_ANSI_RightBracket] = Q_KEY_CODE_BRACKET_RIGHT,
-    [kVK_ANSI_Backslash] = Q_KEY_CODE_BACKSLASH,
-    [kVK_ANSI_Semicolon] = Q_KEY_CODE_SEMICOLON,
-    [kVK_ANSI_Quote] = Q_KEY_CODE_APOSTROPHE,
-    [kVK_ANSI_Comma] = Q_KEY_CODE_COMMA,
-    [kVK_ANSI_Period] = Q_KEY_CODE_DOT,
-    [kVK_ANSI_Slash] = Q_KEY_CODE_SLASH,
-    [kVK_Shift] = Q_KEY_CODE_SHIFT,
-    [kVK_RightShift] = Q_KEY_CODE_SHIFT_R,
-    [kVK_Control] = Q_KEY_CODE_CTRL,
-    [kVK_RightControl] = Q_KEY_CODE_CTRL_R,
-    [kVK_Option] = Q_KEY_CODE_ALT,
-    [kVK_RightOption] = Q_KEY_CODE_ALT_R,
-    [kVK_Command] = Q_KEY_CODE_META_L,
-    [0x36] = Q_KEY_CODE_META_R, /* There is no kVK_RightCommand */
-    [kVK_Space] = Q_KEY_CODE_SPC,
-
-    [kVK_ANSI_Keypad0] = Q_KEY_CODE_KP_0,
-    [kVK_ANSI_Keypad1] = Q_KEY_CODE_KP_1,
-    [kVK_ANSI_Keypad2] = Q_KEY_CODE_KP_2,
-    [kVK_ANSI_Keypad3] = Q_KEY_CODE_KP_3,
-    [kVK_ANSI_Keypad4] = Q_KEY_CODE_KP_4,
-    [kVK_ANSI_Keypad5] = Q_KEY_CODE_KP_5,
-    [kVK_ANSI_Keypad6] = Q_KEY_CODE_KP_6,
-    [kVK_ANSI_Keypad7] = Q_KEY_CODE_KP_7,
-    [kVK_ANSI_Keypad8] = Q_KEY_CODE_KP_8,
-    [kVK_ANSI_Keypad9] = Q_KEY_CODE_KP_9,
-    [kVK_ANSI_KeypadDecimal] = Q_KEY_CODE_KP_DECIMAL,
-    [kVK_ANSI_KeypadEnter] = Q_KEY_CODE_KP_ENTER,
-    [kVK_ANSI_KeypadPlus] = Q_KEY_CODE_KP_ADD,
-    [kVK_ANSI_KeypadMinus] = Q_KEY_CODE_KP_SUBTRACT,
-    [kVK_ANSI_KeypadMultiply] = Q_KEY_CODE_KP_MULTIPLY,
-    [kVK_ANSI_KeypadDivide] = Q_KEY_CODE_KP_DIVIDE,
-    [kVK_ANSI_KeypadEquals] = Q_KEY_CODE_KP_EQUALS,
-    [kVK_ANSI_KeypadClear] = Q_KEY_CODE_NUM_LOCK,
-
-    [kVK_UpArrow] = Q_KEY_CODE_UP,
-    [kVK_DownArrow] = Q_KEY_CODE_DOWN,
-    [kVK_LeftArrow] = Q_KEY_CODE_LEFT,
-    [kVK_RightArrow] = Q_KEY_CODE_RIGHT,
-
-    [kVK_Help] = Q_KEY_CODE_INSERT,
-    [kVK_Home] = Q_KEY_CODE_HOME,
-    [kVK_PageUp] = Q_KEY_CODE_PGUP,
-    [kVK_PageDown] = Q_KEY_CODE_PGDN,
-    [kVK_End] = Q_KEY_CODE_END,
-    [kVK_ForwardDelete] = Q_KEY_CODE_DELETE,
-
-    [kVK_Escape] = Q_KEY_CODE_ESC,
-
-    /* The Power key can't be used directly because the operating system uses
-     * it. This key can be emulated by using it in place of another key such as
-     * F1. Don't forget to disable the real key binding.
-     */
-    /* [kVK_F1] = Q_KEY_CODE_POWER, */
-
-    [kVK_F1] = Q_KEY_CODE_F1,
-    [kVK_F2] = Q_KEY_CODE_F2,
-    [kVK_F3] = Q_KEY_CODE_F3,
-    [kVK_F4] = Q_KEY_CODE_F4,
-    [kVK_F5] = Q_KEY_CODE_F5,
-    [kVK_F6] = Q_KEY_CODE_F6,
-    [kVK_F7] = Q_KEY_CODE_F7,
-    [kVK_F8] = Q_KEY_CODE_F8,
-    [kVK_F9] = Q_KEY_CODE_F9,
-    [kVK_F10] = Q_KEY_CODE_F10,
-    [kVK_F11] = Q_KEY_CODE_F11,
-    [kVK_F12] = Q_KEY_CODE_F12,
-    [kVK_F13] = Q_KEY_CODE_PRINT,
-    [kVK_F14] = Q_KEY_CODE_SCROLL_LOCK,
-    [kVK_F15] = Q_KEY_CODE_PAUSE,
-
-    /*
-     * The eject and volume keys can't be used here because they are handled at
-     * a lower level than what an Application can see.
-     */
-};
 
 static int cocoa_keycode_to_qemu(int keycode)
 {
-    if (ARRAY_SIZE(mac_to_qkeycode_map) <= keycode) {
+    if (keycode >= qemu_input_map_osx_to_qcode_len) {
         fprintf(stderr, "(cocoa) warning unknown keycode 0x%x\n", keycode);
         return 0;
     }
-    return mac_to_qkeycode_map[keycode];
+    return qemu_input_map_osx_to_qcode[keycode];
 }
 
 /* Displays an alert dialog box with the specified message */
diff --git a/ui/input-keymap-osx-to-qcode.c b/ui/input-keymap-osx-to-qcode.c
new file mode 100644
index 0000000000..450d22fa6d
--- /dev/null
+++ b/ui/input-keymap-osx-to-qcode.c
@@ -0,0 +1,128 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:08
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_osx_to_qcode code-map keymaps.csv osx qcode
+*/
+const guint16 qemu_input_map_osx_to_qcode[256] = {
+  [0x0] = Q_KEY_CODE_A, /* osx:0 (ANSI_A) -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */
+  [0x1] = Q_KEY_CODE_S, /* osx:1 (ANSI_S) -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */
+  [0x2] = Q_KEY_CODE_D, /* osx:2 (ANSI_D) -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */
+  [0x3] = Q_KEY_CODE_F, /* osx:3 (ANSI_F) -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */
+  [0x4] = Q_KEY_CODE_H, /* osx:4 (ANSI_H) -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */
+  [0x5] = Q_KEY_CODE_G, /* osx:5 (ANSI_G) -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */
+  [0x6] = Q_KEY_CODE_Z, /* osx:6 (ANSI_Z) -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */
+  [0x7] = Q_KEY_CODE_X, /* osx:7 (ANSI_X) -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */
+  [0x8] = Q_KEY_CODE_C, /* osx:8 (ANSI_C) -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */
+  [0x9] = Q_KEY_CODE_V, /* osx:9 (ANSI_V) -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */
+  [0xa] = Q_KEY_CODE_UNMAPPED, /* osx:10 (ISO_Section) -> linux:170 (KEY_ISO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb] = Q_KEY_CODE_B, /* osx:11 (ANSI_B) -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */
+  [0xc] = Q_KEY_CODE_Q, /* osx:12 (ANSI_Q) -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */
+  [0xd] = Q_KEY_CODE_W, /* osx:13 (ANSI_W) -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */
+  [0xe] = Q_KEY_CODE_E, /* osx:14 (ANSI_E) -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */
+  [0xf] = Q_KEY_CODE_R, /* osx:15 (ANSI_R) -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */
+  [0x10] = Q_KEY_CODE_Y, /* osx:16 (ANSI_Y) -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */
+  [0x11] = Q_KEY_CODE_T, /* osx:17 (ANSI_T) -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */
+  [0x12] = Q_KEY_CODE_1, /* osx:18 (ANSI_1) -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */
+  [0x13] = Q_KEY_CODE_2, /* osx:19 (ANSI_2) -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */
+  [0x14] = Q_KEY_CODE_3, /* osx:20 (ANSI_3) -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */
+  [0x15] = Q_KEY_CODE_4, /* osx:21 (ANSI_4) -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */
+  [0x16] = Q_KEY_CODE_6, /* osx:22 (ANSI_6) -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */
+  [0x17] = Q_KEY_CODE_5, /* osx:23 (ANSI_5) -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */
+  [0x18] = Q_KEY_CODE_EQUAL, /* osx:24 (ANSI_Equal) -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */
+  [0x19] = Q_KEY_CODE_9, /* osx:25 (ANSI_9) -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */
+  [0x1a] = Q_KEY_CODE_7, /* osx:26 (ANSI_7) -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */
+  [0x1b] = Q_KEY_CODE_MINUS, /* osx:27 (ANSI_Minus) -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */
+  [0x1c] = Q_KEY_CODE_8, /* osx:28 (ANSI_8) -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */
+  [0x1d] = Q_KEY_CODE_0, /* osx:29 (ANSI_0) -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */
+  [0x1e] = Q_KEY_CODE_BRACKET_RIGHT, /* osx:30 (ANSI_RightBracket) -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */
+  [0x1f] = Q_KEY_CODE_O, /* osx:31 (ANSI_O) -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */
+  [0x20] = Q_KEY_CODE_U, /* osx:32 (ANSI_U) -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */
+  [0x21] = Q_KEY_CODE_BRACKET_LEFT, /* osx:33 (ANSI_LeftBracket) -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */
+  [0x22] = Q_KEY_CODE_I, /* osx:34 (ANSI_I) -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */
+  [0x23] = Q_KEY_CODE_P, /* osx:35 (ANSI_P) -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */
+  [0x24] = Q_KEY_CODE_RET, /* osx:36 (Return) -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */
+  [0x25] = Q_KEY_CODE_L, /* osx:37 (ANSI_L) -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */
+  [0x26] = Q_KEY_CODE_J, /* osx:38 (ANSI_J) -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */
+  [0x27] = Q_KEY_CODE_APOSTROPHE, /* osx:39 (ANSI_Quote) -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */
+  [0x28] = Q_KEY_CODE_K, /* osx:40 (ANSI_K) -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */
+  [0x29] = Q_KEY_CODE_SEMICOLON, /* osx:41 (ANSI_Semicolon) -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */
+  [0x2a] = Q_KEY_CODE_BACKSLASH, /* osx:42 (ANSI_Backslash) -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0x2b] = Q_KEY_CODE_COMMA, /* osx:43 (ANSI_Comma) -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */
+  [0x2c] = Q_KEY_CODE_SLASH, /* osx:44 (ANSI_Slash) -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */
+  [0x2d] = Q_KEY_CODE_N, /* osx:45 (ANSI_N) -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */
+  [0x2e] = Q_KEY_CODE_M, /* osx:46 (ANSI_M) -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */
+  [0x2f] = Q_KEY_CODE_DOT, /* osx:47 (ANSI_Period) -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */
+  [0x30] = Q_KEY_CODE_TAB, /* osx:48 (Tab) -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */
+  [0x31] = Q_KEY_CODE_SPC, /* osx:49 (Space) -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */
+  [0x32] = Q_KEY_CODE_GRAVE_ACCENT, /* osx:50 (ANSI_Grave) -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */
+  [0x33] = Q_KEY_CODE_BACKSPACE, /* osx:51 (Delete) -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */
+  [0x35] = Q_KEY_CODE_ESC, /* osx:53 (Escape) -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */
+  [0x36] = Q_KEY_CODE_META_R, /* osx:54 (RightCommand) -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */
+  [0x37] = Q_KEY_CODE_META_L, /* osx:55 (Command) -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */
+  [0x38] = Q_KEY_CODE_SHIFT, /* osx:56 (Shift) -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */
+  [0x39] = Q_KEY_CODE_CAPS_LOCK, /* osx:57 (CapsLock) -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */
+  [0x3a] = Q_KEY_CODE_ALT, /* osx:58 (Option) -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */
+  [0x3b] = Q_KEY_CODE_CTRL, /* osx:59 (Control) -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */
+  [0x3c] = Q_KEY_CODE_SHIFT_R, /* osx:60 (RightShift) -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */
+  [0x3d] = Q_KEY_CODE_ALT_R, /* osx:61 (RightOption) -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */
+  [0x3e] = Q_KEY_CODE_CTRL_R, /* osx:62 (RightControl) -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */
+  [0x3f] = Q_KEY_CODE_UNMAPPED, /* osx:63 (Function) -> linux:464 (KEY_FN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x40] = Q_KEY_CODE_UNMAPPED, /* osx:64 (F17) -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x41] = Q_KEY_CODE_KP_DECIMAL, /* osx:65 (ANSI_KeypadDecimal) -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */
+  [0x43] = Q_KEY_CODE_KP_MULTIPLY, /* osx:67 (ANSI_KeypadMultiply) -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */
+  [0x45] = Q_KEY_CODE_KP_ADD, /* osx:69 (ANSI_KeypadPlus) -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */
+  [0x47] = Q_KEY_CODE_NUM_LOCK, /* osx:71 (ANSI_KeypadClear) -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */
+  [0x48] = Q_KEY_CODE_VOLUMEUP, /* osx:72 (VolumeUp) -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */
+  [0x49] = Q_KEY_CODE_VOLUMEDOWN, /* osx:73 (VolumeDown) -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */
+  [0x4a] = Q_KEY_CODE_AUDIOMUTE, /* osx:74 (Mute) -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */
+  [0x4b] = Q_KEY_CODE_KP_DIVIDE, /* osx:75 (ANSI_KeypadDivide) -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */
+  [0x4c] = Q_KEY_CODE_KP_ENTER, /* osx:76 (ANSI_KeypadEnter) -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */
+  [0x4e] = Q_KEY_CODE_KP_SUBTRACT, /* osx:78 (ANSI_KeypadMinus) -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */
+  [0x4f] = Q_KEY_CODE_UNMAPPED, /* osx:79 (F18) -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x50] = Q_KEY_CODE_UNMAPPED, /* osx:80 (F19) -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x51] = Q_KEY_CODE_KP_EQUALS, /* osx:81 (ANSI_KeypadEquals) -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */
+  [0x52] = Q_KEY_CODE_KP_0, /* osx:82 (ANSI_Keypad0) -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */
+  [0x53] = Q_KEY_CODE_KP_1, /* osx:83 (ANSI_Keypad1) -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */
+  [0x54] = Q_KEY_CODE_KP_2, /* osx:84 (ANSI_Keypad2) -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */
+  [0x55] = Q_KEY_CODE_KP_3, /* osx:85 (ANSI_Keypad3) -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */
+  [0x56] = Q_KEY_CODE_KP_4, /* osx:86 (ANSI_Keypad4) -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */
+  [0x57] = Q_KEY_CODE_KP_5, /* osx:87 (ANSI_Keypad5) -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */
+  [0x58] = Q_KEY_CODE_KP_6, /* osx:88 (ANSI_Keypad6) -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */
+  [0x59] = Q_KEY_CODE_KP_7, /* osx:89 (ANSI_Keypad7) -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */
+  [0x5a] = Q_KEY_CODE_UNMAPPED, /* osx:90 (F20) -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5b] = Q_KEY_CODE_KP_8, /* osx:91 (ANSI_Keypad8) -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */
+  [0x5c] = Q_KEY_CODE_KP_9, /* osx:92 (ANSI_Keypad9) -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */
+  [0x5d] = Q_KEY_CODE_YEN, /* osx:93 (JIS_Yen) -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */
+  [0x5f] = Q_KEY_CODE_UNMAPPED, /* osx:95 (JIS_KeypadComma) -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x60] = Q_KEY_CODE_F5, /* osx:96 (F5) -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */
+  [0x61] = Q_KEY_CODE_F6, /* osx:97 (F6) -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */
+  [0x62] = Q_KEY_CODE_F7, /* osx:98 (F7) -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */
+  [0x63] = Q_KEY_CODE_F3, /* osx:99 (F3) -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */
+  [0x64] = Q_KEY_CODE_F8, /* osx:100 (F8) -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */
+  [0x65] = Q_KEY_CODE_F9, /* osx:101 (F9) -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */
+  [0x67] = Q_KEY_CODE_F11, /* osx:103 (F11) -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */
+  [0x68] = Q_KEY_CODE_UNMAPPED, /* osx:104 (JIS_Kana) -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x69] = Q_KEY_CODE_UNMAPPED, /* osx:105 (F13) -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6a] = Q_KEY_CODE_UNMAPPED, /* osx:106 (F16) -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6b] = Q_KEY_CODE_UNMAPPED, /* osx:107 (F14) -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6d] = Q_KEY_CODE_F10, /* osx:109 (F10) -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */
+  [0x6e] = Q_KEY_CODE_COMPOSE, /* osx:110 (unnamed) -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */
+  [0x6f] = Q_KEY_CODE_F12, /* osx:111 (F12) -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */
+  [0x71] = Q_KEY_CODE_UNMAPPED, /* osx:113 (F15) -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x72] = Q_KEY_CODE_HELP, /* osx:114 (Help) -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */
+  [0x73] = Q_KEY_CODE_HOME, /* osx:115 (Home) -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */
+  [0x74] = Q_KEY_CODE_PGUP, /* osx:116 (PageUp) -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */
+  [0x75] = Q_KEY_CODE_DELETE, /* osx:117 (ForwardDelete) -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */
+  [0x76] = Q_KEY_CODE_F4, /* osx:118 (F4) -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */
+  [0x77] = Q_KEY_CODE_END, /* osx:119 (End) -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */
+  [0x78] = Q_KEY_CODE_F2, /* osx:120 (F2) -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */
+  [0x79] = Q_KEY_CODE_PGDN, /* osx:121 (PageDown) -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */
+  [0x7a] = Q_KEY_CODE_F1, /* osx:122 (F1) -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */
+  [0x7b] = Q_KEY_CODE_LEFT, /* osx:123 (LeftArrow) -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */
+  [0x7c] = Q_KEY_CODE_RIGHT, /* osx:124 (RightArrow) -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */
+  [0x7d] = Q_KEY_CODE_DOWN, /* osx:125 (DownArrow) -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */
+  [0x7e] = Q_KEY_CODE_UP, /* osx:126 (UpArrow) -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */
+  [0xff] = Q_KEY_CODE_UNMAPPED, /* osx:255 (unnamed) -> linux:0 (KEY_RESERVED) -> qcode:Q_KEY_CODE_UNMAPPED (unmapped) */
+};
+const guint qemu_input_map_osx_to_qcode_len = sizeof(qemu_input_map_osx_to_qcode)/sizeof(qemu_input_map_osx_to_qcode[0]);
diff --git a/ui/input-keymap.c b/ui/input-keymap.c
index 1b53cb4d0a..de11205dca 100644
--- a/ui/input-keymap.c
+++ b/ui/input-keymap.c
@@ -6,6 +6,7 @@
 #include "standard-headers/linux/input.h"
 
 #include "ui/input-keymap-linux-to-qcode.c"
+#include "ui/input-keymap-osx-to-qcode.c"
 #include "ui/input-keymap-qcode-to-adb.c"
 #include "ui/input-keymap-qcode-to-atset1.c"
 #include "ui/input-keymap-qcode-to-atset2.c"
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [Qemu-devel] [PATCH v5 10/12] ui: convert the SDL2 frontend to keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (8 preceding siblings ...)
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 09/12] ui: convert cocoa frontend " Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 11/12] ui: convert GTK and SDL1 frontends " Daniel P. Berrange
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

The SDL2 scancodes are conveniently identical to the USB
scancodes. Replace the sdl2_scancode_to_qcode table with
an automatically generated table.

Missing entries in sdl2_scancode_to_qcode now fixed:

  - 0x32 -> Q_KEY_CODE_BACKSLASH
  - 0x66 -> Q_KEY_CODE_POWER
  - 0x67 -> Q_KEY_CODE_KP_EQUALS
  - 0x74 -> Q_KEY_CODE_OPEN
  - 0x77 -> Q_KEY_CODE_FRONT
  - 0x7f -> Q_KEY_CODE_AUDIOMUTE
  - 0x80 -> Q_KEY_CODE_VOLUMEUP
  - 0x81 -> Q_KEY_CODE_VOLUMEDOWN
  - 0x85 -> Q_KEY_CODE_KP_COMMA
  - 0x87 -> Q_KEY_CODE_RO
  - 0x89 -> Q_KEY_CODE_YEN
  - 0x8a -> Q_KEY_CODE_HENKAN
  - 0x93 -> Q_KEY_CODE_HIRAGANA
  - 0xe8 -> Q_KEY_CODE_AUDIOPLAY
  - 0xe9 -> Q_KEY_CODE_AUDIOSTOP
  - 0xea -> Q_KEY_CODE_AUDIOPREV
  - 0xeb -> Q_KEY_CODE_AUDIONEXT
  - 0xed -> Q_KEY_CODE_VOLUMEUP
  - 0xee -> Q_KEY_CODE_VOLUMEDOWN
  - 0xef -> Q_KEY_CODE_AUDIOMUTE
  - 0xf1 -> Q_KEY_CODE_AC_BACK
  - 0xf2 -> Q_KEY_CODE_AC_FORWARD
  - 0xf3 -> Q_KEY_CODE_STOP
  - 0xf4 -> Q_KEY_CODE_FIND
  - 0xf8 -> Q_KEY_CODE_SLEEP
  - 0xfa -> Q_KEY_CODE_AC_REFRESH
  - 0xfb -> Q_KEY_CODE_CALCULATOR

And some mistakes corrected:

  - 0x65 -> Q_KEY_CODE_COMPOSE, not duplicating Q_KEY_CODE_MENU

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 include/ui/input.h             |   3 +
 ui/Makefile.objs               |   1 +
 ui/input-keymap-usb-to-qcode.c | 177 +++++++++++++++++++++++++++
 ui/input-keymap.c              |   1 +
 ui/sdl2-input.c                |  16 ++-
 ui/sdl2-keymap.h               | 267 -----------------------------------------
 6 files changed, 193 insertions(+), 272 deletions(-)
 create mode 100644 ui/input-keymap-usb-to-qcode.c
 delete mode 100644 ui/sdl2-keymap.h

diff --git a/include/ui/input.h b/include/ui/input.h
index df3eb439bf..dcf7e0e731 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -98,4 +98,7 @@ extern const guint16 qemu_input_map_qcode_to_sun[];
 extern const guint qemu_input_map_qnum_to_qcode_len;
 extern const guint16 qemu_input_map_qnum_to_qcode[];
 
+extern const guint qemu_input_map_usb_to_qcode_len;
+extern const guint16 qemu_input_map_usb_to_qcode[];
+
 #endif /* INPUT_H */
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index 9cf398e5c6..7823e85d7c 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -64,6 +64,7 @@ KEYCODEMAP_FILES = \
 		 ui/input-keymap-qcode-to-qnum.c \
 		 ui/input-keymap-qcode-to-sun.c \
 		 ui/input-keymap-qnum-to-qcode.c \
+		 ui/input-keymap-usb-to-qcode.c \
 		 $(NULL)
 
 # Generated input-keymap-XXX.c files are kept in GIT, so
diff --git a/ui/input-keymap-usb-to-qcode.c b/ui/input-keymap-usb-to-qcode.c
new file mode 100644
index 0000000000..b63c351ec7
--- /dev/null
+++ b/ui/input-keymap-usb-to-qcode.c
@@ -0,0 +1,177 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:08
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_usb_to_qcode code-map keymaps.csv usb qcode
+*/
+const guint16 qemu_input_map_usb_to_qcode[252] = {
+  [0x4] = Q_KEY_CODE_A, /* usb:4 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */
+  [0x5] = Q_KEY_CODE_B, /* usb:5 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */
+  [0x6] = Q_KEY_CODE_C, /* usb:6 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */
+  [0x7] = Q_KEY_CODE_D, /* usb:7 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */
+  [0x8] = Q_KEY_CODE_E, /* usb:8 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */
+  [0x9] = Q_KEY_CODE_F, /* usb:9 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */
+  [0xa] = Q_KEY_CODE_G, /* usb:10 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */
+  [0xb] = Q_KEY_CODE_H, /* usb:11 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */
+  [0xc] = Q_KEY_CODE_I, /* usb:12 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */
+  [0xd] = Q_KEY_CODE_J, /* usb:13 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */
+  [0xe] = Q_KEY_CODE_K, /* usb:14 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */
+  [0xf] = Q_KEY_CODE_L, /* usb:15 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */
+  [0x10] = Q_KEY_CODE_M, /* usb:16 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */
+  [0x11] = Q_KEY_CODE_N, /* usb:17 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */
+  [0x12] = Q_KEY_CODE_O, /* usb:18 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */
+  [0x13] = Q_KEY_CODE_P, /* usb:19 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */
+  [0x14] = Q_KEY_CODE_Q, /* usb:20 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */
+  [0x15] = Q_KEY_CODE_R, /* usb:21 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */
+  [0x16] = Q_KEY_CODE_S, /* usb:22 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */
+  [0x17] = Q_KEY_CODE_T, /* usb:23 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */
+  [0x18] = Q_KEY_CODE_U, /* usb:24 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */
+  [0x19] = Q_KEY_CODE_V, /* usb:25 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */
+  [0x1a] = Q_KEY_CODE_W, /* usb:26 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */
+  [0x1b] = Q_KEY_CODE_X, /* usb:27 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */
+  [0x1c] = Q_KEY_CODE_Y, /* usb:28 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */
+  [0x1d] = Q_KEY_CODE_Z, /* usb:29 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */
+  [0x1e] = Q_KEY_CODE_1, /* usb:30 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */
+  [0x1f] = Q_KEY_CODE_2, /* usb:31 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */
+  [0x20] = Q_KEY_CODE_3, /* usb:32 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */
+  [0x21] = Q_KEY_CODE_4, /* usb:33 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */
+  [0x22] = Q_KEY_CODE_5, /* usb:34 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */
+  [0x23] = Q_KEY_CODE_6, /* usb:35 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */
+  [0x24] = Q_KEY_CODE_7, /* usb:36 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */
+  [0x25] = Q_KEY_CODE_8, /* usb:37 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */
+  [0x26] = Q_KEY_CODE_9, /* usb:38 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */
+  [0x27] = Q_KEY_CODE_0, /* usb:39 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */
+  [0x28] = Q_KEY_CODE_RET, /* usb:40 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */
+  [0x29] = Q_KEY_CODE_ESC, /* usb:41 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */
+  [0x2a] = Q_KEY_CODE_BACKSPACE, /* usb:42 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */
+  [0x2b] = Q_KEY_CODE_TAB, /* usb:43 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */
+  [0x2c] = Q_KEY_CODE_SPC, /* usb:44 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */
+  [0x2d] = Q_KEY_CODE_MINUS, /* usb:45 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */
+  [0x2e] = Q_KEY_CODE_EQUAL, /* usb:46 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */
+  [0x2f] = Q_KEY_CODE_BRACKET_LEFT, /* usb:47 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */
+  [0x30] = Q_KEY_CODE_BRACKET_RIGHT, /* usb:48 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */
+  [0x31] = Q_KEY_CODE_BACKSLASH, /* usb:49 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0x32] = Q_KEY_CODE_BACKSLASH, /* usb:50 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0x33] = Q_KEY_CODE_SEMICOLON, /* usb:51 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */
+  [0x34] = Q_KEY_CODE_APOSTROPHE, /* usb:52 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */
+  [0x35] = Q_KEY_CODE_GRAVE_ACCENT, /* usb:53 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */
+  [0x36] = Q_KEY_CODE_COMMA, /* usb:54 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */
+  [0x37] = Q_KEY_CODE_DOT, /* usb:55 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */
+  [0x38] = Q_KEY_CODE_SLASH, /* usb:56 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */
+  [0x39] = Q_KEY_CODE_CAPS_LOCK, /* usb:57 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */
+  [0x3a] = Q_KEY_CODE_F1, /* usb:58 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */
+  [0x3b] = Q_KEY_CODE_F2, /* usb:59 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */
+  [0x3c] = Q_KEY_CODE_F3, /* usb:60 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */
+  [0x3d] = Q_KEY_CODE_F4, /* usb:61 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */
+  [0x3e] = Q_KEY_CODE_F5, /* usb:62 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */
+  [0x3f] = Q_KEY_CODE_F6, /* usb:63 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */
+  [0x40] = Q_KEY_CODE_F7, /* usb:64 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */
+  [0x41] = Q_KEY_CODE_F8, /* usb:65 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */
+  [0x42] = Q_KEY_CODE_F9, /* usb:66 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */
+  [0x43] = Q_KEY_CODE_F10, /* usb:67 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */
+  [0x44] = Q_KEY_CODE_F11, /* usb:68 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */
+  [0x45] = Q_KEY_CODE_F12, /* usb:69 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */
+  [0x46] = Q_KEY_CODE_SYSRQ, /* usb:70 -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */
+  [0x47] = Q_KEY_CODE_SCROLL_LOCK, /* usb:71 -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */
+  [0x48] = Q_KEY_CODE_PAUSE, /* usb:72 -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */
+  [0x49] = Q_KEY_CODE_INSERT, /* usb:73 -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */
+  [0x4a] = Q_KEY_CODE_HOME, /* usb:74 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */
+  [0x4b] = Q_KEY_CODE_PGUP, /* usb:75 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */
+  [0x4c] = Q_KEY_CODE_DELETE, /* usb:76 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */
+  [0x4d] = Q_KEY_CODE_END, /* usb:77 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */
+  [0x4e] = Q_KEY_CODE_PGDN, /* usb:78 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */
+  [0x4f] = Q_KEY_CODE_RIGHT, /* usb:79 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */
+  [0x50] = Q_KEY_CODE_LEFT, /* usb:80 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */
+  [0x51] = Q_KEY_CODE_DOWN, /* usb:81 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */
+  [0x52] = Q_KEY_CODE_UP, /* usb:82 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */
+  [0x53] = Q_KEY_CODE_NUM_LOCK, /* usb:83 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */
+  [0x54] = Q_KEY_CODE_KP_DIVIDE, /* usb:84 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */
+  [0x55] = Q_KEY_CODE_KP_MULTIPLY, /* usb:85 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */
+  [0x56] = Q_KEY_CODE_KP_SUBTRACT, /* usb:86 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */
+  [0x57] = Q_KEY_CODE_KP_ADD, /* usb:87 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */
+  [0x58] = Q_KEY_CODE_KP_ENTER, /* usb:88 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */
+  [0x59] = Q_KEY_CODE_KP_1, /* usb:89 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */
+  [0x5a] = Q_KEY_CODE_KP_2, /* usb:90 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */
+  [0x5b] = Q_KEY_CODE_KP_3, /* usb:91 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */
+  [0x5c] = Q_KEY_CODE_KP_4, /* usb:92 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */
+  [0x5d] = Q_KEY_CODE_KP_5, /* usb:93 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */
+  [0x5e] = Q_KEY_CODE_KP_6, /* usb:94 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */
+  [0x5f] = Q_KEY_CODE_KP_7, /* usb:95 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */
+  [0x60] = Q_KEY_CODE_KP_8, /* usb:96 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */
+  [0x61] = Q_KEY_CODE_KP_9, /* usb:97 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */
+  [0x62] = Q_KEY_CODE_KP_0, /* usb:98 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */
+  [0x63] = Q_KEY_CODE_KP_DECIMAL, /* usb:99 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */
+  [0x64] = Q_KEY_CODE_LESS, /* usb:100 -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */
+  [0x65] = Q_KEY_CODE_COMPOSE, /* usb:101 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */
+  [0x66] = Q_KEY_CODE_POWER, /* usb:102 -> linux:116 (KEY_POWER) -> qcode:Q_KEY_CODE_POWER (power) */
+  [0x67] = Q_KEY_CODE_KP_EQUALS, /* usb:103 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */
+  [0x68] = Q_KEY_CODE_UNMAPPED, /* usb:104 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x69] = Q_KEY_CODE_UNMAPPED, /* usb:105 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6a] = Q_KEY_CODE_UNMAPPED, /* usb:106 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6b] = Q_KEY_CODE_UNMAPPED, /* usb:107 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6c] = Q_KEY_CODE_UNMAPPED, /* usb:108 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6d] = Q_KEY_CODE_UNMAPPED, /* usb:109 -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6e] = Q_KEY_CODE_UNMAPPED, /* usb:110 -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6f] = Q_KEY_CODE_UNMAPPED, /* usb:111 -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x70] = Q_KEY_CODE_UNMAPPED, /* usb:112 -> linux:191 (KEY_F21) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x71] = Q_KEY_CODE_UNMAPPED, /* usb:113 -> linux:192 (KEY_F22) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x72] = Q_KEY_CODE_UNMAPPED, /* usb:114 -> linux:193 (KEY_F23) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x73] = Q_KEY_CODE_UNMAPPED, /* usb:115 -> linux:194 (KEY_F24) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x74] = Q_KEY_CODE_OPEN, /* usb:116 -> linux:134 (KEY_OPEN) -> qcode:Q_KEY_CODE_OPEN (open) */
+  [0x75] = Q_KEY_CODE_HELP, /* usb:117 -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */
+  [0x76] = Q_KEY_CODE_MENU, /* usb:118 -> linux:139 (KEY_MENU) -> qcode:Q_KEY_CODE_MENU (menu) */
+  [0x77] = Q_KEY_CODE_FRONT, /* usb:119 -> linux:132 (KEY_FRONT) -> qcode:Q_KEY_CODE_FRONT (front) */
+  [0x78] = Q_KEY_CODE_STOP, /* usb:120 -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */
+  [0x79] = Q_KEY_CODE_AGAIN, /* usb:121 -> linux:129 (KEY_AGAIN) -> qcode:Q_KEY_CODE_AGAIN (again) */
+  [0x7a] = Q_KEY_CODE_UNDO, /* usb:122 -> linux:131 (KEY_UNDO) -> qcode:Q_KEY_CODE_UNDO (undo) */
+  [0x7b] = Q_KEY_CODE_CUT, /* usb:123 -> linux:137 (KEY_CUT) -> qcode:Q_KEY_CODE_CUT (cut) */
+  [0x7c] = Q_KEY_CODE_COPY, /* usb:124 -> linux:133 (KEY_COPY) -> qcode:Q_KEY_CODE_COPY (copy) */
+  [0x7d] = Q_KEY_CODE_PASTE, /* usb:125 -> linux:135 (KEY_PASTE) -> qcode:Q_KEY_CODE_PASTE (paste) */
+  [0x7e] = Q_KEY_CODE_FIND, /* usb:126 -> linux:136 (KEY_FIND) -> qcode:Q_KEY_CODE_FIND (find) */
+  [0x7f] = Q_KEY_CODE_AUDIOMUTE, /* usb:127 -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */
+  [0x80] = Q_KEY_CODE_VOLUMEUP, /* usb:128 -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */
+  [0x81] = Q_KEY_CODE_VOLUMEDOWN, /* usb:129 -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */
+  [0x85] = Q_KEY_CODE_KP_COMMA, /* usb:133 -> linux:121 (KEY_KPCOMMA) -> qcode:Q_KEY_CODE_KP_COMMA (kp_comma) */
+  [0x87] = Q_KEY_CODE_RO, /* usb:135 -> linux:89 (KEY_RO) -> qcode:Q_KEY_CODE_RO (ro) */
+  [0x88] = Q_KEY_CODE_UNMAPPED, /* usb:136 -> linux:93 (KEY_KATAKANAHIRAGANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x89] = Q_KEY_CODE_YEN, /* usb:137 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */
+  [0x8a] = Q_KEY_CODE_HENKAN, /* usb:138 -> linux:92 (KEY_HENKAN) -> qcode:Q_KEY_CODE_HENKAN (henkan) */
+  [0x8b] = Q_KEY_CODE_UNMAPPED, /* usb:139 -> linux:94 (KEY_MUHENKAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x8c] = Q_KEY_CODE_UNMAPPED, /* usb:140 -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x90] = Q_KEY_CODE_UNMAPPED, /* usb:144 -> linux:122 (KEY_HANGEUL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x91] = Q_KEY_CODE_UNMAPPED, /* usb:145 -> linux:123 (KEY_HANJA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x92] = Q_KEY_CODE_UNMAPPED, /* usb:146 -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x93] = Q_KEY_CODE_HIRAGANA, /* usb:147 -> linux:91 (KEY_HIRAGANA) -> qcode:Q_KEY_CODE_HIRAGANA (hiragana) */
+  [0x94] = Q_KEY_CODE_UNMAPPED, /* usb:148 -> linux:85 (KEY_ZENKAKUHANKAKU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb6] = Q_KEY_CODE_UNMAPPED, /* usb:182 -> linux:179 (KEY_KPLEFTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb7] = Q_KEY_CODE_UNMAPPED, /* usb:183 -> linux:180 (KEY_KPRIGHTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe0] = Q_KEY_CODE_CTRL, /* usb:224 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */
+  [0xe1] = Q_KEY_CODE_SHIFT, /* usb:225 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */
+  [0xe2] = Q_KEY_CODE_ALT, /* usb:226 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */
+  [0xe3] = Q_KEY_CODE_META_L, /* usb:227 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */
+  [0xe4] = Q_KEY_CODE_CTRL_R, /* usb:228 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */
+  [0xe5] = Q_KEY_CODE_SHIFT_R, /* usb:229 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */
+  [0xe6] = Q_KEY_CODE_ALT_R, /* usb:230 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */
+  [0xe7] = Q_KEY_CODE_META_R, /* usb:231 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */
+  [0xe8] = Q_KEY_CODE_AUDIOPLAY, /* usb:232 -> linux:164 (KEY_PLAYPAUSE) -> qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) */
+  [0xe9] = Q_KEY_CODE_AUDIOSTOP, /* usb:233 -> linux:166 (KEY_STOPCD) -> qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) */
+  [0xea] = Q_KEY_CODE_AUDIOPREV, /* usb:234 -> linux:165 (KEY_PREVIOUSSONG) -> qcode:Q_KEY_CODE_AUDIOPREV (audioprev) */
+  [0xeb] = Q_KEY_CODE_AUDIONEXT, /* usb:235 -> linux:163 (KEY_NEXTSONG) -> qcode:Q_KEY_CODE_AUDIONEXT (audionext) */
+  [0xec] = Q_KEY_CODE_UNMAPPED, /* usb:236 -> linux:161 (KEY_EJECTCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xed] = Q_KEY_CODE_VOLUMEUP, /* usb:237 -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */
+  [0xee] = Q_KEY_CODE_VOLUMEDOWN, /* usb:238 -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */
+  [0xef] = Q_KEY_CODE_AUDIOMUTE, /* usb:239 -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */
+  [0xf0] = Q_KEY_CODE_UNMAPPED, /* usb:240 -> linux:150 (KEY_WWW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf1] = Q_KEY_CODE_AC_BACK, /* usb:241 -> linux:158 (KEY_BACK) -> qcode:Q_KEY_CODE_AC_BACK (ac_back) */
+  [0xf2] = Q_KEY_CODE_AC_FORWARD, /* usb:242 -> linux:159 (KEY_FORWARD) -> qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) */
+  [0xf3] = Q_KEY_CODE_STOP, /* usb:243 -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */
+  [0xf4] = Q_KEY_CODE_FIND, /* usb:244 -> linux:136 (KEY_FIND) -> qcode:Q_KEY_CODE_FIND (find) */
+  [0xf5] = Q_KEY_CODE_UNMAPPED, /* usb:245 -> linux:177 (KEY_SCROLLUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf6] = Q_KEY_CODE_UNMAPPED, /* usb:246 -> linux:178 (KEY_SCROLLDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf7] = Q_KEY_CODE_UNMAPPED, /* usb:247 -> linux:176 (KEY_EDIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf8] = Q_KEY_CODE_SLEEP, /* usb:248 -> linux:142 (KEY_SLEEP) -> qcode:Q_KEY_CODE_SLEEP (sleep) */
+  [0xf9] = Q_KEY_CODE_UNMAPPED, /* usb:249 -> linux:152 (KEY_SCREENLOCK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfa] = Q_KEY_CODE_AC_REFRESH, /* usb:250 -> linux:173 (KEY_REFRESH) -> qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) */
+  [0xfb] = Q_KEY_CODE_CALCULATOR, /* usb:251 -> linux:140 (KEY_CALC) -> qcode:Q_KEY_CODE_CALCULATOR (calculator) */
+};
+const guint qemu_input_map_usb_to_qcode_len = sizeof(qemu_input_map_usb_to_qcode)/sizeof(qemu_input_map_usb_to_qcode[0]);
diff --git a/ui/input-keymap.c b/ui/input-keymap.c
index de11205dca..ad98b153cf 100644
--- a/ui/input-keymap.c
+++ b/ui/input-keymap.c
@@ -15,6 +15,7 @@
 #include "ui/input-keymap-qcode-to-qnum.c"
 #include "ui/input-keymap-qcode-to-sun.c"
 #include "ui/input-keymap-qnum-to-qcode.c"
+#include "ui/input-keymap-usb-to-qcode.c"
 
 int qemu_input_linux_to_qcode(unsigned int lnx)
 {
diff --git a/ui/sdl2-input.c b/ui/sdl2-input.c
index 6e315ae800..605d781971 100644
--- a/ui/sdl2-input.c
+++ b/ui/sdl2-input.c
@@ -30,8 +30,6 @@
 #include "ui/sdl2.h"
 #include "sysemu/sysemu.h"
 
-#include "sdl2-keymap.h"
-
 static uint8_t modifiers_state[SDL_NUM_SCANCODES];
 
 void sdl2_reset_keys(struct sdl2_console *scon)
@@ -39,9 +37,11 @@ void sdl2_reset_keys(struct sdl2_console *scon)
     QemuConsole *con = scon ? scon->dcl.con : NULL;
     int i;
 
-    for (i = 0; i < SDL_NUM_SCANCODES; i++) {
+    for (i = 0 ;
+         i < SDL_NUM_SCANCODES && i < qemu_input_map_usb_to_qcode_len ;
+         i++) {
         if (modifiers_state[i]) {
-            int qcode = sdl2_scancode_to_qcode[i];
+            int qcode = qemu_input_map_usb_to_qcode[i];
             qemu_input_event_send_key_qcode(con, qcode, false);
             modifiers_state[i] = 0;
         }
@@ -51,9 +51,15 @@ void sdl2_reset_keys(struct sdl2_console *scon)
 void sdl2_process_key(struct sdl2_console *scon,
                       SDL_KeyboardEvent *ev)
 {
-    int qcode = sdl2_scancode_to_qcode[ev->keysym.scancode];
+    int qcode;
     QemuConsole *con = scon ? scon->dcl.con : NULL;
 
+    if (ev->keysym.scancode >= qemu_input_map_usb_to_qcode_len) {
+        return;
+    }
+
+    qcode = qemu_input_map_usb_to_qcode[ev->keysym.scancode];
+
     if (!qemu_console_is_graphic(con)) {
         if (ev->type == SDL_KEYDOWN) {
             switch (ev->keysym.scancode) {
diff --git a/ui/sdl2-keymap.h b/ui/sdl2-keymap.h
deleted file mode 100644
index cbedaa477d..0000000000
--- a/ui/sdl2-keymap.h
+++ /dev/null
@@ -1,267 +0,0 @@
-
-/* map SDL2 scancodes to QKeyCode */
-
-static const int sdl2_scancode_to_qcode[SDL_NUM_SCANCODES] = {
-    [SDL_SCANCODE_A]                 = Q_KEY_CODE_A,
-    [SDL_SCANCODE_B]                 = Q_KEY_CODE_B,
-    [SDL_SCANCODE_C]                 = Q_KEY_CODE_C,
-    [SDL_SCANCODE_D]                 = Q_KEY_CODE_D,
-    [SDL_SCANCODE_E]                 = Q_KEY_CODE_E,
-    [SDL_SCANCODE_F]                 = Q_KEY_CODE_F,
-    [SDL_SCANCODE_G]                 = Q_KEY_CODE_G,
-    [SDL_SCANCODE_H]                 = Q_KEY_CODE_H,
-    [SDL_SCANCODE_I]                 = Q_KEY_CODE_I,
-    [SDL_SCANCODE_J]                 = Q_KEY_CODE_J,
-    [SDL_SCANCODE_K]                 = Q_KEY_CODE_K,
-    [SDL_SCANCODE_L]                 = Q_KEY_CODE_L,
-    [SDL_SCANCODE_M]                 = Q_KEY_CODE_M,
-    [SDL_SCANCODE_N]                 = Q_KEY_CODE_N,
-    [SDL_SCANCODE_O]                 = Q_KEY_CODE_O,
-    [SDL_SCANCODE_P]                 = Q_KEY_CODE_P,
-    [SDL_SCANCODE_Q]                 = Q_KEY_CODE_Q,
-    [SDL_SCANCODE_R]                 = Q_KEY_CODE_R,
-    [SDL_SCANCODE_S]                 = Q_KEY_CODE_S,
-    [SDL_SCANCODE_T]                 = Q_KEY_CODE_T,
-    [SDL_SCANCODE_U]                 = Q_KEY_CODE_U,
-    [SDL_SCANCODE_V]                 = Q_KEY_CODE_V,
-    [SDL_SCANCODE_W]                 = Q_KEY_CODE_W,
-    [SDL_SCANCODE_X]                 = Q_KEY_CODE_X,
-    [SDL_SCANCODE_Y]                 = Q_KEY_CODE_Y,
-    [SDL_SCANCODE_Z]                 = Q_KEY_CODE_Z,
-
-    [SDL_SCANCODE_1]                 = Q_KEY_CODE_1,
-    [SDL_SCANCODE_2]                 = Q_KEY_CODE_2,
-    [SDL_SCANCODE_3]                 = Q_KEY_CODE_3,
-    [SDL_SCANCODE_4]                 = Q_KEY_CODE_4,
-    [SDL_SCANCODE_5]                 = Q_KEY_CODE_5,
-    [SDL_SCANCODE_6]                 = Q_KEY_CODE_6,
-    [SDL_SCANCODE_7]                 = Q_KEY_CODE_7,
-    [SDL_SCANCODE_8]                 = Q_KEY_CODE_8,
-    [SDL_SCANCODE_9]                 = Q_KEY_CODE_9,
-    [SDL_SCANCODE_0]                 = Q_KEY_CODE_0,
-
-    [SDL_SCANCODE_RETURN]            = Q_KEY_CODE_RET,
-    [SDL_SCANCODE_ESCAPE]            = Q_KEY_CODE_ESC,
-    [SDL_SCANCODE_BACKSPACE]         = Q_KEY_CODE_BACKSPACE,
-    [SDL_SCANCODE_TAB]               = Q_KEY_CODE_TAB,
-    [SDL_SCANCODE_SPACE]             = Q_KEY_CODE_SPC,
-    [SDL_SCANCODE_MINUS]             = Q_KEY_CODE_MINUS,
-    [SDL_SCANCODE_EQUALS]            = Q_KEY_CODE_EQUAL,
-    [SDL_SCANCODE_LEFTBRACKET]       = Q_KEY_CODE_BRACKET_LEFT,
-    [SDL_SCANCODE_RIGHTBRACKET]      = Q_KEY_CODE_BRACKET_RIGHT,
-    [SDL_SCANCODE_BACKSLASH]         = Q_KEY_CODE_BACKSLASH,
-#if 0
-    [SDL_SCANCODE_NONUSHASH]         = Q_KEY_CODE_NONUSHASH,
-#endif
-    [SDL_SCANCODE_SEMICOLON]         = Q_KEY_CODE_SEMICOLON,
-    [SDL_SCANCODE_APOSTROPHE]        = Q_KEY_CODE_APOSTROPHE,
-    [SDL_SCANCODE_GRAVE]             = Q_KEY_CODE_GRAVE_ACCENT,
-    [SDL_SCANCODE_COMMA]             = Q_KEY_CODE_COMMA,
-    [SDL_SCANCODE_PERIOD]            = Q_KEY_CODE_DOT,
-    [SDL_SCANCODE_SLASH]             = Q_KEY_CODE_SLASH,
-    [SDL_SCANCODE_CAPSLOCK]          = Q_KEY_CODE_CAPS_LOCK,
-
-    [SDL_SCANCODE_F1]                = Q_KEY_CODE_F1,
-    [SDL_SCANCODE_F2]                = Q_KEY_CODE_F2,
-    [SDL_SCANCODE_F3]                = Q_KEY_CODE_F3,
-    [SDL_SCANCODE_F4]                = Q_KEY_CODE_F4,
-    [SDL_SCANCODE_F5]                = Q_KEY_CODE_F5,
-    [SDL_SCANCODE_F6]                = Q_KEY_CODE_F6,
-    [SDL_SCANCODE_F7]                = Q_KEY_CODE_F7,
-    [SDL_SCANCODE_F8]                = Q_KEY_CODE_F8,
-    [SDL_SCANCODE_F9]                = Q_KEY_CODE_F9,
-    [SDL_SCANCODE_F10]               = Q_KEY_CODE_F10,
-    [SDL_SCANCODE_F11]               = Q_KEY_CODE_F11,
-    [SDL_SCANCODE_F12]               = Q_KEY_CODE_F12,
-
-    [SDL_SCANCODE_PRINTSCREEN]       = Q_KEY_CODE_PRINT,
-    [SDL_SCANCODE_SCROLLLOCK]        = Q_KEY_CODE_SCROLL_LOCK,
-    [SDL_SCANCODE_PAUSE]             = Q_KEY_CODE_PAUSE,
-    [SDL_SCANCODE_INSERT]            = Q_KEY_CODE_INSERT,
-    [SDL_SCANCODE_HOME]              = Q_KEY_CODE_HOME,
-    [SDL_SCANCODE_PAGEUP]            = Q_KEY_CODE_PGUP,
-    [SDL_SCANCODE_DELETE]            = Q_KEY_CODE_DELETE,
-    [SDL_SCANCODE_END]               = Q_KEY_CODE_END,
-    [SDL_SCANCODE_PAGEDOWN]          = Q_KEY_CODE_PGDN,
-    [SDL_SCANCODE_RIGHT]             = Q_KEY_CODE_RIGHT,
-    [SDL_SCANCODE_LEFT]              = Q_KEY_CODE_LEFT,
-    [SDL_SCANCODE_DOWN]              = Q_KEY_CODE_DOWN,
-    [SDL_SCANCODE_UP]                = Q_KEY_CODE_UP,
-    [SDL_SCANCODE_NUMLOCKCLEAR]      = Q_KEY_CODE_NUM_LOCK,
-
-    [SDL_SCANCODE_KP_DIVIDE]         = Q_KEY_CODE_KP_DIVIDE,
-    [SDL_SCANCODE_KP_MULTIPLY]       = Q_KEY_CODE_KP_MULTIPLY,
-    [SDL_SCANCODE_KP_MINUS]          = Q_KEY_CODE_KP_SUBTRACT,
-    [SDL_SCANCODE_KP_PLUS]           = Q_KEY_CODE_KP_ADD,
-    [SDL_SCANCODE_KP_ENTER]          = Q_KEY_CODE_KP_ENTER,
-    [SDL_SCANCODE_KP_1]              = Q_KEY_CODE_KP_1,
-    [SDL_SCANCODE_KP_2]              = Q_KEY_CODE_KP_2,
-    [SDL_SCANCODE_KP_3]              = Q_KEY_CODE_KP_3,
-    [SDL_SCANCODE_KP_4]              = Q_KEY_CODE_KP_4,
-    [SDL_SCANCODE_KP_5]              = Q_KEY_CODE_KP_5,
-    [SDL_SCANCODE_KP_6]              = Q_KEY_CODE_KP_6,
-    [SDL_SCANCODE_KP_7]              = Q_KEY_CODE_KP_7,
-    [SDL_SCANCODE_KP_8]              = Q_KEY_CODE_KP_8,
-    [SDL_SCANCODE_KP_9]              = Q_KEY_CODE_KP_9,
-    [SDL_SCANCODE_KP_0]              = Q_KEY_CODE_KP_0,
-    [SDL_SCANCODE_KP_PERIOD]         = Q_KEY_CODE_KP_DECIMAL,
-
-    [SDL_SCANCODE_NONUSBACKSLASH]    = Q_KEY_CODE_LESS,
-    [SDL_SCANCODE_APPLICATION]       = Q_KEY_CODE_MENU,
-#if 0
-    [SDL_SCANCODE_POWER]             = Q_KEY_CODE_POWER,
-    [SDL_SCANCODE_KP_EQUALS]         = Q_KEY_CODE_KP_EQUALS,
-
-    [SDL_SCANCODE_F13]               = Q_KEY_CODE_F13,
-    [SDL_SCANCODE_F14]               = Q_KEY_CODE_F14,
-    [SDL_SCANCODE_F15]               = Q_KEY_CODE_F15,
-    [SDL_SCANCODE_F16]               = Q_KEY_CODE_F16,
-    [SDL_SCANCODE_F17]               = Q_KEY_CODE_F17,
-    [SDL_SCANCODE_F18]               = Q_KEY_CODE_F18,
-    [SDL_SCANCODE_F19]               = Q_KEY_CODE_F19,
-    [SDL_SCANCODE_F20]               = Q_KEY_CODE_F20,
-    [SDL_SCANCODE_F21]               = Q_KEY_CODE_F21,
-    [SDL_SCANCODE_F22]               = Q_KEY_CODE_F22,
-    [SDL_SCANCODE_F23]               = Q_KEY_CODE_F23,
-    [SDL_SCANCODE_F24]               = Q_KEY_CODE_F24,
-
-    [SDL_SCANCODE_EXECUTE]           = Q_KEY_CODE_EXECUTE,
-#endif
-    [SDL_SCANCODE_HELP]              = Q_KEY_CODE_HELP,
-    [SDL_SCANCODE_MENU]              = Q_KEY_CODE_MENU,
-#if 0
-    [SDL_SCANCODE_SELECT]            = Q_KEY_CODE_SELECT,
-#endif
-    [SDL_SCANCODE_STOP]              = Q_KEY_CODE_STOP,
-    [SDL_SCANCODE_AGAIN]             = Q_KEY_CODE_AGAIN,
-    [SDL_SCANCODE_UNDO]              = Q_KEY_CODE_UNDO,
-    [SDL_SCANCODE_CUT]               = Q_KEY_CODE_CUT,
-    [SDL_SCANCODE_COPY]              = Q_KEY_CODE_COPY,
-    [SDL_SCANCODE_PASTE]             = Q_KEY_CODE_PASTE,
-    [SDL_SCANCODE_FIND]              = Q_KEY_CODE_FIND,
-#if 0
-    [SDL_SCANCODE_MUTE]              = Q_KEY_CODE_MUTE,
-    [SDL_SCANCODE_VOLUMEUP]          = Q_KEY_CODE_VOLUMEUP,
-    [SDL_SCANCODE_VOLUMEDOWN]        = Q_KEY_CODE_VOLUMEDOWN,
-
-    [SDL_SCANCODE_KP_COMMA]          = Q_KEY_CODE_KP_COMMA,
-    [SDL_SCANCODE_KP_EQUALSAS400]    = Q_KEY_CODE_KP_EQUALSAS400,
-
-    [SDL_SCANCODE_INTERNATIONAL1]    = Q_KEY_CODE_INTERNATIONAL1,
-    [SDL_SCANCODE_INTERNATIONAL2]    = Q_KEY_CODE_INTERNATIONAL2,
-    [SDL_SCANCODE_INTERNATIONAL3]    = Q_KEY_CODE_INTERNATIONAL3,
-    [SDL_SCANCODE_INTERNATIONAL4]    = Q_KEY_CODE_INTERNATIONAL4,
-    [SDL_SCANCODE_INTERNATIONAL5]    = Q_KEY_CODE_INTERNATIONAL5,
-    [SDL_SCANCODE_INTERNATIONAL6]    = Q_KEY_CODE_INTERNATIONAL6,
-    [SDL_SCANCODE_INTERNATIONAL7]    = Q_KEY_CODE_INTERNATIONAL7,
-    [SDL_SCANCODE_INTERNATIONAL8]    = Q_KEY_CODE_INTERNATIONAL8,
-    [SDL_SCANCODE_INTERNATIONAL9]    = Q_KEY_CODE_INTERNATIONAL9,
-    [SDL_SCANCODE_LANG1]             = Q_KEY_CODE_LANG1,
-    [SDL_SCANCODE_LANG2]             = Q_KEY_CODE_LANG2,
-    [SDL_SCANCODE_LANG3]             = Q_KEY_CODE_LANG3,
-    [SDL_SCANCODE_LANG4]             = Q_KEY_CODE_LANG4,
-    [SDL_SCANCODE_LANG5]             = Q_KEY_CODE_LANG5,
-    [SDL_SCANCODE_LANG6]             = Q_KEY_CODE_LANG6,
-    [SDL_SCANCODE_LANG7]             = Q_KEY_CODE_LANG7,
-    [SDL_SCANCODE_LANG8]             = Q_KEY_CODE_LANG8,
-    [SDL_SCANCODE_LANG9]             = Q_KEY_CODE_LANG9,
-    [SDL_SCANCODE_ALTERASE]          = Q_KEY_CODE_ALTERASE,
-#endif
-    [SDL_SCANCODE_SYSREQ]            = Q_KEY_CODE_SYSRQ,
-#if 0
-    [SDL_SCANCODE_CANCEL]            = Q_KEY_CODE_CANCEL,
-    [SDL_SCANCODE_CLEAR]             = Q_KEY_CODE_CLEAR,
-    [SDL_SCANCODE_PRIOR]             = Q_KEY_CODE_PRIOR,
-    [SDL_SCANCODE_RETURN2]           = Q_KEY_CODE_RETURN2,
-    [SDL_SCANCODE_SEPARATOR]         = Q_KEY_CODE_SEPARATOR,
-    [SDL_SCANCODE_OUT]               = Q_KEY_CODE_OUT,
-    [SDL_SCANCODE_OPER]              = Q_KEY_CODE_OPER,
-    [SDL_SCANCODE_CLEARAGAIN]        = Q_KEY_CODE_CLEARAGAIN,
-    [SDL_SCANCODE_CRSEL]             = Q_KEY_CODE_CRSEL,
-    [SDL_SCANCODE_EXSEL]             = Q_KEY_CODE_EXSEL,
-    [SDL_SCANCODE_KP_00]             = Q_KEY_CODE_KP_00,
-    [SDL_SCANCODE_KP_000]            = Q_KEY_CODE_KP_000,
-    [SDL_SCANCODE_THOUSANDSSEPARATOR] = Q_KEY_CODE_THOUSANDSSEPARATOR,
-    [SDL_SCANCODE_DECIMALSEPARATOR]  = Q_KEY_CODE_DECIMALSEPARATOR,
-    [SDL_SCANCODE_CURRENCYUNIT]      = Q_KEY_CODE_CURRENCYUNIT,
-    [SDL_SCANCODE_CURRENCYSUBUNIT]   = Q_KEY_CODE_CURRENCYSUBUNIT,
-    [SDL_SCANCODE_KP_LEFTPAREN]      = Q_KEY_CODE_KP_LEFTPAREN,
-    [SDL_SCANCODE_KP_RIGHTPAREN]     = Q_KEY_CODE_KP_RIGHTPAREN,
-    [SDL_SCANCODE_KP_LEFTBRACE]      = Q_KEY_CODE_KP_LEFTBRACE,
-    [SDL_SCANCODE_KP_RIGHTBRACE]     = Q_KEY_CODE_KP_RIGHTBRACE,
-    [SDL_SCANCODE_KP_TAB]            = Q_KEY_CODE_KP_TAB,
-    [SDL_SCANCODE_KP_BACKSPACE]      = Q_KEY_CODE_KP_BACKSPACE,
-    [SDL_SCANCODE_KP_A]              = Q_KEY_CODE_KP_A,
-    [SDL_SCANCODE_KP_B]              = Q_KEY_CODE_KP_B,
-    [SDL_SCANCODE_KP_C]              = Q_KEY_CODE_KP_C,
-    [SDL_SCANCODE_KP_D]              = Q_KEY_CODE_KP_D,
-    [SDL_SCANCODE_KP_E]              = Q_KEY_CODE_KP_E,
-    [SDL_SCANCODE_KP_F]              = Q_KEY_CODE_KP_F,
-    [SDL_SCANCODE_KP_XOR]            = Q_KEY_CODE_KP_XOR,
-    [SDL_SCANCODE_KP_POWER]          = Q_KEY_CODE_KP_POWER,
-    [SDL_SCANCODE_KP_PERCENT]        = Q_KEY_CODE_KP_PERCENT,
-    [SDL_SCANCODE_KP_LESS]           = Q_KEY_CODE_KP_LESS,
-    [SDL_SCANCODE_KP_GREATER]        = Q_KEY_CODE_KP_GREATER,
-    [SDL_SCANCODE_KP_AMPERSAND]      = Q_KEY_CODE_KP_AMPERSAND,
-    [SDL_SCANCODE_KP_DBLAMPERSAND]   = Q_KEY_CODE_KP_DBLAMPERSAND,
-    [SDL_SCANCODE_KP_VERTICALBAR]    = Q_KEY_CODE_KP_VERTICALBAR,
-    [SDL_SCANCODE_KP_DBLVERTICALBAR] = Q_KEY_CODE_KP_DBLVERTICALBAR,
-    [SDL_SCANCODE_KP_COLON]          = Q_KEY_CODE_KP_COLON,
-    [SDL_SCANCODE_KP_HASH]           = Q_KEY_CODE_KP_HASH,
-    [SDL_SCANCODE_KP_SPACE]          = Q_KEY_CODE_KP_SPACE,
-    [SDL_SCANCODE_KP_AT]             = Q_KEY_CODE_KP_AT,
-    [SDL_SCANCODE_KP_EXCLAM]         = Q_KEY_CODE_KP_EXCLAM,
-    [SDL_SCANCODE_KP_MEMSTORE]       = Q_KEY_CODE_KP_MEMSTORE,
-    [SDL_SCANCODE_KP_MEMRECALL]      = Q_KEY_CODE_KP_MEMRECALL,
-    [SDL_SCANCODE_KP_MEMCLEAR]       = Q_KEY_CODE_KP_MEMCLEAR,
-    [SDL_SCANCODE_KP_MEMADD]         = Q_KEY_CODE_KP_MEMADD,
-    [SDL_SCANCODE_KP_MEMSUBTRACT]    = Q_KEY_CODE_KP_MEMSUBTRACT,
-    [SDL_SCANCODE_KP_MEMMULTIPLY]    = Q_KEY_CODE_KP_MEMMULTIPLY,
-    [SDL_SCANCODE_KP_MEMDIVIDE]      = Q_KEY_CODE_KP_MEMDIVIDE,
-    [SDL_SCANCODE_KP_PLUSMINUS]      = Q_KEY_CODE_KP_PLUSMINUS,
-    [SDL_SCANCODE_KP_CLEAR]          = Q_KEY_CODE_KP_CLEAR,
-    [SDL_SCANCODE_KP_CLEARENTRY]     = Q_KEY_CODE_KP_CLEARENTRY,
-    [SDL_SCANCODE_KP_BINARY]         = Q_KEY_CODE_KP_BINARY,
-    [SDL_SCANCODE_KP_OCTAL]          = Q_KEY_CODE_KP_OCTAL,
-    [SDL_SCANCODE_KP_DECIMAL]        = Q_KEY_CODE_KP_DECIMAL,
-    [SDL_SCANCODE_KP_HEXADECIMAL]    = Q_KEY_CODE_KP_HEXADECIMAL,
-#endif
-    [SDL_SCANCODE_LCTRL]             = Q_KEY_CODE_CTRL,
-    [SDL_SCANCODE_LSHIFT]            = Q_KEY_CODE_SHIFT,
-    [SDL_SCANCODE_LALT]              = Q_KEY_CODE_ALT,
-    [SDL_SCANCODE_LGUI]              = Q_KEY_CODE_META_L,
-    [SDL_SCANCODE_RCTRL]             = Q_KEY_CODE_CTRL_R,
-    [SDL_SCANCODE_RSHIFT]            = Q_KEY_CODE_SHIFT_R,
-    [SDL_SCANCODE_RALT]              = Q_KEY_CODE_ALT_R,
-    [SDL_SCANCODE_RGUI]              = Q_KEY_CODE_META_R,
-#if 0
-    [SDL_SCANCODE_MODE]              = Q_KEY_CODE_MODE,
-    [SDL_SCANCODE_AUDIONEXT]         = Q_KEY_CODE_AUDIONEXT,
-    [SDL_SCANCODE_AUDIOPREV]         = Q_KEY_CODE_AUDIOPREV,
-    [SDL_SCANCODE_AUDIOSTOP]         = Q_KEY_CODE_AUDIOSTOP,
-    [SDL_SCANCODE_AUDIOPLAY]         = Q_KEY_CODE_AUDIOPLAY,
-    [SDL_SCANCODE_AUDIOMUTE]         = Q_KEY_CODE_AUDIOMUTE,
-    [SDL_SCANCODE_MEDIASELECT]       = Q_KEY_CODE_MEDIASELECT,
-    [SDL_SCANCODE_WWW]               = Q_KEY_CODE_WWW,
-    [SDL_SCANCODE_MAIL]              = Q_KEY_CODE_MAIL,
-    [SDL_SCANCODE_CALCULATOR]        = Q_KEY_CODE_CALCULATOR,
-    [SDL_SCANCODE_COMPUTER]          = Q_KEY_CODE_COMPUTER,
-    [SDL_SCANCODE_AC_SEARCH]         = Q_KEY_CODE_AC_SEARCH,
-    [SDL_SCANCODE_AC_HOME]           = Q_KEY_CODE_AC_HOME,
-    [SDL_SCANCODE_AC_BACK]           = Q_KEY_CODE_AC_BACK,
-    [SDL_SCANCODE_AC_FORWARD]        = Q_KEY_CODE_AC_FORWARD,
-    [SDL_SCANCODE_AC_STOP]           = Q_KEY_CODE_AC_STOP,
-    [SDL_SCANCODE_AC_REFRESH]        = Q_KEY_CODE_AC_REFRESH,
-    [SDL_SCANCODE_AC_BOOKMARKS]      = Q_KEY_CODE_AC_BOOKMARKS,
-    [SDL_SCANCODE_BRIGHTNESSDOWN]    = Q_KEY_CODE_BRIGHTNESSDOWN,
-    [SDL_SCANCODE_BRIGHTNESSUP]      = Q_KEY_CODE_BRIGHTNESSUP,
-    [SDL_SCANCODE_DISPLAYSWITCH]     = Q_KEY_CODE_DISPLAYSWITCH,
-    [SDL_SCANCODE_KBDILLUMTOGGLE]    = Q_KEY_CODE_KBDILLUMTOGGLE,
-    [SDL_SCANCODE_KBDILLUMDOWN]      = Q_KEY_CODE_KBDILLUMDOWN,
-    [SDL_SCANCODE_KBDILLUMUP]        = Q_KEY_CODE_KBDILLUMUP,
-    [SDL_SCANCODE_EJECT]             = Q_KEY_CODE_EJECT,
-    [SDL_SCANCODE_SLEEP]             = Q_KEY_CODE_SLEEP,
-    [SDL_SCANCODE_APP1]              = Q_KEY_CODE_APP1,
-    [SDL_SCANCODE_APP2]              = Q_KEY_CODE_APP2,
-#endif
-};
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [Qemu-devel] [PATCH v5 11/12] ui: convert GTK and SDL1 frontends to keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (9 preceding siblings ...)
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 10/12] ui: convert the SDL2 " Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 12/12] display: convert XenInput keyboard " Daniel P. Berrange
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

The x_keycode_to_pc_keycode and evdev_keycode_to_pc_keycode
tables are replaced with automatically generated tables.
In addition the X11 heuristics are improved to detect running
on XQuartz and XWin X11 servers, to activate the correct OS-X
and Win32 keycode maps.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 include/ui/input.h                     |  21 ++
 ui/Makefile.objs                       |  12 +-
 ui/gtk.c                               | 205 +++++++++------
 ui/input-keymap-atset1-to-qcode.c      | 245 +++++++++++++++++
 ui/input-keymap-win32-to-qcode.c       | 157 +++++++++++
 ui/input-keymap-x11-to-qcode.c         | 163 ++++++++++++
 ui/input-keymap-xorgevdev-to-qcode.c   | 463 +++++++++++++++++++++++++++++++++
 ui/input-keymap-xorgkbd-to-qcode.c     | 122 +++++++++
 ui/input-keymap-xorgxquartz-to-qcode.c | 128 +++++++++
 ui/input-keymap-xorgxwin-to-qcode.c    | 122 +++++++++
 ui/input-keymap.c                      |   7 +
 ui/sdl.c                               | 105 +++-----
 ui/trace-events                        |   9 +-
 ui/x_keymap.c                          | 250 +++++++-----------
 ui/x_keymap.h                          |   8 +-
 15 files changed, 1700 insertions(+), 317 deletions(-)
 create mode 100644 ui/input-keymap-atset1-to-qcode.c
 create mode 100644 ui/input-keymap-win32-to-qcode.c
 create mode 100644 ui/input-keymap-x11-to-qcode.c
 create mode 100644 ui/input-keymap-xorgevdev-to-qcode.c
 create mode 100644 ui/input-keymap-xorgkbd-to-qcode.c
 create mode 100644 ui/input-keymap-xorgxquartz-to-qcode.c
 create mode 100644 ui/input-keymap-xorgxwin-to-qcode.c

diff --git a/include/ui/input.h b/include/ui/input.h
index dcf7e0e731..1c1731ef18 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -68,6 +68,9 @@ void qemu_input_check_mode_change(void);
 void qemu_add_mouse_mode_change_notifier(Notifier *notify);
 void qemu_remove_mouse_mode_change_notifier(Notifier *notify);
 
+extern const guint qemu_input_map_atset1_to_qcode_len;
+extern const guint16 qemu_input_map_atset1_to_qcode[];
+
 extern const guint qemu_input_map_linux_to_qcode_len;
 extern const guint16 qemu_input_map_linux_to_qcode[];
 
@@ -101,4 +104,22 @@ extern const guint16 qemu_input_map_qnum_to_qcode[];
 extern const guint qemu_input_map_usb_to_qcode_len;
 extern const guint16 qemu_input_map_usb_to_qcode[];
 
+extern const guint qemu_input_map_win32_to_qcode_len;
+extern const guint16 qemu_input_map_win32_to_qcode[];
+
+extern const guint qemu_input_map_x11_to_qcode_len;
+extern const guint16 qemu_input_map_x11_to_qcode[];
+
+extern const guint qemu_input_map_xorgevdev_to_qcode_len;
+extern const guint16 qemu_input_map_xorgevdev_to_qcode[];
+
+extern const guint qemu_input_map_xorgkbd_to_qcode_len;
+extern const guint16 qemu_input_map_xorgkbd_to_qcode[];
+
+extern const guint qemu_input_map_xorgxquartz_to_qcode_len;
+extern const guint16 qemu_input_map_xorgxquartz_to_qcode[];
+
+extern const guint qemu_input_map_xorgxwin_to_qcode_len;
+extern const guint16 qemu_input_map_xorgxwin_to_qcode[];
+
 #endif /* INPUT_H */
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index 7823e85d7c..b6512e3dc2 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -11,11 +11,12 @@ common-obj-y += keymaps.o console.o cursor.o qemu-pixman.o
 common-obj-y += input.o input-keymap.o input-legacy.o
 common-obj-$(CONFIG_LINUX) += input-linux.o
 common-obj-$(CONFIG_SPICE) += spice-core.o spice-input.o spice-display.o
-common-obj-$(CONFIG_SDL) += sdl.mo x_keymap.o
+common-obj-$(CONFIG_SDL) += sdl.mo
 common-obj-$(CONFIG_COCOA) += cocoa.o
 common-obj-$(CONFIG_CURSES) += curses.o
 common-obj-$(CONFIG_VNC) += $(vnc-obj-y)
-common-obj-$(CONFIG_GTK) += gtk.o x_keymap.o
+common-obj-$(CONFIG_GTK) += gtk.o
+common-obj-$(if $(CONFIG_WIN32),n,$(if $(CONFIG_SDL),y,$(CONFIG_GTK))) += x_keymap.o
 
 ifeq ($(CONFIG_SDLABI),1.2)
 sdl.mo-objs := sdl.o sdl_zoom.o
@@ -54,6 +55,7 @@ KEYCODEMAP_GEN = $(SRC_PATH)/ui/keycodemapdb/tools/keymap-gen
 KEYCODEMAP_CSV = $(SRC_PATH)/ui/keycodemapdb/data/keymaps.csv
 
 KEYCODEMAP_FILES = \
+		 ui/input-keymap-atset1-to-qcode.c \
 		 ui/input-keymap-linux-to-qcode.c \
 		 ui/input-keymap-osx-to-qcode.c \
 		 ui/input-keymap-qcode-to-adb.c \
@@ -65,6 +67,12 @@ KEYCODEMAP_FILES = \
 		 ui/input-keymap-qcode-to-sun.c \
 		 ui/input-keymap-qnum-to-qcode.c \
 		 ui/input-keymap-usb-to-qcode.c \
+		 ui/input-keymap-win32-to-qcode.c \
+		 ui/input-keymap-x11-to-qcode.c \
+		 ui/input-keymap-xorgevdev-to-qcode.c \
+		 ui/input-keymap-xorgkbd-to-qcode.c \
+		 ui/input-keymap-xorgxquartz-to-qcode.c \
+		 ui/input-keymap-xorgxwin-to-qcode.c \
 		 $(NULL)
 
 # Generated input-keymap-XXX.c files are kept in GIT, so
diff --git a/ui/gtk.c b/ui/gtk.c
index 5bd87c265a..398f3aad81 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -52,7 +52,6 @@
 #include "ui/input.h"
 #include "sysemu/sysemu.h"
 #include "qmp-commands.h"
-#include "x_keymap.h"
 #include "keymaps.h"
 #include "chardev/char.h"
 #include "qom/object.h"
@@ -65,6 +64,48 @@
 #define VC_SCALE_MIN    0.25
 #define VC_SCALE_STEP   0.25
 
+#ifdef GDK_WINDOWING_X11
+#include "ui/x_keymap.h"
+
+/* Gtk2 compat */
+#ifndef GDK_IS_X11_DISPLAY
+#define GDK_IS_X11_DISPLAY(dpy) (dpy != NULL)
+#endif
+#endif
+
+
+#ifdef GDK_WINDOWING_WAYLAND
+/* Gtk2 compat */
+#ifndef GDK_IS_WAYLAND_DISPLAY
+#define GDK_IS_WAYLAND_DISPLAY(dpy) (dpy != NULL)
+#endif
+#endif
+
+
+#ifdef GDK_WINDOWING_WIN32
+/* Gtk2 compat */
+#ifndef GDK_IS_WIN32_DISPLAY
+#define GDK_IS_WIN32_DISPLAY(dpy) (dpy != NULL)
+#endif
+#endif
+
+
+#ifdef GDK_WINDOWING_BROADWAY
+/* Gtk2 compat */
+#ifndef GDK_IS_BROADWAY_DISPLAY
+#define GDK_IS_BROADWAY_DISPLAY(dpy) (dpy != NULL)
+#endif
+#endif
+
+
+#ifdef GDK_WINDOWING_QUARTZ
+/* Gtk2 compat */
+#ifndef GDK_IS_QUARTZ_DISPLAY
+#define GDK_IS_QUARTZ_DISPLAY(dpy) (dpy != NULL)
+#endif
+#endif
+
+
 #if !defined(CONFIG_VTE)
 # define VTE_CHECK_VERSION(a, b, c) 0
 #endif
@@ -123,10 +164,19 @@
 #define HOTKEY_MODIFIERS        (GDK_CONTROL_MASK | GDK_MOD1_MASK)
 
 static const int modifier_keycode[] = {
-    /* shift, control, alt keys, meta keys, both left & right */
-    0x2a, 0x36, 0x1d, 0x9d, 0x38, 0xb8, 0xdb, 0xdd,
+    Q_KEY_CODE_SHIFT,
+    Q_KEY_CODE_SHIFT_R,
+    Q_KEY_CODE_CTRL,
+    Q_KEY_CODE_CTRL_R,
+    Q_KEY_CODE_ALT,
+    Q_KEY_CODE_ALT_R,
+    Q_KEY_CODE_META_L,
+    Q_KEY_CODE_META_R,
 };
 
+static const guint16 *keycode_map;
+static size_t keycode_maplen;
+
 struct GtkDisplayState {
     GtkWidget *window;
 
@@ -178,7 +228,6 @@ struct GtkDisplayState {
     bool external_pause_update;
 
     bool modifier_pressed[ARRAY_SIZE(modifier_keycode)];
-    bool has_evdev;
     bool ignore_keys;
 };
 
@@ -412,18 +461,18 @@ static void gd_update_full_redraw(VirtualConsole *vc)
 static void gtk_release_modifiers(GtkDisplayState *s)
 {
     VirtualConsole *vc = gd_vc_find_current(s);
-    int i, keycode;
+    int i, qcode;
 
     if (vc->type != GD_VC_GFX ||
         !qemu_console_is_graphic(vc->gfx.dcl.con)) {
         return;
     }
     for (i = 0; i < ARRAY_SIZE(modifier_keycode); i++) {
-        keycode = modifier_keycode[i];
+        qcode = modifier_keycode[i];
         if (!s->modifier_pressed[i]) {
             continue;
         }
-        qemu_input_event_send_key_number(vc->gfx.dcl.con, keycode, false);
+        qemu_input_event_send_key_qcode(vc->gfx.dcl.con, qcode, false);
         s->modifier_pressed[i] = false;
     }
 }
@@ -1057,47 +1106,75 @@ static gboolean gd_scroll_event(GtkWidget *widget, GdkEventScroll *scroll,
     return TRUE;
 }
 
-static int gd_map_keycode(GtkDisplayState *s, GdkDisplay *dpy, int gdk_keycode)
+
+static const guint16 *gd_get_keymap(size_t *maplen)
 {
-    int qemu_keycode;
+    GdkDisplay *dpy = gdk_display_get_default();
+
+#ifdef GDK_WINDOWING_X11
+    if (GDK_IS_X11_DISPLAY(dpy)) {
+        trace_gd_keymap_windowing("x11");
+        return qemu_xkeymap_mapping_table(
+            gdk_x11_display_get_xdisplay(dpy), maplen);
+    }
+#endif
+
+#ifdef GDK_WINDOWING_WAYLAND
+    if (GDK_IS_WAYLAND_DISPLAY(dpy)) {
+        trace_gd_keymap_windowing("wayland");
+        *maplen = qemu_input_map_xorgevdev_to_qcode_len;
+        return qemu_input_map_xorgevdev_to_qcode;
+    }
+#endif
 
 #ifdef GDK_WINDOWING_WIN32
     if (GDK_IS_WIN32_DISPLAY(dpy)) {
-        qemu_keycode = MapVirtualKey(gdk_keycode, MAPVK_VK_TO_VSC);
-        switch (qemu_keycode) {
-        case 103:   /* alt gr */
-            qemu_keycode = 56 | SCANCODE_GREY;
-            break;
-        }
-        return qemu_keycode;
+        trace_gd_keymap_windowing("win32");
+        *maplen = qemu_input_map_win32_to_qcode_len;
+        return qemu_input_map_win32_to_qcode;
     }
 #endif
 
-    if (gdk_keycode < 9) {
-        qemu_keycode = 0;
-    } else if (gdk_keycode < 97) {
-        qemu_keycode = gdk_keycode - 8;
-#ifdef GDK_WINDOWING_X11
-    } else if (GDK_IS_X11_DISPLAY(dpy) && gdk_keycode < 158) {
-        if (s->has_evdev) {
-            qemu_keycode = translate_evdev_keycode(gdk_keycode - 97);
-        } else {
-            qemu_keycode = translate_xfree86_keycode(gdk_keycode - 97);
-        }
+#ifdef GDK_WINDOWING_QUARTZ
+    if (GDK_IS_QUARTZ_DISPLAY(dpy)) {
+        trace_gd_keymap_windowing("quartz");
+        *maplen = qemu_input_map_osx_to_qcode_len;
+        return qemu_input_map_osx_to_qcode;
+    }
 #endif
-#ifdef GDK_WINDOWING_WAYLAND
-    } else if (GDK_IS_WAYLAND_DISPLAY(dpy) && gdk_keycode < 158) {
-        qemu_keycode = translate_evdev_keycode(gdk_keycode - 97);
+
+#ifdef GDK_WINDOWING_BROADWAY
+    if (GDK_IS_BROADWAY_DISPLAY(dpy)) {
+        trace_gd_keymap_windowing("broadway");
+        g_warning("experimental: using broadway, x11 virtual keysym\n"
+                  "mapping - with very limited support. See also\n"
+                  "https://bugzilla.gnome.org/show_bug.cgi?id=700105");
+        *maplen = qemu_input_map_x11_to_qcode_len;
+        return qemu_input_map_x11_to_qcode;
+    }
 #endif
-    } else if (gdk_keycode == 208) { /* Hiragana_Katakana */
-        qemu_keycode = 0x70;
-    } else if (gdk_keycode == 211) { /* backslash */
-        qemu_keycode = 0x73;
-    } else {
-        qemu_keycode = 0;
+
+    g_warning("Unsupported GDK Windowing platform.\n"
+              "Disabling extended keycode tables.\n"
+              "Please report to qemu-devel@nongnu.org\n"
+              "including the following information:\n"
+              "\n"
+              "  - Operating system\n"
+              "  - GDK Windowing system build\n");
+    return NULL;
+}
+
+
+static int gd_map_keycode(int scancode)
+{
+    if (!keycode_map) {
+        return 0;
+    }
+    if (scancode > keycode_maplen) {
+        return 0;
     }
 
-    return qemu_keycode;
+    return keycode_map[scancode];
 }
 
 static gboolean gd_text_key_down(GtkWidget *widget,
@@ -1111,9 +1188,7 @@ static gboolean gd_text_key_down(GtkWidget *widget,
     } else if (key->length) {
         kbd_put_string_console(con, key->string, key->length);
     } else {
-        int num = gd_map_keycode(vc->s, gtk_widget_get_display(widget),
-                                 key->hardware_keycode);
-        int qcode = qemu_input_key_number_to_qcode(num);
+        int qcode = gd_map_keycode(key->hardware_keycode);
         kbd_put_qcode_console(con, qcode);
     }
     return TRUE;
@@ -1123,8 +1198,7 @@ static gboolean gd_key_event(GtkWidget *widget, GdkEventKey *key, void *opaque)
 {
     VirtualConsole *vc = opaque;
     GtkDisplayState *s = vc->s;
-    int gdk_keycode = key->hardware_keycode;
-    int qemu_keycode;
+    int qcode;
     int i;
 
     if (s->ignore_keys) {
@@ -1138,20 +1212,19 @@ static gboolean gd_key_event(GtkWidget *widget, GdkEventKey *key, void *opaque)
         return TRUE;
     }
 
-    qemu_keycode = gd_map_keycode(s, gtk_widget_get_display(widget),
-                                  gdk_keycode);
+    qcode = gd_map_keycode(key->hardware_keycode);
 
-    trace_gd_key_event(vc->label, gdk_keycode, qemu_keycode,
+    trace_gd_key_event(vc->label, key->hardware_keycode, qcode,
                        (key->type == GDK_KEY_PRESS) ? "down" : "up");
 
     for (i = 0; i < ARRAY_SIZE(modifier_keycode); i++) {
-        if (qemu_keycode == modifier_keycode[i]) {
+        if (qcode == modifier_keycode[i]) {
             s->modifier_pressed[i] = (key->type == GDK_KEY_PRESS);
         }
     }
 
-    qemu_input_event_send_key_number(vc->gfx.dcl.con, qemu_keycode,
-                                     key->type == GDK_KEY_PRESS);
+    qemu_input_event_send_key_qcode(vc->gfx.dcl.con, qcode,
+                                    key->type == GDK_KEY_PRESS);
 
     return TRUE;
 }
@@ -2195,38 +2268,6 @@ static void gd_create_menus(GtkDisplayState *s)
     gtk_window_add_accel_group(GTK_WINDOW(s->window), s->accel_group);
 }
 
-static void gd_set_keycode_type(GtkDisplayState *s)
-{
-#ifdef GDK_WINDOWING_X11
-    GdkDisplay *display = gtk_widget_get_display(s->window);
-    if (GDK_IS_X11_DISPLAY(display)) {
-        Display *x11_display = gdk_x11_display_get_xdisplay(display);
-        XkbDescPtr desc = XkbGetMap(x11_display, XkbGBN_AllComponentsMask,
-                                    XkbUseCoreKbd);
-        char *keycodes = NULL;
-
-        if (desc &&
-            (XkbGetNames(x11_display, XkbKeycodesNameMask, desc) == Success)) {
-            keycodes = XGetAtomName(x11_display, desc->names->keycodes);
-        }
-        if (keycodes == NULL) {
-            fprintf(stderr, "could not lookup keycode name\n");
-        } else if (strstart(keycodes, "evdev", NULL)) {
-            s->has_evdev = true;
-        } else if (!strstart(keycodes, "xfree86", NULL)) {
-            fprintf(stderr, "unknown keycodes `%s', please report to "
-                    "qemu-devel@nongnu.org\n", keycodes);
-        }
-
-        if (desc) {
-            XkbFreeKeyboard(desc, XkbGBN_AllComponentsMask, True);
-        }
-        if (keycodes) {
-            XFree(keycodes);
-        }
-    }
-#endif
-}
 
 static gboolean gtkinit;
 
@@ -2329,8 +2370,6 @@ void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover)
     if (grab_on_hover) {
         gtk_menu_item_activate(GTK_MENU_ITEM(s->grab_on_hover_item));
     }
-
-    gd_set_keycode_type(s);
 }
 
 void early_gtk_display_init(int opengl)
@@ -2377,6 +2416,8 @@ void early_gtk_display_init(int opengl)
         break;
     }
 
+    keycode_map = gd_get_keymap(&keycode_maplen);
+
 #if defined(CONFIG_VTE)
     type_register(&char_gd_vc_type_info);
 #endif
diff --git a/ui/input-keymap-atset1-to-qcode.c b/ui/input-keymap-atset1-to-qcode.c
new file mode 100644
index 0000000000..7882724e36
--- /dev/null
+++ b/ui/input-keymap-atset1-to-qcode.c
@@ -0,0 +1,245 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:08
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_atset1_to_qcode code-map keymaps.csv atset1 qcode
+*/
+const guint16 qemu_input_map_atset1_to_qcode[57470] = {
+  [0x1] = Q_KEY_CODE_ESC, /* atset1:1 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */
+  [0x2] = Q_KEY_CODE_1, /* atset1:2 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */
+  [0x3] = Q_KEY_CODE_2, /* atset1:3 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */
+  [0x4] = Q_KEY_CODE_3, /* atset1:4 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */
+  [0x5] = Q_KEY_CODE_4, /* atset1:5 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */
+  [0x6] = Q_KEY_CODE_5, /* atset1:6 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */
+  [0x7] = Q_KEY_CODE_6, /* atset1:7 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */
+  [0x8] = Q_KEY_CODE_7, /* atset1:8 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */
+  [0x9] = Q_KEY_CODE_8, /* atset1:9 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */
+  [0xa] = Q_KEY_CODE_9, /* atset1:10 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */
+  [0xb] = Q_KEY_CODE_0, /* atset1:11 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */
+  [0xc] = Q_KEY_CODE_MINUS, /* atset1:12 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */
+  [0xd] = Q_KEY_CODE_EQUAL, /* atset1:13 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */
+  [0xe] = Q_KEY_CODE_BACKSPACE, /* atset1:14 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */
+  [0xf] = Q_KEY_CODE_TAB, /* atset1:15 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */
+  [0x10] = Q_KEY_CODE_Q, /* atset1:16 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */
+  [0x11] = Q_KEY_CODE_W, /* atset1:17 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */
+  [0x12] = Q_KEY_CODE_E, /* atset1:18 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */
+  [0x13] = Q_KEY_CODE_R, /* atset1:19 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */
+  [0x14] = Q_KEY_CODE_T, /* atset1:20 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */
+  [0x15] = Q_KEY_CODE_Y, /* atset1:21 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */
+  [0x16] = Q_KEY_CODE_U, /* atset1:22 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */
+  [0x17] = Q_KEY_CODE_I, /* atset1:23 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */
+  [0x18] = Q_KEY_CODE_O, /* atset1:24 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */
+  [0x19] = Q_KEY_CODE_P, /* atset1:25 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */
+  [0x1a] = Q_KEY_CODE_BRACKET_LEFT, /* atset1:26 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */
+  [0x1b] = Q_KEY_CODE_BRACKET_RIGHT, /* atset1:27 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */
+  [0x1c] = Q_KEY_CODE_RET, /* atset1:28 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */
+  [0x1d] = Q_KEY_CODE_CTRL, /* atset1:29 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */
+  [0x1e] = Q_KEY_CODE_A, /* atset1:30 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */
+  [0x1f] = Q_KEY_CODE_S, /* atset1:31 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */
+  [0x20] = Q_KEY_CODE_D, /* atset1:32 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */
+  [0x21] = Q_KEY_CODE_F, /* atset1:33 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */
+  [0x22] = Q_KEY_CODE_G, /* atset1:34 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */
+  [0x23] = Q_KEY_CODE_H, /* atset1:35 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */
+  [0x24] = Q_KEY_CODE_J, /* atset1:36 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */
+  [0x25] = Q_KEY_CODE_K, /* atset1:37 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */
+  [0x26] = Q_KEY_CODE_L, /* atset1:38 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */
+  [0x27] = Q_KEY_CODE_SEMICOLON, /* atset1:39 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */
+  [0x28] = Q_KEY_CODE_APOSTROPHE, /* atset1:40 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */
+  [0x29] = Q_KEY_CODE_GRAVE_ACCENT, /* atset1:41 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */
+  [0x2a] = Q_KEY_CODE_SHIFT, /* atset1:42 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */
+  [0x2b] = Q_KEY_CODE_BACKSLASH, /* atset1:43 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0x2c] = Q_KEY_CODE_Z, /* atset1:44 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */
+  [0x2d] = Q_KEY_CODE_X, /* atset1:45 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */
+  [0x2e] = Q_KEY_CODE_C, /* atset1:46 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */
+  [0x2f] = Q_KEY_CODE_V, /* atset1:47 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */
+  [0x30] = Q_KEY_CODE_B, /* atset1:48 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */
+  [0x31] = Q_KEY_CODE_N, /* atset1:49 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */
+  [0x32] = Q_KEY_CODE_M, /* atset1:50 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */
+  [0x33] = Q_KEY_CODE_COMMA, /* atset1:51 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */
+  [0x34] = Q_KEY_CODE_DOT, /* atset1:52 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */
+  [0x35] = Q_KEY_CODE_SLASH, /* atset1:53 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */
+  [0x36] = Q_KEY_CODE_SHIFT_R, /* atset1:54 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */
+  [0x37] = Q_KEY_CODE_KP_MULTIPLY, /* atset1:55 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */
+  [0x38] = Q_KEY_CODE_ALT, /* atset1:56 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */
+  [0x39] = Q_KEY_CODE_SPC, /* atset1:57 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */
+  [0x3a] = Q_KEY_CODE_CAPS_LOCK, /* atset1:58 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */
+  [0x3b] = Q_KEY_CODE_F1, /* atset1:59 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */
+  [0x3c] = Q_KEY_CODE_F2, /* atset1:60 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */
+  [0x3d] = Q_KEY_CODE_F3, /* atset1:61 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */
+  [0x3e] = Q_KEY_CODE_F4, /* atset1:62 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */
+  [0x3f] = Q_KEY_CODE_F5, /* atset1:63 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */
+  [0x40] = Q_KEY_CODE_F6, /* atset1:64 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */
+  [0x41] = Q_KEY_CODE_F7, /* atset1:65 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */
+  [0x42] = Q_KEY_CODE_F8, /* atset1:66 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */
+  [0x43] = Q_KEY_CODE_F9, /* atset1:67 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */
+  [0x44] = Q_KEY_CODE_F10, /* atset1:68 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */
+  [0x45] = Q_KEY_CODE_NUM_LOCK, /* atset1:69 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */
+  [0x46] = Q_KEY_CODE_SCROLL_LOCK, /* atset1:70 -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */
+  [0x47] = Q_KEY_CODE_KP_7, /* atset1:71 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */
+  [0x48] = Q_KEY_CODE_KP_8, /* atset1:72 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */
+  [0x49] = Q_KEY_CODE_KP_9, /* atset1:73 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */
+  [0x4a] = Q_KEY_CODE_KP_SUBTRACT, /* atset1:74 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */
+  [0x4b] = Q_KEY_CODE_KP_4, /* atset1:75 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */
+  [0x4c] = Q_KEY_CODE_KP_5, /* atset1:76 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */
+  [0x4d] = Q_KEY_CODE_KP_6, /* atset1:77 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */
+  [0x4e] = Q_KEY_CODE_KP_ADD, /* atset1:78 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */
+  [0x4f] = Q_KEY_CODE_KP_1, /* atset1:79 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */
+  [0x50] = Q_KEY_CODE_KP_2, /* atset1:80 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */
+  [0x51] = Q_KEY_CODE_KP_3, /* atset1:81 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */
+  [0x52] = Q_KEY_CODE_KP_0, /* atset1:82 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */
+  [0x53] = Q_KEY_CODE_KP_DECIMAL, /* atset1:83 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */
+  [0x54] = Q_KEY_CODE_SYSRQ, /* atset1:84 -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */
+  [0x55] = Q_KEY_CODE_UNMAPPED, /* atset1:85 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x56] = Q_KEY_CODE_LESS, /* atset1:86 -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */
+  [0x57] = Q_KEY_CODE_F11, /* atset1:87 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */
+  [0x58] = Q_KEY_CODE_F12, /* atset1:88 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */
+  [0x59] = Q_KEY_CODE_KP_EQUALS, /* atset1:89 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */
+  [0x5a] = Q_KEY_CODE_UNMAPPED, /* atset1:90 -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5b] = Q_KEY_CODE_LF, /* atset1:91 -> linux:101 (KEY_LINEFEED) -> qcode:Q_KEY_CODE_LF (lf) */
+  [0x5c] = Q_KEY_CODE_UNMAPPED, /* atset1:92 -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5d] = Q_KEY_CODE_UNMAPPED, /* atset1:93 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5e] = Q_KEY_CODE_UNMAPPED, /* atset1:94 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5f] = Q_KEY_CODE_UNMAPPED, /* atset1:95 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x63] = Q_KEY_CODE_UNMAPPED, /* atset1:99 -> linux:169 (KEY_PHONE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x64] = Q_KEY_CODE_OPEN, /* atset1:100 -> linux:134 (KEY_OPEN) -> qcode:Q_KEY_CODE_OPEN (open) */
+  [0x65] = Q_KEY_CODE_PASTE, /* atset1:101 -> linux:135 (KEY_PASTE) -> qcode:Q_KEY_CODE_PASTE (paste) */
+  [0x66] = Q_KEY_CODE_UNMAPPED, /* atset1:102 -> linux:141 (KEY_SETUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x67] = Q_KEY_CODE_UNMAPPED, /* atset1:103 -> linux:144 (KEY_FILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x68] = Q_KEY_CODE_UNMAPPED, /* atset1:104 -> linux:145 (KEY_SENDFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x69] = Q_KEY_CODE_UNMAPPED, /* atset1:105 -> linux:146 (KEY_DELETEFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6a] = Q_KEY_CODE_UNMAPPED, /* atset1:106 -> linux:151 (KEY_MSDOS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6b] = Q_KEY_CODE_UNMAPPED, /* atset1:107 -> linux:153 (KEY_DIRECTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6c] = Q_KEY_CODE_UNMAPPED, /* atset1:108 -> linux:161 (KEY_EJECTCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6d] = Q_KEY_CODE_UNMAPPED, /* atset1:109 -> linux:193 (KEY_F23) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6f] = Q_KEY_CODE_UNMAPPED, /* atset1:111 -> linux:194 (KEY_F24) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x70] = Q_KEY_CODE_UNMAPPED, /* atset1:112 -> linux:170 (KEY_ISO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x71] = Q_KEY_CODE_UNMAPPED, /* atset1:113 -> linux:174 (KEY_EXIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x72] = Q_KEY_CODE_UNMAPPED, /* atset1:114 -> linux:175 (KEY_MOVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x73] = Q_KEY_CODE_RO, /* atset1:115 -> linux:89 (KEY_RO) -> qcode:Q_KEY_CODE_RO (ro) */
+  [0x74] = Q_KEY_CODE_UNMAPPED, /* atset1:116 -> linux:191 (KEY_F21) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x75] = Q_KEY_CODE_UNMAPPED, /* atset1:117 -> linux:177 (KEY_SCROLLUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x76] = Q_KEY_CODE_UNMAPPED, /* atset1:118 -> linux:85 (KEY_ZENKAKUHANKAKU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x77] = Q_KEY_CODE_HIRAGANA, /* atset1:119 -> linux:91 (KEY_HIRAGANA) -> qcode:Q_KEY_CODE_HIRAGANA (hiragana) */
+  [0x78] = Q_KEY_CODE_UNMAPPED, /* atset1:120 -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x79] = Q_KEY_CODE_HENKAN, /* atset1:121 -> linux:92 (KEY_HENKAN) -> qcode:Q_KEY_CODE_HENKAN (henkan) */
+  [0x7b] = Q_KEY_CODE_UNMAPPED, /* atset1:123 -> linux:94 (KEY_MUHENKAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7d] = Q_KEY_CODE_YEN, /* atset1:125 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */
+  [0x7e] = Q_KEY_CODE_KP_COMMA, /* atset1:126 -> linux:121 (KEY_KPCOMMA) -> qcode:Q_KEY_CODE_KP_COMMA (kp_comma) */
+  [0xe001] = Q_KEY_CODE_UNMAPPED, /* atset1:57345 -> linux:171 (KEY_CONFIG) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe002] = Q_KEY_CODE_UNMAPPED, /* atset1:57346 -> linux:150 (KEY_WWW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe003] = Q_KEY_CODE_UNMAPPED, /* atset1:57347 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe004] = Q_KEY_CODE_UNMAPPED, /* atset1:57348 -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe005] = Q_KEY_CODE_AGAIN, /* atset1:57349 -> linux:129 (KEY_AGAIN) -> qcode:Q_KEY_CODE_AGAIN (again) */
+  [0xe006] = Q_KEY_CODE_PROPS, /* atset1:57350 -> linux:130 (KEY_PROPS) -> qcode:Q_KEY_CODE_PROPS (props) */
+  [0xe007] = Q_KEY_CODE_UNDO, /* atset1:57351 -> linux:131 (KEY_UNDO) -> qcode:Q_KEY_CODE_UNDO (undo) */
+  [0xe008] = Q_KEY_CODE_UNMAPPED, /* atset1:57352 -> linux:176 (KEY_EDIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe009] = Q_KEY_CODE_UNMAPPED, /* atset1:57353 -> linux:181 (KEY_NEW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe00a] = Q_KEY_CODE_UNMAPPED, /* atset1:57354 -> linux:182 (KEY_REDO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe00b] = Q_KEY_CODE_UNMAPPED, /* atset1:57355 -> linux:120 (KEY_SCALE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe00c] = Q_KEY_CODE_FRONT, /* atset1:57356 -> linux:132 (KEY_FRONT) -> qcode:Q_KEY_CODE_FRONT (front) */
+  [0xe00d] = Q_KEY_CODE_UNMAPPED, /* atset1:57357 -> linux:123 (KEY_HANJA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe00e] = Q_KEY_CODE_UNMAPPED, /* atset1:57358 -> linux:233 (KEY_FORWARDMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe00f] = Q_KEY_CODE_UNMAPPED, /* atset1:57359 -> linux:178 (KEY_SCROLLDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe010] = Q_KEY_CODE_AUDIOPREV, /* atset1:57360 -> linux:165 (KEY_PREVIOUSSONG) -> qcode:Q_KEY_CODE_AUDIOPREV (audioprev) */
+  [0xe012] = Q_KEY_CODE_UNMAPPED, /* atset1:57362 -> linux:152 (KEY_SCREENLOCK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe013] = Q_KEY_CODE_UNMAPPED, /* atset1:57363 -> linux:147 (KEY_XFER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe014] = Q_KEY_CODE_UNMAPPED, /* atset1:57364 -> linux:222 (KEY_ALTERASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe015] = Q_KEY_CODE_UNMAPPED, /* atset1:57365 -> linux:195 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe016] = Q_KEY_CODE_UNMAPPED, /* atset1:57366 -> linux:196 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe017] = Q_KEY_CODE_UNMAPPED, /* atset1:57367 -> linux:149 (KEY_PROG2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe018] = Q_KEY_CODE_UNMAPPED, /* atset1:57368 -> linux:168 (KEY_REWIND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe019] = Q_KEY_CODE_AUDIONEXT, /* atset1:57369 -> linux:163 (KEY_NEXTSONG) -> qcode:Q_KEY_CODE_AUDIONEXT (audionext) */
+  [0xe01a] = Q_KEY_CODE_UNMAPPED, /* atset1:57370 -> linux:197 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe01b] = Q_KEY_CODE_UNMAPPED, /* atset1:57371 -> linux:198 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe01c] = Q_KEY_CODE_KP_ENTER, /* atset1:57372 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */
+  [0xe01d] = Q_KEY_CODE_CTRL_R, /* atset1:57373 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */
+  [0xe01e] = Q_KEY_CODE_MENU, /* atset1:57374 -> linux:139 (KEY_MENU) -> qcode:Q_KEY_CODE_MENU (menu) */
+  [0xe01f] = Q_KEY_CODE_UNMAPPED, /* atset1:57375 -> linux:148 (KEY_PROG1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe020] = Q_KEY_CODE_AUDIOMUTE, /* atset1:57376 -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */
+  [0xe021] = Q_KEY_CODE_CALCULATOR, /* atset1:57377 -> linux:140 (KEY_CALC) -> qcode:Q_KEY_CODE_CALCULATOR (calculator) */
+  [0xe022] = Q_KEY_CODE_AUDIOPLAY, /* atset1:57378 -> linux:164 (KEY_PLAYPAUSE) -> qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) */
+  [0xe023] = Q_KEY_CODE_UNMAPPED, /* atset1:57379 -> linux:160 (KEY_CLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe024] = Q_KEY_CODE_AUDIOSTOP, /* atset1:57380 -> linux:166 (KEY_STOPCD) -> qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) */
+  [0xe025] = Q_KEY_CODE_UNMAPPED, /* atset1:57381 -> linux:205 (KEY_SUSPEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe026] = Q_KEY_CODE_UNMAPPED, /* atset1:57382 -> linux:154 (KEY_CYCLEWINDOWS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe027] = Q_KEY_CODE_UNMAPPED, /* atset1:57383 -> linux:199 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe028] = Q_KEY_CODE_UNMAPPED, /* atset1:57384 -> linux:200 (KEY_PLAYCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe029] = Q_KEY_CODE_UNMAPPED, /* atset1:57385 -> linux:201 (KEY_PAUSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe02b] = Q_KEY_CODE_UNMAPPED, /* atset1:57387 -> linux:202 (KEY_PROG3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe02c] = Q_KEY_CODE_UNMAPPED, /* atset1:57388 -> linux:203 (KEY_PROG4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe02d] = Q_KEY_CODE_UNMAPPED, /* atset1:57389 -> linux:204 (KEY_DASHBOARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe02e] = Q_KEY_CODE_VOLUMEDOWN, /* atset1:57390 -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */
+  [0xe02f] = Q_KEY_CODE_UNMAPPED, /* atset1:57391 -> linux:206 (KEY_CLOSE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe030] = Q_KEY_CODE_VOLUMEUP, /* atset1:57392 -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */
+  [0xe031] = Q_KEY_CODE_UNMAPPED, /* atset1:57393 -> linux:167 (KEY_RECORD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe032] = Q_KEY_CODE_AC_HOME, /* atset1:57394 -> linux:172 (KEY_HOMEPAGE) -> qcode:Q_KEY_CODE_AC_HOME (ac_home) */
+  [0xe033] = Q_KEY_CODE_UNMAPPED, /* atset1:57395 -> linux:207 (KEY_PLAY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe034] = Q_KEY_CODE_UNMAPPED, /* atset1:57396 -> linux:208 (KEY_FASTFORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe035] = Q_KEY_CODE_KP_DIVIDE, /* atset1:57397 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */
+  [0xe036] = Q_KEY_CODE_UNMAPPED, /* atset1:57398 -> linux:209 (KEY_BASSBOOST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe038] = Q_KEY_CODE_ALT_R, /* atset1:57400 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */
+  [0xe039] = Q_KEY_CODE_UNMAPPED, /* atset1:57401 -> linux:210 (KEY_PRINT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe03a] = Q_KEY_CODE_UNMAPPED, /* atset1:57402 -> linux:211 (KEY_HP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe03b] = Q_KEY_CODE_UNMAPPED, /* atset1:57403 -> linux:212 (KEY_CAMERA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe03c] = Q_KEY_CODE_CUT, /* atset1:57404 -> linux:137 (KEY_CUT) -> qcode:Q_KEY_CODE_CUT (cut) */
+  [0xe03d] = Q_KEY_CODE_UNMAPPED, /* atset1:57405 -> linux:213 (KEY_SOUND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe03e] = Q_KEY_CODE_UNMAPPED, /* atset1:57406 -> linux:214 (KEY_QUESTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe03f] = Q_KEY_CODE_UNMAPPED, /* atset1:57407 -> linux:215 (KEY_EMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe040] = Q_KEY_CODE_UNMAPPED, /* atset1:57408 -> linux:216 (KEY_CHAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe041] = Q_KEY_CODE_FIND, /* atset1:57409 -> linux:136 (KEY_FIND) -> qcode:Q_KEY_CODE_FIND (find) */
+  [0xe042] = Q_KEY_CODE_UNMAPPED, /* atset1:57410 -> linux:218 (KEY_CONNECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe043] = Q_KEY_CODE_UNMAPPED, /* atset1:57411 -> linux:219 (KEY_FINANCE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe044] = Q_KEY_CODE_UNMAPPED, /* atset1:57412 -> linux:220 (KEY_SPORT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe045] = Q_KEY_CODE_UNMAPPED, /* atset1:57413 -> linux:221 (KEY_SHOP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe046] = Q_KEY_CODE_PAUSE, /* atset1:57414 -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */
+  [0xe047] = Q_KEY_CODE_HOME, /* atset1:57415 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */
+  [0xe048] = Q_KEY_CODE_UP, /* atset1:57416 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */
+  [0xe049] = Q_KEY_CODE_PGUP, /* atset1:57417 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */
+  [0xe04a] = Q_KEY_CODE_UNMAPPED, /* atset1:57418 -> linux:223 (KEY_CANCEL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe04b] = Q_KEY_CODE_LEFT, /* atset1:57419 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */
+  [0xe04c] = Q_KEY_CODE_UNMAPPED, /* atset1:57420 -> linux:224 (KEY_BRIGHTNESSDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe04d] = Q_KEY_CODE_RIGHT, /* atset1:57421 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */
+  [0xe04e] = Q_KEY_CODE_UNMAPPED, /* atset1:57422 -> linux:118 (KEY_KPPLUSMINUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe04f] = Q_KEY_CODE_END, /* atset1:57423 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */
+  [0xe050] = Q_KEY_CODE_DOWN, /* atset1:57424 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */
+  [0xe051] = Q_KEY_CODE_PGDN, /* atset1:57425 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */
+  [0xe052] = Q_KEY_CODE_INSERT, /* atset1:57426 -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */
+  [0xe053] = Q_KEY_CODE_DELETE, /* atset1:57427 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */
+  [0xe054] = Q_KEY_CODE_UNMAPPED, /* atset1:57428 -> linux:225 (KEY_BRIGHTNESSUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe055] = Q_KEY_CODE_UNMAPPED, /* atset1:57429 -> linux:234 (KEY_SAVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe056] = Q_KEY_CODE_UNMAPPED, /* atset1:57430 -> linux:227 (KEY_SWITCHVIDEOMODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe057] = Q_KEY_CODE_UNMAPPED, /* atset1:57431 -> linux:228 (KEY_KBDILLUMTOGGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe058] = Q_KEY_CODE_UNMAPPED, /* atset1:57432 -> linux:229 (KEY_KBDILLUMDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe059] = Q_KEY_CODE_UNMAPPED, /* atset1:57433 -> linux:230 (KEY_KBDILLUMUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe05a] = Q_KEY_CODE_UNMAPPED, /* atset1:57434 -> linux:231 (KEY_SEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe05b] = Q_KEY_CODE_META_L, /* atset1:57435 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */
+  [0xe05c] = Q_KEY_CODE_META_R, /* atset1:57436 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */
+  [0xe05d] = Q_KEY_CODE_COMPOSE, /* atset1:57437 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */
+  [0xe05e] = Q_KEY_CODE_POWER, /* atset1:57438 -> linux:116 (KEY_POWER) -> qcode:Q_KEY_CODE_POWER (power) */
+  [0xe05f] = Q_KEY_CODE_SLEEP, /* atset1:57439 -> linux:142 (KEY_SLEEP) -> qcode:Q_KEY_CODE_SLEEP (sleep) */
+  [0xe063] = Q_KEY_CODE_WAKE, /* atset1:57443 -> linux:143 (KEY_WAKEUP) -> qcode:Q_KEY_CODE_WAKE (wake) */
+  [0xe064] = Q_KEY_CODE_UNMAPPED, /* atset1:57444 -> linux:232 (KEY_REPLY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe065] = Q_KEY_CODE_UNMAPPED, /* atset1:57445 -> linux:217 (KEY_SEARCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe066] = Q_KEY_CODE_AC_BOOKMARKS, /* atset1:57446 -> linux:156 (KEY_BOOKMARKS) -> qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) */
+  [0xe067] = Q_KEY_CODE_AC_REFRESH, /* atset1:57447 -> linux:173 (KEY_REFRESH) -> qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) */
+  [0xe068] = Q_KEY_CODE_STOP, /* atset1:57448 -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */
+  [0xe069] = Q_KEY_CODE_AC_FORWARD, /* atset1:57449 -> linux:159 (KEY_FORWARD) -> qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) */
+  [0xe06a] = Q_KEY_CODE_AC_BACK, /* atset1:57450 -> linux:158 (KEY_BACK) -> qcode:Q_KEY_CODE_AC_BACK (ac_back) */
+  [0xe06b] = Q_KEY_CODE_COMPUTER, /* atset1:57451 -> linux:157 (KEY_COMPUTER) -> qcode:Q_KEY_CODE_COMPUTER (computer) */
+  [0xe06c] = Q_KEY_CODE_MAIL, /* atset1:57452 -> linux:155 (KEY_MAIL) -> qcode:Q_KEY_CODE_MAIL (mail) */
+  [0xe06d] = Q_KEY_CODE_MEDIASELECT, /* atset1:57453 -> linux:226 (KEY_MEDIA) -> qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) */
+  [0xe06f] = Q_KEY_CODE_UNMAPPED, /* atset1:57455 -> linux:112 (KEY_MACRO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe070] = Q_KEY_CODE_UNMAPPED, /* atset1:57456 -> linux:235 (KEY_DOCUMENTS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe071] = Q_KEY_CODE_UNMAPPED, /* atset1:57457 -> linux:236 (KEY_BATTERY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe072] = Q_KEY_CODE_UNMAPPED, /* atset1:57458 -> linux:237 (KEY_BLUETOOTH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe073] = Q_KEY_CODE_UNMAPPED, /* atset1:57459 -> linux:238 (KEY_WLAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe074] = Q_KEY_CODE_UNMAPPED, /* atset1:57460 -> linux:239 (KEY_UWB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe075] = Q_KEY_CODE_HELP, /* atset1:57461 -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */
+  [0xe076] = Q_KEY_CODE_UNMAPPED, /* atset1:57462 -> linux:179 (KEY_KPLEFTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe077] = Q_KEY_CODE_UNMAPPED, /* atset1:57463 -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe078] = Q_KEY_CODE_COPY, /* atset1:57464 -> linux:133 (KEY_COPY) -> qcode:Q_KEY_CODE_COPY (copy) */
+  [0xe079] = Q_KEY_CODE_UNMAPPED, /* atset1:57465 -> linux:192 (KEY_F22) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe07b] = Q_KEY_CODE_UNMAPPED, /* atset1:57467 -> linux:180 (KEY_KPRIGHTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe07d] = Q_KEY_CODE_UNMAPPED, /* atset1:57469 -> linux:162 (KEY_EJECTCLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+};
+const guint qemu_input_map_atset1_to_qcode_len = sizeof(qemu_input_map_atset1_to_qcode)/sizeof(qemu_input_map_atset1_to_qcode[0]);
diff --git a/ui/input-keymap-win32-to-qcode.c b/ui/input-keymap-win32-to-qcode.c
new file mode 100644
index 0000000000..c05dfb9106
--- /dev/null
+++ b/ui/input-keymap-win32-to-qcode.c
@@ -0,0 +1,157 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:08
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_win32_to_qcode code-map keymaps.csv win32 qcode
+*/
+const guint16 qemu_input_map_win32_to_qcode[252] = {
+  [0x1] = Q_KEY_CODE_UNMAPPED, /* win32:1 (VK_LBUTTON) -> linux:256 (BTN_0) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x2] = Q_KEY_CODE_UNMAPPED, /* win32:2 (VK_RBUTTON) -> linux:257 (BTN_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x4] = Q_KEY_CODE_UNMAPPED, /* win32:4 (VK_MBUTTON) -> linux:258 (BTN_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5] = Q_KEY_CODE_UNMAPPED, /* win32:5 (VK_XBUTTON1) -> linux:259 (BTN_3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x6] = Q_KEY_CODE_UNMAPPED, /* win32:6 (VK_XBUTTON2) -> linux:260 (BTN_4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x8] = Q_KEY_CODE_BACKSPACE, /* win32:8 (VK_BACK) -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */
+  [0x9] = Q_KEY_CODE_TAB, /* win32:9 (VK_TAB) -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */
+  [0xd] = Q_KEY_CODE_RET, /* win32:13 (VK_RETURN) -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */
+  [0x10] = Q_KEY_CODE_SHIFT, /* win32:16 (VK_LSHIFT) -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */
+  [0x11] = Q_KEY_CODE_CTRL, /* win32:17 (VK_CONTROL) -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */
+  [0x12] = Q_KEY_CODE_ALT, /* win32:18 (VK_MENU) -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */
+  [0x13] = Q_KEY_CODE_PAUSE, /* win32:19 (VK_PAUSE) -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */
+  [0x14] = Q_KEY_CODE_CAPS_LOCK, /* win32:20 (VK_CAPITAL) -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */
+  [0x15] = Q_KEY_CODE_UNMAPPED, /* win32:21 (VK_HANGEUL) -> linux:122 (KEY_HANGEUL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19] = Q_KEY_CODE_UNMAPPED, /* win32:25 (VK_HANJA) -> linux:123 (KEY_HANJA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b] = Q_KEY_CODE_ESC, /* win32:27 (VK_ESCAPE) -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */
+  [0x20] = Q_KEY_CODE_SPC, /* win32:32 (VK_SPACE) -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */
+  [0x21] = Q_KEY_CODE_PGUP, /* win32:33 (VK_PRIOR) -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */
+  [0x22] = Q_KEY_CODE_PGDN, /* win32:34 (VK_NEXT) -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */
+  [0x23] = Q_KEY_CODE_END, /* win32:35 (VK_END) -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */
+  [0x24] = Q_KEY_CODE_HOME, /* win32:36 (VK_HOME) -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */
+  [0x25] = Q_KEY_CODE_LEFT, /* win32:37 (VK_LEFT) -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */
+  [0x26] = Q_KEY_CODE_UP, /* win32:38 (VK_UP) -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */
+  [0x27] = Q_KEY_CODE_RIGHT, /* win32:39 (VK_RIGHT) -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */
+  [0x28] = Q_KEY_CODE_DOWN, /* win32:40 (VK_DOWN) -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */
+  [0x29] = Q_KEY_CODE_UNMAPPED, /* win32:41 (VK_SELECT) -> linux:353 (KEY_SELECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x2a] = Q_KEY_CODE_UNMAPPED, /* win32:42 (VK_PRINT) -> linux:210 (KEY_PRINT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x2c] = Q_KEY_CODE_SYSRQ, /* win32:44 (VK_SNAPSHOT) -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */
+  [0x2d] = Q_KEY_CODE_INSERT, /* win32:45 (VK_INSERT) -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */
+  [0x2e] = Q_KEY_CODE_DELETE, /* win32:46 (VK_DELETE) -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */
+  [0x2f] = Q_KEY_CODE_HELP, /* win32:47 (VK_HELP) -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */
+  [0x30] = Q_KEY_CODE_0, /* win32:48 (VK_0) -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */
+  [0x31] = Q_KEY_CODE_1, /* win32:49 (VK_1) -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */
+  [0x32] = Q_KEY_CODE_2, /* win32:50 (VK_2) -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */
+  [0x33] = Q_KEY_CODE_3, /* win32:51 (VK_3) -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */
+  [0x34] = Q_KEY_CODE_4, /* win32:52 (VK_4) -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */
+  [0x35] = Q_KEY_CODE_5, /* win32:53 (VK_5) -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */
+  [0x36] = Q_KEY_CODE_6, /* win32:54 (VK_6) -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */
+  [0x37] = Q_KEY_CODE_7, /* win32:55 (VK_7) -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */
+  [0x38] = Q_KEY_CODE_8, /* win32:56 (VK_8) -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */
+  [0x39] = Q_KEY_CODE_9, /* win32:57 (VK_9) -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */
+  [0x41] = Q_KEY_CODE_A, /* win32:65 (VK_A) -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */
+  [0x42] = Q_KEY_CODE_B, /* win32:66 (VK_B) -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */
+  [0x43] = Q_KEY_CODE_C, /* win32:67 (VK_C) -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */
+  [0x44] = Q_KEY_CODE_D, /* win32:68 (VK_D) -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */
+  [0x45] = Q_KEY_CODE_E, /* win32:69 (VK_E) -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */
+  [0x46] = Q_KEY_CODE_F, /* win32:70 (VK_F) -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */
+  [0x47] = Q_KEY_CODE_G, /* win32:71 (VK_G) -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */
+  [0x48] = Q_KEY_CODE_H, /* win32:72 (VK_H) -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */
+  [0x49] = Q_KEY_CODE_I, /* win32:73 (VK_I) -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */
+  [0x4a] = Q_KEY_CODE_J, /* win32:74 (VK_J) -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */
+  [0x4b] = Q_KEY_CODE_K, /* win32:75 (VK_K) -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */
+  [0x4c] = Q_KEY_CODE_L, /* win32:76 (VK_L) -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */
+  [0x4d] = Q_KEY_CODE_M, /* win32:77 (VK_M) -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */
+  [0x4e] = Q_KEY_CODE_N, /* win32:78 (VK_N) -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */
+  [0x4f] = Q_KEY_CODE_O, /* win32:79 (VK_O) -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */
+  [0x50] = Q_KEY_CODE_P, /* win32:80 (VK_P) -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */
+  [0x51] = Q_KEY_CODE_Q, /* win32:81 (VK_Q) -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */
+  [0x52] = Q_KEY_CODE_R, /* win32:82 (VK_R) -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */
+  [0x53] = Q_KEY_CODE_S, /* win32:83 (VK_S) -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */
+  [0x54] = Q_KEY_CODE_T, /* win32:84 (VK_T) -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */
+  [0x55] = Q_KEY_CODE_U, /* win32:85 (VK_U) -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */
+  [0x56] = Q_KEY_CODE_V, /* win32:86 (VK_V) -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */
+  [0x57] = Q_KEY_CODE_W, /* win32:87 (VK_W) -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */
+  [0x58] = Q_KEY_CODE_X, /* win32:88 (VK_X) -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */
+  [0x59] = Q_KEY_CODE_Y, /* win32:89 (VK_Y) -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */
+  [0x5a] = Q_KEY_CODE_Z, /* win32:90 (VK_Z) -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */
+  [0x5b] = Q_KEY_CODE_META_L, /* win32:91 (VK_LWIN) -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */
+  [0x5c] = Q_KEY_CODE_META_R, /* win32:92 (VK_RWIN) -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */
+  [0x5d] = Q_KEY_CODE_COMPOSE, /* win32:93 (VK_APPS) -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */
+  [0x5f] = Q_KEY_CODE_SLEEP, /* win32:95 (VK_SLEEP) -> linux:142 (KEY_SLEEP) -> qcode:Q_KEY_CODE_SLEEP (sleep) */
+  [0x60] = Q_KEY_CODE_KP_0, /* win32:96 (VK_NUMPAD0) -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */
+  [0x61] = Q_KEY_CODE_KP_1, /* win32:97 (VK_NUMPAD1) -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */
+  [0x62] = Q_KEY_CODE_KP_2, /* win32:98 (VK_NUMPAD2) -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */
+  [0x63] = Q_KEY_CODE_KP_3, /* win32:99 (VK_NUMPAD3) -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */
+  [0x64] = Q_KEY_CODE_KP_4, /* win32:100 (VK_NUMPAD4) -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */
+  [0x65] = Q_KEY_CODE_KP_5, /* win32:101 (VK_NUMPAD5) -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */
+  [0x66] = Q_KEY_CODE_KP_6, /* win32:102 (VK_NUMPAD6) -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */
+  [0x67] = Q_KEY_CODE_KP_7, /* win32:103 (VK_NUMPAD7) -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */
+  [0x68] = Q_KEY_CODE_KP_8, /* win32:104 (VK_NUMPAD8) -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */
+  [0x69] = Q_KEY_CODE_KP_9, /* win32:105 (VK_NUMPAD9) -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */
+  [0x6a] = Q_KEY_CODE_KP_MULTIPLY, /* win32:106 (VK_MULTIPLY) -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */
+  [0x6b] = Q_KEY_CODE_KP_ADD, /* win32:107 (VK_ADD) -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */
+  [0x6c] = Q_KEY_CODE_KP_COMMA, /* win32:108 (VK_SEPARATOR??) -> linux:121 (KEY_KPCOMMA) -> qcode:Q_KEY_CODE_KP_COMMA (kp_comma) */
+  [0x6d] = Q_KEY_CODE_KP_SUBTRACT, /* win32:109 (VK_SUBTRACT) -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */
+  [0x6e] = Q_KEY_CODE_KP_DECIMAL, /* win32:110 (VK_DECIMAL) -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */
+  [0x6f] = Q_KEY_CODE_KP_DIVIDE, /* win32:111 (VK_DIVIDE) -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */
+  [0x70] = Q_KEY_CODE_F1, /* win32:112 (VK_F1) -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */
+  [0x71] = Q_KEY_CODE_F2, /* win32:113 (VK_F2) -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */
+  [0x72] = Q_KEY_CODE_F3, /* win32:114 (VK_F3) -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */
+  [0x73] = Q_KEY_CODE_F4, /* win32:115 (VK_F4) -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */
+  [0x74] = Q_KEY_CODE_F5, /* win32:116 (VK_F5) -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */
+  [0x75] = Q_KEY_CODE_F6, /* win32:117 (VK_F6) -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */
+  [0x76] = Q_KEY_CODE_F7, /* win32:118 (VK_F7) -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */
+  [0x77] = Q_KEY_CODE_F8, /* win32:119 (VK_F8) -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */
+  [0x78] = Q_KEY_CODE_F9, /* win32:120 (VK_F9) -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */
+  [0x79] = Q_KEY_CODE_F10, /* win32:121 (VK_F10) -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */
+  [0x7a] = Q_KEY_CODE_F11, /* win32:122 (VK_F11) -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */
+  [0x7b] = Q_KEY_CODE_F12, /* win32:123 (VK_F12) -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */
+  [0x7c] = Q_KEY_CODE_UNMAPPED, /* win32:124 (VK_F13) -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7d] = Q_KEY_CODE_UNMAPPED, /* win32:125 (VK_F14) -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7e] = Q_KEY_CODE_UNMAPPED, /* win32:126 (VK_F15) -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7f] = Q_KEY_CODE_UNMAPPED, /* win32:127 (VK_F16) -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x80] = Q_KEY_CODE_UNMAPPED, /* win32:128 (VK_F17) -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x81] = Q_KEY_CODE_UNMAPPED, /* win32:129 (VK_F18) -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x82] = Q_KEY_CODE_UNMAPPED, /* win32:130 (VK_F19) -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x83] = Q_KEY_CODE_UNMAPPED, /* win32:131 (VK_F20) -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x84] = Q_KEY_CODE_UNMAPPED, /* win32:132 (VK_F21) -> linux:191 (KEY_F21) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x85] = Q_KEY_CODE_UNMAPPED, /* win32:133 (VK_F22) -> linux:192 (KEY_F22) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x86] = Q_KEY_CODE_UNMAPPED, /* win32:134 (VK_F23) -> linux:193 (KEY_F23) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x87] = Q_KEY_CODE_UNMAPPED, /* win32:135 (VK_F24) -> linux:194 (KEY_F24) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x90] = Q_KEY_CODE_NUM_LOCK, /* win32:144 (VK_NUMLOCK) -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */
+  [0x91] = Q_KEY_CODE_SCROLL_LOCK, /* win32:145 (VK_SCROLL) -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */
+  [0xa0] = Q_KEY_CODE_SHIFT, /* win32:160 (VK_LSHIFT) -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */
+  [0xa1] = Q_KEY_CODE_SHIFT_R, /* win32:161 (VK_RSHIFT) -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */
+  [0xa2] = Q_KEY_CODE_CTRL, /* win32:162 (VK_CONTROL) -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */
+  [0xa3] = Q_KEY_CODE_CTRL_R, /* win32:163 (VK_RCONTROL) -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */
+  [0xa4] = Q_KEY_CODE_ALT, /* win32:164 (VK_MENU) -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */
+  [0xa5] = Q_KEY_CODE_ALT_R, /* win32:165 (VK_RMENU) -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */
+  [0xa6] = Q_KEY_CODE_AC_BACK, /* win32:166 (VK_BROWSER_BACK) -> linux:158 (KEY_BACK) -> qcode:Q_KEY_CODE_AC_BACK (ac_back) */
+  [0xa7] = Q_KEY_CODE_AC_FORWARD, /* win32:167 (VK_BROWSER_FORWARD) -> linux:159 (KEY_FORWARD) -> qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) */
+  [0xa8] = Q_KEY_CODE_AC_REFRESH, /* win32:168 (VK_BROWSER_REFRESH) -> linux:173 (KEY_REFRESH) -> qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) */
+  [0xa9] = Q_KEY_CODE_STOP, /* win32:169 (VK_BROWSER_STOP) -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */
+  [0xaa] = Q_KEY_CODE_UNMAPPED, /* win32:170 (VK_BROWSER_SEARCH) -> linux:217 (KEY_SEARCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xab] = Q_KEY_CODE_UNMAPPED, /* win32:171 (VK_BROWSER_FAVOURITES) -> linux:364 (KEY_FAVORITES) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xac] = Q_KEY_CODE_AC_HOME, /* win32:172 (VK_BROWSER_HOME) -> linux:172 (KEY_HOMEPAGE) -> qcode:Q_KEY_CODE_AC_HOME (ac_home) */
+  [0xad] = Q_KEY_CODE_AUDIOMUTE, /* win32:173 (VK_VOLUME_MUTE) -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */
+  [0xae] = Q_KEY_CODE_VOLUMEDOWN, /* win32:174 (VK_VOLUME_DOWN) -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */
+  [0xaf] = Q_KEY_CODE_VOLUMEUP, /* win32:175 (VK_VOLUME_UP) -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */
+  [0xb0] = Q_KEY_CODE_AUDIONEXT, /* win32:176 (VK_MEDIA_NEXT_TRACK) -> linux:163 (KEY_NEXTSONG) -> qcode:Q_KEY_CODE_AUDIONEXT (audionext) */
+  [0xb1] = Q_KEY_CODE_AUDIOPREV, /* win32:177 (VK_MEDIA_PREV_TRACK) -> linux:165 (KEY_PREVIOUSSONG) -> qcode:Q_KEY_CODE_AUDIOPREV (audioprev) */
+  [0xb2] = Q_KEY_CODE_AUDIOSTOP, /* win32:178 (VK_MEDIA_STOP) -> linux:166 (KEY_STOPCD) -> qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) */
+  [0xb3] = Q_KEY_CODE_AUDIOPLAY, /* win32:179 (VK_MEDIA_PLAY_PAUSE) -> linux:164 (KEY_PLAYPAUSE) -> qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) */
+  [0xb4] = Q_KEY_CODE_UNMAPPED, /* win32:180 (VK_LAUNCH_MAIL) -> linux:215 (KEY_EMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xba] = Q_KEY_CODE_SEMICOLON, /* win32:186 (VK_OEM_1) -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */
+  [0xbb] = Q_KEY_CODE_EQUAL, /* win32:187 (VK_OEM_PLUS) -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */
+  [0xbc] = Q_KEY_CODE_COMMA, /* win32:188 (VK_OEM_COMMA) -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */
+  [0xbd] = Q_KEY_CODE_MINUS, /* win32:189 (VK_OEM_MINUS) -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */
+  [0xbe] = Q_KEY_CODE_DOT, /* win32:190 (VK_OEM_PERIOD) -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */
+  [0xbf] = Q_KEY_CODE_SLASH, /* win32:191 (VK_OEM_2) -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */
+  [0xc0] = Q_KEY_CODE_GRAVE_ACCENT, /* win32:192 (VK_OEM_3) -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */
+  [0xdb] = Q_KEY_CODE_BRACKET_LEFT, /* win32:219 (VK_OEM_4) -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */
+  [0xdc] = Q_KEY_CODE_BACKSLASH, /* win32:220 (VK_OEM_5) -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0xdd] = Q_KEY_CODE_BRACKET_RIGHT, /* win32:221 (VK_OEM_6) -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */
+  [0xde] = Q_KEY_CODE_APOSTROPHE, /* win32:222 (VK_OEM_7) -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */
+  [0xe1] = Q_KEY_CODE_LESS, /* win32:225 (VK_OEM_102) -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */
+  [0xfa] = Q_KEY_CODE_UNMAPPED, /* win32:250 (VK_PLAY) -> linux:207 (KEY_PLAY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfb] = Q_KEY_CODE_UNMAPPED, /* win32:251 (VK_ZOOM) -> linux:372 (KEY_ZOOM) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+};
+const guint qemu_input_map_win32_to_qcode_len = sizeof(qemu_input_map_win32_to_qcode)/sizeof(qemu_input_map_win32_to_qcode[0]);
diff --git a/ui/input-keymap-x11-to-qcode.c b/ui/input-keymap-x11-to-qcode.c
new file mode 100644
index 0000000000..5802a1d052
--- /dev/null
+++ b/ui/input-keymap-x11-to-qcode.c
@@ -0,0 +1,163 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:08
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_x11_to_qcode code-map keymaps.csv x11 qcode
+*/
+const guint16 qemu_input_map_x11_to_qcode[65536] = {
+  [0x20] = Q_KEY_CODE_SPC, /* x11:32 (XK_space) -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */
+  [0x21] = Q_KEY_CODE_1, /* x11:33 (XK_exclam) -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */
+  [0x22] = Q_KEY_CODE_APOSTROPHE, /* x11:34 (XK_quotedbl) -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */
+  [0x23] = Q_KEY_CODE_3, /* x11:35 (XK_numbersign) -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */
+  [0x24] = Q_KEY_CODE_4, /* x11:36 (XK_dollar) -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */
+  [0x25] = Q_KEY_CODE_5, /* x11:37 (XK_percent) -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */
+  [0x26] = Q_KEY_CODE_7, /* x11:38 (XK_ampersand) -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */
+  [0x27] = Q_KEY_CODE_APOSTROPHE, /* x11:39 (XK_quotedbl) -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */
+  [0x28] = Q_KEY_CODE_9, /* x11:40 (XK_parenleft) -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */
+  [0x29] = Q_KEY_CODE_0, /* x11:41 (XK_parenright) -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */
+  [0x2a] = Q_KEY_CODE_8, /* x11:42 (XK_asterisk) -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */
+  [0x2b] = Q_KEY_CODE_EQUAL, /* x11:43 (XK_plus) -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */
+  [0x2c] = Q_KEY_CODE_COMMA, /* x11:44 (XK_less) -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */
+  [0x2d] = Q_KEY_CODE_MINUS, /* x11:45 (XK_underscore) -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */
+  [0x2e] = Q_KEY_CODE_DOT, /* x11:46 (XK_greater) -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */
+  [0x2f] = Q_KEY_CODE_SLASH, /* x11:47 (XK_question) -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */
+  [0x30] = Q_KEY_CODE_0, /* x11:48 (XK_parenright) -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */
+  [0x31] = Q_KEY_CODE_1, /* x11:49 (XK_exclam) -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */
+  [0x32] = Q_KEY_CODE_2, /* x11:50 (XK_at) -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */
+  [0x33] = Q_KEY_CODE_3, /* x11:51 (XK_numbersign) -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */
+  [0x34] = Q_KEY_CODE_4, /* x11:52 (XK_dollar) -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */
+  [0x35] = Q_KEY_CODE_5, /* x11:53 (XK_percent) -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */
+  [0x36] = Q_KEY_CODE_6, /* x11:54 (XK_asciicircum) -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */
+  [0x37] = Q_KEY_CODE_7, /* x11:55 (XK_ampersand) -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */
+  [0x38] = Q_KEY_CODE_8, /* x11:56 (XK_asterisk) -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */
+  [0x39] = Q_KEY_CODE_9, /* x11:57 (XK_parenleft) -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */
+  [0x3a] = Q_KEY_CODE_SEMICOLON, /* x11:58 (XK_colon) -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */
+  [0x3b] = Q_KEY_CODE_SEMICOLON, /* x11:59 (XK_colon) -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */
+  [0x3c] = Q_KEY_CODE_COMMA, /* x11:60 (XK_less) -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */
+  [0x3d] = Q_KEY_CODE_EQUAL, /* x11:61 (XK_plus) -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */
+  [0x3e] = Q_KEY_CODE_DOT, /* x11:62 (XK_greater) -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */
+  [0x3f] = Q_KEY_CODE_SLASH, /* x11:63 (XK_question) -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */
+  [0x40] = Q_KEY_CODE_2, /* x11:64 (XK_at) -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */
+  [0x41] = Q_KEY_CODE_A, /* x11:65 (XK_a) -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */
+  [0x42] = Q_KEY_CODE_B, /* x11:66 (XK_b) -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */
+  [0x43] = Q_KEY_CODE_C, /* x11:67 (XK_c) -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */
+  [0x44] = Q_KEY_CODE_D, /* x11:68 (XK_d) -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */
+  [0x45] = Q_KEY_CODE_E, /* x11:69 (XK_e) -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */
+  [0x46] = Q_KEY_CODE_F, /* x11:70 (XK_f) -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */
+  [0x47] = Q_KEY_CODE_G, /* x11:71 (XK_g) -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */
+  [0x48] = Q_KEY_CODE_H, /* x11:72 (XK_h) -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */
+  [0x49] = Q_KEY_CODE_I, /* x11:73 (XK_i) -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */
+  [0x4a] = Q_KEY_CODE_J, /* x11:74 (XK_j) -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */
+  [0x4b] = Q_KEY_CODE_K, /* x11:75 (XK_k) -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */
+  [0x4c] = Q_KEY_CODE_L, /* x11:76 (XK_l) -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */
+  [0x4d] = Q_KEY_CODE_M, /* x11:77 (XK_m) -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */
+  [0x4e] = Q_KEY_CODE_N, /* x11:78 (XK_n) -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */
+  [0x4f] = Q_KEY_CODE_O, /* x11:79 (XK_o) -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */
+  [0x50] = Q_KEY_CODE_P, /* x11:80 (XK_p) -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */
+  [0x51] = Q_KEY_CODE_Q, /* x11:81 (XK_q) -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */
+  [0x52] = Q_KEY_CODE_R, /* x11:82 (XK_r) -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */
+  [0x53] = Q_KEY_CODE_S, /* x11:83 (XK_s) -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */
+  [0x54] = Q_KEY_CODE_T, /* x11:84 (XK_t) -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */
+  [0x55] = Q_KEY_CODE_U, /* x11:85 (XK_u) -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */
+  [0x56] = Q_KEY_CODE_V, /* x11:86 (XK_v) -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */
+  [0x57] = Q_KEY_CODE_W, /* x11:87 (XK_w) -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */
+  [0x58] = Q_KEY_CODE_X, /* x11:88 (XK_x) -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */
+  [0x59] = Q_KEY_CODE_Y, /* x11:89 (XK_y) -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */
+  [0x5a] = Q_KEY_CODE_Z, /* x11:90 (XK_z) -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */
+  [0x5b] = Q_KEY_CODE_BRACKET_LEFT, /* x11:91 (XK_braceleft) -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */
+  [0x5c] = Q_KEY_CODE_BACKSLASH, /* x11:92 (XK_bar) -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0x5d] = Q_KEY_CODE_BRACKET_RIGHT, /* x11:93 (XK_braceright) -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */
+  [0x5e] = Q_KEY_CODE_6, /* x11:94 (XK_asciicircum) -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */
+  [0x5f] = Q_KEY_CODE_MINUS, /* x11:95 (XK_underscore) -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */
+  [0x60] = Q_KEY_CODE_GRAVE_ACCENT, /* x11:96 (XK_asciitilde) -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */
+  [0x61] = Q_KEY_CODE_A, /* x11:97 (XK_a) -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */
+  [0x62] = Q_KEY_CODE_B, /* x11:98 (XK_b) -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */
+  [0x63] = Q_KEY_CODE_C, /* x11:99 (XK_c) -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */
+  [0x64] = Q_KEY_CODE_D, /* x11:100 (XK_d) -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */
+  [0x65] = Q_KEY_CODE_E, /* x11:101 (XK_e) -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */
+  [0x66] = Q_KEY_CODE_F, /* x11:102 (XK_f) -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */
+  [0x67] = Q_KEY_CODE_G, /* x11:103 (XK_g) -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */
+  [0x68] = Q_KEY_CODE_H, /* x11:104 (XK_h) -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */
+  [0x69] = Q_KEY_CODE_I, /* x11:105 (XK_i) -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */
+  [0x6a] = Q_KEY_CODE_J, /* x11:106 (XK_j) -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */
+  [0x6b] = Q_KEY_CODE_K, /* x11:107 (XK_k) -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */
+  [0x6c] = Q_KEY_CODE_L, /* x11:108 (XK_l) -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */
+  [0x6d] = Q_KEY_CODE_M, /* x11:109 (XK_m) -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */
+  [0x6e] = Q_KEY_CODE_N, /* x11:110 (XK_n) -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */
+  [0x6f] = Q_KEY_CODE_O, /* x11:111 (XK_o) -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */
+  [0x70] = Q_KEY_CODE_P, /* x11:112 (XK_p) -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */
+  [0x71] = Q_KEY_CODE_Q, /* x11:113 (XK_q) -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */
+  [0x72] = Q_KEY_CODE_R, /* x11:114 (XK_r) -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */
+  [0x73] = Q_KEY_CODE_S, /* x11:115 (XK_s) -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */
+  [0x74] = Q_KEY_CODE_T, /* x11:116 (XK_t) -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */
+  [0x75] = Q_KEY_CODE_U, /* x11:117 (XK_u) -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */
+  [0x76] = Q_KEY_CODE_V, /* x11:118 (XK_v) -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */
+  [0x77] = Q_KEY_CODE_W, /* x11:119 (XK_w) -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */
+  [0x78] = Q_KEY_CODE_X, /* x11:120 (XK_x) -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */
+  [0x79] = Q_KEY_CODE_Y, /* x11:121 (XK_y) -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */
+  [0x7a] = Q_KEY_CODE_Z, /* x11:122 (XK_z) -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */
+  [0x7b] = Q_KEY_CODE_BRACKET_LEFT, /* x11:123 (XK_braceleft) -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */
+  [0x7c] = Q_KEY_CODE_BACKSLASH, /* x11:124 (XK_bar) -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0x7d] = Q_KEY_CODE_BRACKET_RIGHT, /* x11:125 (XK_braceright) -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */
+  [0x7e] = Q_KEY_CODE_GRAVE_ACCENT, /* x11:126 (XK_asciitilde) -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */
+  [0xd7] = Q_KEY_CODE_KP_MULTIPLY, /* x11:215 (XK_multiply) -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */
+  [0xff08] = Q_KEY_CODE_BACKSPACE, /* x11:65288 (XK_BackSpace) -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */
+  [0xff09] = Q_KEY_CODE_TAB, /* x11:65289 (XK_Tab) -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */
+  [0xff0d] = Q_KEY_CODE_RET, /* x11:65293 (XK_Return) -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */
+  [0xff13] = Q_KEY_CODE_PAUSE, /* x11:65299 (XK_Pause) -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */
+  [0xff14] = Q_KEY_CODE_SCROLL_LOCK, /* x11:65300 (XK_Scroll_Lock) -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */
+  [0xff15] = Q_KEY_CODE_SYSRQ, /* x11:65301 (XK_Sys_Req) -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */
+  [0xff1b] = Q_KEY_CODE_ESC, /* x11:65307 (XK_Escape) -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */
+  [0xff50] = Q_KEY_CODE_HOME, /* x11:65360 (XK_Home) -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */
+  [0xff51] = Q_KEY_CODE_LEFT, /* x11:65361 (XK_Left) -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */
+  [0xff52] = Q_KEY_CODE_UP, /* x11:65362 (XK_Up) -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */
+  [0xff53] = Q_KEY_CODE_RIGHT, /* x11:65363 (XK_Right) -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */
+  [0xff54] = Q_KEY_CODE_DOWN, /* x11:65364 (XK_Down) -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */
+  [0xff55] = Q_KEY_CODE_PGUP, /* x11:65365 (XK_Page_Up) -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */
+  [0xff56] = Q_KEY_CODE_PGDN, /* x11:65366 (XK_Page_Down) -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */
+  [0xff57] = Q_KEY_CODE_END, /* x11:65367 (XK_End) -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */
+  [0xff60] = Q_KEY_CODE_UNMAPPED, /* x11:65376 (XK_Select) -> linux:353 (KEY_SELECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xff63] = Q_KEY_CODE_INSERT, /* x11:65379 (XK_Insert) -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */
+  [0xff6a] = Q_KEY_CODE_HELP, /* x11:65386 (XK_Help) -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */
+  [0xff7f] = Q_KEY_CODE_NUM_LOCK, /* x11:65407 (XK_Num_Lock) -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */
+  [0xff8d] = Q_KEY_CODE_KP_ENTER, /* x11:65421 (XK_KP_Enter) -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */
+  [0xffab] = Q_KEY_CODE_KP_ADD, /* x11:65451 (XK_KP_Add) -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */
+  [0xffac] = Q_KEY_CODE_UNMAPPED, /* x11:65452 (XK_KP_Separator) -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xffad] = Q_KEY_CODE_KP_SUBTRACT, /* x11:65453 (XK_KP_Subtract) -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */
+  [0xffae] = Q_KEY_CODE_KP_DECIMAL, /* x11:65454 (XK_KP_Decimal) -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */
+  [0xffaf] = Q_KEY_CODE_KP_DIVIDE, /* x11:65455 (XK_KP_Divide) -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */
+  [0xffb0] = Q_KEY_CODE_KP_0, /* x11:65456 (XK_KP_0) -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */
+  [0xffb1] = Q_KEY_CODE_KP_1, /* x11:65457 (XK_KP_1) -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */
+  [0xffb2] = Q_KEY_CODE_KP_2, /* x11:65458 (XK_KP_2) -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */
+  [0xffb3] = Q_KEY_CODE_KP_3, /* x11:65459 (XK_KP_3) -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */
+  [0xffb4] = Q_KEY_CODE_KP_4, /* x11:65460 (XK_KP_4) -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */
+  [0xffb5] = Q_KEY_CODE_KP_5, /* x11:65461 (XK_KP_5) -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */
+  [0xffb6] = Q_KEY_CODE_KP_6, /* x11:65462 (XK_KP_6) -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */
+  [0xffb7] = Q_KEY_CODE_KP_7, /* x11:65463 (XK_KP_7) -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */
+  [0xffb8] = Q_KEY_CODE_KP_8, /* x11:65464 (XK_KP_8) -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */
+  [0xffb9] = Q_KEY_CODE_KP_9, /* x11:65465 (XK_KP_9) -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */
+  [0xffbd] = Q_KEY_CODE_KP_EQUALS, /* x11:65469 (XK_KP_Equal) -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */
+  [0xffbe] = Q_KEY_CODE_F1, /* x11:65470 (XK_F1) -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */
+  [0xffbf] = Q_KEY_CODE_F2, /* x11:65471 (XK_F2) -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */
+  [0xffc0] = Q_KEY_CODE_F3, /* x11:65472 (XK_F3) -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */
+  [0xffc1] = Q_KEY_CODE_F4, /* x11:65473 (XK_F4) -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */
+  [0xffc2] = Q_KEY_CODE_F5, /* x11:65474 (XK_F5) -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */
+  [0xffc3] = Q_KEY_CODE_F6, /* x11:65475 (XK_F6) -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */
+  [0xffc4] = Q_KEY_CODE_F7, /* x11:65476 (XK_F7) -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */
+  [0xffc5] = Q_KEY_CODE_F8, /* x11:65477 (XK_F8) -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */
+  [0xffc6] = Q_KEY_CODE_F9, /* x11:65478 (XK_F9) -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */
+  [0xffc7] = Q_KEY_CODE_F10, /* x11:65479 (XK_F10) -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */
+  [0xffc8] = Q_KEY_CODE_F11, /* x11:65480 (XK_F11) -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */
+  [0xffc9] = Q_KEY_CODE_F12, /* x11:65481 (XK_F12) -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */
+  [0xffe1] = Q_KEY_CODE_SHIFT, /* x11:65505 (XK_Shift_L) -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */
+  [0xffe2] = Q_KEY_CODE_SHIFT_R, /* x11:65506 (XK_Shift_R) -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */
+  [0xffe3] = Q_KEY_CODE_CTRL, /* x11:65507 (XK_Control_L) -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */
+  [0xffe4] = Q_KEY_CODE_CTRL_R, /* x11:65508 (XK_Control_R) -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */
+  [0xffe5] = Q_KEY_CODE_CAPS_LOCK, /* x11:65509 (XK_Caps_Lock) -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */
+  [0xffe7] = Q_KEY_CODE_META_L, /* x11:65511 (XK_Meta_L) -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */
+  [0xffe8] = Q_KEY_CODE_META_R, /* x11:65512 (XK_Meta_R) -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */
+  [0xffe9] = Q_KEY_CODE_ALT, /* x11:65513 (XK_Alt_L) -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */
+  [0xffea] = Q_KEY_CODE_ALT_R, /* x11:65514 (XK_Alt_R) -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */
+  [0xffff] = Q_KEY_CODE_DELETE, /* x11:65535 (XK_Delete) -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */
+};
+const guint qemu_input_map_x11_to_qcode_len = sizeof(qemu_input_map_x11_to_qcode)/sizeof(qemu_input_map_x11_to_qcode[0]);
diff --git a/ui/input-keymap-xorgevdev-to-qcode.c b/ui/input-keymap-xorgevdev-to-qcode.c
new file mode 100644
index 0000000000..8e6de616d9
--- /dev/null
+++ b/ui/input-keymap-xorgevdev-to-qcode.c
@@ -0,0 +1,463 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:08
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_xorgevdev_to_qcode code-map keymaps.csv xorgevdev qcode
+*/
+const guint16 qemu_input_map_xorgevdev_to_qcode[533] = {
+  [0x8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:8 -> linux:0 (KEY_RESERVED) -> qcode:Q_KEY_CODE_UNMAPPED (unmapped) */
+  [0x9] = Q_KEY_CODE_ESC, /* xorgevdev:9 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */
+  [0xa] = Q_KEY_CODE_1, /* xorgevdev:10 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */
+  [0xb] = Q_KEY_CODE_2, /* xorgevdev:11 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */
+  [0xc] = Q_KEY_CODE_3, /* xorgevdev:12 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */
+  [0xd] = Q_KEY_CODE_4, /* xorgevdev:13 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */
+  [0xe] = Q_KEY_CODE_5, /* xorgevdev:14 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */
+  [0xf] = Q_KEY_CODE_6, /* xorgevdev:15 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */
+  [0x10] = Q_KEY_CODE_7, /* xorgevdev:16 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */
+  [0x11] = Q_KEY_CODE_8, /* xorgevdev:17 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */
+  [0x12] = Q_KEY_CODE_9, /* xorgevdev:18 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */
+  [0x13] = Q_KEY_CODE_0, /* xorgevdev:19 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */
+  [0x14] = Q_KEY_CODE_MINUS, /* xorgevdev:20 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */
+  [0x15] = Q_KEY_CODE_EQUAL, /* xorgevdev:21 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */
+  [0x16] = Q_KEY_CODE_BACKSPACE, /* xorgevdev:22 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */
+  [0x17] = Q_KEY_CODE_TAB, /* xorgevdev:23 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */
+  [0x18] = Q_KEY_CODE_Q, /* xorgevdev:24 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */
+  [0x19] = Q_KEY_CODE_W, /* xorgevdev:25 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */
+  [0x1a] = Q_KEY_CODE_E, /* xorgevdev:26 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */
+  [0x1b] = Q_KEY_CODE_R, /* xorgevdev:27 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */
+  [0x1c] = Q_KEY_CODE_T, /* xorgevdev:28 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */
+  [0x1d] = Q_KEY_CODE_Y, /* xorgevdev:29 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */
+  [0x1e] = Q_KEY_CODE_U, /* xorgevdev:30 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */
+  [0x1f] = Q_KEY_CODE_I, /* xorgevdev:31 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */
+  [0x20] = Q_KEY_CODE_O, /* xorgevdev:32 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */
+  [0x21] = Q_KEY_CODE_P, /* xorgevdev:33 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */
+  [0x22] = Q_KEY_CODE_BRACKET_LEFT, /* xorgevdev:34 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */
+  [0x23] = Q_KEY_CODE_BRACKET_RIGHT, /* xorgevdev:35 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */
+  [0x24] = Q_KEY_CODE_RET, /* xorgevdev:36 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */
+  [0x25] = Q_KEY_CODE_CTRL, /* xorgevdev:37 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */
+  [0x26] = Q_KEY_CODE_A, /* xorgevdev:38 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */
+  [0x27] = Q_KEY_CODE_S, /* xorgevdev:39 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */
+  [0x28] = Q_KEY_CODE_D, /* xorgevdev:40 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */
+  [0x29] = Q_KEY_CODE_F, /* xorgevdev:41 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */
+  [0x2a] = Q_KEY_CODE_G, /* xorgevdev:42 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */
+  [0x2b] = Q_KEY_CODE_H, /* xorgevdev:43 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */
+  [0x2c] = Q_KEY_CODE_J, /* xorgevdev:44 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */
+  [0x2d] = Q_KEY_CODE_K, /* xorgevdev:45 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */
+  [0x2e] = Q_KEY_CODE_L, /* xorgevdev:46 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */
+  [0x2f] = Q_KEY_CODE_SEMICOLON, /* xorgevdev:47 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */
+  [0x30] = Q_KEY_CODE_APOSTROPHE, /* xorgevdev:48 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */
+  [0x31] = Q_KEY_CODE_GRAVE_ACCENT, /* xorgevdev:49 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */
+  [0x32] = Q_KEY_CODE_SHIFT, /* xorgevdev:50 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */
+  [0x33] = Q_KEY_CODE_BACKSLASH, /* xorgevdev:51 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0x34] = Q_KEY_CODE_Z, /* xorgevdev:52 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */
+  [0x35] = Q_KEY_CODE_X, /* xorgevdev:53 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */
+  [0x36] = Q_KEY_CODE_C, /* xorgevdev:54 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */
+  [0x37] = Q_KEY_CODE_V, /* xorgevdev:55 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */
+  [0x38] = Q_KEY_CODE_B, /* xorgevdev:56 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */
+  [0x39] = Q_KEY_CODE_N, /* xorgevdev:57 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */
+  [0x3a] = Q_KEY_CODE_M, /* xorgevdev:58 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */
+  [0x3b] = Q_KEY_CODE_COMMA, /* xorgevdev:59 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */
+  [0x3c] = Q_KEY_CODE_DOT, /* xorgevdev:60 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */
+  [0x3d] = Q_KEY_CODE_SLASH, /* xorgevdev:61 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */
+  [0x3e] = Q_KEY_CODE_SHIFT_R, /* xorgevdev:62 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */
+  [0x3f] = Q_KEY_CODE_KP_MULTIPLY, /* xorgevdev:63 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */
+  [0x40] = Q_KEY_CODE_ALT, /* xorgevdev:64 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */
+  [0x41] = Q_KEY_CODE_SPC, /* xorgevdev:65 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */
+  [0x42] = Q_KEY_CODE_CAPS_LOCK, /* xorgevdev:66 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */
+  [0x43] = Q_KEY_CODE_F1, /* xorgevdev:67 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */
+  [0x44] = Q_KEY_CODE_F2, /* xorgevdev:68 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */
+  [0x45] = Q_KEY_CODE_F3, /* xorgevdev:69 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */
+  [0x46] = Q_KEY_CODE_F4, /* xorgevdev:70 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */
+  [0x47] = Q_KEY_CODE_F5, /* xorgevdev:71 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */
+  [0x48] = Q_KEY_CODE_F6, /* xorgevdev:72 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */
+  [0x49] = Q_KEY_CODE_F7, /* xorgevdev:73 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */
+  [0x4a] = Q_KEY_CODE_F8, /* xorgevdev:74 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */
+  [0x4b] = Q_KEY_CODE_F9, /* xorgevdev:75 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */
+  [0x4c] = Q_KEY_CODE_F10, /* xorgevdev:76 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */
+  [0x4d] = Q_KEY_CODE_NUM_LOCK, /* xorgevdev:77 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */
+  [0x4e] = Q_KEY_CODE_SCROLL_LOCK, /* xorgevdev:78 -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */
+  [0x4f] = Q_KEY_CODE_KP_7, /* xorgevdev:79 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */
+  [0x50] = Q_KEY_CODE_KP_8, /* xorgevdev:80 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */
+  [0x51] = Q_KEY_CODE_KP_9, /* xorgevdev:81 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */
+  [0x52] = Q_KEY_CODE_KP_SUBTRACT, /* xorgevdev:82 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */
+  [0x53] = Q_KEY_CODE_KP_4, /* xorgevdev:83 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */
+  [0x54] = Q_KEY_CODE_KP_5, /* xorgevdev:84 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */
+  [0x55] = Q_KEY_CODE_KP_6, /* xorgevdev:85 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */
+  [0x56] = Q_KEY_CODE_KP_ADD, /* xorgevdev:86 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */
+  [0x57] = Q_KEY_CODE_KP_1, /* xorgevdev:87 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */
+  [0x58] = Q_KEY_CODE_KP_2, /* xorgevdev:88 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */
+  [0x59] = Q_KEY_CODE_KP_3, /* xorgevdev:89 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */
+  [0x5a] = Q_KEY_CODE_KP_0, /* xorgevdev:90 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */
+  [0x5b] = Q_KEY_CODE_KP_DECIMAL, /* xorgevdev:91 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */
+  [0x5c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:92 -> linux:84 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:93 -> linux:85 (KEY_ZENKAKUHANKAKU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x5e] = Q_KEY_CODE_LESS, /* xorgevdev:94 -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */
+  [0x5f] = Q_KEY_CODE_F11, /* xorgevdev:95 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */
+  [0x60] = Q_KEY_CODE_F12, /* xorgevdev:96 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */
+  [0x61] = Q_KEY_CODE_RO, /* xorgevdev:97 -> linux:89 (KEY_RO) -> qcode:Q_KEY_CODE_RO (ro) */
+  [0x62] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:98 -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x63] = Q_KEY_CODE_HIRAGANA, /* xorgevdev:99 -> linux:91 (KEY_HIRAGANA) -> qcode:Q_KEY_CODE_HIRAGANA (hiragana) */
+  [0x64] = Q_KEY_CODE_HENKAN, /* xorgevdev:100 -> linux:92 (KEY_HENKAN) -> qcode:Q_KEY_CODE_HENKAN (henkan) */
+  [0x65] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:101 -> linux:93 (KEY_KATAKANAHIRAGANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x66] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:102 -> linux:94 (KEY_MUHENKAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x67] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:103 -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x68] = Q_KEY_CODE_KP_ENTER, /* xorgevdev:104 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */
+  [0x69] = Q_KEY_CODE_CTRL_R, /* xorgevdev:105 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */
+  [0x6a] = Q_KEY_CODE_KP_DIVIDE, /* xorgevdev:106 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */
+  [0x6b] = Q_KEY_CODE_SYSRQ, /* xorgevdev:107 -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */
+  [0x6c] = Q_KEY_CODE_ALT_R, /* xorgevdev:108 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */
+  [0x6d] = Q_KEY_CODE_LF, /* xorgevdev:109 -> linux:101 (KEY_LINEFEED) -> qcode:Q_KEY_CODE_LF (lf) */
+  [0x6e] = Q_KEY_CODE_HOME, /* xorgevdev:110 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */
+  [0x6f] = Q_KEY_CODE_UP, /* xorgevdev:111 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */
+  [0x70] = Q_KEY_CODE_PGUP, /* xorgevdev:112 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */
+  [0x71] = Q_KEY_CODE_LEFT, /* xorgevdev:113 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */
+  [0x72] = Q_KEY_CODE_RIGHT, /* xorgevdev:114 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */
+  [0x73] = Q_KEY_CODE_END, /* xorgevdev:115 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */
+  [0x74] = Q_KEY_CODE_DOWN, /* xorgevdev:116 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */
+  [0x75] = Q_KEY_CODE_PGDN, /* xorgevdev:117 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */
+  [0x76] = Q_KEY_CODE_INSERT, /* xorgevdev:118 -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */
+  [0x77] = Q_KEY_CODE_DELETE, /* xorgevdev:119 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */
+  [0x78] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:120 -> linux:112 (KEY_MACRO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x79] = Q_KEY_CODE_AUDIOMUTE, /* xorgevdev:121 -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */
+  [0x7a] = Q_KEY_CODE_VOLUMEDOWN, /* xorgevdev:122 -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */
+  [0x7b] = Q_KEY_CODE_VOLUMEUP, /* xorgevdev:123 -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */
+  [0x7c] = Q_KEY_CODE_POWER, /* xorgevdev:124 -> linux:116 (KEY_POWER) -> qcode:Q_KEY_CODE_POWER (power) */
+  [0x7d] = Q_KEY_CODE_KP_EQUALS, /* xorgevdev:125 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */
+  [0x7e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:126 -> linux:118 (KEY_KPPLUSMINUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7f] = Q_KEY_CODE_PAUSE, /* xorgevdev:127 -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */
+  [0x80] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:128 -> linux:120 (KEY_SCALE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x81] = Q_KEY_CODE_KP_COMMA, /* xorgevdev:129 -> linux:121 (KEY_KPCOMMA) -> qcode:Q_KEY_CODE_KP_COMMA (kp_comma) */
+  [0x82] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:130 -> linux:122 (KEY_HANGEUL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x83] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:131 -> linux:123 (KEY_HANJA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x84] = Q_KEY_CODE_YEN, /* xorgevdev:132 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */
+  [0x85] = Q_KEY_CODE_META_L, /* xorgevdev:133 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */
+  [0x86] = Q_KEY_CODE_META_R, /* xorgevdev:134 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */
+  [0x87] = Q_KEY_CODE_COMPOSE, /* xorgevdev:135 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */
+  [0x88] = Q_KEY_CODE_STOP, /* xorgevdev:136 -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */
+  [0x89] = Q_KEY_CODE_AGAIN, /* xorgevdev:137 -> linux:129 (KEY_AGAIN) -> qcode:Q_KEY_CODE_AGAIN (again) */
+  [0x8a] = Q_KEY_CODE_PROPS, /* xorgevdev:138 -> linux:130 (KEY_PROPS) -> qcode:Q_KEY_CODE_PROPS (props) */
+  [0x8b] = Q_KEY_CODE_UNDO, /* xorgevdev:139 -> linux:131 (KEY_UNDO) -> qcode:Q_KEY_CODE_UNDO (undo) */
+  [0x8c] = Q_KEY_CODE_FRONT, /* xorgevdev:140 -> linux:132 (KEY_FRONT) -> qcode:Q_KEY_CODE_FRONT (front) */
+  [0x8d] = Q_KEY_CODE_COPY, /* xorgevdev:141 -> linux:133 (KEY_COPY) -> qcode:Q_KEY_CODE_COPY (copy) */
+  [0x8e] = Q_KEY_CODE_OPEN, /* xorgevdev:142 -> linux:134 (KEY_OPEN) -> qcode:Q_KEY_CODE_OPEN (open) */
+  [0x8f] = Q_KEY_CODE_PASTE, /* xorgevdev:143 -> linux:135 (KEY_PASTE) -> qcode:Q_KEY_CODE_PASTE (paste) */
+  [0x90] = Q_KEY_CODE_FIND, /* xorgevdev:144 -> linux:136 (KEY_FIND) -> qcode:Q_KEY_CODE_FIND (find) */
+  [0x91] = Q_KEY_CODE_CUT, /* xorgevdev:145 -> linux:137 (KEY_CUT) -> qcode:Q_KEY_CODE_CUT (cut) */
+  [0x92] = Q_KEY_CODE_HELP, /* xorgevdev:146 -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */
+  [0x93] = Q_KEY_CODE_MENU, /* xorgevdev:147 -> linux:139 (KEY_MENU) -> qcode:Q_KEY_CODE_MENU (menu) */
+  [0x94] = Q_KEY_CODE_CALCULATOR, /* xorgevdev:148 -> linux:140 (KEY_CALC) -> qcode:Q_KEY_CODE_CALCULATOR (calculator) */
+  [0x95] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:149 -> linux:141 (KEY_SETUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x96] = Q_KEY_CODE_SLEEP, /* xorgevdev:150 -> linux:142 (KEY_SLEEP) -> qcode:Q_KEY_CODE_SLEEP (sleep) */
+  [0x97] = Q_KEY_CODE_WAKE, /* xorgevdev:151 -> linux:143 (KEY_WAKEUP) -> qcode:Q_KEY_CODE_WAKE (wake) */
+  [0x98] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:152 -> linux:144 (KEY_FILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x99] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:153 -> linux:145 (KEY_SENDFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x9a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:154 -> linux:146 (KEY_DELETEFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x9b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:155 -> linux:147 (KEY_XFER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x9c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:156 -> linux:148 (KEY_PROG1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x9d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:157 -> linux:149 (KEY_PROG2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x9e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:158 -> linux:150 (KEY_WWW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x9f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:159 -> linux:151 (KEY_MSDOS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:160 -> linux:152 (KEY_SCREENLOCK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:161 -> linux:153 (KEY_DIRECTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:162 -> linux:154 (KEY_CYCLEWINDOWS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa3] = Q_KEY_CODE_MAIL, /* xorgevdev:163 -> linux:155 (KEY_MAIL) -> qcode:Q_KEY_CODE_MAIL (mail) */
+  [0xa4] = Q_KEY_CODE_AC_BOOKMARKS, /* xorgevdev:164 -> linux:156 (KEY_BOOKMARKS) -> qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) */
+  [0xa5] = Q_KEY_CODE_COMPUTER, /* xorgevdev:165 -> linux:157 (KEY_COMPUTER) -> qcode:Q_KEY_CODE_COMPUTER (computer) */
+  [0xa6] = Q_KEY_CODE_AC_BACK, /* xorgevdev:166 -> linux:158 (KEY_BACK) -> qcode:Q_KEY_CODE_AC_BACK (ac_back) */
+  [0xa7] = Q_KEY_CODE_AC_FORWARD, /* xorgevdev:167 -> linux:159 (KEY_FORWARD) -> qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) */
+  [0xa8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:168 -> linux:160 (KEY_CLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xa9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:169 -> linux:161 (KEY_EJECTCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xaa] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:170 -> linux:162 (KEY_EJECTCLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xab] = Q_KEY_CODE_AUDIONEXT, /* xorgevdev:171 -> linux:163 (KEY_NEXTSONG) -> qcode:Q_KEY_CODE_AUDIONEXT (audionext) */
+  [0xac] = Q_KEY_CODE_AUDIOPLAY, /* xorgevdev:172 -> linux:164 (KEY_PLAYPAUSE) -> qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) */
+  [0xad] = Q_KEY_CODE_AUDIOPREV, /* xorgevdev:173 -> linux:165 (KEY_PREVIOUSSONG) -> qcode:Q_KEY_CODE_AUDIOPREV (audioprev) */
+  [0xae] = Q_KEY_CODE_AUDIOSTOP, /* xorgevdev:174 -> linux:166 (KEY_STOPCD) -> qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) */
+  [0xaf] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:175 -> linux:167 (KEY_RECORD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:176 -> linux:168 (KEY_REWIND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:177 -> linux:169 (KEY_PHONE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:178 -> linux:170 (KEY_ISO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:179 -> linux:171 (KEY_CONFIG) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb4] = Q_KEY_CODE_AC_HOME, /* xorgevdev:180 -> linux:172 (KEY_HOMEPAGE) -> qcode:Q_KEY_CODE_AC_HOME (ac_home) */
+  [0xb5] = Q_KEY_CODE_AC_REFRESH, /* xorgevdev:181 -> linux:173 (KEY_REFRESH) -> qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) */
+  [0xb6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:182 -> linux:174 (KEY_EXIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:183 -> linux:175 (KEY_MOVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:184 -> linux:176 (KEY_EDIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xb9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:185 -> linux:177 (KEY_SCROLLUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xba] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:186 -> linux:178 (KEY_SCROLLDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:187 -> linux:179 (KEY_KPLEFTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:188 -> linux:180 (KEY_KPRIGHTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:189 -> linux:181 (KEY_NEW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbe] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:190 -> linux:182 (KEY_REDO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xbf] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:191 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:192 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:193 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:194 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:195 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:196 -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:197 -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:198 -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:199 -> linux:191 (KEY_F21) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:200 -> linux:192 (KEY_F22) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xc9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:201 -> linux:193 (KEY_F23) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xca] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:202 -> linux:194 (KEY_F24) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xcb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:203 -> linux:195 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xcc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:204 -> linux:196 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xcd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:205 -> linux:197 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xce] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:206 -> linux:198 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xcf] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:207 -> linux:199 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:208 -> linux:200 (KEY_PLAYCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:209 -> linux:201 (KEY_PAUSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:210 -> linux:202 (KEY_PROG3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:211 -> linux:203 (KEY_PROG4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:212 -> linux:204 (KEY_DASHBOARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:213 -> linux:205 (KEY_SUSPEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:214 -> linux:206 (KEY_CLOSE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:215 -> linux:207 (KEY_PLAY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:216 -> linux:208 (KEY_FASTFORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xd9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:217 -> linux:209 (KEY_BASSBOOST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xda] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:218 -> linux:210 (KEY_PRINT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xdb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:219 -> linux:211 (KEY_HP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xdc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:220 -> linux:212 (KEY_CAMERA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xdd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:221 -> linux:213 (KEY_SOUND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xde] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:222 -> linux:214 (KEY_QUESTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xdf] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:223 -> linux:215 (KEY_EMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:224 -> linux:216 (KEY_CHAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:225 -> linux:217 (KEY_SEARCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:226 -> linux:218 (KEY_CONNECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:227 -> linux:219 (KEY_FINANCE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:228 -> linux:220 (KEY_SPORT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:229 -> linux:221 (KEY_SHOP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:230 -> linux:222 (KEY_ALTERASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:231 -> linux:223 (KEY_CANCEL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:232 -> linux:224 (KEY_BRIGHTNESSDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xe9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:233 -> linux:225 (KEY_BRIGHTNESSUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xea] = Q_KEY_CODE_MEDIASELECT, /* xorgevdev:234 -> linux:226 (KEY_MEDIA) -> qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) */
+  [0xeb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:235 -> linux:227 (KEY_SWITCHVIDEOMODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xec] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:236 -> linux:228 (KEY_KBDILLUMTOGGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xed] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:237 -> linux:229 (KEY_KBDILLUMDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xee] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:238 -> linux:230 (KEY_KBDILLUMUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xef] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:239 -> linux:231 (KEY_SEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:240 -> linux:232 (KEY_REPLY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:241 -> linux:233 (KEY_FORWARDMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:242 -> linux:234 (KEY_SAVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:243 -> linux:235 (KEY_DOCUMENTS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:244 -> linux:236 (KEY_BATTERY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:245 -> linux:237 (KEY_BLUETOOTH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:246 -> linux:238 (KEY_WLAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:247 -> linux:239 (KEY_UWB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:248 -> linux:240 (KEY_UNKNOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xf9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:249 -> linux:241 (KEY_VIDEO_NEXT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfa] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:250 -> linux:242 (KEY_VIDEO_PREV) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:251 -> linux:243 (KEY_BRIGHTNESS_CYCLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:252 -> linux:244 (KEY_BRIGHTNESS_ZERO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:253 -> linux:245 (KEY_DISPLAY_OFF) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xfe] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:254 -> linux:246 (KEY_WIMAX) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0xff] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:255 -> linux:247 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x100] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:256 -> linux:248 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x101] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:257 -> linux:249 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x102] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:258 -> linux:250 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x103] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:259 -> linux:251 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x104] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:260 -> linux:252 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x105] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:261 -> linux:253 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x106] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:262 -> linux:254 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x107] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:263 -> linux:255 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x108] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:264 -> linux:256 (BTN_0) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x109] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:265 -> linux:257 (BTN_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x10a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:266 -> linux:258 (BTN_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x10b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:267 -> linux:259 (BTN_3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x10c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:268 -> linux:260 (BTN_4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x10d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:269 -> linux:261 (BTN_5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x10e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:270 -> linux:262 (BTN_6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x10f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:271 -> linux:263 (BTN_7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x110] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:272 -> linux:264 (BTN_8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x111] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:273 -> linux:265 (BTN_9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x118] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:280 -> linux:272 (BTN_LEFT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x119] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:281 -> linux:273 (BTN_RIGHT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x11a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:282 -> linux:274 (BTN_MIDDLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x11b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:283 -> linux:275 (BTN_SIDE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x11c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:284 -> linux:276 (BTN_EXTRA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x11d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:285 -> linux:277 (BTN_FORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x11e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:286 -> linux:278 (BTN_BACK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x11f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:287 -> linux:279 (BTN_TASK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x128] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:296 -> linux:288 (BTN_TRIGGER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x129] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:297 -> linux:289 (BTN_THUMB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x12a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:298 -> linux:290 (BTN_THUMB2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x12b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:299 -> linux:291 (BTN_TOP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x12c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:300 -> linux:292 (BTN_TOP2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x12d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:301 -> linux:293 (BTN_PINKIE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x12e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:302 -> linux:294 (BTN_BASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x12f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:303 -> linux:295 (BTN_BASE2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x130] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:304 -> linux:296 (BTN_BASE3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x131] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:305 -> linux:297 (BTN_BASE4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x132] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:306 -> linux:298 (BTN_BASE5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x133] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:307 -> linux:299 (BTN_BASE6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x137] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:311 -> linux:303 (BTN_DEAD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x138] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:312 -> linux:304 (BTN_A) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x139] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:313 -> linux:305 (BTN_B) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x13a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:314 -> linux:306 (BTN_C) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x13b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:315 -> linux:307 (BTN_X) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x13c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:316 -> linux:308 (BTN_Y) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x13d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:317 -> linux:309 (BTN_Z) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x13e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:318 -> linux:310 (BTN_TL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x13f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:319 -> linux:311 (BTN_TR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x140] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:320 -> linux:312 (BTN_TL2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x141] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:321 -> linux:313 (BTN_TR2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x142] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:322 -> linux:314 (BTN_SELECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x143] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:323 -> linux:315 (BTN_START) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x144] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:324 -> linux:316 (BTN_MODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x145] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:325 -> linux:317 (BTN_THUMBL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x146] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:326 -> linux:318 (BTN_THUMBR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x148] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:328 -> linux:320 (BTN_TOOL_PEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x149] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:329 -> linux:321 (BTN_TOOL_RUBBER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x14a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:330 -> linux:322 (BTN_TOOL_BRUSH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x14b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:331 -> linux:323 (BTN_TOOL_PENCIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x14c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:332 -> linux:324 (BTN_TOOL_AIRBRUSH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x14d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:333 -> linux:325 (BTN_TOOL_FINGER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x14e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:334 -> linux:326 (BTN_TOOL_MOUSE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x14f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:335 -> linux:327 (BTN_TOOL_LENS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x152] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:338 -> linux:330 (BTN_TOUCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x153] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:339 -> linux:331 (BTN_STYLUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x154] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:340 -> linux:332 (BTN_STYLUS2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x155] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:341 -> linux:333 (BTN_TOOL_DOUBLETAP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x156] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:342 -> linux:334 (BTN_TOOL_TRIPLETAP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x157] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:343 -> linux:335 (BTN_TOOL_QUADTAP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x158] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:344 -> linux:336 (BTN_GEAR_DOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x159] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:345 -> linux:337 (BTN_GEAR_UP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x168] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:360 -> linux:352 (KEY_OK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x169] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:361 -> linux:353 (KEY_SELECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x16a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:362 -> linux:354 (KEY_GOTO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x16b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:363 -> linux:355 (KEY_CLEAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x16c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:364 -> linux:356 (KEY_POWER2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x16d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:365 -> linux:357 (KEY_OPTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x16e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:366 -> linux:358 (KEY_INFO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x16f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:367 -> linux:359 (KEY_TIME) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x170] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:368 -> linux:360 (KEY_VENDOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x171] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:369 -> linux:361 (KEY_ARCHIVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x172] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:370 -> linux:362 (KEY_PROGRAM) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x173] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:371 -> linux:363 (KEY_CHANNEL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x174] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:372 -> linux:364 (KEY_FAVORITES) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x175] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:373 -> linux:365 (KEY_EPG) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x176] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:374 -> linux:366 (KEY_PVR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x177] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:375 -> linux:367 (KEY_MHP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x178] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:376 -> linux:368 (KEY_LANGUAGE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x179] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:377 -> linux:369 (KEY_TITLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x17a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:378 -> linux:370 (KEY_SUBTITLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x17b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:379 -> linux:371 (KEY_ANGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x17c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:380 -> linux:372 (KEY_ZOOM) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x17d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:381 -> linux:373 (KEY_MODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x17e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:382 -> linux:374 (KEY_KEYBOARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x17f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:383 -> linux:375 (KEY_SCREEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x180] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:384 -> linux:376 (KEY_PC) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x181] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:385 -> linux:377 (KEY_TV) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x182] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:386 -> linux:378 (KEY_TV2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x183] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:387 -> linux:379 (KEY_VCR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x184] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:388 -> linux:380 (KEY_VCR2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x185] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:389 -> linux:381 (KEY_SAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x186] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:390 -> linux:382 (KEY_SAT2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x187] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:391 -> linux:383 (KEY_CD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x188] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:392 -> linux:384 (KEY_TAPE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x189] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:393 -> linux:385 (KEY_RADIO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x18a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:394 -> linux:386 (KEY_TUNER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x18b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:395 -> linux:387 (KEY_PLAYER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x18c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:396 -> linux:388 (KEY_TEXT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x18d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:397 -> linux:389 (KEY_DVD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x18e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:398 -> linux:390 (KEY_AUX) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x18f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:399 -> linux:391 (KEY_MP3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x190] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:400 -> linux:392 (KEY_AUDIO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x191] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:401 -> linux:393 (KEY_VIDEO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x192] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:402 -> linux:394 (KEY_DIRECTORY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x193] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:403 -> linux:395 (KEY_LIST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x194] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:404 -> linux:396 (KEY_MEMO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x195] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:405 -> linux:397 (KEY_CALENDAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x196] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:406 -> linux:398 (KEY_RED) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x197] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:407 -> linux:399 (KEY_GREEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x198] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:408 -> linux:400 (KEY_YELLOW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x199] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:409 -> linux:401 (KEY_BLUE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:410 -> linux:402 (KEY_CHANNELUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:411 -> linux:403 (KEY_CHANNELDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:412 -> linux:404 (KEY_FIRST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:413 -> linux:405 (KEY_LAST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:414 -> linux:406 (KEY_AB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x19f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:415 -> linux:407 (KEY_NEXT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:416 -> linux:408 (KEY_RESTART) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:417 -> linux:409 (KEY_SLOW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:418 -> linux:410 (KEY_SHUFFLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:419 -> linux:411 (KEY_BREAK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:420 -> linux:412 (KEY_PREVIOUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:421 -> linux:413 (KEY_DIGITS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:422 -> linux:414 (KEY_TEEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:423 -> linux:415 (KEY_TWEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:424 -> linux:416 (KEY_VIDEOPHONE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1a9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:425 -> linux:417 (KEY_GAMES) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1aa] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:426 -> linux:418 (KEY_ZOOMIN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ab] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:427 -> linux:419 (KEY_ZOOMOUT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ac] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:428 -> linux:420 (KEY_ZOOMRESET) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ad] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:429 -> linux:421 (KEY_WORDPROCESSOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ae] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:430 -> linux:422 (KEY_EDITOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1af] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:431 -> linux:423 (KEY_SPREADSHEET) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:432 -> linux:424 (KEY_GRAPHICSEDITOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:433 -> linux:425 (KEY_PRESENTATION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:434 -> linux:426 (KEY_DATABASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:435 -> linux:427 (KEY_NEWS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:436 -> linux:428 (KEY_VOICEMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:437 -> linux:429 (KEY_ADDRESSBOOK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:438 -> linux:430 (KEY_MESSENGER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:439 -> linux:431 (KEY_DISPLAYTOGGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:440 -> linux:432 (KEY_SPELLCHECK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1b9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:441 -> linux:433 (KEY_LOGOFF) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ba] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:442 -> linux:434 (KEY_DOLLAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1bb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:443 -> linux:435 (KEY_EURO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1bc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:444 -> linux:436 (KEY_FRAMEBACK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1bd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:445 -> linux:437 (KEY_FRAMEFORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1be] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:446 -> linux:438 (KEY_CONTEXT_MENU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1bf] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:447 -> linux:439 (KEY_MEDIA_REPEAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1c8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:456 -> linux:448 (KEY_DEL_EOL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1c9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:457 -> linux:449 (KEY_DEL_EOS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ca] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:458 -> linux:450 (KEY_INS_LINE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1cb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:459 -> linux:451 (KEY_DEL_LINE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1d8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:472 -> linux:464 (KEY_FN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1d9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:473 -> linux:465 (KEY_FN_ESC) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1da] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:474 -> linux:466 (KEY_FN_F1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1db] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:475 -> linux:467 (KEY_FN_F2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1dc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:476 -> linux:468 (KEY_FN_F3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1dd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:477 -> linux:469 (KEY_FN_F4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1de] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:478 -> linux:470 (KEY_FN_F5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1df] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:479 -> linux:471 (KEY_FN_F6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:480 -> linux:472 (KEY_FN_F7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:481 -> linux:473 (KEY_FN_F8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:482 -> linux:474 (KEY_FN_F9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:483 -> linux:475 (KEY_FN_F10) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:484 -> linux:476 (KEY_FN_F11) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:485 -> linux:477 (KEY_FN_F12) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:486 -> linux:478 (KEY_FN_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:487 -> linux:479 (KEY_FN_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:488 -> linux:480 (KEY_FN_D) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1e9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:489 -> linux:481 (KEY_FN_E) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ea] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:490 -> linux:482 (KEY_FN_F) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1eb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:491 -> linux:483 (KEY_FN_S) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ec] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:492 -> linux:484 (KEY_FN_B) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1f9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:505 -> linux:497 (KEY_BRL_DOT1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1fa] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:506 -> linux:498 (KEY_BRL_DOT2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1fb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:507 -> linux:499 (KEY_BRL_DOT3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1fc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:508 -> linux:500 (KEY_BRL_DOT4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1fd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:509 -> linux:501 (KEY_BRL_DOT5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1fe] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:510 -> linux:502 (KEY_BRL_DOT6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x1ff] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:511 -> linux:503 (KEY_BRL_DOT7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x200] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:512 -> linux:504 (KEY_BRL_DOT8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x201] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:513 -> linux:505 (KEY_BRL_DOT9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x202] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:514 -> linux:506 (KEY_BRL_DOT10) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x208] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:520 -> linux:512 (KEY_NUMERIC_0) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x209] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:521 -> linux:513 (KEY_NUMERIC_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x20a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:522 -> linux:514 (KEY_NUMERIC_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x20b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:523 -> linux:515 (KEY_NUMERIC_3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x20c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:524 -> linux:516 (KEY_NUMERIC_4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x20d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:525 -> linux:517 (KEY_NUMERIC_5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x20e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:526 -> linux:518 (KEY_NUMERIC_6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x20f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:527 -> linux:519 (KEY_NUMERIC_7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x210] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:528 -> linux:520 (KEY_NUMERIC_8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x211] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:529 -> linux:521 (KEY_NUMERIC_9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x212] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:530 -> linux:522 (KEY_NUMERIC_STAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x213] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:531 -> linux:523 (KEY_NUMERIC_POUND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x214] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:532 -> linux:524 (KEY_RFKILL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+};
+const guint qemu_input_map_xorgevdev_to_qcode_len = sizeof(qemu_input_map_xorgevdev_to_qcode)/sizeof(qemu_input_map_xorgevdev_to_qcode[0]);
diff --git a/ui/input-keymap-xorgkbd-to-qcode.c b/ui/input-keymap-xorgkbd-to-qcode.c
new file mode 100644
index 0000000000..c46097a0e8
--- /dev/null
+++ b/ui/input-keymap-xorgkbd-to-qcode.c
@@ -0,0 +1,122 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:08
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_xorgkbd_to_qcode code-map keymaps.csv xorgkbd qcode
+*/
+const guint16 qemu_input_map_xorgkbd_to_qcode[209] = {
+  [0x9] = Q_KEY_CODE_ESC, /* xorgkbd:9 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */
+  [0xa] = Q_KEY_CODE_1, /* xorgkbd:10 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */
+  [0xb] = Q_KEY_CODE_2, /* xorgkbd:11 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */
+  [0xc] = Q_KEY_CODE_3, /* xorgkbd:12 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */
+  [0xd] = Q_KEY_CODE_4, /* xorgkbd:13 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */
+  [0xe] = Q_KEY_CODE_5, /* xorgkbd:14 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */
+  [0xf] = Q_KEY_CODE_6, /* xorgkbd:15 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */
+  [0x10] = Q_KEY_CODE_7, /* xorgkbd:16 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */
+  [0x11] = Q_KEY_CODE_8, /* xorgkbd:17 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */
+  [0x12] = Q_KEY_CODE_9, /* xorgkbd:18 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */
+  [0x13] = Q_KEY_CODE_0, /* xorgkbd:19 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */
+  [0x14] = Q_KEY_CODE_MINUS, /* xorgkbd:20 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */
+  [0x15] = Q_KEY_CODE_EQUAL, /* xorgkbd:21 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */
+  [0x16] = Q_KEY_CODE_BACKSPACE, /* xorgkbd:22 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */
+  [0x17] = Q_KEY_CODE_TAB, /* xorgkbd:23 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */
+  [0x18] = Q_KEY_CODE_Q, /* xorgkbd:24 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */
+  [0x19] = Q_KEY_CODE_W, /* xorgkbd:25 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */
+  [0x1a] = Q_KEY_CODE_E, /* xorgkbd:26 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */
+  [0x1b] = Q_KEY_CODE_R, /* xorgkbd:27 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */
+  [0x1c] = Q_KEY_CODE_T, /* xorgkbd:28 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */
+  [0x1d] = Q_KEY_CODE_Y, /* xorgkbd:29 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */
+  [0x1e] = Q_KEY_CODE_U, /* xorgkbd:30 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */
+  [0x1f] = Q_KEY_CODE_I, /* xorgkbd:31 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */
+  [0x20] = Q_KEY_CODE_O, /* xorgkbd:32 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */
+  [0x21] = Q_KEY_CODE_P, /* xorgkbd:33 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */
+  [0x22] = Q_KEY_CODE_BRACKET_LEFT, /* xorgkbd:34 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */
+  [0x23] = Q_KEY_CODE_BRACKET_RIGHT, /* xorgkbd:35 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */
+  [0x24] = Q_KEY_CODE_RET, /* xorgkbd:36 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */
+  [0x25] = Q_KEY_CODE_CTRL, /* xorgkbd:37 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */
+  [0x26] = Q_KEY_CODE_A, /* xorgkbd:38 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */
+  [0x27] = Q_KEY_CODE_S, /* xorgkbd:39 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */
+  [0x28] = Q_KEY_CODE_D, /* xorgkbd:40 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */
+  [0x29] = Q_KEY_CODE_F, /* xorgkbd:41 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */
+  [0x2a] = Q_KEY_CODE_G, /* xorgkbd:42 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */
+  [0x2b] = Q_KEY_CODE_H, /* xorgkbd:43 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */
+  [0x2c] = Q_KEY_CODE_J, /* xorgkbd:44 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */
+  [0x2d] = Q_KEY_CODE_K, /* xorgkbd:45 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */
+  [0x2e] = Q_KEY_CODE_L, /* xorgkbd:46 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */
+  [0x2f] = Q_KEY_CODE_SEMICOLON, /* xorgkbd:47 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */
+  [0x30] = Q_KEY_CODE_APOSTROPHE, /* xorgkbd:48 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */
+  [0x31] = Q_KEY_CODE_GRAVE_ACCENT, /* xorgkbd:49 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */
+  [0x32] = Q_KEY_CODE_SHIFT, /* xorgkbd:50 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */
+  [0x33] = Q_KEY_CODE_BACKSLASH, /* xorgkbd:51 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0x34] = Q_KEY_CODE_Z, /* xorgkbd:52 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */
+  [0x35] = Q_KEY_CODE_X, /* xorgkbd:53 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */
+  [0x36] = Q_KEY_CODE_C, /* xorgkbd:54 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */
+  [0x37] = Q_KEY_CODE_V, /* xorgkbd:55 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */
+  [0x38] = Q_KEY_CODE_B, /* xorgkbd:56 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */
+  [0x39] = Q_KEY_CODE_N, /* xorgkbd:57 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */
+  [0x3a] = Q_KEY_CODE_M, /* xorgkbd:58 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */
+  [0x3b] = Q_KEY_CODE_COMMA, /* xorgkbd:59 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */
+  [0x3c] = Q_KEY_CODE_DOT, /* xorgkbd:60 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */
+  [0x3d] = Q_KEY_CODE_SLASH, /* xorgkbd:61 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */
+  [0x3e] = Q_KEY_CODE_SHIFT_R, /* xorgkbd:62 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */
+  [0x3f] = Q_KEY_CODE_KP_MULTIPLY, /* xorgkbd:63 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */
+  [0x40] = Q_KEY_CODE_ALT, /* xorgkbd:64 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */
+  [0x41] = Q_KEY_CODE_SPC, /* xorgkbd:65 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */
+  [0x42] = Q_KEY_CODE_CAPS_LOCK, /* xorgkbd:66 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */
+  [0x43] = Q_KEY_CODE_F1, /* xorgkbd:67 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */
+  [0x44] = Q_KEY_CODE_F2, /* xorgkbd:68 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */
+  [0x45] = Q_KEY_CODE_F3, /* xorgkbd:69 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */
+  [0x46] = Q_KEY_CODE_F4, /* xorgkbd:70 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */
+  [0x47] = Q_KEY_CODE_F5, /* xorgkbd:71 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */
+  [0x48] = Q_KEY_CODE_F6, /* xorgkbd:72 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */
+  [0x49] = Q_KEY_CODE_F7, /* xorgkbd:73 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */
+  [0x4a] = Q_KEY_CODE_F8, /* xorgkbd:74 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */
+  [0x4b] = Q_KEY_CODE_F9, /* xorgkbd:75 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */
+  [0x4c] = Q_KEY_CODE_F10, /* xorgkbd:76 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */
+  [0x4d] = Q_KEY_CODE_NUM_LOCK, /* xorgkbd:77 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */
+  [0x4e] = Q_KEY_CODE_SCROLL_LOCK, /* xorgkbd:78 -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */
+  [0x4f] = Q_KEY_CODE_KP_7, /* xorgkbd:79 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */
+  [0x50] = Q_KEY_CODE_KP_8, /* xorgkbd:80 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */
+  [0x51] = Q_KEY_CODE_KP_9, /* xorgkbd:81 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */
+  [0x52] = Q_KEY_CODE_KP_SUBTRACT, /* xorgkbd:82 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */
+  [0x53] = Q_KEY_CODE_KP_4, /* xorgkbd:83 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */
+  [0x54] = Q_KEY_CODE_KP_5, /* xorgkbd:84 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */
+  [0x55] = Q_KEY_CODE_KP_6, /* xorgkbd:85 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */
+  [0x56] = Q_KEY_CODE_KP_ADD, /* xorgkbd:86 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */
+  [0x57] = Q_KEY_CODE_KP_1, /* xorgkbd:87 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */
+  [0x58] = Q_KEY_CODE_KP_2, /* xorgkbd:88 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */
+  [0x59] = Q_KEY_CODE_KP_3, /* xorgkbd:89 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */
+  [0x5a] = Q_KEY_CODE_KP_0, /* xorgkbd:90 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */
+  [0x5b] = Q_KEY_CODE_KP_DECIMAL, /* xorgkbd:91 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */
+  [0x5e] = Q_KEY_CODE_LESS, /* xorgkbd:94 -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */
+  [0x5f] = Q_KEY_CODE_F11, /* xorgkbd:95 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */
+  [0x60] = Q_KEY_CODE_F12, /* xorgkbd:96 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */
+  [0x61] = Q_KEY_CODE_HOME, /* xorgkbd:97 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */
+  [0x62] = Q_KEY_CODE_UP, /* xorgkbd:98 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */
+  [0x63] = Q_KEY_CODE_PGUP, /* xorgkbd:99 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */
+  [0x64] = Q_KEY_CODE_LEFT, /* xorgkbd:100 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */
+  [0x66] = Q_KEY_CODE_RIGHT, /* xorgkbd:102 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */
+  [0x67] = Q_KEY_CODE_END, /* xorgkbd:103 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */
+  [0x68] = Q_KEY_CODE_DOWN, /* xorgkbd:104 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */
+  [0x69] = Q_KEY_CODE_PGDN, /* xorgkbd:105 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */
+  [0x6a] = Q_KEY_CODE_INSERT, /* xorgkbd:106 -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */
+  [0x6b] = Q_KEY_CODE_DELETE, /* xorgkbd:107 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */
+  [0x6c] = Q_KEY_CODE_KP_ENTER, /* xorgkbd:108 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */
+  [0x6d] = Q_KEY_CODE_CTRL_R, /* xorgkbd:109 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */
+  [0x6e] = Q_KEY_CODE_PAUSE, /* xorgkbd:110 -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */
+  [0x6f] = Q_KEY_CODE_SYSRQ, /* xorgkbd:111 -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */
+  [0x70] = Q_KEY_CODE_KP_DIVIDE, /* xorgkbd:112 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */
+  [0x71] = Q_KEY_CODE_ALT_R, /* xorgkbd:113 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */
+  [0x73] = Q_KEY_CODE_META_L, /* xorgkbd:115 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */
+  [0x74] = Q_KEY_CODE_META_R, /* xorgkbd:116 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */
+  [0x75] = Q_KEY_CODE_COMPOSE, /* xorgkbd:117 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */
+  [0x76] = Q_KEY_CODE_UNMAPPED, /* xorgkbd:118 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x77] = Q_KEY_CODE_UNMAPPED, /* xorgkbd:119 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x78] = Q_KEY_CODE_UNMAPPED, /* xorgkbd:120 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x79] = Q_KEY_CODE_UNMAPPED, /* xorgkbd:121 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7a] = Q_KEY_CODE_UNMAPPED, /* xorgkbd:122 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7e] = Q_KEY_CODE_KP_EQUALS, /* xorgkbd:126 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */
+  [0x85] = Q_KEY_CODE_YEN, /* xorgkbd:133 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */
+  [0xd0] = Q_KEY_CODE_UNMAPPED, /* xorgkbd:208 -> linux:93 (KEY_KATAKANAHIRAGANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+};
+const guint qemu_input_map_xorgkbd_to_qcode_len = sizeof(qemu_input_map_xorgkbd_to_qcode)/sizeof(qemu_input_map_xorgkbd_to_qcode[0]);
diff --git a/ui/input-keymap-xorgxquartz-to-qcode.c b/ui/input-keymap-xorgxquartz-to-qcode.c
new file mode 100644
index 0000000000..5758ecd223
--- /dev/null
+++ b/ui/input-keymap-xorgxquartz-to-qcode.c
@@ -0,0 +1,128 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:08
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_xorgxquartz_to_qcode code-map keymaps.csv xorgxquartz qcode
+*/
+const guint16 qemu_input_map_xorgxquartz_to_qcode[264] = {
+  [0x8] = Q_KEY_CODE_A, /* xorgxquartz:8 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */
+  [0x9] = Q_KEY_CODE_S, /* xorgxquartz:9 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */
+  [0xa] = Q_KEY_CODE_D, /* xorgxquartz:10 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */
+  [0xb] = Q_KEY_CODE_F, /* xorgxquartz:11 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */
+  [0xc] = Q_KEY_CODE_H, /* xorgxquartz:12 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */
+  [0xd] = Q_KEY_CODE_G, /* xorgxquartz:13 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */
+  [0xe] = Q_KEY_CODE_Z, /* xorgxquartz:14 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */
+  [0xf] = Q_KEY_CODE_X, /* xorgxquartz:15 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */
+  [0x10] = Q_KEY_CODE_C, /* xorgxquartz:16 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */
+  [0x11] = Q_KEY_CODE_V, /* xorgxquartz:17 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */
+  [0x12] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:18 -> linux:170 (KEY_ISO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x13] = Q_KEY_CODE_B, /* xorgxquartz:19 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */
+  [0x14] = Q_KEY_CODE_Q, /* xorgxquartz:20 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */
+  [0x15] = Q_KEY_CODE_W, /* xorgxquartz:21 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */
+  [0x16] = Q_KEY_CODE_E, /* xorgxquartz:22 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */
+  [0x17] = Q_KEY_CODE_R, /* xorgxquartz:23 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */
+  [0x18] = Q_KEY_CODE_Y, /* xorgxquartz:24 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */
+  [0x19] = Q_KEY_CODE_T, /* xorgxquartz:25 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */
+  [0x1a] = Q_KEY_CODE_1, /* xorgxquartz:26 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */
+  [0x1b] = Q_KEY_CODE_2, /* xorgxquartz:27 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */
+  [0x1c] = Q_KEY_CODE_3, /* xorgxquartz:28 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */
+  [0x1d] = Q_KEY_CODE_4, /* xorgxquartz:29 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */
+  [0x1e] = Q_KEY_CODE_6, /* xorgxquartz:30 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */
+  [0x1f] = Q_KEY_CODE_5, /* xorgxquartz:31 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */
+  [0x20] = Q_KEY_CODE_EQUAL, /* xorgxquartz:32 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */
+  [0x21] = Q_KEY_CODE_9, /* xorgxquartz:33 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */
+  [0x22] = Q_KEY_CODE_7, /* xorgxquartz:34 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */
+  [0x23] = Q_KEY_CODE_MINUS, /* xorgxquartz:35 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */
+  [0x24] = Q_KEY_CODE_8, /* xorgxquartz:36 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */
+  [0x25] = Q_KEY_CODE_0, /* xorgxquartz:37 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */
+  [0x26] = Q_KEY_CODE_BRACKET_RIGHT, /* xorgxquartz:38 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */
+  [0x27] = Q_KEY_CODE_O, /* xorgxquartz:39 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */
+  [0x28] = Q_KEY_CODE_U, /* xorgxquartz:40 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */
+  [0x29] = Q_KEY_CODE_BRACKET_LEFT, /* xorgxquartz:41 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */
+  [0x2a] = Q_KEY_CODE_I, /* xorgxquartz:42 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */
+  [0x2b] = Q_KEY_CODE_P, /* xorgxquartz:43 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */
+  [0x2c] = Q_KEY_CODE_RET, /* xorgxquartz:44 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */
+  [0x2d] = Q_KEY_CODE_L, /* xorgxquartz:45 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */
+  [0x2e] = Q_KEY_CODE_J, /* xorgxquartz:46 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */
+  [0x2f] = Q_KEY_CODE_APOSTROPHE, /* xorgxquartz:47 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */
+  [0x30] = Q_KEY_CODE_K, /* xorgxquartz:48 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */
+  [0x31] = Q_KEY_CODE_SEMICOLON, /* xorgxquartz:49 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */
+  [0x32] = Q_KEY_CODE_BACKSLASH, /* xorgxquartz:50 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0x33] = Q_KEY_CODE_COMMA, /* xorgxquartz:51 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */
+  [0x34] = Q_KEY_CODE_SLASH, /* xorgxquartz:52 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */
+  [0x35] = Q_KEY_CODE_N, /* xorgxquartz:53 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */
+  [0x36] = Q_KEY_CODE_M, /* xorgxquartz:54 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */
+  [0x37] = Q_KEY_CODE_DOT, /* xorgxquartz:55 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */
+  [0x38] = Q_KEY_CODE_TAB, /* xorgxquartz:56 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */
+  [0x39] = Q_KEY_CODE_SPC, /* xorgxquartz:57 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */
+  [0x3a] = Q_KEY_CODE_GRAVE_ACCENT, /* xorgxquartz:58 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */
+  [0x3b] = Q_KEY_CODE_BACKSPACE, /* xorgxquartz:59 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */
+  [0x3d] = Q_KEY_CODE_ESC, /* xorgxquartz:61 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */
+  [0x3e] = Q_KEY_CODE_META_R, /* xorgxquartz:62 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */
+  [0x3f] = Q_KEY_CODE_META_L, /* xorgxquartz:63 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */
+  [0x40] = Q_KEY_CODE_SHIFT, /* xorgxquartz:64 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */
+  [0x41] = Q_KEY_CODE_CAPS_LOCK, /* xorgxquartz:65 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */
+  [0x42] = Q_KEY_CODE_ALT, /* xorgxquartz:66 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */
+  [0x43] = Q_KEY_CODE_CTRL, /* xorgxquartz:67 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */
+  [0x44] = Q_KEY_CODE_SHIFT_R, /* xorgxquartz:68 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */
+  [0x45] = Q_KEY_CODE_ALT_R, /* xorgxquartz:69 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */
+  [0x46] = Q_KEY_CODE_CTRL_R, /* xorgxquartz:70 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */
+  [0x47] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:71 -> linux:464 (KEY_FN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x48] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:72 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x49] = Q_KEY_CODE_KP_DECIMAL, /* xorgxquartz:73 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */
+  [0x4b] = Q_KEY_CODE_KP_MULTIPLY, /* xorgxquartz:75 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */
+  [0x4d] = Q_KEY_CODE_KP_ADD, /* xorgxquartz:77 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */
+  [0x4f] = Q_KEY_CODE_NUM_LOCK, /* xorgxquartz:79 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */
+  [0x50] = Q_KEY_CODE_VOLUMEUP, /* xorgxquartz:80 -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */
+  [0x51] = Q_KEY_CODE_VOLUMEDOWN, /* xorgxquartz:81 -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */
+  [0x52] = Q_KEY_CODE_AUDIOMUTE, /* xorgxquartz:82 -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */
+  [0x53] = Q_KEY_CODE_KP_DIVIDE, /* xorgxquartz:83 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */
+  [0x54] = Q_KEY_CODE_KP_ENTER, /* xorgxquartz:84 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */
+  [0x56] = Q_KEY_CODE_KP_SUBTRACT, /* xorgxquartz:86 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */
+  [0x57] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:87 -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x58] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:88 -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x59] = Q_KEY_CODE_KP_EQUALS, /* xorgxquartz:89 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */
+  [0x5a] = Q_KEY_CODE_KP_0, /* xorgxquartz:90 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */
+  [0x5b] = Q_KEY_CODE_KP_1, /* xorgxquartz:91 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */
+  [0x5c] = Q_KEY_CODE_KP_2, /* xorgxquartz:92 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */
+  [0x5d] = Q_KEY_CODE_KP_3, /* xorgxquartz:93 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */
+  [0x5e] = Q_KEY_CODE_KP_4, /* xorgxquartz:94 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */
+  [0x5f] = Q_KEY_CODE_KP_5, /* xorgxquartz:95 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */
+  [0x60] = Q_KEY_CODE_KP_6, /* xorgxquartz:96 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */
+  [0x61] = Q_KEY_CODE_KP_7, /* xorgxquartz:97 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */
+  [0x62] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:98 -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x63] = Q_KEY_CODE_KP_8, /* xorgxquartz:99 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */
+  [0x64] = Q_KEY_CODE_KP_9, /* xorgxquartz:100 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */
+  [0x65] = Q_KEY_CODE_YEN, /* xorgxquartz:101 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */
+  [0x67] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:103 -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x68] = Q_KEY_CODE_F5, /* xorgxquartz:104 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */
+  [0x69] = Q_KEY_CODE_F6, /* xorgxquartz:105 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */
+  [0x6a] = Q_KEY_CODE_F7, /* xorgxquartz:106 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */
+  [0x6b] = Q_KEY_CODE_F3, /* xorgxquartz:107 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */
+  [0x6c] = Q_KEY_CODE_F8, /* xorgxquartz:108 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */
+  [0x6d] = Q_KEY_CODE_F9, /* xorgxquartz:109 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */
+  [0x6f] = Q_KEY_CODE_F11, /* xorgxquartz:111 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */
+  [0x70] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:112 -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x71] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:113 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x72] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:114 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x73] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:115 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x75] = Q_KEY_CODE_F10, /* xorgxquartz:117 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */
+  [0x76] = Q_KEY_CODE_COMPOSE, /* xorgxquartz:118 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */
+  [0x77] = Q_KEY_CODE_F12, /* xorgxquartz:119 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */
+  [0x79] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:121 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7a] = Q_KEY_CODE_HELP, /* xorgxquartz:122 -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */
+  [0x7b] = Q_KEY_CODE_HOME, /* xorgxquartz:123 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */
+  [0x7c] = Q_KEY_CODE_PGUP, /* xorgxquartz:124 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */
+  [0x7d] = Q_KEY_CODE_DELETE, /* xorgxquartz:125 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */
+  [0x7e] = Q_KEY_CODE_F4, /* xorgxquartz:126 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */
+  [0x7f] = Q_KEY_CODE_END, /* xorgxquartz:127 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */
+  [0x80] = Q_KEY_CODE_F2, /* xorgxquartz:128 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */
+  [0x81] = Q_KEY_CODE_PGDN, /* xorgxquartz:129 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */
+  [0x82] = Q_KEY_CODE_F1, /* xorgxquartz:130 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */
+  [0x83] = Q_KEY_CODE_LEFT, /* xorgxquartz:131 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */
+  [0x84] = Q_KEY_CODE_RIGHT, /* xorgxquartz:132 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */
+  [0x85] = Q_KEY_CODE_DOWN, /* xorgxquartz:133 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */
+  [0x86] = Q_KEY_CODE_UP, /* xorgxquartz:134 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */
+  [0x107] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:263 -> linux:0 (KEY_RESERVED) -> qcode:Q_KEY_CODE_UNMAPPED (unmapped) */
+};
+const guint qemu_input_map_xorgxquartz_to_qcode_len = sizeof(qemu_input_map_xorgxquartz_to_qcode)/sizeof(qemu_input_map_xorgxquartz_to_qcode[0]);
diff --git a/ui/input-keymap-xorgxwin-to-qcode.c b/ui/input-keymap-xorgxwin-to-qcode.c
new file mode 100644
index 0000000000..c71714daa8
--- /dev/null
+++ b/ui/input-keymap-xorgxwin-to-qcode.c
@@ -0,0 +1,122 @@
+/*
+ * This file is auto-generated from keymaps.csv on 2017-08-31 11:08
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)
+ * To re-generate, run:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_xorgxwin_to_qcode code-map keymaps.csv xorgxwin qcode
+*/
+const guint16 qemu_input_map_xorgxwin_to_qcode[209] = {
+  [0x9] = Q_KEY_CODE_ESC, /* xorgxwin:9 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */
+  [0xa] = Q_KEY_CODE_1, /* xorgxwin:10 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */
+  [0xb] = Q_KEY_CODE_2, /* xorgxwin:11 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */
+  [0xc] = Q_KEY_CODE_3, /* xorgxwin:12 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */
+  [0xd] = Q_KEY_CODE_4, /* xorgxwin:13 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */
+  [0xe] = Q_KEY_CODE_5, /* xorgxwin:14 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */
+  [0xf] = Q_KEY_CODE_6, /* xorgxwin:15 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */
+  [0x10] = Q_KEY_CODE_7, /* xorgxwin:16 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */
+  [0x11] = Q_KEY_CODE_8, /* xorgxwin:17 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */
+  [0x12] = Q_KEY_CODE_9, /* xorgxwin:18 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */
+  [0x13] = Q_KEY_CODE_0, /* xorgxwin:19 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */
+  [0x14] = Q_KEY_CODE_MINUS, /* xorgxwin:20 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */
+  [0x15] = Q_KEY_CODE_EQUAL, /* xorgxwin:21 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */
+  [0x16] = Q_KEY_CODE_BACKSPACE, /* xorgxwin:22 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */
+  [0x17] = Q_KEY_CODE_TAB, /* xorgxwin:23 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */
+  [0x18] = Q_KEY_CODE_Q, /* xorgxwin:24 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */
+  [0x19] = Q_KEY_CODE_W, /* xorgxwin:25 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */
+  [0x1a] = Q_KEY_CODE_E, /* xorgxwin:26 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */
+  [0x1b] = Q_KEY_CODE_R, /* xorgxwin:27 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */
+  [0x1c] = Q_KEY_CODE_T, /* xorgxwin:28 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */
+  [0x1d] = Q_KEY_CODE_Y, /* xorgxwin:29 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */
+  [0x1e] = Q_KEY_CODE_U, /* xorgxwin:30 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */
+  [0x1f] = Q_KEY_CODE_I, /* xorgxwin:31 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */
+  [0x20] = Q_KEY_CODE_O, /* xorgxwin:32 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */
+  [0x21] = Q_KEY_CODE_P, /* xorgxwin:33 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */
+  [0x22] = Q_KEY_CODE_BRACKET_LEFT, /* xorgxwin:34 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */
+  [0x23] = Q_KEY_CODE_BRACKET_RIGHT, /* xorgxwin:35 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */
+  [0x24] = Q_KEY_CODE_RET, /* xorgxwin:36 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */
+  [0x25] = Q_KEY_CODE_CTRL, /* xorgxwin:37 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */
+  [0x26] = Q_KEY_CODE_A, /* xorgxwin:38 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */
+  [0x27] = Q_KEY_CODE_S, /* xorgxwin:39 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */
+  [0x28] = Q_KEY_CODE_D, /* xorgxwin:40 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */
+  [0x29] = Q_KEY_CODE_F, /* xorgxwin:41 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */
+  [0x2a] = Q_KEY_CODE_G, /* xorgxwin:42 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */
+  [0x2b] = Q_KEY_CODE_H, /* xorgxwin:43 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */
+  [0x2c] = Q_KEY_CODE_J, /* xorgxwin:44 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */
+  [0x2d] = Q_KEY_CODE_K, /* xorgxwin:45 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */
+  [0x2e] = Q_KEY_CODE_L, /* xorgxwin:46 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */
+  [0x2f] = Q_KEY_CODE_SEMICOLON, /* xorgxwin:47 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */
+  [0x30] = Q_KEY_CODE_APOSTROPHE, /* xorgxwin:48 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */
+  [0x31] = Q_KEY_CODE_GRAVE_ACCENT, /* xorgxwin:49 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */
+  [0x32] = Q_KEY_CODE_SHIFT, /* xorgxwin:50 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */
+  [0x33] = Q_KEY_CODE_BACKSLASH, /* xorgxwin:51 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */
+  [0x34] = Q_KEY_CODE_Z, /* xorgxwin:52 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */
+  [0x35] = Q_KEY_CODE_X, /* xorgxwin:53 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */
+  [0x36] = Q_KEY_CODE_C, /* xorgxwin:54 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */
+  [0x37] = Q_KEY_CODE_V, /* xorgxwin:55 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */
+  [0x38] = Q_KEY_CODE_B, /* xorgxwin:56 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */
+  [0x39] = Q_KEY_CODE_N, /* xorgxwin:57 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */
+  [0x3a] = Q_KEY_CODE_M, /* xorgxwin:58 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */
+  [0x3b] = Q_KEY_CODE_COMMA, /* xorgxwin:59 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */
+  [0x3c] = Q_KEY_CODE_DOT, /* xorgxwin:60 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */
+  [0x3d] = Q_KEY_CODE_SLASH, /* xorgxwin:61 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */
+  [0x3e] = Q_KEY_CODE_SHIFT_R, /* xorgxwin:62 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */
+  [0x3f] = Q_KEY_CODE_KP_MULTIPLY, /* xorgxwin:63 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */
+  [0x40] = Q_KEY_CODE_ALT, /* xorgxwin:64 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */
+  [0x41] = Q_KEY_CODE_SPC, /* xorgxwin:65 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */
+  [0x42] = Q_KEY_CODE_CAPS_LOCK, /* xorgxwin:66 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */
+  [0x43] = Q_KEY_CODE_F1, /* xorgxwin:67 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */
+  [0x44] = Q_KEY_CODE_F2, /* xorgxwin:68 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */
+  [0x45] = Q_KEY_CODE_F3, /* xorgxwin:69 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */
+  [0x46] = Q_KEY_CODE_F4, /* xorgxwin:70 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */
+  [0x47] = Q_KEY_CODE_F5, /* xorgxwin:71 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */
+  [0x48] = Q_KEY_CODE_F6, /* xorgxwin:72 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */
+  [0x49] = Q_KEY_CODE_F7, /* xorgxwin:73 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */
+  [0x4a] = Q_KEY_CODE_F8, /* xorgxwin:74 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */
+  [0x4b] = Q_KEY_CODE_F9, /* xorgxwin:75 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */
+  [0x4c] = Q_KEY_CODE_F10, /* xorgxwin:76 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */
+  [0x4d] = Q_KEY_CODE_NUM_LOCK, /* xorgxwin:77 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */
+  [0x4e] = Q_KEY_CODE_SCROLL_LOCK, /* xorgxwin:78 -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */
+  [0x4f] = Q_KEY_CODE_KP_7, /* xorgxwin:79 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */
+  [0x50] = Q_KEY_CODE_KP_8, /* xorgxwin:80 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */
+  [0x51] = Q_KEY_CODE_KP_9, /* xorgxwin:81 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */
+  [0x52] = Q_KEY_CODE_KP_SUBTRACT, /* xorgxwin:82 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */
+  [0x53] = Q_KEY_CODE_KP_4, /* xorgxwin:83 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */
+  [0x54] = Q_KEY_CODE_KP_5, /* xorgxwin:84 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */
+  [0x55] = Q_KEY_CODE_KP_6, /* xorgxwin:85 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */
+  [0x56] = Q_KEY_CODE_KP_ADD, /* xorgxwin:86 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */
+  [0x57] = Q_KEY_CODE_KP_1, /* xorgxwin:87 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */
+  [0x58] = Q_KEY_CODE_KP_2, /* xorgxwin:88 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */
+  [0x59] = Q_KEY_CODE_KP_3, /* xorgxwin:89 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */
+  [0x5a] = Q_KEY_CODE_KP_0, /* xorgxwin:90 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */
+  [0x5b] = Q_KEY_CODE_KP_DECIMAL, /* xorgxwin:91 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */
+  [0x5e] = Q_KEY_CODE_LESS, /* xorgxwin:94 -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */
+  [0x5f] = Q_KEY_CODE_F11, /* xorgxwin:95 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */
+  [0x60] = Q_KEY_CODE_F12, /* xorgxwin:96 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */
+  [0x61] = Q_KEY_CODE_HOME, /* xorgxwin:97 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */
+  [0x62] = Q_KEY_CODE_UP, /* xorgxwin:98 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */
+  [0x63] = Q_KEY_CODE_PGUP, /* xorgxwin:99 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */
+  [0x64] = Q_KEY_CODE_LEFT, /* xorgxwin:100 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */
+  [0x66] = Q_KEY_CODE_RIGHT, /* xorgxwin:102 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */
+  [0x67] = Q_KEY_CODE_END, /* xorgxwin:103 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */
+  [0x68] = Q_KEY_CODE_DOWN, /* xorgxwin:104 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */
+  [0x69] = Q_KEY_CODE_PGDN, /* xorgxwin:105 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */
+  [0x6a] = Q_KEY_CODE_INSERT, /* xorgxwin:106 -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */
+  [0x6b] = Q_KEY_CODE_DELETE, /* xorgxwin:107 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */
+  [0x6c] = Q_KEY_CODE_KP_ENTER, /* xorgxwin:108 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */
+  [0x6d] = Q_KEY_CODE_CTRL_R, /* xorgxwin:109 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */
+  [0x6e] = Q_KEY_CODE_PAUSE, /* xorgxwin:110 -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */
+  [0x6f] = Q_KEY_CODE_SYSRQ, /* xorgxwin:111 -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */
+  [0x70] = Q_KEY_CODE_KP_DIVIDE, /* xorgxwin:112 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */
+  [0x71] = Q_KEY_CODE_ALT_R, /* xorgxwin:113 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */
+  [0x73] = Q_KEY_CODE_META_L, /* xorgxwin:115 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */
+  [0x74] = Q_KEY_CODE_META_R, /* xorgxwin:116 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */
+  [0x75] = Q_KEY_CODE_COMPOSE, /* xorgxwin:117 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */
+  [0x76] = Q_KEY_CODE_UNMAPPED, /* xorgxwin:118 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x77] = Q_KEY_CODE_UNMAPPED, /* xorgxwin:119 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x78] = Q_KEY_CODE_UNMAPPED, /* xorgxwin:120 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x79] = Q_KEY_CODE_UNMAPPED, /* xorgxwin:121 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7a] = Q_KEY_CODE_UNMAPPED, /* xorgxwin:122 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+  [0x7e] = Q_KEY_CODE_KP_EQUALS, /* xorgxwin:126 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */
+  [0x85] = Q_KEY_CODE_YEN, /* xorgxwin:133 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */
+  [0xd0] = Q_KEY_CODE_UNMAPPED, /* xorgxwin:208 -> linux:93 (KEY_KATAKANAHIRAGANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */
+};
+const guint qemu_input_map_xorgxwin_to_qcode_len = sizeof(qemu_input_map_xorgxwin_to_qcode)/sizeof(qemu_input_map_xorgxwin_to_qcode[0]);
diff --git a/ui/input-keymap.c b/ui/input-keymap.c
index ad98b153cf..908d58ea63 100644
--- a/ui/input-keymap.c
+++ b/ui/input-keymap.c
@@ -5,6 +5,7 @@
 
 #include "standard-headers/linux/input.h"
 
+#include "ui/input-keymap-atset1-to-qcode.c"
 #include "ui/input-keymap-linux-to-qcode.c"
 #include "ui/input-keymap-osx-to-qcode.c"
 #include "ui/input-keymap-qcode-to-adb.c"
@@ -16,6 +17,12 @@
 #include "ui/input-keymap-qcode-to-sun.c"
 #include "ui/input-keymap-qnum-to-qcode.c"
 #include "ui/input-keymap-usb-to-qcode.c"
+#include "ui/input-keymap-win32-to-qcode.c"
+#include "ui/input-keymap-x11-to-qcode.c"
+#include "ui/input-keymap-xorgevdev-to-qcode.c"
+#include "ui/input-keymap-xorgkbd-to-qcode.c"
+#include "ui/input-keymap-xorgxquartz-to-qcode.c"
+#include "ui/input-keymap-xorgxwin-to-qcode.c"
 
 int qemu_input_linux_to_qcode(unsigned int lnx)
 {
diff --git a/ui/sdl.c b/ui/sdl.c
index 7b71a9ac58..afb4992da2 100644
--- a/ui/sdl.c
+++ b/ui/sdl.c
@@ -34,7 +34,9 @@
 #include "ui/console.h"
 #include "ui/input.h"
 #include "sysemu/sysemu.h"
+#ifndef WIN32
 #include "x_keymap.h"
+#endif
 #include "sdl_zoom.h"
 
 static DisplayChangeListener *dcl;
@@ -63,6 +65,8 @@ static SDL_PixelFormat host_format;
 static int scaling_active = 0;
 static Notifier mouse_mode_notifier;
 static int idle_counter;
+static const guint16 *keycode_map;
+static size_t keycode_maplen;
 
 #define SDL_REFRESH_INTERVAL_BUSY 10
 #define SDL_MAX_IDLE_COUNT (2 * GUI_REFRESH_INTERVAL_DEFAULT \
@@ -208,94 +212,45 @@ static uint8_t sdl_keyevent_to_keycode_generic(const SDL_KeyboardEvent *ev)
     return keysym2scancode(kbd_layout, keysym) & SCANCODE_KEYMASK;
 }
 
-/* specific keyboard conversions from scan codes */
-
-#if defined(_WIN32)
 
-static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev)
+static const guint16 *sdl_get_keymap(size_t *maplen)
 {
-    return ev->keysym.scancode;
-}
-
+#if defined(WIN32)
+    *maplen = qemu_input_map_atset1_to_qcode_len;
+    return qemu_input_map_atset1_to_qcode;
 #else
-
 #if defined(SDL_VIDEO_DRIVER_X11)
-#include <X11/XKBlib.h>
-
-static int check_for_evdev(void)
-{
     SDL_SysWMinfo info;
-    XkbDescPtr desc = NULL;
-    int has_evdev = 0;
-    char *keycodes = NULL;
 
     SDL_VERSION(&info.version);
-    if (!SDL_GetWMInfo(&info)) {
-        return 0;
+    if (SDL_GetWMInfo(&info) > 0) {
+        return qemu_xkeymap_mapping_table(
+            info.info.x11.display, maplen);
     }
-    desc = XkbGetMap(info.info.x11.display,
-                     XkbGBN_AllComponentsMask,
-                     XkbUseCoreKbd);
-    if (desc &&
-        (XkbGetNames(info.info.x11.display,
-                     XkbKeycodesNameMask, desc) == Success)) {
-        keycodes = XGetAtomName(info.info.x11.display, desc->names->keycodes);
-        if (keycodes == NULL) {
-            fprintf(stderr, "could not lookup keycode name\n");
-        } else if (strstart(keycodes, "evdev", NULL)) {
-            has_evdev = 1;
-        } else if (!strstart(keycodes, "xfree86", NULL)) {
-            fprintf(stderr, "unknown keycodes `%s', please report to "
-                    "qemu-devel@nongnu.org\n", keycodes);
-        }
-    }
-
-    if (desc) {
-        XkbFreeKeyboard(desc, XkbGBN_AllComponentsMask, True);
-    }
-    if (keycodes) {
-        XFree(keycodes);
-    }
-    return has_evdev;
-}
-#else
-static int check_for_evdev(void)
-{
-	return 0;
-}
 #endif
+    g_warning("Unsupported SDL video driver / platform.\n"
+              "Assuming Linux KBD scancodes, but probably wrong.\n"
+              "Please report to qemu-devel@nongnu.org\n"
+              "including the following information:\n"
+              "\n"
+              "  - Operating system\n"
+              "  - SDL video driver\n");
+    *maplen = qemu_input_map_xorgkbd_to_qcode_len;
+    return qemu_input_map_xorgkbd_to_qcode;
+#endif
+}
 
 static uint8_t sdl_keyevent_to_keycode(const SDL_KeyboardEvent *ev)
 {
-    int keycode;
-    static int has_evdev = -1;
-
-    if (has_evdev == -1)
-        has_evdev = check_for_evdev();
-
-    keycode = ev->keysym.scancode;
-
-    if (keycode < 9) {
-        keycode = 0;
-    } else if (keycode < 97) {
-        keycode -= 8; /* just an offset */
-    } else if (keycode < 158) {
-        /* use conversion table */
-        if (has_evdev)
-            keycode = translate_evdev_keycode(keycode - 97);
-        else
-            keycode = translate_xfree86_keycode(keycode - 97);
-    } else if (keycode == 208) { /* Hiragana_Katakana */
-        keycode = 0x70;
-    } else if (keycode == 211) { /* backslash */
-        keycode = 0x73;
-    } else {
-        keycode = 0;
+    if (!keycode_map) {
+        return 0;
+    }
+    if (ev->keysym.scancode > keycode_maplen) {
+        return 0;
     }
-    return keycode;
-}
 
-#endif
+    return keycode_map[ev->keysym.scancode];
+}
 
 static void reset_keys(void)
 {
@@ -995,6 +950,8 @@ void sdl_display_init(DisplayState *ds, int full_screen, int no_frame)
     vi = SDL_GetVideoInfo();
     host_format = *(vi->vfmt);
 
+    keycode_map = sdl_get_keymap(&keycode_maplen);
+
     /* Load a 32x32x4 image. White pixels are transparent. */
     filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, "qemu-icon.bmp");
     if (filename) {
diff --git a/ui/trace-events b/ui/trace-events
index 34c2213700..9a943f645d 100644
--- a/ui/trace-events
+++ b/ui/trace-events
@@ -18,9 +18,10 @@ ppm_save(const char *filename, void *display_surface) "%s surface=%p"
 # ui/gtk.c
 gd_switch(const char *tab, int width, int height) "tab=%s, width=%d, height=%d"
 gd_update(const char *tab, int x, int y, int w, int h) "tab=%s, x=%d, y=%d, w=%d, h=%d"
-gd_key_event(const char *tab, int gdk_keycode, int qemu_keycode, const char *action) "tab=%s, translated GDK keycode %d to QEMU keycode %d (%s)"
+gd_key_event(const char *tab, int gdk_keycode, int qkeycode, const char *action) "tab=%s, translated GDK keycode %d to QKeyCode %d (%s)"
 gd_grab(const char *tab, const char *device, const char *reason) "tab=%s, dev=%s, reason=%s"
 gd_ungrab(const char *tab, const char *device) "tab=%s, dev=%s"
+gd_keymap_windowing(const char *name) "backend=%s"
 
 # ui/vnc.c
 vnc_key_guest_leds(bool caps, bool num, bool scroll) "caps %d, num %d, scroll %d"
@@ -51,3 +52,9 @@ qemu_spice_create_update(uint32_t left, uint32_t right, uint32_t top, uint32_t b
 keymap_parse(const char *file) "file %s"
 keymap_add(const char *type, int sym, int code, const char *line) "%-6s sym=0x%04x code=0x%04x (line: %s)"
 keymap_unmapped(int sym) "sym=0x%04x"
+
+# ui/x_keymap.c
+xkeymap_extension(const char *name) "extension '%s'"
+xkeymap_vendor(const char *name) "vendor '%s'"
+xkeymap_keycodes(const char *name) "keycodes '%s'"
+xkeymap_keymap(const char *name) "keymap '%s'"
diff --git a/ui/x_keymap.c b/ui/x_keymap.c
index 27884851de..22e0e77c4d 100644
--- a/ui/x_keymap.c
+++ b/ui/x_keymap.c
@@ -1,169 +1,111 @@
 /*
- * QEMU SDL display driver
+ * QEMU X11 keymaps
  *
- * Copyright (c) 2003 Fabrice Bellard
+ * Copyright (C) 2009-2010 Daniel P. Berrange <dan@berrange.com>
+ * Copyright (C) 2017 Red Hat, Inc
  *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 2 as
+ * published by the Free Software Foundation.
  */
+
 #include "qemu/osdep.h"
-#include "qemu-common.h"
+
 #include "x_keymap.h"
+#include "trace.h"
+#include "qemu/notify.h"
+#include "ui/input.h"
 
-static const uint8_t x_keycode_to_pc_keycode[115] = {
-   0xc7,      /*  97  Home   */
-   0xc8,      /*  98  Up     */
-   0xc9,      /*  99  PgUp   */
-   0xcb,      /* 100  Left   */
-   0x4c,        /* 101  KP-5   */
-   0xcd,      /* 102  Right  */
-   0xcf,      /* 103  End    */
-   0xd0,      /* 104  Down   */
-   0xd1,      /* 105  PgDn   */
-   0xd2,      /* 106  Ins    */
-   0xd3,      /* 107  Del    */
-   0x9c,      /* 108  Enter  */
-   0x9d,      /* 109  Ctrl-R */
-   0x0,       /* 110  Pause  */
-   0xb7,      /* 111  Print  */
-   0xb5,      /* 112  Divide */
-   0xb8,      /* 113  Alt-R  */
-   0xc6,      /* 114  Break  */
-   0x0,         /* 115 */
-   0x0,         /* 116 */
-   0x0,         /* 117 */
-   0x0,         /* 118 */
-   0x0,         /* 119 */
-   0x0,         /* 120 */
-   0x0,         /* 121 */
-   0x0,         /* 122 */
-   0x0,         /* 123 */
-   0x0,         /* 124 */
-   0x0,         /* 125 */
-   0x0,         /* 126 */
-   0x0,         /* 127 */
-   0x0,         /* 128 */
-   0x79,         /* 129 Henkan */
-   0x0,         /* 130 */
-   0x7b,         /* 131 Muhenkan */
-   0x0,         /* 132 */
-   0x7d,         /* 133 Yen */
-   0x0,         /* 134 */
-   0x0,         /* 135 */
-   0x47,         /* 136 KP_7 */
-   0x48,         /* 137 KP_8 */
-   0x49,         /* 138 KP_9 */
-   0x4b,         /* 139 KP_4 */
-   0x4c,         /* 140 KP_5 */
-   0x4d,         /* 141 KP_6 */
-   0x4f,         /* 142 KP_1 */
-   0x50,         /* 143 KP_2 */
-   0x51,         /* 144 KP_3 */
-   0x52,         /* 145 KP_0 */
-   0x53,         /* 146 KP_. */
-   0x47,         /* 147 KP_HOME */
-   0x48,         /* 148 KP_UP */
-   0x49,         /* 149 KP_PgUp */
-   0x4b,         /* 150 KP_Left */
-   0x4c,         /* 151 KP_ */
-   0x4d,         /* 152 KP_Right */
-   0x4f,         /* 153 KP_End */
-   0x50,         /* 154 KP_Down */
-   0x51,         /* 155 KP_PgDn */
-   0x52,         /* 156 KP_Ins */
-   0x53,         /* 157 KP_Del */
-};
+#include <X11/XKBlib.h>
 
-/* This table is generated based off the xfree86 -> scancode mapping above
- * and the keycode mappings in /usr/share/X11/xkb/keycodes/evdev
- * and  /usr/share/X11/xkb/keycodes/xfree86
- */
+static gboolean check_for_xwin(Display *dpy)
+{
+    const char *vendor = ServerVendor(dpy);
+
+    trace_xkeymap_vendor(vendor);
 
-static const uint8_t evdev_keycode_to_pc_keycode[61] = {
-    0x73,      /*  97 EVDEV - RO   ("Internet" Keyboards) */
-    0,         /*  98 EVDEV - KATA (Katakana) */
-    0,         /*  99 EVDEV - HIRA (Hiragana) */
-    0x79,      /* 100 EVDEV - HENK (Henkan) */
-    0x70,      /* 101 EVDEV - HKTG (Hiragana/Katakana toggle) */
-    0x7b,      /* 102 EVDEV - MUHE (Muhenkan) */
-    0,         /* 103 EVDEV - JPCM (KPJPComma) */
-    0x9c,      /* 104 KPEN */
-    0x9d,      /* 105 RCTL */
-    0xb5,      /* 106 KPDV */
-    0xb7,      /* 107 PRSC */
-    0xb8,      /* 108 RALT */
-    0,         /* 109 EVDEV - LNFD ("Internet" Keyboards) */
-    0xc7,      /* 110 HOME */
-    0xc8,      /* 111 UP */
-    0xc9,      /* 112 PGUP */
-    0xcb,      /* 113 LEFT */
-    0xcd,      /* 114 RGHT */
-    0xcf,      /* 115 END */
-    0xd0,      /* 116 DOWN */
-    0xd1,      /* 117 PGDN */
-    0xd2,      /* 118 INS */
-    0xd3,      /* 119 DELE */
-    0,         /* 120 EVDEV - I120 ("Internet" Keyboards) */
-    0,         /* 121 EVDEV - MUTE */
-    0,         /* 122 EVDEV - VOL- */
-    0,         /* 123 EVDEV - VOL+ */
-    0,         /* 124 EVDEV - POWR */
-    0,         /* 125 EVDEV - KPEQ */
-    0,         /* 126 EVDEV - I126 ("Internet" Keyboards) */
-    0,         /* 127 EVDEV - PAUS */
-    0,         /* 128 EVDEV - ???? */
-    0x7e,      /* 129 EVDEV - KP_COMMA (brazilian) */
-    0xf1,      /* 130 EVDEV - HNGL (Korean Hangul Latin toggle) */
-    0xf2,      /* 131 EVDEV - HJCV (Korean Hangul Hanja toggle) */
-    0x7d,      /* 132 AE13 (Yen)*/
-    0xdb,      /* 133 EVDEV - LWIN */
-    0xdc,      /* 134 EVDEV - RWIN */
-    0xdd,      /* 135 EVDEV - MENU */
-    0,         /* 136 EVDEV - STOP */
-    0,         /* 137 EVDEV - AGAI */
-    0,         /* 138 EVDEV - PROP */
-    0,         /* 139 EVDEV - UNDO */
-    0,         /* 140 EVDEV - FRNT */
-    0,         /* 141 EVDEV - COPY */
-    0,         /* 142 EVDEV - OPEN */
-    0,         /* 143 EVDEV - PAST */
-    0,         /* 144 EVDEV - FIND */
-    0,         /* 145 EVDEV - CUT  */
-    0,         /* 146 EVDEV - HELP */
-    0,         /* 147 EVDEV - I147 */
-    0,         /* 148 EVDEV - I148 */
-    0,         /* 149 EVDEV - I149 */
-    0,         /* 150 EVDEV - I150 */
-    0,         /* 151 EVDEV - I151 */
-    0,         /* 152 EVDEV - I152 */
-    0,         /* 153 EVDEV - I153 */
-    0,         /* 154 EVDEV - I154 */
-    0,         /* 155 EVDEV - I156 */
-    0,         /* 156 EVDEV - I157 */
-    0,         /* 157 EVDEV - I158 */
-};
+    if (strstr(vendor, "Cygwin/X")) {
+        return TRUE;
+    }
 
-uint8_t translate_xfree86_keycode(const int key)
+    return FALSE;
+}
+
+static gboolean check_for_xquartz(Display *dpy)
 {
-    return x_keycode_to_pc_keycode[key];
+    int nextensions;
+    int i;
+    gboolean match = FALSE;
+    char **extensions = XListExtensions(dpy, &nextensions);
+    for (i = 0 ; extensions != NULL && i < nextensions ; i++) {
+        trace_xkeymap_extension(extensions[i]);
+        if (strcmp(extensions[i], "Apple-WM") == 0 ||
+            strcmp(extensions[i], "Apple-DRI") == 0) {
+            match = TRUE;
+        }
+    }
+    if (extensions) {
+        XFreeExtensionList(extensions);
+    }
+
+    return match;
 }
 
-uint8_t translate_evdev_keycode(const int key)
+const guint16 *qemu_xkeymap_mapping_table(Display *dpy, size_t *maplen)
 {
-    return evdev_keycode_to_pc_keycode[key];
+    XkbDescPtr desc;
+    const gchar *keycodes = NULL;
+
+    /* There is no easy way to determine what X11 server
+     * and platform & keyboard driver is in use. Thus we
+     * do best guess heuristics.
+     *
+     * This will need more work for people with other
+     * X servers..... patches welcomed.
+     */
+
+    desc = XkbGetMap(dpy,
+                     XkbGBN_AllComponentsMask,
+                     XkbUseCoreKbd);
+    if (desc) {
+        if (XkbGetNames(dpy, XkbKeycodesNameMask, desc) == Success) {
+            keycodes = XGetAtomName (dpy, desc->names->keycodes);
+            if (!keycodes) {
+                g_warning("could not lookup keycode name");
+            } else {
+                trace_xkeymap_keycodes(keycodes);
+            }
+        }
+        XkbFreeKeyboard(desc, XkbGBN_AllComponentsMask, True);
+    }
+
+    if (check_for_xwin(dpy)) {
+        trace_xkeymap_keymap("xwin");
+        *maplen = qemu_input_map_xorgxwin_to_qcode_len;
+        return qemu_input_map_xorgxwin_to_qcode;
+    } else if (check_for_xquartz(dpy)) {
+        trace_xkeymap_keymap("xquartz");
+        *maplen = qemu_input_map_xorgxquartz_to_qcode_len;
+        return qemu_input_map_xorgxquartz_to_qcode;
+    } else if (keycodes && g_str_has_prefix(keycodes, "evdev")) {
+        trace_xkeymap_keymap("evdev");
+        *maplen = qemu_input_map_xorgevdev_to_qcode_len;
+        return qemu_input_map_xorgevdev_to_qcode;
+    } else if (keycodes && g_str_has_prefix(keycodes, "xfree86")) {
+        trace_xkeymap_keymap("kbd");
+        *maplen = qemu_input_map_xorgkbd_to_qcode_len;
+        return qemu_input_map_xorgkbd_to_qcode;
+    } else {
+        trace_xkeymap_keymap("NULL");
+        g_warning("Unknown X11 keycode mapping '%s'.\n"
+                  "Please report to qemu-devel@nongnu.org\n"
+                  "including the following information:\n"
+                  "\n"
+                  "  - Operating system\n"
+                  "  - X11 Server\n"
+                  "  - xprop -root\n"
+                  "  - xdpyinfo\n",
+                  keycodes ? keycodes : "<null>");
+        return NULL;
+    }
 }
diff --git a/ui/x_keymap.h b/ui/x_keymap.h
index afde2e94bf..0395e335ff 100644
--- a/ui/x_keymap.h
+++ b/ui/x_keymap.h
@@ -1,7 +1,7 @@
 /*
- * QEMU SDL display driver
+ * QEMU X11 keymaps
  *
- * Copyright (c) 2003 Fabrice Bellard
+ * Copyright (c) 2017 Red Hat, Inc.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -25,8 +25,8 @@
 #ifndef QEMU_X_KEYMAP_H
 #define QEMU_X_KEYMAP_H
 
-uint8_t translate_xfree86_keycode(const int key);
+#include <X11/Xlib.h>
 
-uint8_t translate_evdev_keycode(const int key);
+const guint16 *qemu_xkeymap_mapping_table(Display *dpy, size_t *maplen);
 
 #endif
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* [Qemu-devel] [PATCH v5 12/12] display: convert XenInput keyboard to keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (10 preceding siblings ...)
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 11/12] ui: convert GTK and SDL1 frontends " Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  2017-09-12 12:52 ` [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb no-reply
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

Replace the scancode2linux table with an automatically
generated table. In doing so, the XenFB keyboard
handler is also converted to the modern InputEvent
framework.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
---
 hw/display/xenfb.c | 133 ++++++++++++-----------------------------------------
 1 file changed, 30 insertions(+), 103 deletions(-)

diff --git a/hw/display/xenfb.c b/hw/display/xenfb.c
index df8b78f6f4..b4668dfce4 100644
--- a/hw/display/xenfb.c
+++ b/hw/display/xenfb.c
@@ -28,6 +28,7 @@
 
 #include "hw/hw.h"
 #include "ui/console.h"
+#include "ui/input.h"
 #include "hw/xen/xen_backend.h"
 
 #include <xen/event_channel.h>
@@ -52,7 +53,7 @@ struct XenInput {
     struct common c;
     int abs_pointer_wanted; /* Whether guest supports absolute pointer */
     int button_state;       /* Last seen pointer button state */
-    int extended;
+    QemuInputHandlerState *qkbd;
     QEMUPutMouseEntry *qmouse;
 };
 
@@ -120,78 +121,6 @@ static void common_unbind(struct common *c)
 
 /* -------------------------------------------------------------------- */
 
-#if 0
-/*
- * These two tables are not needed any more, but left in here
- * intentionally as documentation, to show how scancode2linux[]
- * was generated.
- *
- * Tables to map from scancode to Linux input layer keycode.
- * Scancodes are hardware-specific.  These maps assumes a
- * standard AT or PS/2 keyboard which is what QEMU feeds us.
- */
-const unsigned char atkbd_set2_keycode[512] = {
-
-     0, 67, 65, 63, 61, 59, 60, 88,  0, 68, 66, 64, 62, 15, 41,117,
-     0, 56, 42, 93, 29, 16,  2,  0,  0,  0, 44, 31, 30, 17,  3,  0,
-     0, 46, 45, 32, 18,  5,  4, 95,  0, 57, 47, 33, 20, 19,  6,183,
-     0, 49, 48, 35, 34, 21,  7,184,  0,  0, 50, 36, 22,  8,  9,185,
-     0, 51, 37, 23, 24, 11, 10,  0,  0, 52, 53, 38, 39, 25, 12,  0,
-     0, 89, 40,  0, 26, 13,  0,  0, 58, 54, 28, 27,  0, 43,  0, 85,
-     0, 86, 91, 90, 92,  0, 14, 94,  0, 79,124, 75, 71,121,  0,  0,
-    82, 83, 80, 76, 77, 72,  1, 69, 87, 78, 81, 74, 55, 73, 70, 99,
-
-      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    217,100,255,  0, 97,165,  0,  0,156,  0,  0,  0,  0,  0,  0,125,
-    173,114,  0,113,  0,  0,  0,126,128,  0,  0,140,  0,  0,  0,127,
-    159,  0,115,  0,164,  0,  0,116,158,  0,150,166,  0,  0,  0,142,
-    157,  0,  0,  0,  0,  0,  0,  0,155,  0, 98,  0,  0,163,  0,  0,
-    226,  0,  0,  0,  0,  0,  0,  0,  0,255, 96,  0,  0,  0,143,  0,
-      0,  0,  0,  0,  0,  0,  0,  0,  0,107,  0,105,102,  0,  0,112,
-    110,111,108,112,106,103,  0,119,  0,118,109,  0, 99,104,119,  0,
-
-};
-
-const unsigned char atkbd_unxlate_table[128] = {
-
-      0,118, 22, 30, 38, 37, 46, 54, 61, 62, 70, 69, 78, 85,102, 13,
-     21, 29, 36, 45, 44, 53, 60, 67, 68, 77, 84, 91, 90, 20, 28, 27,
-     35, 43, 52, 51, 59, 66, 75, 76, 82, 14, 18, 93, 26, 34, 33, 42,
-     50, 49, 58, 65, 73, 74, 89,124, 17, 41, 88,  5,  6,  4, 12,  3,
-     11,  2, 10,  1,  9,119,126,108,117,125,123,107,115,116,121,105,
-    114,122,112,113,127, 96, 97,120,  7, 15, 23, 31, 39, 47, 55, 63,
-     71, 79, 86, 94,  8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 87,111,
-     19, 25, 57, 81, 83, 92, 95, 98, 99,100,101,103,104,106,109,110
-
-};
-#endif
-
-/*
- * for (i = 0; i < 128; i++) {
- *     scancode2linux[i] = atkbd_set2_keycode[atkbd_unxlate_table[i]];
- *     scancode2linux[i | 0x80] = atkbd_set2_keycode[atkbd_unxlate_table[i] | 0x80];
- * }
- */
-static const unsigned char scancode2linux[512] = {
-      0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,
-     16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
-     32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
-     48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
-     64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
-     80, 81, 82, 83, 99,  0, 86, 87, 88,117,  0,  0, 95,183,184,185,
-      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-     93,  0,  0, 89,  0,  0, 85, 91, 90, 92,  0, 94,  0,124,121,  0,
-
-      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-    165,  0,  0,  0,  0,  0,  0,  0,  0,163,  0,  0, 96, 97,  0,  0,
-    113,140,164,  0,166,  0,  0,  0,  0,  0,255,  0,  0,  0,114,  0,
-    115,  0,150,  0,  0, 98,255, 99,100,  0,  0,  0,  0,  0,  0,  0,
-      0,  0,  0,  0,  0,119,119,102,103,104,  0,105,112,106,118,107,
-    108,109,110,111,  0,  0,  0,  0,  0,  0,  0,125,126,127,116,142,
-      0,  0,  0,143,  0,217,156,173,128,159,158,157,155,226,  0,112,
-      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-};
-
 /* Send an event to the keyboard frontend driver */
 static int xenfb_kbd_event(struct XenInput *xenfb,
 			   union xenkbd_in_event *event)
@@ -260,37 +189,21 @@ static int xenfb_send_position(struct XenInput *xenfb,
     return xenfb_kbd_event(xenfb, &event);
 }
 
-/*
- * Send a key event from the client to the guest OS
- * QEMU gives us a raw scancode from an AT / PS/2 style keyboard.
- * We have to turn this into a Linux Input layer keycode.
- *
- * Extra complexity from the fact that with extended scancodes
- * (like those produced by arrow keys) this method gets called
- * twice, but we only want to send a single event. So we have to
- * track the '0xe0' scancode state & collapse the extended keys
- * as needed.
- *
- * Wish we could just send scancodes straight to the guest which
- * already has code for dealing with this...
- */
-static void xenfb_key_event(void *opaque, int scancode)
+static void xenfb_key_event(DeviceState *dev, QemuConsole *src,
+                            InputEvent *evt)
 {
-    struct XenInput *xenfb = opaque;
-    int down = 1;
+    struct XenInput *xenfb = container_of(dev, struct XenInput,
+                                          c.xendev.qdev);
+    InputKeyEvent *key = evt->u.key.data;
+    int qcode;
 
-    if (scancode == 0xe0) {
-	xenfb->extended = 1;
-	return;
-    } else if (scancode & 0x80) {
-	scancode &= 0x7f;
-	down = 0;
-    }
-    if (xenfb->extended) {
-	scancode |= 0x80;
-	xenfb->extended = 0;
+    assert(evt->type == INPUT_EVENT_KIND_KEY);
+
+    qcode = qemu_input_key_value_to_qcode(key->key);
+    if (qcode < qemu_input_map_qcode_to_linux_len) {
+        xenfb_send_key(xenfb, key->down,
+                       qemu_input_map_qcode_to_linux[qcode]);
     }
-    xenfb_send_key(xenfb, down, scancode2linux[scancode]);
 }
 
 /*
@@ -347,6 +260,12 @@ static int input_init(struct XenDevice *xendev)
     return 0;
 }
 
+static QemuInputHandler xenfb_keyboard_handler = {
+    .name  = "Xen FB Keyboard",
+    .mask  = INPUT_EVENT_MASK_KEY,
+    .event = xenfb_key_event,
+};
+
 static int input_initialise(struct XenDevice *xendev)
 {
     struct XenInput *in = container_of(xendev, struct XenInput, c.xendev);
@@ -356,7 +275,6 @@ static int input_initialise(struct XenDevice *xendev)
     if (rc != 0)
 	return rc;
 
-    qemu_add_kbd_event_handler(xenfb_key_event, in);
     return 0;
 }
 
@@ -376,6 +294,12 @@ static void input_connected(struct XenDevice *xendev)
     in->qmouse = qemu_add_mouse_event_handler(xenfb_mouse_event, in,
 					      in->abs_pointer_wanted,
 					      "Xen PVFB Mouse");
+
+    if (in->qkbd) {
+        qemu_input_handler_unregister(in->qkbd);
+    }
+    in->qkbd = qemu_input_handler_register((DeviceState *)in,
+                                           &xenfb_keyboard_handler);
 }
 
 static void input_disconnect(struct XenDevice *xendev)
@@ -386,7 +310,10 @@ static void input_disconnect(struct XenDevice *xendev)
 	qemu_remove_mouse_event_handler(in->qmouse);
 	in->qmouse = NULL;
     }
-    qemu_add_kbd_event_handler(NULL, NULL);
+    if (in->qkbd) {
+        qemu_input_handler_unregister(in->qkbd);
+        in->qkbd = NULL;
+    }
     common_unbind(&in->c);
 }
 
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 05/12] input: convert virtio-input-hid device to keycodemapdb
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 05/12] input: convert virtio-input-hid device to keycodemapdb Daniel P. Berrange
@ 2017-09-12 12:47   ` Daniel P. Berrange
  2017-09-12 14:04     ` Gerd Hoffmann
  0 siblings, 1 reply; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:47 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake

On Tue, Sep 12, 2017 at 01:37:37PM +0100, Daniel P. Berrange wrote:
> Replace the keymap_qcode table with automatically generated
> tables.
> 
> Missing entries in keymap_qcode now fixed:
> 
>   Q_KEY_CODE_ASTERISK -> KEY_KPASTERISK
>   Q_KEY_CODE_KP_MULTIPLY -> KEY_KPASTERISK
>   Q_KEY_CODE_STOP -> KEY_STOP
>   Q_KEY_CODE_AGAIN -> KEY_AGAIN
>   Q_KEY_CODE_PROPS -> KEY_PROPS
>   Q_KEY_CODE_UNDO -> KEY_UNDO
>   Q_KEY_CODE_FRONT -> KEY_FRONT
>   Q_KEY_CODE_COPY -> KEY_COPY
>   Q_KEY_CODE_OPEN -> KEY_OPEN
>   Q_KEY_CODE_PASTE -> KEY_PASTE
>   Q_KEY_CODE_FIND -> KEY_FIND
>   Q_KEY_CODE_CUT -> KEY_CUT
>   Q_KEY_CODE_LF -> KEY_LINEFEED
>   Q_KEY_CODE_HELP -> KEY_HELP
>   Q_KEY_CODE_COMPOSE -> KEY_COMPOSE
>   Q_KEY_CODE_RO -> KEY_RO
>   Q_KEY_CODE_HIRAGANA -> KEY_HIRAGANA
>   Q_KEY_CODE_HENKAN -> KEY_HENKAN
>   Q_KEY_CODE_YEN -> KEY_YEN
>   Q_KEY_CODE_KP_COMMA -> KEY_KPCOMMA
>   Q_KEY_CODE_KP_EQUALS -> KEY_KPEQUAL
>   Q_KEY_CODE_POWER -> KEY_POWER
>   Q_KEY_CODE_SLEEP -> KEY_SLEEP
>   Q_KEY_CODE_WAKE -> KEY_WAKEUP
>   Q_KEY_CODE_AUDIONEXT -> KEY_NEXTSONG
>   Q_KEY_CODE_AUDIOPREV -> KEY_PREVIOUSSONG
>   Q_KEY_CODE_AUDIOSTOP -> KEY_STOPCD
>   Q_KEY_CODE_AUDIOPLAY -> KEY_PLAYPAUSE
>   Q_KEY_CODE_AUDIOMUTE -> KEY_MUTE
>   Q_KEY_CODE_VOLUMEUP -> KEY_VOLUMEUP
>   Q_KEY_CODE_VOLUMEDOWN -> KEY_VOLUMEDOWN
>   Q_KEY_CODE_MEDIASELECT -> KEY_MEDIA
>   Q_KEY_CODE_MAIL -> KEY_MAIL
>   Q_KEY_CODE_CALCULATOR -> KEY_CALC
>   Q_KEY_CODE_COMPUTER -> KEY_COMPUTER
>   Q_KEY_CODE_AC_HOME -> KEY_HOMEPAGE
>   Q_KEY_CODE_AC_BACK -> KEY_BACK
>   Q_KEY_CODE_AC_FORWARD -> KEY_FORWARD
>   Q_KEY_CODE_AC_REFRESH -> KEY_REFRESH
>   Q_KEY_CODE_AC_BOOKMARKS -> KEY_BOOKMARKS
> 
> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
> ---
>  hw/input/virtio-input-hid.c      | 136 +++-------------------------------
>  include/ui/input.h               |   3 +
>  ui/Makefile.objs                 |   1 +
>  ui/input-keymap-qcode-to-linux.c | 156 +++++++++++++++++++++++++++++++++++++++
>  ui/input-keymap.c                |   1 +
>  5 files changed, 170 insertions(+), 127 deletions(-)
>  create mode 100644 ui/input-keymap-qcode-to-linux.c
> 

> @@ -162,7 +43,7 @@ static const unsigned int axismap_abs[INPUT_AXIS__MAX] = {
>  /* ----------------------------------------------------------------- */
>  
>  static void virtio_input_key_config(VirtIOInput *vinput,
> -                                    const unsigned int *keymap,
> +                                    const unsigned short *keymap,
>                                      size_t mapsize)
>  {
>      virtio_input_config keys;

[snip]

> @@ -387,8 +269,8 @@ static void virtio_keyboard_init(Object *obj)
>  
>      vhid->handler = &virtio_keyboard_handler;
>      virtio_input_init_config(vinput, virtio_keyboard_config);
> -    virtio_input_key_config(vinput, keymap_qcode,
> -                            ARRAY_SIZE(keymap_qcode));
> +    virtio_input_key_config(vinput, qemu_input_map_qcode_to_linux,
> +                            qemu_input_map_qcode_to_linux_len);
>  }

Revisiting Gerd's comment on an earlier posting of this patch. Gerd
mentioned that this change affects guest ABI, but I'm wondering
whether we actually need to care about that or not.

IIUC, the array we pass in here is used to populate a bitmap that is
passed to the guest OS. The bitmap has one bit set for each Linux
keycode that the input driver is capable of sending.

>From what I can see the guest OS will read this bitmap when it first
probes the virtio device, and never updates it.  If so, then is it
actually a problem if we don't preserve the same map across save/
restore/migrate ?

If we removed a key from the bitmap in newer QEMU, that does not
appear a problem as we'd never send an event to the guest with
that key code.

If we added a key to the bitmap, we would potentially be sending
a key to the guest that we hadn't previously declared support for.
Either the guest OS will handle this normally, despite it not
being in the declared bitmap, or it will silently drop the event.
Neither behaviour seems problematic.

If we did need to preserve ABI for this bitmap, then it seems we're
going to create alot of work for ourselves, having to maintain
many historical copies of the keycode maps tables, adding a new
copy every time support for a new key is added in QEMU. I'd
rather we avoided that complexity & burden unless there's clear
bad behaviour by not maintaining stable keycode bitmap data across
QEMU releases.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (11 preceding siblings ...)
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 12/12] display: convert XenInput keyboard " Daniel P. Berrange
@ 2017-09-12 12:52 ` no-reply
  2017-09-12 12:53 ` no-reply
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 34+ messages in thread
From: no-reply @ 2017-09-12 12:52 UTC (permalink / raw)
  To: berrange; +Cc: famz, qemu-devel, kraxel

Hi,

This series failed build test on s390x host. Please find the details below.

Subject: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
Type: series
Message-id: 20170912123744.14730-1-berrange@redhat.com

=== TEST SCRIPT BEGIN ===
#!/bin/bash
# Testing script will be invoked under the git checkout with
# HEAD pointing to a commit that has the patches applied on top of "base"
# branch
set -e
echo "=== ENV ==="
env
echo "=== PACKAGES ==="
rpm -qa
echo "=== TEST BEGIN ==="
CC=$HOME/bin/cc
INSTALL=$PWD/install
BUILD=$PWD/build
echo -n "Using CC: "
realpath $CC
mkdir -p $BUILD $INSTALL
SRC=$PWD
cd $BUILD
$SRC/configure --cc=$CC --prefix=$INSTALL
make -j4
# XXX: we need reliable clean up
# make check -j4 V=1
make install
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 - [tag update]      patchew/20170823162004.27337-1-marcandre.lureau@redhat.com -> patchew/20170823162004.27337-1-marcandre.lureau@redhat.com
 - [tag update]      patchew/20170911201610.15204-1-n54@gmx.com -> patchew/20170911201610.15204-1-n54@gmx.com
 * [new tag]         patchew/20170912123744.14730-1-berrange@redhat.com -> patchew/20170912123744.14730-1-berrange@redhat.com
Switched to a new branch 'test'
fae652e display: convert XenInput keyboard to keycodemapdb
c8d9524 ui: convert GTK and SDL1 frontends to keycodemapdb
4175200 ui: convert the SDL2 frontend to keycodemapdb
d54c4f7 ui: convert cocoa frontend to keycodemapdb
60a4cdb char: convert the escc device to keycodemapdb
df24350 input: convert the adb device to keycodemapdb
85343f3 input: convert ps2 device to keycodemapdb
00dbdc1 input: convert virtio-input-hid device to keycodemapdb
475272e ui: don't export qemu_input_event_new_key
0d88a11 ui: convert key events to QKeyCodes immediately
33c690e ui: convert common input code to keycodemapdb
1a87122 ui: add keycodemapdb repository as a GIT submodule

=== OUTPUT BEGIN ===
=== ENV ===
XDG_SESSION_ID=5
SHELL=/bin/sh
USER=fam
PATCHEW=/home/fam/patchew/patchew-cli -s http://patchew.org --nodebug
PATH=/usr/bin:/bin
PWD=/var/tmp/patchew-tester-tmp-4iydjbd7/src
LANG=en_US.UTF-8
HOME=/home/fam
SHLVL=2
LOGNAME=fam
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1012/bus
XDG_RUNTIME_DIR=/run/user/1012
_=/usr/bin/env
=== PACKAGES ===
gpg-pubkey-873529b8-54e386ff
xz-libs-5.2.2-2.fc24.s390x
libxshmfence-1.2-3.fc24.s390x
giflib-4.1.6-15.fc24.s390x
trousers-lib-0.3.13-6.fc24.s390x
ncurses-base-6.0-6.20160709.fc25.noarch
gmp-6.1.1-1.fc25.s390x
libidn-1.33-1.fc25.s390x
slang-2.3.0-7.fc25.s390x
pkgconfig-0.29.1-1.fc25.s390x
alsa-lib-1.1.1-2.fc25.s390x
yum-metadata-parser-1.1.4-17.fc25.s390x
python3-slip-dbus-0.6.4-4.fc25.noarch
python2-cssselect-0.9.2-1.fc25.noarch
createrepo_c-libs-0.10.0-6.fc25.s390x
initscripts-9.69-1.fc25.s390x
parted-3.2-21.fc25.s390x
flex-2.6.0-3.fc25.s390x
colord-libs-1.3.4-1.fc25.s390x
python-osbs-client-0.33-3.fc25.noarch
perl-Pod-Simple-3.35-1.fc25.noarch
python2-simplejson-3.10.0-1.fc25.s390x
brltty-5.4-2.fc25.s390x
librados2-10.2.4-2.fc25.s390x
tcp_wrappers-7.6-83.fc25.s390x
libcephfs_jni1-10.2.4-2.fc25.s390x
nettle-devel-3.3-1.fc25.s390x
bzip2-devel-1.0.6-21.fc25.s390x
libuuid-2.28.2-2.fc25.s390x
python3-dnf-1.1.10-6.fc25.noarch
texlive-kpathsea-doc-svn41139-33.fc25.1.noarch
openssh-7.4p1-4.fc25.s390x
texlive-kpathsea-bin-svn40473-33.20160520.fc25.1.s390x
texlive-graphics-svn41015-33.fc25.1.noarch
texlive-dvipdfmx-def-svn40328-33.fc25.1.noarch
texlive-mfware-svn40768-33.fc25.1.noarch
texlive-texlive-scripts-svn41433-33.fc25.1.noarch
texlive-euro-svn22191.1.1-33.fc25.1.noarch
texlive-etex-svn37057.0-33.fc25.1.noarch
texlive-iftex-svn29654.0.2-33.fc25.1.noarch
texlive-palatino-svn31835.0-33.fc25.1.noarch
texlive-texlive-docindex-svn41430-33.fc25.1.noarch
texlive-xunicode-svn30466.0.981-33.fc25.1.noarch
texlive-koma-script-svn41508-33.fc25.1.noarch
texlive-pst-grad-svn15878.1.06-33.fc25.1.noarch
texlive-pst-blur-svn15878.2.0-33.fc25.1.noarch
texlive-jknapltx-svn19440.0-33.fc25.1.noarch
texinfo-6.1-4.fc25.s390x
openssl-devel-1.0.2k-1.fc25.s390x
jansson-2.10-2.fc25.s390x
fedora-repos-25-4.noarch
python3-libs-3.5.3-6.fc25.s390x
perl-Errno-1.25-387.fc25.s390x
acl-2.2.52-13.fc25.s390x
systemd-pam-231-17.fc25.s390x
NetworkManager-libnm-1.4.4-5.fc25.s390x
poppler-0.45.0-5.fc25.s390x
ccache-3.3.4-1.fc25.s390x
valgrind-3.12.0-9.fc25.s390x
perl-open-1.10-387.fc25.noarch
libgcc-6.4.1-1.fc25.s390x
libsoup-2.56.1-1.fc25.s390x
libstdc++-devel-6.4.1-1.fc25.s390x
nss-softokn-devel-3.31.0-1.0.fc25.s390x
libobjc-6.4.1-1.fc25.s390x
python2-rpm-4.13.0.1-2.fc25.s390x
python2-gluster-3.10.5-1.fc25.s390x
rpm-build-4.13.0.1-2.fc25.s390x
glibc-static-2.24-10.fc25.s390x
lz4-1.8.0-1.fc25.s390x
xapian-core-libs-1.2.24-1.fc25.s390x
elfutils-libelf-devel-0.169-1.fc25.s390x
libaio-0.3.110-6.fc24.s390x
libfontenc-1.1.3-3.fc24.s390x
lzo-2.08-8.fc24.s390x
isl-0.14-5.fc24.s390x
libXau-1.0.8-6.fc24.s390x
linux-atm-libs-2.5.1-14.fc24.s390x
libXext-1.3.3-4.fc24.s390x
libXxf86vm-1.1.4-3.fc24.s390x
bison-3.0.4-4.fc24.s390x
perl-srpm-macros-1-20.fc25.noarch
gawk-4.1.3-8.fc25.s390x
libwayland-client-1.12.0-1.fc25.s390x
perl-Exporter-5.72-366.fc25.noarch
perl-version-0.99.17-1.fc25.s390x
fftw-libs-double-3.3.5-3.fc25.s390x
libssh2-1.8.0-1.fc25.s390x
ModemManager-glib-1.6.4-1.fc25.s390x
newt-python3-0.52.19-2.fc25.s390x
python-munch-2.0.4-3.fc25.noarch
python-bugzilla-1.2.2-4.fc25.noarch
libedit-3.1-16.20160618cvs.fc25.s390x
createrepo_c-0.10.0-6.fc25.s390x
device-mapper-multipath-libs-0.4.9-83.fc25.s390x
yum-3.4.3-510.fc25.noarch
mozjs17-17.0.0-16.fc25.s390x
libselinux-2.5-13.fc25.s390x
python2-pyparsing-2.1.10-1.fc25.noarch
cairo-gobject-1.14.8-1.fc25.s390x
xorg-x11-proto-devel-7.7-20.fc25.noarch
brlapi-0.6.5-2.fc25.s390x
librados-devel-10.2.4-2.fc25.s390x
libXinerama-devel-1.1.3-6.fc24.s390x
lua-posix-33.3.1-3.fc25.s390x
usbredir-devel-0.7.1-2.fc24.s390x
python3-dnf-plugins-core-0.1.21-5.fc25.noarch
texlive-pdftex-doc-svn41149-33.fc25.1.noarch
openssh-clients-7.4p1-4.fc25.s390x
iptables-1.6.0-3.fc25.s390x
texlive-texlive.infra-svn41280-33.fc25.1.noarch
texlive-graphics-cfg-svn40269-33.fc25.1.noarch
texlive-bibtex-svn40768-33.fc25.1.noarch
texlive-mfware-bin-svn40473-33.20160520.fc25.1.s390x
texlive-texlive-scripts-bin-svn29741.0-33.20160520.fc25.1.noarch
texlive-sauerj-svn15878.0-33.fc25.1.noarch
texlive-enctex-svn34957.0-33.fc25.1.noarch
texlive-ifetex-svn24853.1.2-33.fc25.1.noarch
texlive-ntgclass-svn15878.2.1a-33.fc25.1.noarch
texlive-tex-gyre-math-svn41264-33.fc25.1.noarch
texlive-bera-svn20031.0-33.fc25.1.noarch
texlive-ms-svn29849.0-33.fc25.1.noarch
texlive-pst-fill-svn15878.1.01-33.fc25.1.noarch
texlive-ctable-svn38672-33.fc25.1.noarch
texlive-extsizes-svn17263.1.4a-33.fc25.1.noarch
texlive-collection-latexrecommended-svn35765.0-33.20160520.fc25.1.noarch
perl-Filter-1.57-1.fc25.s390x
python2-rpm-macros-3-12.fc25.noarch
gdbm-1.13-1.fc25.s390x
libtasn1-4.12-1.fc25.s390x
fedora-release-25-2.noarch
gdb-headless-7.12.1-48.fc25.s390x
perl-macros-5.24.2-387.fc25.s390x
pcre-devel-8.41-1.fc25.s390x
libX11-1.6.5-1.fc25.s390x
coreutils-8.25-17.fc25.s390x
python2-openidc-client-0-3.20170523git77cb3ee.fc25.noarch
systemtap-client-3.1-5.fc25.s390x
firewalld-0.4.4.5-1.fc25.noarch
rpmlint-1.9-9.fc25.noarch
system-python-3.5.3-6.fc25.s390x
glibc-2.24-10.fc25.s390x
libglvnd-egl-0.2.999-24.20170818git8d4d03f.fc25.s390x
libkadm5-1.14.4-8.fc25.s390x
glusterfs-fuse-3.10.5-1.fc25.s390x
libgfortran-6.4.1-1.fc25.s390x
python3-rpm-4.13.0.1-2.fc25.s390x
glusterfs-extra-xlators-3.10.5-1.fc25.s390x
libsolv-0.6.28-5.fc25.s390x
dracut-config-rescue-046-2.git20170811.fc25.s390x
openjpeg2-2.2.0-1.fc25.s390x
python2-sphinx-theme-alabaster-0.7.9-1.fc25.noarch
elfutils-devel-0.169-1.fc25.s390x
gpg-pubkey-efe550f5-5220ba41
gpg-pubkey-81b46521-55b3ca9a
filesystem-3.2-37.fc24.s390x
libffi-3.1-9.fc24.s390x
keyutils-libs-1.5.9-8.fc24.s390x
libnfnetlink-1.0.1-8.fc24.s390x
libtheora-1.1.1-14.fc24.s390x
xml-common-0.6.3-44.fc24.noarch
autoconf-2.69-22.fc24.noarch
libXt-1.1.5-3.fc24.s390x
kbd-legacy-2.0.3-3.fc24.noarch
ghostscript-fonts-5.50-35.fc24.noarch
libXevie-1.0.3-11.fc24.s390x
libcap-2.25-2.fc25.s390x
mpfr-3.1.5-1.fc25.s390x
perl-Carp-1.40-365.fc25.noarch
libmnl-1.0.4-1.fc25.s390x
perl-Unicode-EastAsianWidth-1.33-8.fc25.noarch
libwayland-cursor-1.12.0-1.fc25.s390x
python-krbV-1.0.90-12.fc25.s390x
python2-urllib3-1.15.1-3.fc25.noarch
fipscheck-1.4.1-11.fc25.s390x
libndp-1.6-1.fc25.s390x
gnupg2-2.1.13-2.fc25.s390x
libXfixes-5.0.3-1.fc25.s390x
adwaita-icon-theme-3.22.0-1.fc25.noarch
dconf-0.26.0-1.fc25.s390x
ncurses-devel-6.0-6.20160709.fc25.s390x
dejagnu-1.6-1.fc25.noarch
device-mapper-1.02.136-3.fc25.s390x
libevent-2.0.22-1.fc25.s390x
atk-devel-2.22.0-1.fc25.s390x
libev-4.24-1.fc25.s390x
xorg-x11-fonts-Type1-7.5-16.fc24.noarch
brlapi-devel-0.6.5-2.fc25.s390x
pulseaudio-libs-10.0-2.fc25.s390x
glib2-2.50.3-1.fc25.s390x
dnf-1.1.10-6.fc25.noarch
texlive-metafont-bin-svn40987-33.20160520.fc25.1.s390x
texlive-xkeyval-svn35741.2.7a-33.fc25.1.noarch
texlive-euler-svn17261.2.5-33.fc25.1.noarch
texlive-mptopdf-svn41282-33.fc25.1.noarch
texlive-wasy-svn35831.0-33.fc25.1.noarch
texlive-avantgar-svn31835.0-33.fc25.1.noarch
texlive-eurosym-svn17265.1.4_subrfix-33.fc25.1.noarch
texlive-knuth-lib-svn35820.0-33.fc25.1.noarch
texlive-parallel-svn15878.0-33.fc25.1.noarch
texlive-texlive-msg-translations-svn41431-33.fc25.1.noarch
texlive-latex-svn40218-33.fc25.1.noarch
texlive-lualatex-math-svn40621-33.fc25.1.noarch
texlive-auto-pst-pdf-svn23723.0.6-33.fc25.1.noarch
texlive-powerdot-svn38984-33.fc25.1.noarch
texlive-wasysym-svn15878.2.0-33.fc25.1.noarch
ImageMagick-libs-6.9.3.0-6.fc25.s390x
geoclue2-2.4.5-1.fc25.s390x
perl-IO-Socket-IP-0.39-1.fc25.noarch
python2-pyasn1-0.2.3-1.fc25.noarch
at-spi2-core-devel-2.22.1-1.fc25.s390x
libacl-2.2.52-13.fc25.s390x
perl-libs-5.24.2-387.fc25.s390x
mesa-libglapi-17.0.5-3.fc25.s390x
python3-rpmconf-1.0.19-1.fc25.noarch
pcre-utf32-8.41-1.fc25.s390x
libX11-common-1.6.5-1.fc25.noarch
coreutils-common-8.25-17.fc25.s390x
mesa-libEGL-17.0.5-3.fc25.s390x
systemtap-runtime-3.1-5.fc25.s390x
NetworkManager-glib-1.4.4-5.fc25.s390x
audit-2.7.7-1.fc25.s390x
glibc-all-langpacks-2.24-10.fc25.s390x
libglvnd-glx-0.2.999-24.20170818git8d4d03f.fc25.s390x
glusterfs-api-3.10.5-1.fc25.s390x
libepoxy-devel-1.4.3-1.fc25.1.s390x
gtk3-3.22.17-2.fc25.s390x
rpm-4.13.0.1-2.fc25.s390x
net-snmp-agent-libs-5.7.3-15.fc25.s390x
pcre2-devel-10.23-9.fc25.s390x
subversion-1.9.7-1.fc25.s390x
libsndfile-1.0.28-6.fc25.s390x
lasi-1.1.2-6.fc24.s390x
python2-snowballstemmer-1.2.1-1.fc25.noarch
gpg-pubkey-34ec9cba-54e38751
gpg-pubkey-030d5aed-55b577f0
basesystem-11-2.fc24.noarch
libmpc-1.0.2-5.fc24.s390x
libunistring-0.9.4-3.fc24.s390x
libmodman-2.0.1-12.fc24.s390x
lsscsi-0.28-3.fc24.s390x
kbd-misc-2.0.3-3.fc24.noarch
kmod-23-1.fc25.s390x
newt-0.52.19-2.fc25.s390x
perl-Text-Unidecode-1.27-3.fc25.noarch
plymouth-core-libs-0.9.3-0.6.20160620git0e65b86c.fc25.s390x
which-2.21-1.fc25.s390x
python3-slip-0.6.4-4.fc25.noarch
python3-systemd-232-1.fc25.s390x
python-lockfile-0.11.0-4.fc25.noarch
python2-requests-2.10.0-4.fc25.noarch
libnghttp2-1.13.0-2.fc25.s390x
python-urlgrabber-3.10.1-9.fc25.noarch
iputils-20161105-1.fc25.s390x
rest-0.8.0-1.fc25.s390x
adwaita-cursor-theme-3.22.0-1.fc25.noarch
authconfig-6.2.10-14.fc25.s390x
automake-1.15-7.fc25.noarch
shared-mime-info-1.8-1.fc25.s390x
pigz-2.3.4-1.fc25.s390x
device-mapper-libs-1.02.136-3.fc25.s390x
dnsmasq-2.76-2.fc25.s390x
fedora-packager-0.6.0.1-1.fc25.noarch
libwebp-0.5.2-1.fc25.s390x
boost-system-1.60.0-10.fc25.s390x
libasyncns-0.8-10.fc24.s390x
libXau-devel-1.0.8-6.fc24.s390x
libverto-libev-0.2.6-6.fc24.s390x
python3-html5lib-0.999-9.fc25.noarch
ttmkfdir-3.0.9-48.fc24.s390x
pulseaudio-libs-glib2-10.0-2.fc25.s390x
texlive-lib-2016-33.20160520.fc25.s390x
libXi-devel-1.7.9-1.fc25.s390x
python3-distro-1.0.3-1.fc25.noarch
texlive-texlive-common-doc-svn40682-33.fc25.1.noarch
packagedb-cli-2.14.1-1.fc25.noarch
texlive-metafont-svn40793-33.fc25.1.noarch
texlive-tools-svn40934-33.fc25.1.noarch
texlive-enumitem-svn24146.3.5.2-33.fc25.1.noarch
texlive-mptopdf-bin-svn18674.0-33.20160520.fc25.1.noarch
texlive-underscore-svn18261.0-33.fc25.1.noarch
texlive-anysize-svn15878.0-33.fc25.1.noarch
texlive-euenc-svn19795.0.1h-33.fc25.1.noarch
texlive-kastrup-svn15878.0-33.fc25.1.noarch
texlive-paralist-svn39247-33.fc25.1.noarch
texlive-texlive-en-svn41185-33.fc25.1.noarch
texlive-tipa-svn29349.1.3-33.fc25.1.noarch
texlive-currfile-svn40725-33.fc25.1.noarch
texlive-pst-node-svn40743-33.fc25.1.noarch
texlive-pst-slpe-svn24391.1.31-33.fc25.1.noarch
texlive-typehtml-svn17134.0-33.fc25.1.noarch
SDL2-devel-2.0.5-3.fc25.s390x
libcroco-0.6.11-3.fc25.s390x
bluez-libs-devel-5.44-1.fc25.s390x
kernel-4.10.8-200.fc25.s390x
system-python-libs-3.5.3-6.fc25.s390x
firewalld-filesystem-0.4.4.5-1.fc25.noarch
pcre-cpp-8.41-1.fc25.s390x
python3-firewall-0.4.4.5-1.fc25.noarch
freetype-devel-2.6.5-9.fc25.s390x
pcre-utf16-8.41-1.fc25.s390x
linux-firmware-20170605-74.git37857004.fc25.noarch
kernel-modules-4.11.10-200.fc25.s390x
gnutls-devel-3.5.14-1.fc25.s390x
systemtap-devel-3.1-5.fc25.s390x
polkit-0.113-8.fc25.s390x
perl-SelfLoader-1.23-387.fc25.noarch
libdb-utils-5.3.28-24.fc25.s390x
glibc-common-2.24-10.fc25.s390x
libglvnd-0.2.999-24.20170818git8d4d03f.fc25.s390x
nss-util-devel-3.31.0-1.0.fc25.s390x
nss-softokn-freebl-devel-3.31.0-1.0.fc25.s390x
webkitgtk4-2.16.6-1.fc25.s390x
rpm-build-libs-4.13.0.1-2.fc25.s390x
libglvnd-core-devel-0.2.999-24.20170818git8d4d03f.fc25.s390x
rpm-devel-4.13.0.1-2.fc25.s390x
kernel-4.12.9-200.fc25.s390x
libtool-ltdl-2.4.6-14.fc25.s390x
gts-0.7.6-29.20121130.fc24.s390x
python2-imagesize-0.7.1-2.fc25.noarch
fontpackages-filesystem-1.44-17.fc24.noarch
groff-base-1.22.3-8.fc24.s390x
ilmbase-2.2.0-5.fc24.s390x
OpenEXR-libs-2.2.0-5.fc24.s390x
hesiod-3.2.1-6.fc24.s390x
sysfsutils-2.1.0-19.fc24.s390x
ocaml-srpm-macros-2-4.fc24.noarch
mailx-12.5-19.fc24.s390x
ncurses-libs-6.0-6.20160709.fc25.s390x
ipset-libs-6.29-1.fc25.s390x
gmp-devel-6.1.1-1.fc25.s390x
python-pip-8.1.2-2.fc25.noarch
harfbuzz-1.3.2-1.fc25.s390x
python2-iniparse-0.4-20.fc25.noarch
python3-iniparse-0.4-20.fc25.noarch
python3-kickstart-2.32-1.fc25.noarch
perl-Net-SSLeay-1.78-1.fc25.s390x
drpm-0.3.0-3.fc25.s390x
glib-networking-2.50.0-1.fc25.s390x
webkitgtk3-2.4.11-3.fc25.s390x
libXaw-1.0.13-4.fc25.s390x
xorg-x11-font-utils-7.5-32.fc25.s390x
hardlink-1.1-1.fc25.s390x
libcom_err-1.43.3-1.fc25.s390x
python2-dateutil-2.6.0-1.fc25.noarch
libXpm-3.5.12-1.fc25.s390x
poppler-data-0.4.7-6.fc25.noarch
librbd1-10.2.4-2.fc25.s390x
perl-Digest-MD5-2.55-2.fc25.s390x
wayland-protocols-devel-1.7-1.fc25.noarch
texi2html-5.0-4.fc24.noarch
libxkbcommon-0.7.1-1.fc25.s390x
libuuid-devel-2.28.2-2.fc25.s390x
libcacard-2.5.3-1.fc25.s390x
libwmf-lite-0.2.8.4-50.fc25.s390x
texlive-tetex-svn41059-33.fc25.1.noarch
texlive-thumbpdf-svn34621.3.16-33.fc25.1.noarch
texlive-carlisle-svn18258.0-33.fc25.1.noarch
texlive-makeindex-bin-svn40473-33.20160520.fc25.1.s390x
texlive-pdftex-svn41149-33.fc25.1.noarch
texlive-csquotes-svn39538-33.fc25.1.noarch
texlive-courier-svn35058.0-33.fc25.1.noarch
texlive-helvetic-svn31835.0-33.fc25.1.noarch
texlive-mfnfss-svn19410.0-33.fc25.1.noarch
texlive-sepnum-svn20186.2.0-33.fc25.1.noarch
texlive-utopia-svn15878.0-33.fc25.1.noarch
texlive-luatexbase-svn38550-33.fc25.1.noarch
texlive-pst-3d-svn17257.1.10-33.fc25.1.noarch
texlive-latex-bin-bin-svn14050.0-33.20160520.fc25.1.noarch
texlive-l3experimental-svn41163-33.fc25.1.noarch
net-tools-2.0-0.40.20160329git.fc25.s390x
perl-Pod-Perldoc-3.28-1.fc25.noarch
openssl-1.0.2k-1.fc25.s390x
man-pages-4.06-4.fc25.noarch
libxml2-2.9.4-2.fc25.s390x
python3-dateutil-2.6.0-1.fc25.noarch
perl-threads-shared-1.57-1.fc25.s390x
libnotify-0.7.7-1.fc25.s390x
unzip-6.0-32.fc25.s390x
python-beautifulsoup4-4.6.0-1.fc25.noarch
dhcp-client-4.3.5-3.fc25.s390x
python2-fedora-0.9.0-6.fc25.noarch
gdb-7.12.1-48.fc25.s390x
sqlite-libs-3.14.2-3.fc25.s390x
webkitgtk4-jsc-2.16.6-1.fc25.s390x
libgomp-6.4.1-1.fc25.s390x
p11-kit-trust-0.23.8-1.fc25.s390x
gdk-pixbuf2-devel-2.36.9-1.fc25.s390x
rpm-plugin-selinux-4.13.0.1-2.fc25.s390x
mariadb-common-10.1.25-1.fc25.s390x
selinux-policy-targeted-3.13.1-225.20.fc25.noarch
dbus-devel-1.11.16-1.fc25.s390x
lz4-libs-1.8.0-1.fc25.s390x
gd-2.2.4-1.fc25.s390x
python2-jinja2-2.8.1-1.fc25.noarch
gpg-pubkey-95a43f54-5284415a
dejavu-fonts-common-2.35-3.fc24.noarch
libSM-1.2.2-4.fc24.s390x
diffutils-3.3-13.fc24.s390x
libogg-1.3.2-5.fc24.s390x
hunspell-en-US-0.20140811.1-5.fc24.noarch
libdaemon-0.14-10.fc24.s390x
patch-2.7.5-3.fc24.s390x
libsysfs-2.1.0-19.fc24.s390x
procmail-3.22-39.fc24.s390x
libXdamage-1.1.4-8.fc24.s390x
libotf-0.9.13-7.fc24.s390x
urw-fonts-2.4-22.fc24.noarch
crontabs-1.11-12.20150630git.fc24.noarch
ppp-2.4.7-9.fc24.s390x
cyrus-sasl-2.1.26-26.2.fc24.s390x
zlib-devel-1.2.8-10.fc24.s390x
time-1.7-49.fc24.s390x
gpg-pubkey-fdb19c98-56fd6333
libcap-ng-0.7.8-1.fc25.s390x
binutils-2.26.1-1.fc25.s390x
lcms2-2.8-2.fc25.s390x
libcomps-0.1.7-5.fc25.s390x
perl-constant-1.33-367.fc25.noarch
perl-Data-Dumper-2.161-1.fc25.s390x
ipcalc-0.1.8-1.fc25.s390x
gmp-c++-6.1.1-1.fc25.s390x
fontconfig-2.12.1-1.fc25.s390x
enchant-1.6.0-14.fc25.s390x
pyliblzma-0.5.3-16.fc25.s390x
libsepol-devel-2.5-10.fc25.s390x
python3-ordered-set-2.0.0-4.fc25.noarch
python-ipaddress-1.0.16-3.fc25.noarch
python2-kerberos-1.2.5-1.fc25.s390x
python2-pysocks-1.5.6-5.fc25.noarch
fipscheck-lib-1.4.1-11.fc25.s390x
libatomic_ops-7.4.4-1.fc25.s390x
python2-pygpgme-0.3-18.fc25.s390x
orc-0.4.26-1.fc25.s390x
yum-utils-1.1.31-511.fc25.noarch
libXrender-0.9.10-1.fc25.s390x
libXrandr-1.5.1-1.fc25.s390x
go-srpm-macros-2-7.fc25.noarch
gnupg2-smime-2.1.13-2.fc25.s390x
guile-devel-2.0.13-1.fc25.s390x
uboot-tools-2016.09.01-2.fc25.s390x
pykickstart-2.32-1.fc25.noarch
python-bunch-1.0.1-9.fc25.noarch
perl-generators-1.10-1.fc25.noarch
perl-Mozilla-CA-20160104-3.fc25.noarch
bzip2-libs-1.0.6-21.fc25.s390x
libpng-1.6.27-1.fc25.s390x
desktop-file-utils-0.23-2.fc25.s390x
python2-cccolutils-1.4-1.fc25.s390x
python2-lxml-3.7.2-1.fc25.s390x
redhat-rpm-config-45-1.fc25.noarch
device-mapper-event-libs-1.02.136-3.fc25.s390x
lvm2-libs-2.02.167-3.fc25.s390x
libselinux-python-2.5-13.fc25.s390x
boost-thread-1.60.0-10.fc25.s390x
librbd-devel-10.2.4-2.fc25.s390x
libXcursor-devel-1.1.14-6.fc24.s390x
latex2html-2012-7.fc24.noarch
lksctp-tools-1.0.16-5.fc24.s390x
libfdt-1.4.2-1.fc25.s390x
libXft-devel-2.3.2-4.fc24.s390x
libattr-devel-2.4.47-16.fc24.s390x
libiscsi-devel-1.15.0-2.fc24.s390x
gettext-0.19.8.1-3.fc25.s390x
libjpeg-turbo-devel-1.5.1-0.fc25.s390x
pulseaudio-libs-devel-10.0-2.fc25.s390x
libmount-2.28.2-2.fc25.s390x
python3-decorator-4.0.11-1.fc25.noarch
tzdata-java-2017b-1.fc25.noarch
python-srpm-macros-3-12.fc25.noarch
libsmartcols-2.28.2-2.fc25.s390x
texlive-kpathsea-svn41139-33.fc25.1.noarch
texlive-amsmath-svn41561-33.fc25.1.noarch
texlive-thumbpdf-bin-svn6898.0-33.20160520.fc25.1.noarch
texlive-psnfss-svn33946.9.2a-33.fc25.1.noarch
texlive-subfig-svn15878.1.3-33.fc25.1.noarch
texlive-fancybox-svn18304.1.4-33.fc25.1.noarch
texlive-lua-alt-getopt-svn29349.0.7.0-33.fc25.1.noarch
texlive-natbib-svn20668.8.31b-33.fc25.1.noarch
texlive-pdftex-bin-svn40987-33.20160520.fc25.1.s390x
texlive-xdvi-svn40768-33.fc25.1.noarch
texlive-crop-svn15878.1.5-33.fc25.1.noarch
texlive-babel-english-svn30264.3.3p-33.fc25.1.noarch
texlive-cmextra-svn32831.0-33.fc25.1.noarch
texlive-fancyhdr-svn15878.3.1-33.fc25.1.noarch
texlive-luatex-svn40963-33.fc25.1.noarch
texlive-knuth-local-svn38627-33.fc25.1.noarch
texlive-mflogo-font-svn36898.1.002-33.fc25.1.noarch
texlive-parskip-svn19963.2.0-33.fc25.1.noarch
texlive-section-svn20180.0-33.fc25.1.noarch
texlive-textcase-svn15878.0-33.fc25.1.noarch
texlive-updmap-map-svn41159-33.fc25.1.noarch
texlive-attachfile-svn38830-33.fc25.1.noarch
libtiff-4.0.8-1.fc25.s390x
libdb-5.3.28-24.fc25.s390x
gnutls-3.5.14-1.fc25.s390x
bind-license-9.10.5-2.P2.fc25.noarch
mesa-libGLES-17.0.5-3.fc25.s390x
python3-requests-kerberos-0.10.0-2.fc25.noarch
python3-pyOpenSSL-16.2.0-1.fc25.noarch
perl-threads-2.16-1.fc25.s390x
cryptsetup-libs-1.7.5-1.fc25.s390x
netpbm-10.79.00-1.fc25.s390x
qrencode-libs-3.4.4-1.fc25.s390x
gstreamer1-plugins-base-1.10.5-1.fc25.s390x
elfutils-default-yama-scope-0.169-1.fc25.noarch
systemd-udev-231-17.fc25.s390x
python2-koji-1.13.0-2.fc25.noarch
unbound-libs-1.6.3-1.fc25.s390x
openldap-2.4.44-11.fc25.s390x
koji-1.13.0-2.fc25.noarch
bind99-libs-9.9.10-2.P3.fc25.s390x
mesa-libGL-devel-17.0.5-3.fc25.s390x
graphite2-devel-1.3.10-1.fc25.s390x
systemtap-sdt-devel-3.1-5.fc25.s390x
iproute-tc-4.11.0-1.fc25.s390x
libarchive-3.2.2-2.fc25.s390x
publicsuffix-list-dafsa-20170424-1.fc25.noarch
nspr-4.15.0-1.fc25.s390x
expat-2.2.3-1.fc25.s390x
nspr-devel-4.15.0-1.fc25.s390x
p11-kit-0.23.8-1.fc25.s390x
kernel-core-4.12.9-200.fc25.s390x
emacs-filesystem-25.2-3.fc25.noarch
ca-certificates-2017.2.16-1.0.fc25.noarch
librsvg2-2.40.18-1.fc25.s390x
gtk-update-icon-cache-3.22.17-2.fc25.s390x
libidn2-2.0.4-1.fc25.s390x
rpm-libs-4.13.0.1-2.fc25.s390x
vim-filesystem-8.0.885-1.fc25.s390x
mariadb-libs-10.1.25-1.fc25.s390x
java-1.8.0-openjdk-headless-1.8.0.144-5.b01.fc25.s390x
vim-enhanced-8.0.885-1.fc25.s390x
gcc-objc-6.4.1-1.fc25.s390x
nss-devel-3.31.0-1.1.fc25.s390x
p11-kit-devel-0.23.8-1.fc25.s390x
ethtool-4.11-1.fc25.s390x
python2-sssdconfig-1.15.3-1.fc25.noarch
xorg-x11-fonts-ISO8859-1-100dpi-7.5-16.fc24.noarch
lato-fonts-2.015-2.fc24.noarch
python-sphinx-locale-1.5.2-2.fc25.noarch
dpkg-1.17.27-1.fc25.s390x
texlive-luaotfload-svn40902-33.fc25.1.noarch
texlive-unicode-math-svn38462-33.fc25.1.noarch
texlive-fancyvrb-svn18492.2.8-33.fc25.1.noarch
texlive-pst-pdf-bin-svn7838.0-33.20160520.fc25.1.noarch
texlive-amscls-svn36804.0-33.fc25.1.noarch
texlive-ltxmisc-svn21927.0-33.fc25.1.noarch
texlive-breqn-svn38099.0.98d-33.fc25.1.noarch
texlive-xetex-def-svn40327-33.fc25.1.noarch
openssh-server-7.4p1-4.fc25.s390x
sendmail-8.15.2-8.fc25.s390x
tzdata-2017b-1.fc25.noarch
hunspell-1.4.1-2.fc25.s390x
gpg-pubkey-8e1431d5-53bcbac7
zlib-1.2.8-10.fc24.s390x
sed-4.2.2-15.fc24.s390x
psmisc-22.21-8.fc24.s390x
gpm-libs-1.20.7-9.fc24.s390x
zip-3.0-16.fc24.s390x
libyubikey-1.13-2.fc24.s390x
sg3_utils-libs-1.41-3.fc24.s390x
polkit-pkla-compat-0.1-7.fc24.s390x
passwd-0.79-8.fc24.s390x
trousers-0.3.13-6.fc24.s390x
grubby-8.40-3.fc24.s390x
rootfiles-8.1-19.fc24.noarch
nettle-3.3-1.fc25.s390x
libksba-1.3.5-1.fc25.s390x
perl-Text-ParseWords-3.30-365.fc25.noarch
perl-PathTools-3.63-366.fc25.s390x
perl-File-Temp-0.23.04-365.fc25.noarch
fuse-libs-2.9.7-1.fc25.s390x
perl-Pod-Escapes-1.07-365.fc25.noarch
perl-Term-ANSIColor-4.05-2.fc25.noarch
perl-URI-1.71-5.fc25.noarch
libXfont-1.5.2-1.fc25.s390x
python-six-1.10.0-3.fc25.noarch
dbus-glib-0.108-1.fc25.s390x
gobject-introspection-1.50.0-1.fc25.s390x
libpwquality-1.3.0-6.fc25.s390x
python-gobject-base-3.22.0-1.fc25.s390x
python-html5lib-0.999-9.fc25.noarch
python3-dbus-1.2.4-2.fc25.s390x
python3-chardet-2.3.0-1.fc25.noarch
python3-urllib3-1.15.1-3.fc25.noarch
python-offtrac-0.1.0-7.fc25.noarch
python2-cryptography-1.5.3-3.fc25.s390x
python2-requests-kerberos-0.10.0-2.fc25.noarch
libserf-1.3.9-1.fc25.s390x
libdatrie-0.2.9-3.fc25.s390x
s390utils-base-1.36.0-1.fc25.s390x
kpartx-0.4.9-83.fc25.s390x
s390utils-cpuplugd-1.36.0-1.fc25.s390x
s390utils-osasnmpd-1.36.0-1.fc25.s390x
python-dnf-plugins-extras-common-0.0.12-4.fc25.noarch
fpc-srpm-macros-1.0-1.fc25.noarch
libuser-0.62-4.fc25.s390x
man-db-2.7.5-3.fc25.s390x
python-systemd-doc-232-1.fc25.s390x
bodhi-client-0.9.12.2-6.fc25.noarch
cairo-1.14.8-1.fc25.s390x
cracklib-dicts-2.9.6-4.fc25.s390x
libselinux-python3-2.5-13.fc25.s390x
python2-enchant-1.6.8-1.fc25.noarch
boost-iostreams-1.60.0-10.fc25.s390x
userspace-rcu-0.9.2-2.fc25.s390x
libXext-devel-1.3.3-4.fc24.s390x
libXrandr-devel-1.5.1-1.fc25.s390x
python3-lxml-3.7.2-1.fc25.s390x
libiscsi-1.15.0-2.fc24.s390x
fontconfig-devel-2.12.1-1.fc25.s390x
libfdt-devel-1.4.2-1.fc25.s390x
ceph-devel-compat-10.2.4-2.fc25.s390x
zlib-static-1.2.8-10.fc24.s390x
chrpath-0.16-3.fc24.s390x
info-6.1-4.fc25.s390x
iptables-libs-1.6.0-3.fc25.s390x
libfdisk-2.28.2-2.fc25.s390x
dnf-plugins-core-0.1.21-5.fc25.noarch
perl-Storable-2.56-368.fc25.s390x
python2-decorator-4.0.11-1.fc25.noarch
libnetfilter_conntrack-1.0.6-2.fc25.s390x
texlive-texlive.infra-bin-svn40312-33.20160520.fc25.1.s390x
texlive-ifluatex-svn41346-33.fc25.1.noarch
texlive-fp-svn15878.0-33.fc25.1.noarch
texlive-latex-fonts-svn28888.0-33.fc25.1.noarch
texlive-bibtex-bin-svn40473-33.20160520.fc25.1.s390x
texlive-glyphlist-svn28576.0-33.fc25.1.noarch
texlive-marvosym-svn29349.2.2a-33.fc25.1.noarch
texlive-tex-bin-svn40987-33.20160520.fc25.1.s390x
texlive-texconfig-svn40768-33.fc25.1.noarch
texlive-wasy2-ps-svn35830.0-33.fc25.1.noarch
texlive-psfrag-svn15878.3.04-33.fc25.1.noarch
texlive-charter-svn15878.0-33.fc25.1.noarch
texlive-ec-svn25033.1.0-33.fc25.1.noarch
texlive-lineno-svn21442.4.41-33.fc25.1.noarch
texlive-hyphen-base-svn41138-33.fc25.1.noarch
texlive-manfnt-font-svn35799.0-33.fc25.1.noarch
texlive-ncntrsbk-svn31835.0-33.fc25.1.noarch
texlive-pst-math-svn34786.0.63-33.fc25.1.noarch
texlive-symbol-svn31835.0-33.fc25.1.noarch
texlive-environ-svn33821.0.3-33.fc25.1.noarch
texlive-algorithms-svn38085.0.1-33.fc25.1.noarch
kernel-core-4.10.8-200.fc25.s390x
python3-hawkey-0.6.4-3.fc25.s390x
freetype-2.6.5-9.fc25.s390x
mesa-libwayland-egl-17.0.5-3.fc25.s390x
libicu-57.1-5.fc25.s390x
libnl3-cli-3.2.29-3.fc25.s390x
cups-libs-2.2.0-9.fc25.s390x
bind-libs-lite-9.10.5-2.P2.fc25.s390x
python3-kerberos-1.2.5-1.fc25.s390x
python3-cryptography-1.5.3-3.fc25.s390x
perl-IO-1.36-387.fc25.s390x
dhcp-libs-4.3.5-3.fc25.s390x
rsync-3.1.2-4.fc25.s390x
make-4.1-6.fc25.s390x
quota-4.03-8.fc25.s390x
libX11-devel-1.6.5-1.fc25.s390x
ghostscript-9.20-9.fc25.s390x
rpcbind-0.2.4-6.rc2.fc25.s390x
pyOpenSSL-16.2.0-1.fc25.noarch
python3-pycurl-7.43.0-6.fc25.s390x
bind99-license-9.9.10-2.P3.fc25.noarch
python-firewall-0.4.4.5-1.fc25.noarch
netpbm-progs-10.79.00-1.fc25.s390x
wget-1.18-3.fc25.s390x
libsemanage-2.5-9.fc25.s390x
telnet-0.17-68.fc25.s390x
gdk-pixbuf2-2.36.9-1.fc25.s390x
dbus-libs-1.11.16-1.fc25.s390x
glusterfs-client-xlators-3.10.5-1.fc25.s390x
libepoxy-1.4.3-1.fc25.1.s390x
dracut-046-2.git20170811.fc25.s390x
net-snmp-libs-5.7.3-15.fc25.s390x
libgo-devel-6.4.1-1.fc25.s390x
libglvnd-opengl-0.2.999-24.20170818git8d4d03f.fc25.s390x
sqlite-devel-3.14.2-3.fc25.s390x
cpp-6.4.1-1.fc25.s390x
git-2.9.5-1.fc25.s390x
pcre2-10.23-9.fc25.s390x
python2-GitPython-2.1.5-1.fc25.noarch
glusterfs-devel-3.10.5-1.fc25.s390x
net-snmp-5.7.3-15.fc25.s390x
rpm-plugin-systemd-inhibit-4.13.0.1-2.fc25.s390x
emacs-25.2-3.fc25.s390x
libstdc++-static-6.4.1-1.fc25.s390x
expat-devel-2.2.3-1.fc25.s390x
perl-Time-HiRes-1.9744-1.fc25.s390x
fontawesome-fonts-4.7.0-1.fc25.noarch
python-markupsafe-0.23-10.fc25.s390x
pytz-2016.6.1-1.fc25.noarch
python2-sphinx-1.5.2-2.fc25.noarch
texlive-ifplatform-svn21156.0.4-33.fc25.1.noarch
texlive-eso-pic-svn37925.2.0g-33.fc25.1.noarch
texlive-xcolor-svn41044-33.fc25.1.noarch
texlive-pst-eps-svn15878.1.0-33.fc25.1.noarch
texlive-pst-text-svn15878.1.00-33.fc25.1.noarch
texlive-rotating-svn16832.2.16b-33.fc25.1.noarch
texlive-pdfpages-svn40638-33.fc25.1.noarch
texlive-cm-super-svn15878.0-33.fc25.1.noarch
texlive-xetex-svn41438-33.fc25.1.noarch
dnf-yum-1.1.10-6.fc25.noarch
libseccomp-devel-2.3.2-1.fc25.s390x
gpgme-1.8.0-10.fc25.s390x
apr-util-1.5.4-3.fc24.s390x
jbigkit-libs-2.1-5.fc24.s390x
pixman-0.34.0-2.fc24.s390x
dwz-0.12-2.fc24.s390x
expect-5.45-22.fc24.s390x
libsigsegv-2.10-10.fc24.s390x
fakeroot-libs-1.20.2-4.fc24.s390x
m17n-lib-1.7.0-5.fc24.s390x
libverto-0.2.6-6.fc24.s390x
libXmu-1.1.2-4.fc24.s390x
libXcursor-1.1.14-6.fc24.s390x
python-kitchen-1.2.4-2.fc24.noarch
fakeroot-1.20.2-4.fc24.s390x
blktrace-1.1.0-3.fc24.s390x
usermode-1.111-8.fc24.s390x
kbd-2.0.3-3.fc24.s390x
libaio-devel-0.3.110-6.fc24.s390x
web-assets-filesystem-5-4.fc24.noarch
libgpg-error-1.24-1.fc25.s390x
findutils-4.6.0-8.fc25.s390x
libassuan-2.4.3-1.fc25.s390x
libusbx-1.0.21-1.fc25.s390x
libxslt-1.1.28-13.fc25.s390x
libmetalink-0.1.3-1.fc25.s390x
perl-MIME-Base64-3.15-365.fc25.s390x
ncurses-6.0-6.20160709.fc25.s390x
libwayland-server-1.12.0-1.fc25.s390x
perl-Fedora-VSP-0.001-4.fc25.noarch
perl-libintl-perl-1.26-1.fc25.s390x
shadow-utils-4.2.1-11.fc25.s390x
atk-2.22.0-1.fc25.s390x
pam-1.3.0-1.fc25.s390x
harfbuzz-icu-1.3.2-1.fc25.s390x
libsecret-0.18.5-2.fc25.s390x
s390utils-iucvterm-1.36.0-1.fc25.s390x
python3-requests-2.10.0-4.fc25.noarch
pyusb-1.0.0-2.fc25.noarch
python-enum34-1.0.4-6.fc25.noarch
pyxattr-0.5.3-8.fc25.s390x
libbabeltrace-1.4.0-3.fc25.s390x
libthai-0.1.25-1.fc25.s390x
deltarpm-3.6-17.fc25.s390x
s390utils-mon_statd-1.36.0-1.fc25.s390x
device-mapper-multipath-0.4.9-83.fc25.s390x
python3-pygpgme-0.3-18.fc25.s390x
libreport-filesystem-2.8.0-1.fc25.s390x
ghc-srpm-macros-1.4.2-4.fc25.noarch
rpmdevtools-8.9-1.fc25.noarch
python-dnf-plugins-extras-migrate-0.0.12-4.fc25.noarch
perl-IO-Socket-SSL-2.038-1.fc25.noarch
perl-File-ShareDir-1.102-7.fc25.noarch
tcl-8.6.6-1.fc25.s390x
bzip2-1.0.6-21.fc25.s390x
libss-1.43.3-1.fc25.s390x
libselinux-utils-2.5-13.fc25.s390x
python3-enchant-1.6.8-1.fc25.noarch
python2-dockerfile-parse-0.0.5-7.fc25.noarch
systemd-bootchart-231-2.fc25.s390x
e2fsprogs-1.43.3-1.fc25.s390x
libpng-devel-1.6.27-1.fc25.s390x
perl-XML-Parser-2.44-5.fc25.s390x
lttng-ust-2.8.1-2.fc25.s390x
libXfixes-devel-5.0.3-1.fc25.s390x
libXcomposite-devel-0.4.4-8.fc24.s390x
python3-javapackages-4.7.0-6.1.fc25.noarch
libcephfs_jni-devel-10.2.4-2.fc25.s390x
keyutils-libs-devel-1.5.9-8.fc24.s390x
harfbuzz-devel-1.3.2-1.fc25.s390x
libidn-devel-1.33-1.fc25.s390x
libnfs-1.9.8-2.fc24.s390x
libssh2-devel-1.8.0-1.fc25.s390x
qemu-sanity-check-nodeps-1.1.5-5.fc24.s390x
alsa-lib-devel-1.1.1-2.fc25.s390x
libpsl-0.17.0-1.fc25.s390x
libseccomp-2.3.2-1.fc25.s390x
json-glib-1.2.6-1.fc25.s390x
python2-dnf-1.1.10-6.fc25.noarch
texlive-tetex-bin-svn36770.0-33.20160520.fc25.1.noarch
texlive-amsfonts-svn29208.3.04-33.fc25.1.noarch
texlive-babel-svn40706-33.fc25.1.noarch
texlive-colortbl-svn29803.v1.0a-33.fc25.1.noarch
texlive-babelbib-svn25245.1.31-33.fc25.1.noarch
texlive-footmisc-svn23330.5.5b-33.fc25.1.noarch
texlive-makeindex-svn40768-33.fc25.1.noarch
texlive-plain-svn40274-33.fc25.1.noarch
texlive-texconfig-bin-svn29741.0-33.20160520.fc25.1.noarch
texlive-zapfding-svn31835.0-33.fc25.1.noarch
texlive-microtype-svn41127-33.fc25.1.noarch
texlive-bookman-svn31835.0-33.fc25.1.noarch
texlive-dvisvgm-def-svn41011-33.fc25.1.noarch
texlive-finstrut-svn21719.0.5-33.fc25.1.noarch
texlive-hyph-utf8-svn41189-33.fc25.1.noarch
texlive-lualibs-svn40370-33.fc25.1.noarch
kernel-modules-4.10.8-200.fc25.s390x
python2-hawkey-0.6.4-3.fc25.s390x
elfutils-libelf-0.169-1.fc25.s390x
libnl3-3.2.29-3.fc25.s390x
gstreamer1-1.10.5-1.fc25.s390x
polkit-libs-0.113-8.fc25.s390x
libtirpc-1.0.2-0.fc25.s390x
libteam-1.27-1.fc25.s390x
python3-3.5.3-6.fc25.s390x
python3-pyasn1-0.2.3-1.fc25.noarch
perl-File-Path-2.12-366.fc25.noarch
mesa-libwayland-egl-devel-17.0.5-3.fc25.s390x
libacl-devel-2.2.52-13.fc25.s390x
lua-libs-5.3.4-3.fc25.s390x
quota-nls-4.03-8.fc25.noarch
ghostscript-x11-9.20-9.fc25.s390x
systemd-231-17.fc25.s390x
dhcp-common-4.3.5-3.fc25.noarch
vte291-devel-0.46.2-1.fc25.s390x
python-devel-2.7.13-2.fc25.s390x
elfutils-0.169-1.fc25.s390x
lua-5.3.4-3.fc25.s390x
python3-beautifulsoup4-4.6.0-1.fc25.noarch
libmicrohttpd-0.9.55-1.fc25.s390x
screen-4.6.1-1.fc25.s390x
strace-4.18-1.fc25.s390x
libstdc++-6.4.1-1.fc25.s390x
glusterfs-3.10.5-1.fc25.s390x
file-5.29-9.fc25.s390x
nss-3.31.0-1.1.fc25.s390x
libgo-6.4.1-1.fc25.s390x
tar-1.29-4.fc25.s390x
subversion-libs-1.9.7-1.fc25.s390x
libglvnd-gles-0.2.999-24.20170818git8d4d03f.fc25.s390x
gdk-pixbuf2-modules-2.36.9-1.fc25.s390x
gcc-6.4.1-1.fc25.s390x
curl-7.51.0-9.fc25.s390x
pcre2-utf16-10.23-9.fc25.s390x
mariadb-config-10.1.25-1.fc25.s390x
distribution-gpg-keys-1.14-1.fc25.noarch
python2-rpkg-1.49-6.fc25.noarch
libcurl-devel-7.51.0-9.fc25.s390x
gtk3-devel-3.22.17-2.fc25.s390x
krb5-devel-1.14.4-8.fc25.s390x
wpa_supplicant-2.6-3.fc25.s390x
vim-minimal-8.0.885-1.fc25.s390x
fontawesome-fonts-web-4.7.0-1.fc25.noarch
python2-pygments-2.2.0-7.fc25.noarch
python2-babel-2.3.4-2.fc25.noarch
doxygen-1.8.13-9.fc25.s390x
texlive-mparhack-svn15878.1.4-33.fc25.1.noarch
texlive-pspicture-svn15878.0-33.fc25.1.noarch
texlive-soul-svn15878.2.4-33.fc25.1.noarch
texlive-trimspaces-svn15878.1.1-33.fc25.1.noarch
texlive-varwidth-svn24104.0.92-33.fc25.1.noarch
texlive-geometry-svn19716.5.6-33.fc25.1.noarch
texlive-memoir-svn41203-33.fc25.1.noarch
texlive-pgf-svn40966-33.fc25.1.noarch
texlive-pst-coil-svn37377.1.07-33.fc25.1.noarch
texlive-pst-plot-svn41242-33.fc25.1.noarch
texlive-latex-bin-svn41438-33.fc25.1.noarch
texlive-ucs-svn35853.2.2-33.fc25.1.noarch
texlive-ae-svn15878.1.4-33.fc25.1.noarch
texlive-xetex-bin-svn41091-33.20160520.fc25.1.s390x
fedora-upgrade-26.1-1.fc25.noarch
fedpkg-1.28-1.fc25.noarch
perl-Thread-Queue-3.12-1.fc25.noarch
cdparanoia-libs-10.2-21.fc24.s390x
ustr-1.0.4-21.fc24.s390x
libusb-0.1.5-7.fc24.s390x
readline-devel-6.3-8.fc24.s390x
chkconfig-1.8-1.fc25.s390x
avahi-libs-0.6.32-4.fc25.s390x
perl-Unicode-Normalize-1.25-365.fc25.s390x
perl-libnet-3.10-1.fc25.noarch
perl-podlators-4.09-1.fc25.noarch
dbus-python-1.2.4-2.fc25.s390x
libgnome-keyring-3.12.0-7.fc25.s390x
python-backports-1.0-8.fc25.s390x
python-pycparser-2.14-7.fc25.noarch
plymouth-scripts-0.9.3-0.6.20160620git0e65b86c.fc25.s390x
cronie-1.5.1-2.fc25.s390x
python2-librepo-1.7.18-3.fc25.s390x
libXv-1.0.11-1.fc25.s390x
python2-ndg_httpsclient-0.4.0-4.fc25.noarch
btrfs-progs-4.6.1-1.fc25.s390x
perl-Encode-2.88-5.fc25.s390x
cracklib-2.9.6-4.fc25.s390x
python3-dnf-plugin-system-upgrade-0.7.1-4.fc25.noarch
boost-random-1.60.0-10.fc25.s390x
libref_array-0.1.5-29.fc25.s390x
libXrender-devel-0.9.10-1.fc25.s390x
javapackages-tools-4.7.0-6.1.fc25.noarch
keyutils-1.5.9-8.fc24.s390x
libcom_err-devel-1.43.3-1.fc25.s390x
lzo-minilzo-2.08-8.fc24.s390x
libusbx-devel-1.0.21-1.fc25.s390x
virglrenderer-devel-0.5.0-1.20160411git61846f92f.fc25.s390x
acpica-tools-20160831-1.fc25.s390x
grep-2.27-2.fc25.s390x
dnf-conf-1.1.10-6.fc25.noarch
crypto-policies-20160921-4.gitf3018dd.fc25.noarch
libnfsidmap-0.27-1.fc25.s390x
SDL2-2.0.5-3.fc25.s390x
texlive-etex-pkg-svn39355-33.fc25.1.noarch
texlive-multido-svn18302.1.42-33.fc25.1.noarch
texlive-gsftopk-svn40768-33.fc25.1.noarch
texlive-pst-ovl-svn40873-33.fc25.1.noarch
texlive-ltabptch-svn17533.1.74d-33.fc25.1.noarch
texlive-cite-svn36428.5.5-33.fc25.1.noarch
texlive-fpl-svn15878.1.002-33.fc25.1.noarch
texlive-mathpazo-svn15878.1.003-33.fc25.1.noarch
texlive-rcs-svn15878.0-33.fc25.1.noarch
texlive-type1cm-svn21820.0-33.fc25.1.noarch
texlive-l3kernel-svn41246-33.fc25.1.noarch
texlive-hyperref-svn41396-33.fc25.1.noarch
texlive-pst-tree-svn24142.1.12-33.fc25.1.noarch
texlive-sansmathaccent-svn30187.0-33.fc25.1.noarch
texlive-dvipdfmx-bin-svn40273-33.20160520.fc25.1.s390x
texlive-zapfchan-svn31835.0-33.fc25.1.noarch
glib2-static-2.50.3-1.fc25.s390x
bash-completion-2.5-1.fc25.noarch
hyphen-2.8.8-4.fc24.s390x
gnutls-c++-3.5.14-1.fc25.s390x
python3-idna-2.5-1.fc25.noarch
less-481-7.fc25.s390x
rpmconf-base-1.0.19-1.fc25.noarch
gtk2-2.24.31-2.fc25.s390x
mesa-libgbm-17.0.5-3.fc25.s390x
nfs-utils-2.1.1-5.rc4.fc25.s390x
mc-4.8.19-5.fc25.s390x
pcre-static-8.41-1.fc25.s390x
bind-libs-9.10.5-2.P2.fc25.s390x
libproxy-0.4.15-2.fc25.s390x
file-libs-5.29-9.fc25.s390x
nss-sysinit-3.31.0-1.1.fc25.s390x
glibc-devel-2.24-10.fc25.s390x
glusterfs-server-3.10.5-1.fc25.s390x
git-core-doc-2.9.5-1.fc25.s390x
python2-smmap-2.0.3-1.fc25.noarch
glusterfs-api-devel-3.10.5-1.fc25.s390x
gcc-gdb-plugin-6.4.1-1.fc25.s390x
python3-magic-5.29-9.fc25.noarch
GeoIP-GeoLite-data-2017.07-1.fc25.noarch
python2-funcsigs-1.0.2-2.fc25.noarch
dos2unix-7.3.4-1.fc25.s390x
gpg-pubkey-a29cb19c-53bcbba6
m4-1.4.17-9.fc24.s390x
liblockfile-1.09-4.fc24.s390x
sg3_utils-1.41-3.fc24.s390x
libXinerama-1.1.3-6.fc24.s390x
libXft-2.3.2-4.fc24.s390x
tcp_wrappers-libs-7.6-83.fc25.s390x
perl-Text-Tabs+Wrap-2013.0523-365.fc25.noarch
perl-Error-0.17024-7.fc25.noarch
perl-Term-Cap-1.17-365.fc25.noarch
perl-Pod-Usage-1.69-1.fc25.noarch
device-mapper-persistent-data-0.6.3-1.fc25.s390x
python3-six-1.10.0-3.fc25.noarch
python3-pysocks-1.5.6-5.fc25.noarch
python-chardet-2.3.0-1.fc25.noarch
python2-cffi-1.7.0-2.fc25.s390x
gc-devel-7.4.4-1.fc25.s390x
plymouth-0.9.3-0.6.20160620git0e65b86c.fc25.s390x
ebtables-2.0.10-21.fc25.s390x
python3-librepo-1.7.18-3.fc25.s390x
at-spi2-atk-2.22.0-1.fc25.s390x
avahi-autoipd-0.6.32-4.fc25.s390x
pyparsing-2.1.10-1.fc25.noarch
python3-pyparsing-2.1.10-1.fc25.noarch
libcollection-0.7.0-29.fc25.s390x
libcephfs-devel-10.2.4-2.fc25.s390x
libXdamage-devel-1.1.4-8.fc24.s390x
libverto-devel-0.2.6-6.fc24.s390x
snappy-1.1.3-2.fc24.s390x
cairo-gobject-devel-1.14.8-1.fc25.s390x
cyrus-sasl-devel-2.1.26-26.2.fc24.s390x
libXi-1.7.9-1.fc25.s390x
texlive-base-2016-33.20160520.fc25.noarch
texlive-booktabs-svn40846-33.fc25.1.noarch
texlive-lm-svn28119.2.004-33.fc25.1.noarch
texlive-gsftopk-bin-svn40473-33.20160520.fc25.1.s390x
texlive-tex-svn40793-33.fc25.1.noarch
texlive-fancyref-svn15878.0.9c-33.fc25.1.noarch
texlive-chngcntr-svn17157.1.0a-33.fc25.1.noarch
texlive-fix2col-svn38770-33.fc25.1.noarch
texlive-marginnote-svn41382-33.fc25.1.noarch
texlive-pxfonts-svn15878.0-33.fc25.1.noarch
texlive-txfonts-svn15878.0-33.fc25.1.noarch
texlive-l3packages-svn41246-33.fc25.1.noarch
texlive-oberdiek-svn41346-33.fc25.1.noarch
texlive-pst-tools-svn34067.0.05-33.fc25.1.noarch
texlive-tex-gyre-svn18651.2.004-33.fc25.1.noarch
texlive-dvipdfmx-svn41149-33.fc25.1.noarch
texlive-collection-fontsrecommended-svn35830.0-33.20160520.fc25.1.noarch
libcacard-devel-2.5.3-1.fc25.s390x
ykpers-1.18.0-2.fc25.s390x
python2-idna-2.5-1.fc25.noarch
policycoreutils-2.5-20.fc25.s390x
libgcrypt-1.7.8-1.fc25.s390x
pcre-8.41-1.fc25.s390x
GeoIP-1.6.11-1.fc25.s390x
ghostscript-core-9.20-9.fc25.s390x
python3-cffi-1.7.0-2.fc25.s390x
json-c-0.12.1-2.fc25.s390x
vte291-0.46.2-1.fc25.s390x
gssproxy-0.7.0-9.fc25.s390x
systemtap-3.1-5.fc25.s390x
mesa-libgbm-devel-17.0.5-3.fc25.s390x
libgusb-0.2.10-1.fc25.s390x
pango-1.40.7-1.fc25.s390x
nss-softokn-3.31.0-1.0.fc25.s390x
kernel-modules-4.12.9-200.fc25.s390x
sqlite-3.14.2-3.fc25.s390x
perl-Git-2.9.5-1.fc25.noarch
python2-gitdb-2.0.2-1.fc25.noarch
libglvnd-devel-0.2.999-24.20170818git8d4d03f.fc25.s390x
gcc-c++-6.4.1-1.fc25.s390x
python-magic-5.29-9.fc25.noarch
kernel-devel-4.12.9-200.fc25.s390x
python2-mock-2.0.0-2.fc25.noarch
python-async-0.6.1-9.fc22.s390x
dejavu-sans-mono-fonts-2.35-3.fc24.noarch
popt-1.16-7.fc24.s390x
cyrus-sasl-lib-2.1.26-26.2.fc24.s390x
xz-5.2.2-2.fc24.s390x
libpipeline-1.4.1-2.fc24.s390x
pinentry-0.9.7-2.fc24.s390x
pth-2.0.7-27.fc24.s390x
libsepol-2.5-10.fc25.s390x
libxcb-1.12-1.fc25.s390x
perl-Getopt-Long-2.49.1-1.fc25.noarch
avahi-glib-0.6.32-4.fc25.s390x
python3-pip-8.1.2-2.fc25.noarch
python3-libcomps-0.1.7-5.fc25.s390x
python-slip-0.6.4-4.fc25.noarch
python2-libcomps-0.1.7-5.fc25.s390x
gc-7.4.4-1.fc25.s390x
s390utils-cmsfs-1.36.0-1.fc25.s390x
newt-python-0.52.19-2.fc25.s390x
qt5-srpm-macros-5.7.1-1.fc25.noarch
device-mapper-event-1.02.136-3.fc25.s390x
perl-Class-Inspector-1.31-2.fc25.noarch
libbasicobjects-0.1.1-29.fc25.s390x
libradosstriper1-10.2.4-2.fc25.s390x
libXxf86vm-devel-1.1.4-3.fc24.s390x
zziplib-0.13.62-7.fc24.s390x
libpaper-1.1.24-12.fc24.s390x
libini_config-1.3.0-29.fc25.s390x
snappy-devel-1.1.3-2.fc24.s390x
libcap-ng-devel-0.7.8-1.fc25.s390x
libxkbcommon-devel-0.7.1-1.fc25.s390x
openssl-libs-1.0.2k-1.fc25.s390x
util-linux-2.28.2-2.fc25.s390x
texlive-etoolbox-svn38031.2.2a-33.fc25.1.noarch
texlive-dvips-svn41149-33.fc25.1.noarch
texlive-latexconfig-svn40274-33.fc25.1.noarch
texlive-tex-ini-files-svn40533-33.fc25.1.noarch
texlive-qstest-svn15878.0-33.fc25.1.noarch
texlive-cmap-svn41168-33.fc25.1.noarch
texlive-luatex-bin-svn41091-33.20160520.fc25.1.s390x
texlive-mflogo-svn38628-33.fc25.1.noarch
texlive-sansmath-svn17997.1.1-33.fc25.1.noarch
texlive-unicode-data-svn39808-33.fc25.1.noarch
texlive-luaotfload-bin-svn34647.0-33.20160520.fc25.1.noarch
texlive-listings-svn37534.1.6-33.fc25.1.noarch
texlive-pstricks-svn41321-33.fc25.1.noarch
texlive-metalogo-svn18611.0.12-33.fc25.1.noarch
texlive-collection-latex-svn41011-33.20160520.fc25.1.noarch
python2-dnf-plugins-core-0.1.21-5.fc25.noarch
xkeyboard-config-2.20-2.fc25.noarch
perl-Test-Harness-3.39-1.fc25.noarch
systemd-libs-231-17.fc25.s390x
python3-pycparser-2.14-7.fc25.noarch
kernel-devel-4.11.10-200.fc25.s390x
gsm-1.0.17-1.fc25.s390x
python-2.7.13-2.fc25.s390x
kernel-4.11.10-200.fc25.s390x
rpmconf-1.0.19-1.fc25.noarch
teamd-1.27-1.fc25.s390x
jasper-libs-1.900.13-4.fc25.s390x
glusterfs-libs-3.10.5-1.fc25.s390x
libcrypt-nss-2.24-10.fc25.s390x
emacs-common-25.2-3.fc25.s390x
pango-devel-1.40.7-1.fc25.s390x
libcurl-7.51.0-9.fc25.s390x
vim-common-8.0.885-1.fc25.s390x
java-1.8.0-openjdk-1.8.0.144-5.b01.fc25.s390x
gcc-go-6.4.1-1.fc25.s390x
nss-tools-3.31.0-1.1.fc25.s390x
perl-XML-XPath-1.39-2.fc25.noarch
python2-sphinx_rtd_theme-0.1.9-2.fc24.noarch
libxml2-devel-2.9.4-2.fc25.s390x
libattr-2.4.47-16.fc24.s390x
libvisual-0.4.0-20.fc24.s390x
libpcap-1.7.4-2.fc24.s390x
libutempter-1.1.6-8.fc24.s390x
libgudev-230-3.fc24.s390x
popt-devel-1.16-7.fc24.s390x
hicolor-icon-theme-0.15-3.fc24.noarch
setup-2.10.4-1.fc25.noarch
bash-4.3.43-4.fc25.s390x
libjpeg-turbo-1.5.1-0.fc25.s390x
perl-Socket-2.024-1.fc25.s390x
perl-HTTP-Tiny-0.070-1.fc25.noarch
ipset-6.29-1.fc25.s390x
python2-setuptools-25.1.1-1.fc25.noarch
gsettings-desktop-schemas-3.22.0-1.fc25.s390x
python3-setuptools-25.1.1-1.fc25.noarch
python-slip-dbus-0.6.4-4.fc25.noarch
python2-ply-3.8-2.fc25.noarch
dtc-1.4.2-1.fc25.s390x
guile-2.0.13-1.fc25.s390x
cronie-anacron-1.5.1-2.fc25.s390x
libXtst-1.2.3-1.fc25.s390x
iso-codes-3.70-1.fc25.noarch
s390utils-1.36.0-1.fc25.s390x
python-backports-ssl_match_hostname-3.5.0.1-3.fc25.noarch
fedora-cert-0.6.0.1-1.fc25.noarch
dnf-plugin-system-upgrade-0.7.1-4.fc25.noarch
lvm2-2.02.167-3.fc25.s390x
libselinux-devel-2.5-13.fc25.s390x
perl-Time-Local-1.250-1.fc25.noarch
libradosstriper-devel-10.2.4-2.fc25.s390x
flac-libs-1.3.2-1.fc25.s390x
perl-Digest-1.17-366.fc25.noarch
teckit-2.5.1-15.fc24.s390x
libpath_utils-0.2.1-29.fc25.s390x
attr-2.4.47-16.fc24.s390x
usbredir-0.7.1-2.fc24.s390x
cairo-devel-1.14.8-1.fc25.s390x
lzo-devel-2.08-8.fc24.s390x
libcap-devel-2.25-2.fc25.s390x
libbsd-0.8.3-1.fc25.s390x
texlive-url-svn32528.3.4-33.fc25.1.noarch
texlive-dvips-bin-svn40987-33.20160520.fc25.1.s390x
texlive-index-svn24099.4.1beta-33.fc25.1.noarch
texlive-setspace-svn24881.6.7a-33.fc25.1.noarch
texlive-mathtools-svn38833-33.fc25.1.noarch
texlive-cm-svn32865.0-33.fc25.1.noarch
texlive-graphics-def-svn41879-33.fc25.1.noarch
texlive-mdwtools-svn15878.1.05.4-33.fc25.1.noarch
texlive-rsfs-svn15878.0-33.fc25.1.noarch
texlive-ucharcat-svn38907-33.fc25.1.noarch
texlive-fontspec-svn41262-33.fc25.1.noarch
texlive-showexpl-svn32737.v0.3l-33.fc25.1.noarch
texlive-pstricks-add-svn40744-33.fc25.1.noarch
texlive-beamer-svn36461.3.36-33.fc25.1.noarch
texlive-collection-basic-svn41149-33.20160520.fc25.1.noarch
xemacs-filesystem-21.5.34-20.20170124hgf412e9f093d4.fc25.noarch
hawkey-0.6.4-3.fc25.s390x
bluez-libs-5.44-1.fc25.s390x
audit-libs-2.7.7-1.fc25.s390x
iproute-4.11.0-1.fc25.s390x
libICE-1.0.9-9.fc25.s390x
python3-ply-3.8-2.fc25.noarch
perl-5.24.2-387.fc25.s390x
graphite2-1.3.10-1.fc25.s390x
vte-profile-0.46.2-1.fc25.s390x
python-libs-2.7.13-2.fc25.s390x
mesa-libGL-17.0.5-3.fc25.s390x
python2-pycurl-7.43.0-6.fc25.s390x
NetworkManager-1.4.4-5.fc25.s390x
mesa-libEGL-devel-17.0.5-3.fc25.s390x
mesa-libGLES-devel-17.0.5-3.fc25.s390x
hostname-3.15-8.fc25.s390x
nss-util-3.31.0-1.0.fc25.s390x
nss-softokn-freebl-3.31.0-1.0.fc25.s390x
glibc-headers-2.24-10.fc25.s390x
glusterfs-cli-3.10.5-1.fc25.s390x
git-core-2.9.5-1.fc25.s390x
selinux-policy-3.13.1-225.20.fc25.noarch
mock-1.4.3-1.fc25.noarch
gcc-gfortran-6.4.1-1.fc25.s390x
webkitgtk4-plugin-process-gtk2-2.16.6-1.fc25.s390x
perl-Module-CoreList-5.20170821-1.fc25.noarch
python2-pbr-1.10.0-1.fc25.noarch
libtool-2.4.6-14.fc25.s390x
gpg-pubkey-a0a7badb-52844296
readline-6.3-8.fc24.s390x
cpio-2.12-3.fc24.s390x
libXcomposite-0.4.4-8.fc24.s390x
procps-ng-3.3.10-11.fc24.s390x
GConf2-3.2.6-16.fc24.s390x
xz-devel-5.2.2-2.fc24.s390x
fedora-logos-22.0.0-3.fc24.s390x
gpg-pubkey-e372e838-56fd7943
kmod-libs-23-1.fc25.s390x
perl-parent-0.236-1.fc25.noarch
perl-TermReadKey-2.37-1.fc25.s390x
ncurses-c++-libs-6.0-6.20160709.fc25.s390x
gzip-1.8-1.fc25.s390x
python3-gobject-base-3.22.0-1.fc25.s390x
python2-yubico-1.3.2-3.fc25.noarch
s390utils-ziomon-1.36.0-1.fc25.s390x
librepo-1.7.18-3.fc25.s390x
gnat-srpm-macros-4-1.fc25.noarch
python-decoratortools-1.8-12.fc25.noarch
m17n-db-1.7.0-7.fc25.noarch
e2fsprogs-libs-1.43.3-1.fc25.s390x
libvorbis-1.3.5-1.fc25.s390x
npth-1.3-1.fc25.s390x
libcephfs1-10.2.4-2.fc25.s390x
wayland-devel-1.12.0-1.fc25.s390x
libxcb-devel-1.12-1.fc25.s390x
perl-encoding-2.19-5.fc25.s390x
python3-cssselect-0.9.2-1.fc25.noarch
gettext-libs-0.19.8.1-3.fc25.s390x
at-spi2-atk-devel-2.22.0-1.fc25.s390x
virglrenderer-0.5.0-1.20160411git61846f92f.fc25.s390x
pixman-devel-0.34.0-2.fc24.s390x
libnfs-devel-1.9.8-2.fc24.s390x
libblkid-2.28.2-2.fc25.s390x
glib2-devel-2.50.3-1.fc25.s390x
texlive-ifxetex-svn19685.0.5-33.fc25.1.noarch
texlive-caption-svn41409-33.fc25.1.noarch
texlive-float-svn15878.1.3d-33.fc25.1.noarch
texlive-pdftex-def-svn22653.0.06d-33.fc25.1.noarch
texlive-xdvi-bin-svn40750-33.20160520.fc25.1.s390x
texlive-beton-svn15878.0-33.fc25.1.noarch
texlive-filecontents-svn24250.1.3-33.fc25.1.noarch
texlive-lm-math-svn36915.1.959-33.fc25.1.noarch
texlive-pslatex-svn16416.0-33.fc25.1.noarch
texlive-times-svn35058.0-33.fc25.1.noarch
texlive-breakurl-svn29901.1.40-33.fc25.1.noarch
texlive-filehook-svn24280.0.5d-33.fc25.1.noarch
texlive-pst-pdf-svn31660.1.1v-33.fc25.1.noarch
texlive-seminar-svn34011.1.62-33.fc25.1.noarch
texlive-xetexconfig-svn41133-33.fc25.1.noarch
python-rpm-macros-3-12.fc25.noarch
nss-pem-1.0.3-3.fc25.s390x
at-spi2-core-2.22.1-1.fc25.s390x
kernel-devel-4.10.8-200.fc25.s390x
perl-Scalar-List-Utils-1.48-1.fc25.s390x
libtasn1-devel-4.12-1.fc25.s390x
python3-koji-1.13.0-2.fc25.noarch
opus-1.1.5-1.fc25.s390x
elfutils-libs-0.169-1.fc25.s390x
kernel-core-4.11.10-200.fc25.s390x
gnutls-dane-3.5.14-1.fc25.s390x
systemd-container-231-17.fc25.s390x
sudo-1.8.20p2-1.fc25.s390x
libicu-devel-57.1-5.fc25.s390x
js-jquery-2.2.4-3.fc25.noarch
krb5-libs-1.14.4-8.fc25.s390x
apr-1.6.2-1.fc25.s390x
kernel-headers-4.12.9-200.fc25.s390x
dbus-1.11.16-1.fc25.s390x
libdrm-2.4.82-1.fc25.s390x
pcre2-utf32-10.23-9.fc25.s390x
copy-jdk-configs-2.3-1.fc25.noarch
libdrm-devel-2.4.82-1.fc25.s390x
krb5-workstation-1.14.4-8.fc25.s390x
python3-sssdconfig-1.15.3-1.fc25.noarch
python2-docutils-0.13.1-3.fc25.noarch
graphviz-2.38.0-39.fc25.s390x
=== TEST BEGIN ===
Using CC: /home/fam/bin/cc
Install prefix    /var/tmp/patchew-tester-tmp-4iydjbd7/src/install
BIOS directory    /var/tmp/patchew-tester-tmp-4iydjbd7/src/install/share/qemu
binary directory  /var/tmp/patchew-tester-tmp-4iydjbd7/src/install/bin
library directory /var/tmp/patchew-tester-tmp-4iydjbd7/src/install/lib
module directory  /var/tmp/patchew-tester-tmp-4iydjbd7/src/install/lib/qemu
libexec directory /var/tmp/patchew-tester-tmp-4iydjbd7/src/install/libexec
include directory /var/tmp/patchew-tester-tmp-4iydjbd7/src/install/include
config directory  /var/tmp/patchew-tester-tmp-4iydjbd7/src/install/etc
local state directory   /var/tmp/patchew-tester-tmp-4iydjbd7/src/install/var
Manual directory  /var/tmp/patchew-tester-tmp-4iydjbd7/src/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path       /var/tmp/patchew-tester-tmp-4iydjbd7/src
C compiler        /home/fam/bin/cc
Host C compiler   cc
C++ compiler      c++
Objective-C compiler /home/fam/bin/cc
ARFLAGS           rv
CFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g 
QEMU_CFLAGS       -I/usr/include/pixman-1  -Werror -DHAS_LIBSSH2_SFTP_FSYNC -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNCURSES_WIDECHAR -D_GNU_SOURCE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv  -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/include/p11-kit-1    -I/usr/include/libpng16 -I/usr/include/libdrm  -I/usr/include/cacard -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libusb-1.0 
LDFLAGS           -Wl,--warn-common -m64 -g 
make              make
install           install
python            python -B
smbd              /usr/sbin/smbd
module support    no
host CPU          s390x
host big endian   yes
target list       aarch64-softmmu alpha-softmmu arm-softmmu cris-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblazeel-softmmu microblaze-softmmu mips64el-softmmu mips64-softmmu mipsel-softmmu mips-softmmu moxie-softmmu nios2-softmmu or1k-softmmu ppc64-softmmu ppcemb-softmmu ppc-softmmu s390x-softmmu sh4eb-softmmu sh4-softmmu sparc64-softmmu sparc-softmmu tricore-softmmu unicore32-softmmu x86_64-softmmu xtensaeb-softmmu xtensa-softmmu aarch64-linux-user alpha-linux-user armeb-linux-user arm-linux-user cris-linux-user hppa-linux-user i386-linux-user m68k-linux-user microblazeel-linux-user microblaze-linux-user mips64el-linux-user mips64-linux-user mipsel-linux-user mips-linux-user mipsn32el-linux-user mipsn32-linux-user nios2-linux-user or1k-linux-user ppc64abi32-linux-user ppc64le-linux-user ppc64-linux-user ppc-linux-user s390x-linux-user sh4eb-linux-user sh4-linux-user sparc32plus-linux-user sparc64-linux-user sparc-linux-user tilegx-linux-user x86_64-linux-user
gprof enabled     no
sparse enabled    no
strip binaries    yes
profiler          no
static build      no
pixman            system
SDL support       yes (2.0.5)
GTK support       yes (3.22.17)
GTK GL support    yes
VTE support       yes (0.46.2)
TLS priority      NORMAL
GNUTLS support    yes
GNUTLS rnd        yes
libgcrypt         no
libgcrypt kdf     no
nettle            yes (3.3)
nettle kdf        yes
libtasn1          yes
curses support    yes
virgl support     yes
curl support      yes
mingw32 support   no
Audio drivers     oss
Block whitelist (rw) 
Block whitelist (ro) 
VirtFS support    yes
VNC support       yes
VNC SASL support  yes
VNC JPEG support  yes
VNC PNG support   yes
xen support       no
brlapi support    yes
bluez  support    yes
Documentation     yes
PIE               no
vde support       no
netmap support    no
Linux AIO support yes
ATTR/XATTR support yes
Install blobs     yes
KVM support       yes
HAX support       no
TCG support       yes
TCG debug enabled no
TCG interpreter   no
RDMA support      no
fdt support       yes
preadv support    yes
fdatasync         yes
madvise           yes
posix_madvise     yes
libcap-ng support yes
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends    log
spice support     no 
rbd support       yes
xfsctl support    no
smartcard support yes
libusb            yes
usb net redir     yes
OpenGL support    yes
OpenGL dmabufs    yes
libiscsi support  yes
libnfs support    yes
build guest agent yes
QGA VSS support   no
QGA w32 disk info no
QGA MSI support   no
seccomp support   no
coroutine backend ucontext
coroutine pool    yes
debug stack usage no
crypto afalg      no
GlusterFS support yes
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   yes
TPM passthrough   no
QOM debugging     yes
Live block migration yes
lzo support       yes
snappy support    yes
bzip2 support     yes
NUMA host support no
tcmalloc support  no
jemalloc support  no
avx2 optimization no
replication support yes
VxHS block device no
  GEN     aarch64-softmmu/config-devices.mak.tmp
  GEN     arm-softmmu/config-devices.mak.tmp
  GEN     alpha-softmmu/config-devices.mak.tmp
  GEN     cris-softmmu/config-devices.mak.tmp
  GEN     aarch64-softmmu/config-devices.mak
  GEN     cris-softmmu/config-devices.mak
  GEN     alpha-softmmu/config-devices.mak
  GEN     i386-softmmu/config-devices.mak.tmp
  GEN     lm32-softmmu/config-devices.mak.tmp
  GEN     m68k-softmmu/config-devices.mak.tmp
  GEN     arm-softmmu/config-devices.mak
  GEN     microblazeel-softmmu/config-devices.mak.tmp
  GEN     lm32-softmmu/config-devices.mak
  GEN     m68k-softmmu/config-devices.mak
  GEN     microblaze-softmmu/config-devices.mak.tmp
  GEN     mips64el-softmmu/config-devices.mak.tmp
  GEN     i386-softmmu/config-devices.mak
  GEN     microblaze-softmmu/config-devices.mak
  GEN     mips64-softmmu/config-devices.mak.tmp
  GEN     mipsel-softmmu/config-devices.mak.tmp
  GEN     microblazeel-softmmu/config-devices.mak
  GEN     mips-softmmu/config-devices.mak.tmp
  GEN     mips64el-softmmu/config-devices.mak
  GEN     moxie-softmmu/config-devices.mak.tmp
  GEN     mips64-softmmu/config-devices.mak
  GEN     nios2-softmmu/config-devices.mak.tmp
  GEN     mipsel-softmmu/config-devices.mak
  GEN     moxie-softmmu/config-devices.mak
  GEN     mips-softmmu/config-devices.mak
  GEN     or1k-softmmu/config-devices.mak.tmp
  GEN     ppc64-softmmu/config-devices.mak.tmp
  GEN     ppcemb-softmmu/config-devices.mak.tmp
  GEN     or1k-softmmu/config-devices.mak
  GEN     nios2-softmmu/config-devices.mak
  GEN     ppc-softmmu/config-devices.mak.tmp
  GEN     s390x-softmmu/config-devices.mak.tmp
  GEN     ppcemb-softmmu/config-devices.mak
  GEN     ppc64-softmmu/config-devices.mak
  GEN     s390x-softmmu/config-devices.mak
  GEN     sh4eb-softmmu/config-devices.mak.tmp
  GEN     sh4-softmmu/config-devices.mak.tmp
  GEN     sparc64-softmmu/config-devices.mak.tmp
  GEN     ppc-softmmu/config-devices.mak
  GEN     sparc-softmmu/config-devices.mak.tmp
  GEN     sh4eb-softmmu/config-devices.mak
  GEN     sparc64-softmmu/config-devices.mak
  GEN     tricore-softmmu/config-devices.mak.tmp
  GEN     sh4-softmmu/config-devices.mak
  GEN     unicore32-softmmu/config-devices.mak.tmp
  GEN     sparc-softmmu/config-devices.mak
  GEN     x86_64-softmmu/config-devices.mak.tmp
  GEN     xtensaeb-softmmu/config-devices.mak.tmp
  GEN     tricore-softmmu/config-devices.mak
  GEN     unicore32-softmmu/config-devices.mak
  GEN     xtensa-softmmu/config-devices.mak.tmp
  GEN     aarch64-linux-user/config-devices.mak.tmp
  GEN     xtensaeb-softmmu/config-devices.mak
  GEN     alpha-linux-user/config-devices.mak.tmp
  GEN     x86_64-softmmu/config-devices.mak
  GEN     armeb-linux-user/config-devices.mak.tmp
  GEN     xtensa-softmmu/config-devices.mak
  GEN     aarch64-linux-user/config-devices.mak
  GEN     arm-linux-user/config-devices.mak.tmp
  GEN     cris-linux-user/config-devices.mak.tmp
  GEN     alpha-linux-user/config-devices.mak
  GEN     armeb-linux-user/config-devices.mak
  GEN     hppa-linux-user/config-devices.mak.tmp
  GEN     arm-linux-user/config-devices.mak
  GEN     i386-linux-user/config-devices.mak.tmp
  GEN     m68k-linux-user/config-devices.mak.tmp
  GEN     cris-linux-user/config-devices.mak
  GEN     hppa-linux-user/config-devices.mak
  GEN     microblazeel-linux-user/config-devices.mak.tmp
  GEN     m68k-linux-user/config-devices.mak
  GEN     i386-linux-user/config-devices.mak
  GEN     microblaze-linux-user/config-devices.mak.tmp
  GEN     mips64-linux-user/config-devices.mak.tmp
  GEN     mips64el-linux-user/config-devices.mak.tmp
  GEN     microblazeel-linux-user/config-devices.mak
  GEN     microblaze-linux-user/config-devices.mak
  GEN     mips64-linux-user/config-devices.mak
  GEN     mipsel-linux-user/config-devices.mak.tmp
  GEN     mips-linux-user/config-devices.mak.tmp
  GEN     mips64el-linux-user/config-devices.mak
  GEN     mipsn32el-linux-user/config-devices.mak.tmp
  GEN     mipsn32-linux-user/config-devices.mak.tmp
  GEN     mipsn32el-linux-user/config-devices.mak
  GEN     mips-linux-user/config-devices.mak
  GEN     nios2-linux-user/config-devices.mak.tmp
  GEN     nios2-linux-user/config-devices.mak
  GEN     or1k-linux-user/config-devices.mak.tmp
  GEN     ppc64abi32-linux-user/config-devices.mak.tmp
  GEN     mipsn32-linux-user/config-devices.mak
  GEN     or1k-linux-user/config-devices.mak
  GEN     ppc64le-linux-user/config-devices.mak.tmp
  GEN     mipsel-linux-user/config-devices.mak
  GEN     ppc64-linux-user/config-devices.mak.tmp
  GEN     ppc64-linux-user/config-devices.mak
  GEN     ppc-linux-user/config-devices.mak.tmp
  GEN     ppc64abi32-linux-user/config-devices.mak
  GEN     ppc-linux-user/config-devices.mak
  GEN     ppc64le-linux-user/config-devices.mak
  GEN     s390x-linux-user/config-devices.mak.tmp
  GEN     sh4eb-linux-user/config-devices.mak.tmp
  GEN     sh4-linux-user/config-devices.mak.tmp
  GEN     sparc32plus-linux-user/config-devices.mak.tmp
  GEN     sh4-linux-user/config-devices.mak
  GEN     sparc64-linux-user/config-devices.mak.tmp
  GEN     s390x-linux-user/config-devices.mak
  GEN     sh4eb-linux-user/config-devices.mak
  GEN     sparc-linux-user/config-devices.mak.tmp
  GEN     sparc-linux-user/config-devices.mak
  GEN     tilegx-linux-user/config-devices.mak.tmp
  GEN     tilegx-linux-user/config-devices.mak
  GEN     x86_64-linux-user/config-devices.mak.tmp
  GEN     sparc32plus-linux-user/config-devices.mak
  GEN     sparc64-linux-user/config-devices.mak
  GEN     config-host.h
  GEN     x86_64-linux-user/config-devices.mak
  GEN     qemu-options.def
  GEN     qmp-commands.h
  GEN     qapi-types.h
  GEN     qmp-marshal.c
  GEN     qapi-event.h
  GEN     qapi-visit.h
  GEN     qapi-types.c
  GEN     qapi-visit.c
  GEN     qapi-event.c
  GEN     qmp-introspect.h
  GEN     qmp-introspect.c
  GEN     trace/generated-tcg-tracers.h
  GEN     trace/generated-helpers-wrappers.h
  GEN     trace/generated-helpers.h
  GEN     trace/generated-helpers.c
  GEN     module_block.h
  GEN     tests/test-qapi-types.h
  GEN     tests/test-qapi-visit.h
  GEN     tests/test-qmp-commands.h
  GEN     tests/test-qapi-event.h
  GEN     tests/test-qmp-introspect.h
  GEN     trace-root.h
  GEN     util/trace.h
  GEN     crypto/trace.h
  GEN     io/trace.h
  GEN     migration/trace.h
  GEN     block/trace.h
  GEN     chardev/trace.h
  GEN     hw/block/dataplane/trace.h
  GEN     hw/block/trace.h
  GEN     hw/intc/trace.h
  GEN     hw/net/trace.h
  GEN     hw/char/trace.h
  GEN     hw/virtio/trace.h
  GEN     hw/audio/trace.h
  GEN     hw/misc/trace.h
  GEN     hw/usb/trace.h
  GEN     hw/scsi/trace.h
  GEN     hw/nvram/trace.h
  GEN     hw/input/trace.h
  GEN     hw/timer/trace.h
  GEN     hw/dma/trace.h
  GEN     hw/sparc/trace.h
  GEN     hw/display/trace.h
  GEN     hw/sd/trace.h
  GEN     hw/isa/trace.h
  GEN     hw/mem/trace.h
  GEN     hw/i386/trace.h
  GEN     hw/i386/xen/trace.h
  GEN     hw/9pfs/trace.h
  GEN     hw/ppc/trace.h
  GEN     hw/pci/trace.h
  GEN     hw/s390x/trace.h
  GEN     hw/vfio/trace.h
  GEN     hw/acpi/trace.h
  GEN     hw/arm/trace.h
  GEN     hw/alpha/trace.h
  GEN     hw/xen/trace.h
  GEN     audio/trace.h
  GEN     net/trace.h
  GEN     target/arm/trace.h
  GEN     ui/trace.h
  GEN     target/mips/trace.h
  GEN     target/i386/trace.h
  GEN     target/sparc/trace.h
  GEN     target/ppc/trace.h
  GEN     target/s390x/trace.h
  GEN     qom/trace.h
  GEN     linux-user/trace.h
  GEN     accel/tcg/trace.h
  GEN     qapi/trace.h
  GEN     accel/kvm/trace.h
  GEN     trace-root.c
  GEN     nbd/trace.h
  GEN     util/trace.c
  GEN     crypto/trace.c
  GEN     block/trace.c
  GEN     io/trace.c
  GEN     migration/trace.c
  GEN     chardev/trace.c
  GEN     hw/block/trace.c
  GEN     hw/block/dataplane/trace.c
  GEN     hw/char/trace.c
  GEN     hw/intc/trace.c
  GEN     hw/net/trace.c
  GEN     hw/virtio/trace.c
  GEN     hw/audio/trace.c
  GEN     hw/usb/trace.c
  GEN     hw/misc/trace.c
  GEN     hw/scsi/trace.c
  GEN     hw/nvram/trace.c
  GEN     hw/display/trace.c
  GEN     hw/input/trace.c
  GEN     hw/dma/trace.c
  GEN     hw/timer/trace.c
  GEN     hw/sparc/trace.c
  GEN     hw/mem/trace.c
  GEN     hw/isa/trace.c
  GEN     hw/i386/trace.c
  GEN     hw/sd/trace.c
  GEN     hw/i386/xen/trace.c
  GEN     hw/9pfs/trace.c
  GEN     hw/ppc/trace.c
  GEN     hw/pci/trace.c
  GEN     hw/s390x/trace.c
  GEN     hw/vfio/trace.c
  GEN     hw/acpi/trace.c
  GEN     hw/arm/trace.c
  GEN     hw/alpha/trace.c
  GEN     hw/xen/trace.c
  GEN     ui/trace.c
  GEN     audio/trace.c
  GEN     net/trace.c
  GEN     target/arm/trace.c
  GEN     target/i386/trace.c
  GEN     target/sparc/trace.c
  GEN     target/s390x/trace.c
  GEN     target/mips/trace.c
  GEN     target/ppc/trace.c
  GEN     qom/trace.c
  GEN     linux-user/trace.c
  GEN     qapi/trace.c
  GEN     accel/tcg/trace.c
  GEN     accel/kvm/trace.c
  GEN     nbd/trace.c
  GEN     config-all-devices.mak
  GEN     docs/version.texi
  CC      tests/qemu-iotests/socket_scm_helper.o
  GEN     qemu-options.texi
  GEN     qemu-monitor.texi
  GEN     qemu-img-cmds.texi
  GEN     qemu-monitor-info.texi
  GEN     qemu-img.1
  GEN     qemu-nbd.8
  GEN     qemu-ga.8
  GEN     docs/interop/qemu-qmp-qapi.texi
  GEN     docs/interop/qemu-ga-qapi.texi
  GEN     qga/qapi-generated/qga-qapi-types.h
  GEN     fsdev/virtfs-proxy-helper.1
  GEN     qga/qapi-generated/qga-qapi-visit.h
  GEN     qga/qapi-generated/qga-qmp-commands.h
  GEN     qga/qapi-generated/qga-qapi-types.c
  GEN     qga/qapi-generated/qga-qapi-visit.c
  CC      qmp-introspect.o
  GEN     qga/qapi-generated/qga-qmp-marshal.c
  CC      qapi-types.o
  CC      qapi-visit.o
  CC      qapi-event.o
  CC      qapi/qapi-visit-core.o
  CC      qapi/qapi-dealloc-visitor.o
  CC      qapi/qobject-input-visitor.o
  CC      qapi/qobject-output-visitor.o
  CC      qapi/qmp-registry.o
  CC      qapi/qmp-dispatch.o
  CC      qapi/string-input-visitor.o
  CC      qapi/string-output-visitor.o
  CC      qapi/opts-visitor.o
  CC      qapi/qapi-clone-visitor.o
  CC      qapi/qmp-event.o
  CC      qapi/qapi-util.o
  CC      qobject/qnull.o
  CC      qobject/qstring.o
  CC      qobject/qnum.o
  CC      qobject/qdict.o
  CC      qobject/qlist.o
  CC      qobject/qbool.o
  CC      qobject/qlit.o
  CC      qobject/qjson.o
  CC      qobject/qobject.o
  CC      qobject/json-lexer.o
  CC      qobject/json-streamer.o
  CC      qobject/json-parser.o
  CC      trace/control.o
  CC      trace/qmp.o
  CC      util/osdep.o
  CC      util/cutils.o
  CC      util/unicode.o
  CC      util/qemu-timer-common.o
  CC      util/bufferiszero.o
  CC      util/lockcnt.o
  CC      util/aiocb.o
  CC      util/async.o
  CC      util/thread-pool.o
  CC      util/qemu-timer.o
  CC      util/main-loop.o
  CC      util/iohandler.o
  CC      util/aio-posix.o
  CC      util/compatfd.o
  CC      util/event_notifier-posix.o
  CC      util/mmap-alloc.o
  CC      util/oslib-posix.o
  CC      util/qemu-openpty.o
  CC      util/qemu-thread-posix.o
  CC      util/memfd.o
  CC      util/envlist.o
  CC      util/path.o
  CC      util/module.o
  CC      util/host-utils.o
  CC      util/bitmap.o
  CC      util/bitops.o
  CC      util/hbitmap.o
  CC      util/fifo8.o
  CC      util/acl.o
  CC      util/cacheinfo.o
  CC      util/error.o
  CC      util/qemu-error.o
  CC      util/id.o
  CC      util/iov.o
  CC      util/qemu-config.o
  CC      util/qemu-sockets.o
  CC      util/uri.o
  CC      util/notify.o
  CC      util/qemu-option.o
  CC      util/qemu-progress.o
  CC      util/keyval.o
  CC      util/hexdump.o
  CC      util/crc32c.o
  CC      util/uuid.o
  CC      util/throttle.o
  CC      util/getauxval.o
  CC      util/readline.o
  CC      util/rcu.o
  CC      util/qemu-coroutine-lock.o
  CC      util/qemu-coroutine.o
  CC      util/qemu-coroutine-io.o
  CC      util/qemu-coroutine-sleep.o
  CC      util/coroutine-ucontext.o
  CC      util/buffer.o
  CC      util/timed-average.o
  CC      util/base64.o
  CC      util/log.o
  CC      util/qdist.o
  CC      util/qht.o
  CC      util/range.o
  CC      util/stats64.o
  CC      util/systemd.o
  CC      trace-root.o
  CC      util/trace.o
  CC      crypto/trace.o
  CC      io/trace.o
  CC      migration/trace.o
  CC      block/trace.o
  CC      hw/block/trace.o
  CC      chardev/trace.o
  CC      hw/block/dataplane/trace.o
  CC      hw/char/trace.o
  CC      hw/intc/trace.o
  CC      hw/net/trace.o
  CC      hw/virtio/trace.o
  CC      hw/audio/trace.o
  CC      hw/misc/trace.o
  CC      hw/usb/trace.o
  CC      hw/scsi/trace.o
  CC      hw/nvram/trace.o
  CC      hw/display/trace.o
  CC      hw/timer/trace.o
  CC      hw/input/trace.o
  CC      hw/dma/trace.o
  CC      hw/sparc/trace.o
  CC      hw/sd/trace.o
  CC      hw/isa/trace.o
  CC      hw/mem/trace.o
  CC      hw/i386/trace.o
  CC      hw/i386/xen/trace.o
  CC      hw/9pfs/trace.o
  CC      hw/ppc/trace.o
  CC      hw/pci/trace.o
  CC      hw/s390x/trace.o
  CC      hw/vfio/trace.o
  CC      hw/acpi/trace.o
  CC      hw/arm/trace.o
  CC      hw/alpha/trace.o
  CC      hw/xen/trace.o
  CC      ui/trace.o
  CC      audio/trace.o
  CC      net/trace.o
  CC      target/arm/trace.o
  CC      target/i386/trace.o
  CC      target/mips/trace.o
  CC      target/sparc/trace.o
  CC      target/ppc/trace.o
  CC      target/s390x/trace.o
  CC      qom/trace.o
  CC      linux-user/trace.o
  CC      qapi/trace.o
  CC      accel/tcg/trace.o
  CC      accel/kvm/trace.o
  CC      nbd/trace.o
  CC      crypto/pbkdf-stub.o
  CC      stubs/arch-query-cpu-def.o
  CC      stubs/arch-query-cpu-model-expansion.o
  CC      stubs/arch-query-cpu-model-comparison.o
  CC      stubs/arch-query-cpu-model-baseline.o
  CC      stubs/bdrv-next-monitor-owned.o
  CC      stubs/blk-commit-all.o
  CC      stubs/blockdev-close-all-bdrv-states.o
  CC      stubs/clock-warp.o
  CC      stubs/cpu-get-clock.o
  CC      stubs/cpu-get-icount.o
  CC      stubs/dump.o
  CC      stubs/error-printf.o
  CC      stubs/gdbstub.o
  CC      stubs/fdset.o
  CC      stubs/get-vm-name.o
  CC      stubs/iothread.o
  CC      stubs/iothread-lock.o
  CC      stubs/linux-aio.o
  CC      stubs/is-daemonized.o
  CC      stubs/machine-init-done.o
  CC      stubs/migr-blocker.o
  CC      stubs/change-state-handler.o
  CC      stubs/monitor.o
  CC      stubs/notify-event.o
  CC      stubs/qtest.o
  CC      stubs/replay.o
  CC      stubs/runstate-check.o
  CC      stubs/set-fd-handler.o
  CC      stubs/slirp.o
  CC      stubs/sysbus.o
  CC      stubs/trace-control.o
  CC      stubs/vm-stop.o
  CC      stubs/uuid.o
  CC      stubs/vmstate.o
  CC      stubs/qmp_pc_dimm_device_list.o
  CC      stubs/target-monitor-defs.o
  CC      stubs/target-get-monitor-def.o
  CC      stubs/pc_madt_cpu_entry.o
  CC      stubs/vmgenid.o
  CC      stubs/xen-common.o
  CC      stubs/xen-hvm.o
  CC      stubs/pci-host-piix.o
  CC      contrib/ivshmem-client/ivshmem-client.o
  CC      contrib/ivshmem-client/main.o
  CC      contrib/ivshmem-server/ivshmem-server.o
  CC      contrib/ivshmem-server/main.o
  CC      qemu-nbd.o
  CC      block.o
  CC      blockjob.o
  CC      qemu-io-cmds.o
  CC      replication.o
  CC      block/raw-format.o
  CC      block/qcow.o
  CC      block/vdi.o
  CC      block/vmdk.o
  CC      block/cloop.o
  CC      block/bochs.o
  CC      block/vpc.o
  CC      block/vvfat.o
  CC      block/dmg.o
  CC      block/qcow2.o
  CC      block/qcow2-refcount.o
  CC      block/qcow2-cluster.o
  CC      block/qcow2-snapshot.o
  CC      block/qcow2-cache.o
  CC      block/qcow2-bitmap.o
  CC      block/qed.o
  CC      block/qed-table.o
  CC      block/qed-l2-cache.o
  CC      block/qed-cluster.o
  CC      block/qed-check.o
  CC      block/vhdx.o
  CC      block/vhdx-endian.o
  CC      block/vhdx-log.o
  CC      block/quorum.o
  CC      block/parallels.o
  CC      block/blkdebug.o
  CC      block/blkverify.o
  CC      block/blkreplay.o
  CC      block/block-backend.o
  CC      block/snapshot.o
  CC      block/qapi.o
  CC      block/file-posix.o
  CC      block/linux-aio.o
  CC      block/null.o
  CC      block/mirror.o
  CC      block/commit.o
  CC      block/throttle-groups.o
  CC      block/io.o
  CC      block/nbd.o
  CC      block/nbd-client.o
  CC      block/sheepdog.o
  CC      block/iscsi-opts.o
  CC      block/accounting.o
  CC      block/dirty-bitmap.o
  CC      block/write-threshold.o
  CC      block/backup.o
  CC      block/replication.o
  CC      block/throttle.o
  CC      nbd/server.o
  CC      block/crypto.o
  CC      nbd/client.o
  CC      nbd/common.o
  CC      block/iscsi.o
  CC      block/nfs.o
  CC      block/curl.o
  CC      block/rbd.o
  CC      block/gluster.o
  CC      block/ssh.o
  CC      block/dmg-bz2.o
  CC      crypto/init.o
  CC      crypto/hash.o
  CC      crypto/hash-nettle.o
  CC      crypto/hmac.o
  CC      crypto/hmac-nettle.o
  CC      crypto/aes.o
  CC      crypto/desrfb.o
  CC      crypto/cipher.o
  CC      crypto/tlscreds.o
  CC      crypto/tlscredsanon.o
  CC      crypto/tlscredsx509.o
  CC      crypto/tlssession.o
  CC      crypto/secret.o
  CC      crypto/random-gnutls.o
  CC      crypto/pbkdf.o
  CC      crypto/pbkdf-nettle.o
  CC      crypto/ivgen.o
  CC      crypto/ivgen-essiv.o
  CC      crypto/ivgen-plain.o
  CC      crypto/ivgen-plain64.o
  CC      crypto/afsplit.o
  CC      crypto/xts.o
  CC      crypto/block.o
  CC      crypto/block-qcow.o
  CC      crypto/block-luks.o
  CC      io/channel.o
  CC      io/channel-buffer.o
  CC      io/channel-command.o
  CC      io/channel-file.o
  CC      io/channel-socket.o
  CC      io/channel-tls.o
  CC      io/channel-watch.o
  CC      io/channel-websock.o
  CC      io/channel-util.o
  CC      io/dns-resolver.o
  CC      io/task.o
  CC      qom/object.o
  CC      qom/container.o
  CC      qom/qom-qobject.o
  CC      qom/object_interfaces.o
  GEN     qemu-img-cmds.h
  CC      qemu-io.o
  CC      fsdev/virtfs-proxy-helper.o
  CC      fsdev/9p-marshal.o
  CC      fsdev/9p-iov-marshal.o
  CC      qemu-bridge-helper.o
  CC      blockdev-nbd.o
  CC      blockdev.o
  CC      bootdevice.o
  CC      iothread.o
  CC      qdev-monitor.o
  CC      device-hotplug.o
  CC      os-posix.o
  CC      bt-host.o
  CC      bt-vhci.o
  CC      dma-helpers.o
  CC      vl.o
  CC      tpm.o
  CC      device_tree.o
  CC      qmp-marshal.o
  CC      qmp.o
  CC      hmp.o
  CC      cpus-common.o
  CC      audio/audio.o
  CC      audio/noaudio.o
  CC      audio/wavaudio.o
  CC      audio/mixeng.o
  CC      audio/sdlaudio.o
  CC      audio/ossaudio.o
  CC      audio/wavcapture.o
  CC      backends/rng.o
  CC      backends/rng-egd.o
  CC      backends/rng-random.o
  CC      backends/tpm.o
  CC      backends/hostmem.o
  CC      backends/hostmem-file.o
  CC      backends/hostmem-ram.o
  CC      backends/cryptodev.o
  CC      backends/cryptodev-builtin.o
  CC      block/stream.o
  CC      chardev/msmouse.o
  CC      chardev/wctablet.o
  CC      chardev/testdev.o
  CC      chardev/baum.o
  CC      disas/alpha.o
  CXX     disas/arm-a64.o
  CC      disas/arm.o
  CC      disas/hppa.o
  CC      disas/cris.o
  CC      disas/i386.o
  CC      disas/m68k.o
  CC      disas/microblaze.o
  CC      disas/nios2.o
  CC      disas/mips.o
  CC      disas/moxie.o
  CC      disas/ppc.o
  CC      disas/s390.o
  CC      disas/sh4.o
  CC      disas/sparc.o
  CC      disas/lm32.o
  CXX     disas/libvixl/vixl/utils.o
  CXX     disas/libvixl/vixl/compiler-intrinsics.o
  CXX     disas/libvixl/vixl/a64/instructions-a64.o
  CXX     disas/libvixl/vixl/a64/decoder-a64.o
  CXX     disas/libvixl/vixl/a64/disasm-a64.o
  CC      fsdev/qemu-fsdev.o
  CC      fsdev/qemu-fsdev-opts.o
  CC      fsdev/qemu-fsdev-throttle.o
  CC      fsdev/qemu-fsdev-dummy.o
  CC      hw/9pfs/9p.o
  CC      hw/9pfs/9p-util.o
  CC      hw/9pfs/9p-local.o
  CC      hw/9pfs/9p-xattr.o
  CC      hw/9pfs/9p-xattr-user.o
  CC      hw/9pfs/9p-posix-acl.o
  CC      hw/9pfs/coth.o
  CC      hw/9pfs/cofs.o
  CC      hw/9pfs/codir.o
  CC      hw/9pfs/coxattr.o
  CC      hw/9pfs/cofile.o
  CC      hw/9pfs/9p-synth.o
  CC      hw/9pfs/9p-handle.o
  CC      hw/9pfs/9p-proxy.o
  CC      hw/acpi/core.o
  CC      hw/acpi/piix4.o
  CC      hw/acpi/ich9.o
  CC      hw/acpi/pcihp.o
  CC      hw/acpi/tco.o
  CC      hw/acpi/memory_hotplug.o
  CC      hw/acpi/cpu_hotplug.o
  CC      hw/acpi/cpu.o
  CC      hw/acpi/nvdimm.o
  CC      hw/acpi/vmgenid.o
  CC      hw/acpi/acpi_interface.o
  CC      hw/acpi/bios-linker-loader.o
  CC      hw/acpi/aml-build.o
  CC      hw/acpi/ipmi.o
  CC      hw/acpi/acpi-stub.o
  CC      hw/acpi/ipmi-stub.o
  CC      hw/audio/sb16.o
  CC      hw/audio/es1370.o
  CC      hw/audio/ac97.o
  CC      hw/audio/fmopl.o
  CC      hw/audio/adlib.o
  CC      hw/audio/gus.o
  CC      hw/audio/gusemu_hal.o
  CC      hw/audio/gusemu_mixer.o
  CC      hw/audio/cs4231a.o
  CC      hw/audio/hda-codec.o
  CC      hw/audio/intel-hda.o
  CC      hw/audio/pcspk.o
  CC      hw/audio/wm8750.o
  CC      hw/audio/pl041.o
  CC      hw/audio/lm4549.o
  CC      hw/audio/cs4231.o
  CC      hw/audio/marvell_88w8618.o
  CC      hw/audio/milkymist-ac97.o
  CC      hw/audio/soundhw.o
  CC      hw/block/block.o
  CC      hw/block/cdrom.o
  CC      hw/block/hd-geometry.o
  CC      hw/block/fdc.o
  CC      hw/block/m25p80.o
  CC      hw/block/nand.o
  CC      hw/block/pflash_cfi01.o
  CC      hw/block/pflash_cfi02.o
  CC      hw/block/ecc.o
  CC      hw/block/onenand.o
  CC      hw/block/nvme.o
  CC      hw/bt/core.o
  CC      hw/bt/l2cap.o
  CC      hw/bt/sdp.o
  CC      hw/bt/hci.o
  CC      hw/bt/hid.o
  CC      hw/bt/hci-csr.o
  CC      hw/char/ipoctal232.o
  CC      hw/char/escc.o
  CC      hw/char/parallel.o
  CC      hw/char/pl011.o
  CC      hw/char/serial.o
  CC      hw/char/serial-isa.o
  CC      hw/char/serial-pci.o
  CC      hw/char/virtio-console.o
  CC      hw/char/xilinx_uartlite.o
  CC      hw/char/cadence_uart.o
  CC      hw/char/cmsdk-apb-uart.o
  CC      hw/char/etraxfs_ser.o
  CC      hw/char/debugcon.o
  CC      hw/char/grlib_apbuart.o
  CC      hw/char/imx_serial.o
  CC      hw/char/lm32_juart.o
  CC      hw/char/lm32_uart.o
  CC      hw/char/milkymist-uart.o
  CC      hw/char/sclpconsole.o
  CC      hw/char/sclpconsole-lm.o
  CC      hw/core/qdev.o
  CC      hw/core/qdev-properties.o
  CC      hw/core/bus.o
  CC      hw/core/reset.o
  CC      hw/core/fw-path-provider.o
  CC      hw/core/irq.o
  CC      hw/core/hotplug.o
  CC      hw/core/nmi.o
  CC      hw/core/empty_slot.o
  CC      hw/core/stream.o
  CC      hw/core/ptimer.o
  CC      hw/core/sysbus.o
  CC      hw/core/machine.o
  CC      hw/core/loader.o
  CC      hw/core/loader-fit.o
  CC      hw/core/qdev-properties-system.o
  CC      hw/core/register.o
  CC      hw/core/or-irq.o
  CC      hw/core/platform-bus.o
  CC      hw/cpu/core.o
  CC      hw/display/ads7846.o
  CC      hw/display/cirrus_vga.o
  CC      hw/display/g364fb.o
  CC      hw/display/jazz_led.o
  CC      hw/display/pl110.o
  CC      hw/display/ssd0303.o
  CC      hw/display/ssd0323.o
  CC      hw/display/vga-pci.o
  CC      hw/display/vga-isa.o
  CC      hw/display/vga-isa-mm.o
  CC      hw/display/vmware_vga.o
  CC      hw/display/blizzard.o
  CC      hw/display/exynos4210_fimd.o
  CC      hw/display/framebuffer.o
  CC      hw/display/milkymist-vgafb.o
  CC      hw/display/tc6393xb.o
  CC      hw/display/milkymist-tmu2.o
  CC      hw/dma/puv3_dma.o
  CC      hw/dma/rc4030.o
  CC      hw/dma/pl080.o
  CC      hw/dma/pl330.o
  CC      hw/dma/i82374.o
  CC      hw/dma/i8257.o
  CC      hw/dma/xilinx_axidma.o
  CC      hw/dma/xlnx-zynq-devcfg.o
  CC      hw/dma/etraxfs_dma.o
  CC      hw/dma/sparc32_dma.o
  CC      hw/dma/sun4m_iommu.o
  CC      hw/gpio/max7310.o
  CC      hw/gpio/pl061.o
  CC      hw/gpio/puv3_gpio.o
  CC      hw/gpio/zaurus.o
  CC      hw/gpio/mpc8xxx.o
  CC      hw/gpio/gpio_key.o
  CC      hw/i2c/core.o
  CC      hw/i2c/smbus_eeprom.o
  CC      hw/i2c/smbus.o
  CC      hw/i2c/i2c-ddc.o
  CC      hw/i2c/versatile_i2c.o
  CC      hw/i2c/smbus_ich9.o
  CC      hw/i2c/pm_smbus.o
  CC      hw/i2c/bitbang_i2c.o
  CC      hw/i2c/exynos4210_i2c.o
  CC      hw/i2c/imx_i2c.o
  CC      hw/i2c/aspeed_i2c.o
  CC      hw/ide/core.o
  CC      hw/ide/atapi.o
  CC      hw/ide/qdev.o
  CC      hw/ide/pci.o
  CC      hw/ide/isa.o
  CC      hw/ide/piix.o
  CC      hw/ide/cmd646.o
  CC      hw/ide/macio.o
  CC      hw/ide/mmio.o
  CC      hw/ide/via.o
  CC      hw/ide/microdrive.o
  CC      hw/ide/ahci.o
  CC      hw/ide/ich.o
  CC      hw/input/adb.o
  CC      hw/input/hid.o
  CC      hw/input/lm832x.o
  CC      hw/input/pckbd.o
  CC      hw/input/pl050.o
  CC      hw/input/ps2.o
  CC      hw/input/stellaris_input.o
  CC      hw/input/tsc2005.o
  CC      hw/input/vmmouse.o
  CC      hw/input/virtio-input.o
  CC      hw/input/virtio-input-host.o
  CC      hw/input/virtio-input-hid.o
  CC      hw/intc/heathrow_pic.o
  CC      hw/intc/i8259_common.o
  CC      hw/intc/i8259.o
  CC      hw/intc/pl190.o
  CC      hw/intc/puv3_intc.o
  CC      hw/intc/xilinx_intc.o
  CC      hw/intc/etraxfs_pic.o
  CC      hw/intc/imx_avic.o
  CC      hw/intc/lm32_pic.o
  CC      hw/intc/realview_gic.o
  CC      hw/intc/slavio_intctl.o
  CC      hw/intc/ioapic_common.o
  CC      hw/intc/arm_gic_common.o
  CC      hw/intc/arm_gic.o
  CC      hw/intc/arm_gicv2m.o
  CC      hw/intc/arm_gicv3_common.o
  CC      hw/intc/arm_gicv3.o
  CC      hw/intc/arm_gicv3_dist.o
  CC      hw/intc/arm_gicv3_redist.o
  CC      hw/intc/arm_gicv3_its_common.o
  CC      hw/intc/openpic.o
  CC      hw/intc/intc.o
  CC      hw/ipack/ipack.o
  CC      hw/ipack/tpci200.o
  CC      hw/ipmi/ipmi.o
  CC      hw/ipmi/ipmi_bmc_sim.o
  CC      hw/ipmi/ipmi_bmc_extern.o
  CC      hw/ipmi/isa_ipmi_kcs.o
  CC      hw/ipmi/isa_ipmi_bt.o
  CC      hw/isa/isa-bus.o
  CC      hw/isa/apm.o
  CC      hw/isa/i82378.o
  CC      hw/isa/pc87312.o
  CC      hw/isa/piix4.o
  CC      hw/isa/vt82c686.o
  CC      hw/mem/pc-dimm.o
  CC      hw/mem/nvdimm.o
  CC      hw/misc/applesmc.o
  CC      hw/misc/max111x.o
  CC      hw/misc/tmp105.o
  CC      hw/misc/tmp421.o
  CC      hw/misc/debugexit.o
  CC      hw/misc/sga.o
  CC      hw/misc/pci-testdev.o
  CC      hw/misc/pc-testdev.o
  CC      hw/misc/edu.o
  CC      hw/misc/arm_l2x0.o
  CC      hw/misc/unimp.o
  CC      hw/misc/arm_integrator_debug.o
  CC      hw/misc/a9scu.o
  CC      hw/misc/arm11scu.o
  CC      hw/misc/puv3_pm.o
  CC      hw/misc/macio/macio.o
  CC      hw/misc/macio/cuda.o
  CC      hw/misc/macio/mac_dbdma.o
  CC      hw/net/dp8393x.o
  CC      hw/net/ne2000.o
  CC      hw/net/eepro100.o
  CC      hw/net/pcnet-pci.o
  CC      hw/net/pcnet.o
  CC      hw/net/e1000.o
  CC      hw/net/e1000x_common.o
  CC      hw/net/net_tx_pkt.o
  CC      hw/net/net_rx_pkt.o
  CC      hw/net/e1000e.o
  CC      hw/net/e1000e_core.o
  CC      hw/net/rtl8139.o
  CC      hw/net/vmxnet3.o
  CC      hw/net/smc91c111.o
  CC      hw/net/lan9118.o
  CC      hw/net/ne2000-isa.o
  CC      hw/net/opencores_eth.o
  CC      hw/net/xgmac.o
  CC      hw/net/mipsnet.o
  CC      hw/net/xilinx_axienet.o
  CC      hw/net/allwinner_emac.o
  CC      hw/net/imx_fec.o
  CC      hw/net/cadence_gem.o
  CC      hw/net/stellaris_enet.o
  CC      hw/net/lance.o
  CC      hw/net/ftgmac100.o
  CC      hw/net/rocker/rocker.o
  CC      hw/net/rocker/rocker_fp.o
  CC      hw/net/rocker/rocker_desc.o
  CC      hw/net/rocker/rocker_world.o
  CC      hw/net/rocker/rocker_of_dpa.o
  CC      hw/nvram/ds1225y.o
  CC      hw/nvram/fw_cfg.o
  CC      hw/nvram/eeprom93xx.o
  CC      hw/nvram/chrp_nvram.o
  CC      hw/nvram/mac_nvram.o
  CC      hw/pci-bridge/pci_bridge_dev.o
  CC      hw/pci-bridge/pcie_pci_bridge.o
  CC      hw/pci-bridge/pcie_root_port.o
  CC      hw/pci-bridge/gen_pcie_root_port.o
  CC      hw/pci-bridge/pci_expander_bridge.o
  CC      hw/pci-bridge/xio3130_upstream.o
  CC      hw/pci-bridge/xio3130_downstream.o
  CC      hw/pci-bridge/ioh3420.o
  CC      hw/pci-bridge/i82801b11.o
  CC      hw/pci-bridge/dec.o
  CC      hw/pci-host/pam.o
  CC      hw/pci-host/prep.o
  CC      hw/pci-host/grackle.o
  CC      hw/pci-host/uninorth.o
  CC      hw/pci-host/ppce500.o
  CC      hw/pci-host/versatile.o
  CC      hw/pci-host/apb.o
  CC      hw/pci-host/bonito.o
  CC      hw/pci-host/piix.o
  CC      hw/pci-host/q35.o
  CC      hw/pci-host/gpex.o
  CC      hw/pci-host/xilinx-pcie.o
  CC      hw/pci/pci.o
  CC      hw/pci/pci_bridge.o
  CC      hw/pci/msix.o
  CC      hw/pci/msi.o
  CC      hw/pci/shpc.o
  CC      hw/pci/slotid_cap.o
  CC      hw/pci/pci_host.o
  CC      hw/pci/pcie_host.o
  CC      hw/pci/pcie.o
  CC      hw/pci/pcie_aer.o
  CC      hw/pci/pcie_port.o
  CC      hw/pci/pci-stub.o
  CC      hw/pcmcia/pcmcia.o
  CC      hw/scsi/scsi-disk.o
  CC      hw/scsi/scsi-generic.o
  CC      hw/scsi/scsi-bus.o
  CC      hw/scsi/lsi53c895a.o
  CC      hw/scsi/mptsas.o
  CC      hw/scsi/mptconfig.o
  CC      hw/scsi/mptendian.o
  CC      hw/scsi/megasas.o
  CC      hw/scsi/vmw_pvscsi.o
  CC      hw/scsi/esp.o
  CC      hw/scsi/esp-pci.o
  CC      hw/sd/pl181.o
  CC      hw/sd/ssi-sd.o
  CC      hw/sd/sd.o
  CC      hw/sd/core.o
  CC      hw/sd/sdhci.o
  CC      hw/smbios/smbios.o
  CC      hw/smbios/smbios_type_38.o
  CC      hw/smbios/smbios-stub.o
  CC      hw/ssi/pl022.o
  CC      hw/smbios/smbios_type_38-stub.o
  CC      hw/ssi/ssi.o
  CC      hw/ssi/xilinx_spi.o
  CC      hw/ssi/aspeed_smc.o
  CC      hw/ssi/xilinx_spips.o
  CC      hw/ssi/stm32f2xx_spi.o
  CC      hw/timer/arm_timer.o
  CC      hw/timer/arm_mptimer.o
  CC      hw/timer/armv7m_systick.o
  CC      hw/timer/a9gtimer.o
  CC      hw/timer/cadence_ttc.o
  CC      hw/timer/ds1338.o
  CC      hw/timer/hpet.o
  CC      hw/timer/i8254_common.o
  CC      hw/timer/i8254.o
  CC      hw/timer/m48t59.o
  CC      hw/timer/m48t59-isa.o
  CC      hw/timer/puv3_ost.o
  CC      hw/timer/pl031.o
  CC      hw/timer/twl92230.o
  CC      hw/timer/xilinx_timer.o
  CC      hw/timer/slavio_timer.o
  CC      hw/timer/etraxfs_timer.o
  CC      hw/timer/grlib_gptimer.o
  CC      hw/timer/imx_epit.o
  CC      hw/timer/imx_gpt.o
  CC      hw/timer/lm32_timer.o
  CC      hw/timer/milkymist-sysctl.o
  CC      hw/timer/stm32f2xx_timer.o
  CC      hw/timer/aspeed_timer.o
  CC      hw/timer/sun4v-rtc.o
  CC      hw/timer/cmsdk-apb-timer.o
  CC      hw/tpm/tpm_tis.o
  CC      hw/usb/core.o
  CC      hw/usb/combined-packet.o
  CC      hw/usb/bus.o
  CC      hw/usb/libhw.o
  CC      hw/usb/desc.o
  CC      hw/usb/desc-msos.o
  CC      hw/usb/hcd-uhci.o
  CC      hw/usb/hcd-ohci.o
  CC      hw/usb/hcd-ehci.o
  CC      hw/usb/hcd-ehci-pci.o
  CC      hw/usb/hcd-ehci-sysbus.o
  CC      hw/usb/hcd-xhci.o
  CC      hw/usb/hcd-xhci-nec.o
  CC      hw/usb/hcd-musb.o
  CC      hw/usb/dev-hub.o
  CC      hw/usb/dev-hid.o
  CC      hw/usb/dev-wacom.o
  CC      hw/usb/dev-storage.o
  CC      hw/usb/dev-uas.o
  CC      hw/usb/dev-audio.o
  CC      hw/usb/dev-serial.o
  CC      hw/usb/dev-network.o
  CC      hw/usb/dev-bluetooth.o
  CC      hw/usb/dev-smartcard-reader.o
  CC      hw/usb/ccid-card-passthru.o
  CC      hw/usb/ccid-card-emulated.o
  CC      hw/usb/dev-mtp.o
  CC      hw/usb/redirect.o
  CC      hw/usb/quirks.o
  CC      hw/usb/host-libusb.o
  CC      hw/usb/host-legacy.o
  CC      hw/virtio/virtio-rng.o
  CC      hw/virtio/virtio-pci.o
  CC      hw/virtio/virtio-bus.o
  CC      hw/virtio/virtio-mmio.o
  CC      hw/virtio/vhost-stub.o
  CC      hw/watchdog/wdt_i6300esb.o
  CC      hw/watchdog/watchdog.o
  CC      hw/watchdog/wdt_ib700.o
  CC      hw/watchdog/wdt_aspeed.o
  CC      hw/watchdog/wdt_diag288.o
  CC      migration/migration.o
  CC      migration/socket.o
  CC      migration/fd.o
  CC      migration/exec.o
  CC      migration/tls.o
  CC      migration/channel.o
  CC      migration/savevm.o
  CC      migration/colo-comm.o
  CC      migration/colo.o
  CC      migration/colo-failover.o
  CC      migration/vmstate.o
  CC      migration/vmstate-types.o
  CC      migration/page_cache.o
  CC      migration/qemu-file.o
  CC      migration/global_state.o
  CC      migration/qemu-file-channel.o
  CC      migration/xbzrle.o
  CC      migration/postcopy-ram.o
  CC      migration/block.o
  CC      migration/qjson.o
  CC      net/net.o
  CC      net/queue.o
  CC      net/checksum.o
  CC      net/util.o
  CC      net/hub.o
  CC      net/socket.o
  CC      net/eth.o
  CC      net/dump.o
  CC      net/l2tpv3.o
  CC      net/vhost-user.o
  CC      net/filter.o
  CC      net/slirp.o
  CC      net/filter-buffer.o
  CC      net/filter-mirror.o
  CC      net/colo-compare.o
  CC      net/colo.o
  CC      net/filter-rewriter.o
  CC      net/filter-replay.o
  CC      net/tap.o
  CC      qom/cpu.o
  CC      net/tap-linux.o
  CC      replay/replay.o
  CC      replay/replay-internal.o
  CC      replay/replay-events.o
  CC      replay/replay-time.o
  CC      replay/replay-input.o
  CC      replay/replay-char.o
  CC      replay/replay-snapshot.o
  CC      replay/replay-net.o
  CC      replay/replay-audio.o
  CC      slirp/cksum.o
  CC      slirp/if.o
  CC      slirp/ip_icmp.o
  CC      slirp/ip6_icmp.o
  CC      slirp/ip6_input.o
  CC      slirp/ip6_output.o
  CC      slirp/ip_input.o
  CC      slirp/ip_output.o
  CC      slirp/dnssearch.o
  CC      slirp/dhcpv6.o
  CC      slirp/slirp.o
  CC      slirp/mbuf.o
  CC      slirp/misc.o
  CC      slirp/sbuf.o
  CC      slirp/socket.o
  CC      slirp/tcp_input.o
  CC      slirp/tcp_output.o
  CC      slirp/tcp_subr.o
  CC      slirp/tcp_timer.o
  CC      slirp/udp6.o
  CC      slirp/bootp.o
  CC      slirp/udp.o
  CC      slirp/tftp.o
  CC      slirp/arp_table.o
  CC      slirp/ndp_table.o
  CC      slirp/ncsi.o
  CC      ui/keymaps.o
  CC      ui/cursor.o
  CC      ui/console.o
  CC      ui/qemu-pixman.o
  CC      ui/input.o
  CC      ui/input-keymap.o
  CC      ui/input-legacy.o
  CC      ui/input-linux.o
/var/tmp/patchew-tester-tmp-4iydjbd7/src/ui/input-keymap.c:17:42: fatal error: ui/input-keymap-qcode-to-sun.c: No such file or directory
 #include "ui/input-keymap-qcode-to-sun.c"
                                          ^
compilation terminated.
/var/tmp/patchew-tester-tmp-4iydjbd7/src/rules.mak:66: recipe for target 'ui/input-keymap.o' failed
make: *** [ui/input-keymap.o] Error 1
make: *** Waiting for unfinished jobs....
=== OUTPUT END ===

Test command exited with code: 2


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (12 preceding siblings ...)
  2017-09-12 12:52 ` [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb no-reply
@ 2017-09-12 12:53 ` no-reply
  2017-09-12 12:55 ` no-reply
  2017-09-12 13:46 ` Gerd Hoffmann
  15 siblings, 0 replies; 34+ messages in thread
From: no-reply @ 2017-09-12 12:53 UTC (permalink / raw)
  To: berrange; +Cc: famz, qemu-devel, kraxel

Hi,

This series seems to have some coding style problems. See output below for
more information:

Subject: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
Message-id: 20170912123744.14730-1-berrange@redhat.com
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 t [tag update]            patchew/20170823162004.27337-1-marcandre.lureau@redhat.com -> patchew/20170823162004.27337-1-marcandre.lureau@redhat.com
 t [tag update]            patchew/20170911201610.15204-1-n54@gmx.com -> patchew/20170911201610.15204-1-n54@gmx.com
 * [new tag]               patchew/20170912123744.14730-1-berrange@redhat.com -> patchew/20170912123744.14730-1-berrange@redhat.com
Switched to a new branch 'test'
fae652ea62 display: convert XenInput keyboard to keycodemapdb
c8d95241f3 ui: convert GTK and SDL1 frontends to keycodemapdb
4175200b40 ui: convert the SDL2 frontend to keycodemapdb
d54c4f7d1b ui: convert cocoa frontend to keycodemapdb
60a4cdb7cc char: convert the escc device to keycodemapdb
df243503e5 input: convert the adb device to keycodemapdb
85343f342f input: convert ps2 device to keycodemapdb
00dbdc189b input: convert virtio-input-hid device to keycodemapdb
475272eb06 ui: don't export qemu_input_event_new_key
0d88a11efd ui: convert key events to QKeyCodes immediately
33c690e7a1 ui: convert common input code to keycodemapdb
1a87122cbb ui: add keycodemapdb repository as a GIT submodule

=== OUTPUT BEGIN ===
Checking PATCH 1/12: ui: add keycodemapdb repository as a GIT submodule...
Checking PATCH 2/12: ui: convert common input code to keycodemapdb...
ERROR: line over 90 characters
#111: FILE: ui/input-keymap-linux-to-qcode.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#113: FILE: ui/input-keymap-linux-to-qcode.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_linux_to_qcode code-map keymaps.csv linux qcode

ERROR: line over 90 characters
#116: FILE: ui/input-keymap-linux-to-qcode.c:8:
+  [0x0] = Q_KEY_CODE_UNMAPPED, /* linux:0 (KEY_RESERVED) -> linux:0 (KEY_RESERVED) -> qcode:Q_KEY_CODE_UNMAPPED (unmapped) */

ERROR: line over 90 characters
#117: FILE: ui/input-keymap-linux-to-qcode.c:9:
+  [0x1] = Q_KEY_CODE_ESC, /* linux:1 (KEY_ESC) -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */

WARNING: line over 80 characters
#118: FILE: ui/input-keymap-linux-to-qcode.c:10:
+  [0x2] = Q_KEY_CODE_1, /* linux:2 (KEY_1) -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */

WARNING: line over 80 characters
#119: FILE: ui/input-keymap-linux-to-qcode.c:11:
+  [0x3] = Q_KEY_CODE_2, /* linux:3 (KEY_2) -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */

WARNING: line over 80 characters
#120: FILE: ui/input-keymap-linux-to-qcode.c:12:
+  [0x4] = Q_KEY_CODE_3, /* linux:4 (KEY_3) -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */

WARNING: line over 80 characters
#121: FILE: ui/input-keymap-linux-to-qcode.c:13:
+  [0x5] = Q_KEY_CODE_4, /* linux:5 (KEY_4) -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */

WARNING: line over 80 characters
#122: FILE: ui/input-keymap-linux-to-qcode.c:14:
+  [0x6] = Q_KEY_CODE_5, /* linux:6 (KEY_5) -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */

WARNING: line over 80 characters
#123: FILE: ui/input-keymap-linux-to-qcode.c:15:
+  [0x7] = Q_KEY_CODE_6, /* linux:7 (KEY_6) -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */

WARNING: line over 80 characters
#124: FILE: ui/input-keymap-linux-to-qcode.c:16:
+  [0x8] = Q_KEY_CODE_7, /* linux:8 (KEY_7) -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */

WARNING: line over 80 characters
#125: FILE: ui/input-keymap-linux-to-qcode.c:17:
+  [0x9] = Q_KEY_CODE_8, /* linux:9 (KEY_8) -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */

ERROR: line over 90 characters
#126: FILE: ui/input-keymap-linux-to-qcode.c:18:
+  [0xa] = Q_KEY_CODE_9, /* linux:10 (KEY_9) -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */

ERROR: line over 90 characters
#127: FILE: ui/input-keymap-linux-to-qcode.c:19:
+  [0xb] = Q_KEY_CODE_0, /* linux:11 (KEY_0) -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */

ERROR: line over 90 characters
#128: FILE: ui/input-keymap-linux-to-qcode.c:20:
+  [0xc] = Q_KEY_CODE_MINUS, /* linux:12 (KEY_MINUS) -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */

ERROR: line over 90 characters
#129: FILE: ui/input-keymap-linux-to-qcode.c:21:
+  [0xd] = Q_KEY_CODE_EQUAL, /* linux:13 (KEY_EQUAL) -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */

ERROR: line over 90 characters
#130: FILE: ui/input-keymap-linux-to-qcode.c:22:
+  [0xe] = Q_KEY_CODE_BACKSPACE, /* linux:14 (KEY_BACKSPACE) -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */

ERROR: line over 90 characters
#131: FILE: ui/input-keymap-linux-to-qcode.c:23:
+  [0xf] = Q_KEY_CODE_TAB, /* linux:15 (KEY_TAB) -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */

ERROR: line over 90 characters
#132: FILE: ui/input-keymap-linux-to-qcode.c:24:
+  [0x10] = Q_KEY_CODE_Q, /* linux:16 (KEY_Q) -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */

ERROR: line over 90 characters
#133: FILE: ui/input-keymap-linux-to-qcode.c:25:
+  [0x11] = Q_KEY_CODE_W, /* linux:17 (KEY_W) -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */

ERROR: line over 90 characters
#134: FILE: ui/input-keymap-linux-to-qcode.c:26:
+  [0x12] = Q_KEY_CODE_E, /* linux:18 (KEY_E) -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */

ERROR: line over 90 characters
#135: FILE: ui/input-keymap-linux-to-qcode.c:27:
+  [0x13] = Q_KEY_CODE_R, /* linux:19 (KEY_R) -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */

ERROR: line over 90 characters
#136: FILE: ui/input-keymap-linux-to-qcode.c:28:
+  [0x14] = Q_KEY_CODE_T, /* linux:20 (KEY_T) -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */

ERROR: line over 90 characters
#137: FILE: ui/input-keymap-linux-to-qcode.c:29:
+  [0x15] = Q_KEY_CODE_Y, /* linux:21 (KEY_Y) -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */

ERROR: line over 90 characters
#138: FILE: ui/input-keymap-linux-to-qcode.c:30:
+  [0x16] = Q_KEY_CODE_U, /* linux:22 (KEY_U) -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */

ERROR: line over 90 characters
#139: FILE: ui/input-keymap-linux-to-qcode.c:31:
+  [0x17] = Q_KEY_CODE_I, /* linux:23 (KEY_I) -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */

ERROR: line over 90 characters
#140: FILE: ui/input-keymap-linux-to-qcode.c:32:
+  [0x18] = Q_KEY_CODE_O, /* linux:24 (KEY_O) -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */

ERROR: line over 90 characters
#141: FILE: ui/input-keymap-linux-to-qcode.c:33:
+  [0x19] = Q_KEY_CODE_P, /* linux:25 (KEY_P) -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */

ERROR: line over 90 characters
#142: FILE: ui/input-keymap-linux-to-qcode.c:34:
+  [0x1a] = Q_KEY_CODE_BRACKET_LEFT, /* linux:26 (KEY_LEFTBRACE) -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */

ERROR: line over 90 characters
#143: FILE: ui/input-keymap-linux-to-qcode.c:35:
+  [0x1b] = Q_KEY_CODE_BRACKET_RIGHT, /* linux:27 (KEY_RIGHTBRACE) -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */

ERROR: line over 90 characters
#144: FILE: ui/input-keymap-linux-to-qcode.c:36:
+  [0x1c] = Q_KEY_CODE_RET, /* linux:28 (KEY_ENTER) -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */

ERROR: line over 90 characters
#145: FILE: ui/input-keymap-linux-to-qcode.c:37:
+  [0x1d] = Q_KEY_CODE_CTRL, /* linux:29 (KEY_LEFTCTRL) -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */

ERROR: line over 90 characters
#146: FILE: ui/input-keymap-linux-to-qcode.c:38:
+  [0x1e] = Q_KEY_CODE_A, /* linux:30 (KEY_A) -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */

ERROR: line over 90 characters
#147: FILE: ui/input-keymap-linux-to-qcode.c:39:
+  [0x1f] = Q_KEY_CODE_S, /* linux:31 (KEY_S) -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */

ERROR: line over 90 characters
#148: FILE: ui/input-keymap-linux-to-qcode.c:40:
+  [0x20] = Q_KEY_CODE_D, /* linux:32 (KEY_D) -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */

ERROR: line over 90 characters
#149: FILE: ui/input-keymap-linux-to-qcode.c:41:
+  [0x21] = Q_KEY_CODE_F, /* linux:33 (KEY_F) -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */

ERROR: line over 90 characters
#150: FILE: ui/input-keymap-linux-to-qcode.c:42:
+  [0x22] = Q_KEY_CODE_G, /* linux:34 (KEY_G) -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */

ERROR: line over 90 characters
#151: FILE: ui/input-keymap-linux-to-qcode.c:43:
+  [0x23] = Q_KEY_CODE_H, /* linux:35 (KEY_H) -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */

ERROR: line over 90 characters
#152: FILE: ui/input-keymap-linux-to-qcode.c:44:
+  [0x24] = Q_KEY_CODE_J, /* linux:36 (KEY_J) -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */

ERROR: line over 90 characters
#153: FILE: ui/input-keymap-linux-to-qcode.c:45:
+  [0x25] = Q_KEY_CODE_K, /* linux:37 (KEY_K) -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */

ERROR: line over 90 characters
#154: FILE: ui/input-keymap-linux-to-qcode.c:46:
+  [0x26] = Q_KEY_CODE_L, /* linux:38 (KEY_L) -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */

ERROR: line over 90 characters
#155: FILE: ui/input-keymap-linux-to-qcode.c:47:
+  [0x27] = Q_KEY_CODE_SEMICOLON, /* linux:39 (KEY_SEMICOLON) -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */

ERROR: line over 90 characters
#156: FILE: ui/input-keymap-linux-to-qcode.c:48:
+  [0x28] = Q_KEY_CODE_APOSTROPHE, /* linux:40 (KEY_APOSTROPHE) -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */

ERROR: line over 90 characters
#157: FILE: ui/input-keymap-linux-to-qcode.c:49:
+  [0x29] = Q_KEY_CODE_GRAVE_ACCENT, /* linux:41 (KEY_GRAVE) -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */

ERROR: line over 90 characters
#158: FILE: ui/input-keymap-linux-to-qcode.c:50:
+  [0x2a] = Q_KEY_CODE_SHIFT, /* linux:42 (KEY_LEFTSHIFT) -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */

ERROR: line over 90 characters
#159: FILE: ui/input-keymap-linux-to-qcode.c:51:
+  [0x2b] = Q_KEY_CODE_BACKSLASH, /* linux:43 (KEY_BACKSLASH) -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

ERROR: line over 90 characters
#160: FILE: ui/input-keymap-linux-to-qcode.c:52:
+  [0x2c] = Q_KEY_CODE_Z, /* linux:44 (KEY_Z) -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */

ERROR: line over 90 characters
#161: FILE: ui/input-keymap-linux-to-qcode.c:53:
+  [0x2d] = Q_KEY_CODE_X, /* linux:45 (KEY_X) -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */

ERROR: line over 90 characters
#162: FILE: ui/input-keymap-linux-to-qcode.c:54:
+  [0x2e] = Q_KEY_CODE_C, /* linux:46 (KEY_C) -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */

ERROR: line over 90 characters
#163: FILE: ui/input-keymap-linux-to-qcode.c:55:
+  [0x2f] = Q_KEY_CODE_V, /* linux:47 (KEY_V) -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */

ERROR: line over 90 characters
#164: FILE: ui/input-keymap-linux-to-qcode.c:56:
+  [0x30] = Q_KEY_CODE_B, /* linux:48 (KEY_B) -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */

ERROR: line over 90 characters
#165: FILE: ui/input-keymap-linux-to-qcode.c:57:
+  [0x31] = Q_KEY_CODE_N, /* linux:49 (KEY_N) -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */

ERROR: line over 90 characters
#166: FILE: ui/input-keymap-linux-to-qcode.c:58:
+  [0x32] = Q_KEY_CODE_M, /* linux:50 (KEY_M) -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */

ERROR: line over 90 characters
#167: FILE: ui/input-keymap-linux-to-qcode.c:59:
+  [0x33] = Q_KEY_CODE_COMMA, /* linux:51 (KEY_COMMA) -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */

ERROR: line over 90 characters
#168: FILE: ui/input-keymap-linux-to-qcode.c:60:
+  [0x34] = Q_KEY_CODE_DOT, /* linux:52 (KEY_DOT) -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */

ERROR: line over 90 characters
#169: FILE: ui/input-keymap-linux-to-qcode.c:61:
+  [0x35] = Q_KEY_CODE_SLASH, /* linux:53 (KEY_SLASH) -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */

ERROR: line over 90 characters
#170: FILE: ui/input-keymap-linux-to-qcode.c:62:
+  [0x36] = Q_KEY_CODE_SHIFT_R, /* linux:54 (KEY_RIGHTSHIFT) -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */

ERROR: line over 90 characters
#171: FILE: ui/input-keymap-linux-to-qcode.c:63:
+  [0x37] = Q_KEY_CODE_KP_MULTIPLY, /* linux:55 (KEY_KPASTERISK) -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */

ERROR: line over 90 characters
#172: FILE: ui/input-keymap-linux-to-qcode.c:64:
+  [0x38] = Q_KEY_CODE_ALT, /* linux:56 (KEY_LEFTALT) -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */

ERROR: line over 90 characters
#173: FILE: ui/input-keymap-linux-to-qcode.c:65:
+  [0x39] = Q_KEY_CODE_SPC, /* linux:57 (KEY_SPACE) -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */

ERROR: line over 90 characters
#174: FILE: ui/input-keymap-linux-to-qcode.c:66:
+  [0x3a] = Q_KEY_CODE_CAPS_LOCK, /* linux:58 (KEY_CAPSLOCK) -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */

ERROR: line over 90 characters
#175: FILE: ui/input-keymap-linux-to-qcode.c:67:
+  [0x3b] = Q_KEY_CODE_F1, /* linux:59 (KEY_F1) -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */

ERROR: line over 90 characters
#176: FILE: ui/input-keymap-linux-to-qcode.c:68:
+  [0x3c] = Q_KEY_CODE_F2, /* linux:60 (KEY_F2) -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */

ERROR: line over 90 characters
#177: FILE: ui/input-keymap-linux-to-qcode.c:69:
+  [0x3d] = Q_KEY_CODE_F3, /* linux:61 (KEY_F3) -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */

ERROR: line over 90 characters
#178: FILE: ui/input-keymap-linux-to-qcode.c:70:
+  [0x3e] = Q_KEY_CODE_F4, /* linux:62 (KEY_F4) -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */

ERROR: line over 90 characters
#179: FILE: ui/input-keymap-linux-to-qcode.c:71:
+  [0x3f] = Q_KEY_CODE_F5, /* linux:63 (KEY_F5) -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */

ERROR: line over 90 characters
#180: FILE: ui/input-keymap-linux-to-qcode.c:72:
+  [0x40] = Q_KEY_CODE_F6, /* linux:64 (KEY_F6) -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */

ERROR: line over 90 characters
#181: FILE: ui/input-keymap-linux-to-qcode.c:73:
+  [0x41] = Q_KEY_CODE_F7, /* linux:65 (KEY_F7) -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */

ERROR: line over 90 characters
#182: FILE: ui/input-keymap-linux-to-qcode.c:74:
+  [0x42] = Q_KEY_CODE_F8, /* linux:66 (KEY_F8) -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */

ERROR: line over 90 characters
#183: FILE: ui/input-keymap-linux-to-qcode.c:75:
+  [0x43] = Q_KEY_CODE_F9, /* linux:67 (KEY_F9) -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */

ERROR: line over 90 characters
#184: FILE: ui/input-keymap-linux-to-qcode.c:76:
+  [0x44] = Q_KEY_CODE_F10, /* linux:68 (KEY_F10) -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */

ERROR: line over 90 characters
#185: FILE: ui/input-keymap-linux-to-qcode.c:77:
+  [0x45] = Q_KEY_CODE_NUM_LOCK, /* linux:69 (KEY_NUMLOCK) -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */

ERROR: line over 90 characters
#186: FILE: ui/input-keymap-linux-to-qcode.c:78:
+  [0x46] = Q_KEY_CODE_SCROLL_LOCK, /* linux:70 (KEY_SCROLLLOCK) -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */

ERROR: line over 90 characters
#187: FILE: ui/input-keymap-linux-to-qcode.c:79:
+  [0x47] = Q_KEY_CODE_KP_7, /* linux:71 (KEY_KP7) -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */

ERROR: line over 90 characters
#188: FILE: ui/input-keymap-linux-to-qcode.c:80:
+  [0x48] = Q_KEY_CODE_KP_8, /* linux:72 (KEY_KP8) -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */

ERROR: line over 90 characters
#189: FILE: ui/input-keymap-linux-to-qcode.c:81:
+  [0x49] = Q_KEY_CODE_KP_9, /* linux:73 (KEY_KP9) -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */

ERROR: line over 90 characters
#190: FILE: ui/input-keymap-linux-to-qcode.c:82:
+  [0x4a] = Q_KEY_CODE_KP_SUBTRACT, /* linux:74 (KEY_KPMINUS) -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */

ERROR: line over 90 characters
#191: FILE: ui/input-keymap-linux-to-qcode.c:83:
+  [0x4b] = Q_KEY_CODE_KP_4, /* linux:75 (KEY_KP4) -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */

ERROR: line over 90 characters
#192: FILE: ui/input-keymap-linux-to-qcode.c:84:
+  [0x4c] = Q_KEY_CODE_KP_5, /* linux:76 (KEY_KP5) -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */

ERROR: line over 90 characters
#193: FILE: ui/input-keymap-linux-to-qcode.c:85:
+  [0x4d] = Q_KEY_CODE_KP_6, /* linux:77 (KEY_KP6) -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */

ERROR: line over 90 characters
#194: FILE: ui/input-keymap-linux-to-qcode.c:86:
+  [0x4e] = Q_KEY_CODE_KP_ADD, /* linux:78 (KEY_KPPLUS) -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */

ERROR: line over 90 characters
#195: FILE: ui/input-keymap-linux-to-qcode.c:87:
+  [0x4f] = Q_KEY_CODE_KP_1, /* linux:79 (KEY_KP1) -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */

ERROR: line over 90 characters
#196: FILE: ui/input-keymap-linux-to-qcode.c:88:
+  [0x50] = Q_KEY_CODE_KP_2, /* linux:80 (KEY_KP2) -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */

ERROR: line over 90 characters
#197: FILE: ui/input-keymap-linux-to-qcode.c:89:
+  [0x51] = Q_KEY_CODE_KP_3, /* linux:81 (KEY_KP3) -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */

ERROR: line over 90 characters
#198: FILE: ui/input-keymap-linux-to-qcode.c:90:
+  [0x52] = Q_KEY_CODE_KP_0, /* linux:82 (KEY_KP0) -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */

ERROR: line over 90 characters
#199: FILE: ui/input-keymap-linux-to-qcode.c:91:
+  [0x53] = Q_KEY_CODE_KP_DECIMAL, /* linux:83 (KEY_KPDOT) -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */

ERROR: line over 90 characters
#200: FILE: ui/input-keymap-linux-to-qcode.c:92:
+  [0x54] = Q_KEY_CODE_UNMAPPED, /* linux:84 (unnamed) -> linux:84 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#201: FILE: ui/input-keymap-linux-to-qcode.c:93:
+  [0x55] = Q_KEY_CODE_UNMAPPED, /* linux:85 (KEY_ZENKAKUHANKAKU) -> linux:85 (KEY_ZENKAKUHANKAKU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#202: FILE: ui/input-keymap-linux-to-qcode.c:94:
+  [0x56] = Q_KEY_CODE_LESS, /* linux:86 (KEY_102ND) -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */

ERROR: line over 90 characters
#203: FILE: ui/input-keymap-linux-to-qcode.c:95:
+  [0x57] = Q_KEY_CODE_F11, /* linux:87 (KEY_F11) -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */

ERROR: line over 90 characters
#204: FILE: ui/input-keymap-linux-to-qcode.c:96:
+  [0x58] = Q_KEY_CODE_F12, /* linux:88 (KEY_F12) -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */

ERROR: line over 90 characters
#205: FILE: ui/input-keymap-linux-to-qcode.c:97:
+  [0x59] = Q_KEY_CODE_RO, /* linux:89 (KEY_RO) -> linux:89 (KEY_RO) -> qcode:Q_KEY_CODE_RO (ro) */

ERROR: line over 90 characters
#206: FILE: ui/input-keymap-linux-to-qcode.c:98:
+  [0x5a] = Q_KEY_CODE_UNMAPPED, /* linux:90 (KEY_KATAKANA) -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#207: FILE: ui/input-keymap-linux-to-qcode.c:99:
+  [0x5b] = Q_KEY_CODE_HIRAGANA, /* linux:91 (KEY_HIRAGANA) -> linux:91 (KEY_HIRAGANA) -> qcode:Q_KEY_CODE_HIRAGANA (hiragana) */

ERROR: line over 90 characters
#208: FILE: ui/input-keymap-linux-to-qcode.c:100:
+  [0x5c] = Q_KEY_CODE_HENKAN, /* linux:92 (KEY_HENKAN) -> linux:92 (KEY_HENKAN) -> qcode:Q_KEY_CODE_HENKAN (henkan) */

ERROR: line over 90 characters
#209: FILE: ui/input-keymap-linux-to-qcode.c:101:
+  [0x5d] = Q_KEY_CODE_UNMAPPED, /* linux:93 (KEY_KATAKANAHIRAGANA) -> linux:93 (KEY_KATAKANAHIRAGANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#210: FILE: ui/input-keymap-linux-to-qcode.c:102:
+  [0x5e] = Q_KEY_CODE_UNMAPPED, /* linux:94 (KEY_MUHENKAN) -> linux:94 (KEY_MUHENKAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#211: FILE: ui/input-keymap-linux-to-qcode.c:103:
+  [0x5f] = Q_KEY_CODE_UNMAPPED, /* linux:95 (KEY_KPJPCOMMA) -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#212: FILE: ui/input-keymap-linux-to-qcode.c:104:
+  [0x60] = Q_KEY_CODE_KP_ENTER, /* linux:96 (KEY_KPENTER) -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */

ERROR: line over 90 characters
#213: FILE: ui/input-keymap-linux-to-qcode.c:105:
+  [0x61] = Q_KEY_CODE_CTRL_R, /* linux:97 (KEY_RIGHTCTRL) -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */

ERROR: line over 90 characters
#214: FILE: ui/input-keymap-linux-to-qcode.c:106:
+  [0x62] = Q_KEY_CODE_KP_DIVIDE, /* linux:98 (KEY_KPSLASH) -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */

ERROR: line over 90 characters
#215: FILE: ui/input-keymap-linux-to-qcode.c:107:
+  [0x63] = Q_KEY_CODE_SYSRQ, /* linux:99 (KEY_SYSRQ) -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */

ERROR: line over 90 characters
#216: FILE: ui/input-keymap-linux-to-qcode.c:108:
+  [0x64] = Q_KEY_CODE_ALT_R, /* linux:100 (KEY_RIGHTALT) -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */

ERROR: line over 90 characters
#217: FILE: ui/input-keymap-linux-to-qcode.c:109:
+  [0x65] = Q_KEY_CODE_LF, /* linux:101 (KEY_LINEFEED) -> linux:101 (KEY_LINEFEED) -> qcode:Q_KEY_CODE_LF (lf) */

ERROR: line over 90 characters
#218: FILE: ui/input-keymap-linux-to-qcode.c:110:
+  [0x66] = Q_KEY_CODE_HOME, /* linux:102 (KEY_HOME) -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */

ERROR: line over 90 characters
#219: FILE: ui/input-keymap-linux-to-qcode.c:111:
+  [0x67] = Q_KEY_CODE_UP, /* linux:103 (KEY_UP) -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */

ERROR: line over 90 characters
#220: FILE: ui/input-keymap-linux-to-qcode.c:112:
+  [0x68] = Q_KEY_CODE_PGUP, /* linux:104 (KEY_PAGEUP) -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */

ERROR: line over 90 characters
#221: FILE: ui/input-keymap-linux-to-qcode.c:113:
+  [0x69] = Q_KEY_CODE_LEFT, /* linux:105 (KEY_LEFT) -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */

ERROR: line over 90 characters
#222: FILE: ui/input-keymap-linux-to-qcode.c:114:
+  [0x6a] = Q_KEY_CODE_RIGHT, /* linux:106 (KEY_RIGHT) -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */

ERROR: line over 90 characters
#223: FILE: ui/input-keymap-linux-to-qcode.c:115:
+  [0x6b] = Q_KEY_CODE_END, /* linux:107 (KEY_END) -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */

ERROR: line over 90 characters
#224: FILE: ui/input-keymap-linux-to-qcode.c:116:
+  [0x6c] = Q_KEY_CODE_DOWN, /* linux:108 (KEY_DOWN) -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */

ERROR: line over 90 characters
#225: FILE: ui/input-keymap-linux-to-qcode.c:117:
+  [0x6d] = Q_KEY_CODE_PGDN, /* linux:109 (KEY_PAGEDOWN) -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */

ERROR: line over 90 characters
#226: FILE: ui/input-keymap-linux-to-qcode.c:118:
+  [0x6e] = Q_KEY_CODE_INSERT, /* linux:110 (KEY_INSERT) -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */

ERROR: line over 90 characters
#227: FILE: ui/input-keymap-linux-to-qcode.c:119:
+  [0x6f] = Q_KEY_CODE_DELETE, /* linux:111 (KEY_DELETE) -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */

ERROR: line over 90 characters
#228: FILE: ui/input-keymap-linux-to-qcode.c:120:
+  [0x70] = Q_KEY_CODE_UNMAPPED, /* linux:112 (KEY_MACRO) -> linux:112 (KEY_MACRO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#229: FILE: ui/input-keymap-linux-to-qcode.c:121:
+  [0x71] = Q_KEY_CODE_AUDIOMUTE, /* linux:113 (KEY_MUTE) -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */

ERROR: line over 90 characters
#230: FILE: ui/input-keymap-linux-to-qcode.c:122:
+  [0x72] = Q_KEY_CODE_VOLUMEDOWN, /* linux:114 (KEY_VOLUMEDOWN) -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */

ERROR: line over 90 characters
#231: FILE: ui/input-keymap-linux-to-qcode.c:123:
+  [0x73] = Q_KEY_CODE_VOLUMEUP, /* linux:115 (KEY_VOLUMEUP) -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */

ERROR: line over 90 characters
#232: FILE: ui/input-keymap-linux-to-qcode.c:124:
+  [0x74] = Q_KEY_CODE_POWER, /* linux:116 (KEY_POWER) -> linux:116 (KEY_POWER) -> qcode:Q_KEY_CODE_POWER (power) */

ERROR: line over 90 characters
#233: FILE: ui/input-keymap-linux-to-qcode.c:125:
+  [0x75] = Q_KEY_CODE_KP_EQUALS, /* linux:117 (KEY_KPEQUAL) -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */

ERROR: line over 90 characters
#234: FILE: ui/input-keymap-linux-to-qcode.c:126:
+  [0x76] = Q_KEY_CODE_UNMAPPED, /* linux:118 (KEY_KPPLUSMINUS) -> linux:118 (KEY_KPPLUSMINUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#235: FILE: ui/input-keymap-linux-to-qcode.c:127:
+  [0x77] = Q_KEY_CODE_PAUSE, /* linux:119 (KEY_PAUSE) -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */

ERROR: line over 90 characters
#236: FILE: ui/input-keymap-linux-to-qcode.c:128:
+  [0x78] = Q_KEY_CODE_UNMAPPED, /* linux:120 (KEY_SCALE) -> linux:120 (KEY_SCALE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#237: FILE: ui/input-keymap-linux-to-qcode.c:129:
+  [0x79] = Q_KEY_CODE_KP_COMMA, /* linux:121 (KEY_KPCOMMA) -> linux:121 (KEY_KPCOMMA) -> qcode:Q_KEY_CODE_KP_COMMA (kp_comma) */

ERROR: line over 90 characters
#238: FILE: ui/input-keymap-linux-to-qcode.c:130:
+  [0x7a] = Q_KEY_CODE_UNMAPPED, /* linux:122 (KEY_HANGEUL) -> linux:122 (KEY_HANGEUL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#239: FILE: ui/input-keymap-linux-to-qcode.c:131:
+  [0x7b] = Q_KEY_CODE_UNMAPPED, /* linux:123 (KEY_HANJA) -> linux:123 (KEY_HANJA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#240: FILE: ui/input-keymap-linux-to-qcode.c:132:
+  [0x7c] = Q_KEY_CODE_YEN, /* linux:124 (KEY_YEN) -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */

ERROR: line over 90 characters
#241: FILE: ui/input-keymap-linux-to-qcode.c:133:
+  [0x7d] = Q_KEY_CODE_META_L, /* linux:125 (KEY_LEFTMETA) -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */

ERROR: line over 90 characters
#242: FILE: ui/input-keymap-linux-to-qcode.c:134:
+  [0x7e] = Q_KEY_CODE_META_R, /* linux:126 (KEY_RIGHTMETA) -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */

ERROR: line over 90 characters
#243: FILE: ui/input-keymap-linux-to-qcode.c:135:
+  [0x7f] = Q_KEY_CODE_COMPOSE, /* linux:127 (KEY_COMPOSE) -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */

ERROR: line over 90 characters
#244: FILE: ui/input-keymap-linux-to-qcode.c:136:
+  [0x80] = Q_KEY_CODE_STOP, /* linux:128 (KEY_STOP) -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */

ERROR: line over 90 characters
#245: FILE: ui/input-keymap-linux-to-qcode.c:137:
+  [0x81] = Q_KEY_CODE_AGAIN, /* linux:129 (KEY_AGAIN) -> linux:129 (KEY_AGAIN) -> qcode:Q_KEY_CODE_AGAIN (again) */

ERROR: line over 90 characters
#246: FILE: ui/input-keymap-linux-to-qcode.c:138:
+  [0x82] = Q_KEY_CODE_PROPS, /* linux:130 (KEY_PROPS) -> linux:130 (KEY_PROPS) -> qcode:Q_KEY_CODE_PROPS (props) */

ERROR: line over 90 characters
#247: FILE: ui/input-keymap-linux-to-qcode.c:139:
+  [0x83] = Q_KEY_CODE_UNDO, /* linux:131 (KEY_UNDO) -> linux:131 (KEY_UNDO) -> qcode:Q_KEY_CODE_UNDO (undo) */

ERROR: line over 90 characters
#248: FILE: ui/input-keymap-linux-to-qcode.c:140:
+  [0x84] = Q_KEY_CODE_FRONT, /* linux:132 (KEY_FRONT) -> linux:132 (KEY_FRONT) -> qcode:Q_KEY_CODE_FRONT (front) */

ERROR: line over 90 characters
#249: FILE: ui/input-keymap-linux-to-qcode.c:141:
+  [0x85] = Q_KEY_CODE_COPY, /* linux:133 (KEY_COPY) -> linux:133 (KEY_COPY) -> qcode:Q_KEY_CODE_COPY (copy) */

ERROR: line over 90 characters
#250: FILE: ui/input-keymap-linux-to-qcode.c:142:
+  [0x86] = Q_KEY_CODE_OPEN, /* linux:134 (KEY_OPEN) -> linux:134 (KEY_OPEN) -> qcode:Q_KEY_CODE_OPEN (open) */

ERROR: line over 90 characters
#251: FILE: ui/input-keymap-linux-to-qcode.c:143:
+  [0x87] = Q_KEY_CODE_PASTE, /* linux:135 (KEY_PASTE) -> linux:135 (KEY_PASTE) -> qcode:Q_KEY_CODE_PASTE (paste) */

ERROR: line over 90 characters
#252: FILE: ui/input-keymap-linux-to-qcode.c:144:
+  [0x88] = Q_KEY_CODE_FIND, /* linux:136 (KEY_FIND) -> linux:136 (KEY_FIND) -> qcode:Q_KEY_CODE_FIND (find) */

ERROR: line over 90 characters
#253: FILE: ui/input-keymap-linux-to-qcode.c:145:
+  [0x89] = Q_KEY_CODE_CUT, /* linux:137 (KEY_CUT) -> linux:137 (KEY_CUT) -> qcode:Q_KEY_CODE_CUT (cut) */

ERROR: line over 90 characters
#254: FILE: ui/input-keymap-linux-to-qcode.c:146:
+  [0x8a] = Q_KEY_CODE_HELP, /* linux:138 (KEY_HELP) -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */

ERROR: line over 90 characters
#255: FILE: ui/input-keymap-linux-to-qcode.c:147:
+  [0x8b] = Q_KEY_CODE_MENU, /* linux:139 (KEY_MENU) -> linux:139 (KEY_MENU) -> qcode:Q_KEY_CODE_MENU (menu) */

ERROR: line over 90 characters
#256: FILE: ui/input-keymap-linux-to-qcode.c:148:
+  [0x8c] = Q_KEY_CODE_CALCULATOR, /* linux:140 (KEY_CALC) -> linux:140 (KEY_CALC) -> qcode:Q_KEY_CODE_CALCULATOR (calculator) */

ERROR: line over 90 characters
#257: FILE: ui/input-keymap-linux-to-qcode.c:149:
+  [0x8d] = Q_KEY_CODE_UNMAPPED, /* linux:141 (KEY_SETUP) -> linux:141 (KEY_SETUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#258: FILE: ui/input-keymap-linux-to-qcode.c:150:
+  [0x8e] = Q_KEY_CODE_SLEEP, /* linux:142 (KEY_SLEEP) -> linux:142 (KEY_SLEEP) -> qcode:Q_KEY_CODE_SLEEP (sleep) */

ERROR: line over 90 characters
#259: FILE: ui/input-keymap-linux-to-qcode.c:151:
+  [0x8f] = Q_KEY_CODE_WAKE, /* linux:143 (KEY_WAKEUP) -> linux:143 (KEY_WAKEUP) -> qcode:Q_KEY_CODE_WAKE (wake) */

ERROR: line over 90 characters
#260: FILE: ui/input-keymap-linux-to-qcode.c:152:
+  [0x90] = Q_KEY_CODE_UNMAPPED, /* linux:144 (KEY_FILE) -> linux:144 (KEY_FILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#261: FILE: ui/input-keymap-linux-to-qcode.c:153:
+  [0x91] = Q_KEY_CODE_UNMAPPED, /* linux:145 (KEY_SENDFILE) -> linux:145 (KEY_SENDFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#262: FILE: ui/input-keymap-linux-to-qcode.c:154:
+  [0x92] = Q_KEY_CODE_UNMAPPED, /* linux:146 (KEY_DELETEFILE) -> linux:146 (KEY_DELETEFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#263: FILE: ui/input-keymap-linux-to-qcode.c:155:
+  [0x93] = Q_KEY_CODE_UNMAPPED, /* linux:147 (KEY_XFER) -> linux:147 (KEY_XFER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#264: FILE: ui/input-keymap-linux-to-qcode.c:156:
+  [0x94] = Q_KEY_CODE_UNMAPPED, /* linux:148 (KEY_PROG1) -> linux:148 (KEY_PROG1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#265: FILE: ui/input-keymap-linux-to-qcode.c:157:
+  [0x95] = Q_KEY_CODE_UNMAPPED, /* linux:149 (KEY_PROG2) -> linux:149 (KEY_PROG2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#266: FILE: ui/input-keymap-linux-to-qcode.c:158:
+  [0x96] = Q_KEY_CODE_UNMAPPED, /* linux:150 (KEY_WWW) -> linux:150 (KEY_WWW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#267: FILE: ui/input-keymap-linux-to-qcode.c:159:
+  [0x97] = Q_KEY_CODE_UNMAPPED, /* linux:151 (KEY_MSDOS) -> linux:151 (KEY_MSDOS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#268: FILE: ui/input-keymap-linux-to-qcode.c:160:
+  [0x98] = Q_KEY_CODE_UNMAPPED, /* linux:152 (KEY_SCREENLOCK) -> linux:152 (KEY_SCREENLOCK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#269: FILE: ui/input-keymap-linux-to-qcode.c:161:
+  [0x99] = Q_KEY_CODE_UNMAPPED, /* linux:153 (KEY_DIRECTION) -> linux:153 (KEY_DIRECTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#270: FILE: ui/input-keymap-linux-to-qcode.c:162:
+  [0x9a] = Q_KEY_CODE_UNMAPPED, /* linux:154 (KEY_CYCLEWINDOWS) -> linux:154 (KEY_CYCLEWINDOWS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#271: FILE: ui/input-keymap-linux-to-qcode.c:163:
+  [0x9b] = Q_KEY_CODE_MAIL, /* linux:155 (KEY_MAIL) -> linux:155 (KEY_MAIL) -> qcode:Q_KEY_CODE_MAIL (mail) */

ERROR: line over 90 characters
#272: FILE: ui/input-keymap-linux-to-qcode.c:164:
+  [0x9c] = Q_KEY_CODE_AC_BOOKMARKS, /* linux:156 (KEY_BOOKMARKS) -> linux:156 (KEY_BOOKMARKS) -> qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) */

ERROR: line over 90 characters
#273: FILE: ui/input-keymap-linux-to-qcode.c:165:
+  [0x9d] = Q_KEY_CODE_COMPUTER, /* linux:157 (KEY_COMPUTER) -> linux:157 (KEY_COMPUTER) -> qcode:Q_KEY_CODE_COMPUTER (computer) */

ERROR: line over 90 characters
#274: FILE: ui/input-keymap-linux-to-qcode.c:166:
+  [0x9e] = Q_KEY_CODE_AC_BACK, /* linux:158 (KEY_BACK) -> linux:158 (KEY_BACK) -> qcode:Q_KEY_CODE_AC_BACK (ac_back) */

ERROR: line over 90 characters
#275: FILE: ui/input-keymap-linux-to-qcode.c:167:
+  [0x9f] = Q_KEY_CODE_AC_FORWARD, /* linux:159 (KEY_FORWARD) -> linux:159 (KEY_FORWARD) -> qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) */

ERROR: line over 90 characters
#276: FILE: ui/input-keymap-linux-to-qcode.c:168:
+  [0xa0] = Q_KEY_CODE_UNMAPPED, /* linux:160 (KEY_CLOSECD) -> linux:160 (KEY_CLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#277: FILE: ui/input-keymap-linux-to-qcode.c:169:
+  [0xa1] = Q_KEY_CODE_UNMAPPED, /* linux:161 (KEY_EJECTCD) -> linux:161 (KEY_EJECTCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#278: FILE: ui/input-keymap-linux-to-qcode.c:170:
+  [0xa2] = Q_KEY_CODE_UNMAPPED, /* linux:162 (KEY_EJECTCLOSECD) -> linux:162 (KEY_EJECTCLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#279: FILE: ui/input-keymap-linux-to-qcode.c:171:
+  [0xa3] = Q_KEY_CODE_AUDIONEXT, /* linux:163 (KEY_NEXTSONG) -> linux:163 (KEY_NEXTSONG) -> qcode:Q_KEY_CODE_AUDIONEXT (audionext) */

ERROR: line over 90 characters
#280: FILE: ui/input-keymap-linux-to-qcode.c:172:
+  [0xa4] = Q_KEY_CODE_AUDIOPLAY, /* linux:164 (KEY_PLAYPAUSE) -> linux:164 (KEY_PLAYPAUSE) -> qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) */

ERROR: line over 90 characters
#281: FILE: ui/input-keymap-linux-to-qcode.c:173:
+  [0xa5] = Q_KEY_CODE_AUDIOPREV, /* linux:165 (KEY_PREVIOUSSONG) -> linux:165 (KEY_PREVIOUSSONG) -> qcode:Q_KEY_CODE_AUDIOPREV (audioprev) */

ERROR: line over 90 characters
#282: FILE: ui/input-keymap-linux-to-qcode.c:174:
+  [0xa6] = Q_KEY_CODE_AUDIOSTOP, /* linux:166 (KEY_STOPCD) -> linux:166 (KEY_STOPCD) -> qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) */

ERROR: line over 90 characters
#283: FILE: ui/input-keymap-linux-to-qcode.c:175:
+  [0xa7] = Q_KEY_CODE_UNMAPPED, /* linux:167 (KEY_RECORD) -> linux:167 (KEY_RECORD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#284: FILE: ui/input-keymap-linux-to-qcode.c:176:
+  [0xa8] = Q_KEY_CODE_UNMAPPED, /* linux:168 (KEY_REWIND) -> linux:168 (KEY_REWIND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#285: FILE: ui/input-keymap-linux-to-qcode.c:177:
+  [0xa9] = Q_KEY_CODE_UNMAPPED, /* linux:169 (KEY_PHONE) -> linux:169 (KEY_PHONE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#286: FILE: ui/input-keymap-linux-to-qcode.c:178:
+  [0xaa] = Q_KEY_CODE_UNMAPPED, /* linux:170 (KEY_ISO) -> linux:170 (KEY_ISO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#287: FILE: ui/input-keymap-linux-to-qcode.c:179:
+  [0xab] = Q_KEY_CODE_UNMAPPED, /* linux:171 (KEY_CONFIG) -> linux:171 (KEY_CONFIG) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#288: FILE: ui/input-keymap-linux-to-qcode.c:180:
+  [0xac] = Q_KEY_CODE_AC_HOME, /* linux:172 (KEY_HOMEPAGE) -> linux:172 (KEY_HOMEPAGE) -> qcode:Q_KEY_CODE_AC_HOME (ac_home) */

ERROR: line over 90 characters
#289: FILE: ui/input-keymap-linux-to-qcode.c:181:
+  [0xad] = Q_KEY_CODE_AC_REFRESH, /* linux:173 (KEY_REFRESH) -> linux:173 (KEY_REFRESH) -> qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) */

ERROR: line over 90 characters
#290: FILE: ui/input-keymap-linux-to-qcode.c:182:
+  [0xae] = Q_KEY_CODE_UNMAPPED, /* linux:174 (KEY_EXIT) -> linux:174 (KEY_EXIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#291: FILE: ui/input-keymap-linux-to-qcode.c:183:
+  [0xaf] = Q_KEY_CODE_UNMAPPED, /* linux:175 (KEY_MOVE) -> linux:175 (KEY_MOVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#292: FILE: ui/input-keymap-linux-to-qcode.c:184:
+  [0xb0] = Q_KEY_CODE_UNMAPPED, /* linux:176 (KEY_EDIT) -> linux:176 (KEY_EDIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#293: FILE: ui/input-keymap-linux-to-qcode.c:185:
+  [0xb1] = Q_KEY_CODE_UNMAPPED, /* linux:177 (KEY_SCROLLUP) -> linux:177 (KEY_SCROLLUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#294: FILE: ui/input-keymap-linux-to-qcode.c:186:
+  [0xb2] = Q_KEY_CODE_UNMAPPED, /* linux:178 (KEY_SCROLLDOWN) -> linux:178 (KEY_SCROLLDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#295: FILE: ui/input-keymap-linux-to-qcode.c:187:
+  [0xb3] = Q_KEY_CODE_UNMAPPED, /* linux:179 (KEY_KPLEFTPAREN) -> linux:179 (KEY_KPLEFTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#296: FILE: ui/input-keymap-linux-to-qcode.c:188:
+  [0xb4] = Q_KEY_CODE_UNMAPPED, /* linux:180 (KEY_KPRIGHTPAREN) -> linux:180 (KEY_KPRIGHTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#297: FILE: ui/input-keymap-linux-to-qcode.c:189:
+  [0xb5] = Q_KEY_CODE_UNMAPPED, /* linux:181 (KEY_NEW) -> linux:181 (KEY_NEW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#298: FILE: ui/input-keymap-linux-to-qcode.c:190:
+  [0xb6] = Q_KEY_CODE_UNMAPPED, /* linux:182 (KEY_REDO) -> linux:182 (KEY_REDO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#299: FILE: ui/input-keymap-linux-to-qcode.c:191:
+  [0xb7] = Q_KEY_CODE_UNMAPPED, /* linux:183 (KEY_F13) -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#300: FILE: ui/input-keymap-linux-to-qcode.c:192:
+  [0xb8] = Q_KEY_CODE_UNMAPPED, /* linux:184 (KEY_F14) -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#301: FILE: ui/input-keymap-linux-to-qcode.c:193:
+  [0xb9] = Q_KEY_CODE_UNMAPPED, /* linux:185 (KEY_F15) -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#302: FILE: ui/input-keymap-linux-to-qcode.c:194:
+  [0xba] = Q_KEY_CODE_UNMAPPED, /* linux:186 (KEY_F16) -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#303: FILE: ui/input-keymap-linux-to-qcode.c:195:
+  [0xbb] = Q_KEY_CODE_UNMAPPED, /* linux:187 (KEY_F17) -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#304: FILE: ui/input-keymap-linux-to-qcode.c:196:
+  [0xbc] = Q_KEY_CODE_UNMAPPED, /* linux:188 (KEY_F18) -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#305: FILE: ui/input-keymap-linux-to-qcode.c:197:
+  [0xbd] = Q_KEY_CODE_UNMAPPED, /* linux:189 (KEY_F19) -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#306: FILE: ui/input-keymap-linux-to-qcode.c:198:
+  [0xbe] = Q_KEY_CODE_UNMAPPED, /* linux:190 (KEY_F20) -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#307: FILE: ui/input-keymap-linux-to-qcode.c:199:
+  [0xbf] = Q_KEY_CODE_UNMAPPED, /* linux:191 (KEY_F21) -> linux:191 (KEY_F21) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#308: FILE: ui/input-keymap-linux-to-qcode.c:200:
+  [0xc0] = Q_KEY_CODE_UNMAPPED, /* linux:192 (KEY_F22) -> linux:192 (KEY_F22) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#309: FILE: ui/input-keymap-linux-to-qcode.c:201:
+  [0xc1] = Q_KEY_CODE_UNMAPPED, /* linux:193 (KEY_F23) -> linux:193 (KEY_F23) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#310: FILE: ui/input-keymap-linux-to-qcode.c:202:
+  [0xc2] = Q_KEY_CODE_UNMAPPED, /* linux:194 (KEY_F24) -> linux:194 (KEY_F24) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#311: FILE: ui/input-keymap-linux-to-qcode.c:203:
+  [0xc3] = Q_KEY_CODE_UNMAPPED, /* linux:195 (unnamed) -> linux:195 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#312: FILE: ui/input-keymap-linux-to-qcode.c:204:
+  [0xc4] = Q_KEY_CODE_UNMAPPED, /* linux:196 (unnamed) -> linux:196 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#313: FILE: ui/input-keymap-linux-to-qcode.c:205:
+  [0xc5] = Q_KEY_CODE_UNMAPPED, /* linux:197 (unnamed) -> linux:197 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#314: FILE: ui/input-keymap-linux-to-qcode.c:206:
+  [0xc6] = Q_KEY_CODE_UNMAPPED, /* linux:198 (unnamed) -> linux:198 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#315: FILE: ui/input-keymap-linux-to-qcode.c:207:
+  [0xc7] = Q_KEY_CODE_UNMAPPED, /* linux:199 (unnamed) -> linux:199 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#316: FILE: ui/input-keymap-linux-to-qcode.c:208:
+  [0xc8] = Q_KEY_CODE_UNMAPPED, /* linux:200 (KEY_PLAYCD) -> linux:200 (KEY_PLAYCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#317: FILE: ui/input-keymap-linux-to-qcode.c:209:
+  [0xc9] = Q_KEY_CODE_UNMAPPED, /* linux:201 (KEY_PAUSECD) -> linux:201 (KEY_PAUSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#318: FILE: ui/input-keymap-linux-to-qcode.c:210:
+  [0xca] = Q_KEY_CODE_UNMAPPED, /* linux:202 (KEY_PROG3) -> linux:202 (KEY_PROG3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#319: FILE: ui/input-keymap-linux-to-qcode.c:211:
+  [0xcb] = Q_KEY_CODE_UNMAPPED, /* linux:203 (KEY_PROG4) -> linux:203 (KEY_PROG4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#320: FILE: ui/input-keymap-linux-to-qcode.c:212:
+  [0xcc] = Q_KEY_CODE_UNMAPPED, /* linux:204 (KEY_DASHBOARD) -> linux:204 (KEY_DASHBOARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#321: FILE: ui/input-keymap-linux-to-qcode.c:213:
+  [0xcd] = Q_KEY_CODE_UNMAPPED, /* linux:205 (KEY_SUSPEND) -> linux:205 (KEY_SUSPEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#322: FILE: ui/input-keymap-linux-to-qcode.c:214:
+  [0xce] = Q_KEY_CODE_UNMAPPED, /* linux:206 (KEY_CLOSE) -> linux:206 (KEY_CLOSE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#323: FILE: ui/input-keymap-linux-to-qcode.c:215:
+  [0xcf] = Q_KEY_CODE_UNMAPPED, /* linux:207 (KEY_PLAY) -> linux:207 (KEY_PLAY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#324: FILE: ui/input-keymap-linux-to-qcode.c:216:
+  [0xd0] = Q_KEY_CODE_UNMAPPED, /* linux:208 (KEY_FASTFORWARD) -> linux:208 (KEY_FASTFORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#325: FILE: ui/input-keymap-linux-to-qcode.c:217:
+  [0xd1] = Q_KEY_CODE_UNMAPPED, /* linux:209 (KEY_BASSBOOST) -> linux:209 (KEY_BASSBOOST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#326: FILE: ui/input-keymap-linux-to-qcode.c:218:
+  [0xd2] = Q_KEY_CODE_UNMAPPED, /* linux:210 (KEY_PRINT) -> linux:210 (KEY_PRINT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#327: FILE: ui/input-keymap-linux-to-qcode.c:219:
+  [0xd3] = Q_KEY_CODE_UNMAPPED, /* linux:211 (KEY_HP) -> linux:211 (KEY_HP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#328: FILE: ui/input-keymap-linux-to-qcode.c:220:
+  [0xd4] = Q_KEY_CODE_UNMAPPED, /* linux:212 (KEY_CAMERA) -> linux:212 (KEY_CAMERA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#329: FILE: ui/input-keymap-linux-to-qcode.c:221:
+  [0xd5] = Q_KEY_CODE_UNMAPPED, /* linux:213 (KEY_SOUND) -> linux:213 (KEY_SOUND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#330: FILE: ui/input-keymap-linux-to-qcode.c:222:
+  [0xd6] = Q_KEY_CODE_UNMAPPED, /* linux:214 (KEY_QUESTION) -> linux:214 (KEY_QUESTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#331: FILE: ui/input-keymap-linux-to-qcode.c:223:
+  [0xd7] = Q_KEY_CODE_UNMAPPED, /* linux:215 (KEY_EMAIL) -> linux:215 (KEY_EMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#332: FILE: ui/input-keymap-linux-to-qcode.c:224:
+  [0xd8] = Q_KEY_CODE_UNMAPPED, /* linux:216 (KEY_CHAT) -> linux:216 (KEY_CHAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#333: FILE: ui/input-keymap-linux-to-qcode.c:225:
+  [0xd9] = Q_KEY_CODE_UNMAPPED, /* linux:217 (KEY_SEARCH) -> linux:217 (KEY_SEARCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#334: FILE: ui/input-keymap-linux-to-qcode.c:226:
+  [0xda] = Q_KEY_CODE_UNMAPPED, /* linux:218 (KEY_CONNECT) -> linux:218 (KEY_CONNECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#335: FILE: ui/input-keymap-linux-to-qcode.c:227:
+  [0xdb] = Q_KEY_CODE_UNMAPPED, /* linux:219 (KEY_FINANCE) -> linux:219 (KEY_FINANCE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#336: FILE: ui/input-keymap-linux-to-qcode.c:228:
+  [0xdc] = Q_KEY_CODE_UNMAPPED, /* linux:220 (KEY_SPORT) -> linux:220 (KEY_SPORT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#337: FILE: ui/input-keymap-linux-to-qcode.c:229:
+  [0xdd] = Q_KEY_CODE_UNMAPPED, /* linux:221 (KEY_SHOP) -> linux:221 (KEY_SHOP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#338: FILE: ui/input-keymap-linux-to-qcode.c:230:
+  [0xde] = Q_KEY_CODE_UNMAPPED, /* linux:222 (KEY_ALTERASE) -> linux:222 (KEY_ALTERASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#339: FILE: ui/input-keymap-linux-to-qcode.c:231:
+  [0xdf] = Q_KEY_CODE_UNMAPPED, /* linux:223 (KEY_CANCEL) -> linux:223 (KEY_CANCEL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#340: FILE: ui/input-keymap-linux-to-qcode.c:232:
+  [0xe0] = Q_KEY_CODE_UNMAPPED, /* linux:224 (KEY_BRIGHTNESSDOWN) -> linux:224 (KEY_BRIGHTNESSDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#341: FILE: ui/input-keymap-linux-to-qcode.c:233:
+  [0xe1] = Q_KEY_CODE_UNMAPPED, /* linux:225 (KEY_BRIGHTNESSUP) -> linux:225 (KEY_BRIGHTNESSUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#342: FILE: ui/input-keymap-linux-to-qcode.c:234:
+  [0xe2] = Q_KEY_CODE_MEDIASELECT, /* linux:226 (KEY_MEDIA) -> linux:226 (KEY_MEDIA) -> qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) */

ERROR: line over 90 characters
#343: FILE: ui/input-keymap-linux-to-qcode.c:235:
+  [0xe3] = Q_KEY_CODE_UNMAPPED, /* linux:227 (KEY_SWITCHVIDEOMODE) -> linux:227 (KEY_SWITCHVIDEOMODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#344: FILE: ui/input-keymap-linux-to-qcode.c:236:
+  [0xe4] = Q_KEY_CODE_UNMAPPED, /* linux:228 (KEY_KBDILLUMTOGGLE) -> linux:228 (KEY_KBDILLUMTOGGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#345: FILE: ui/input-keymap-linux-to-qcode.c:237:
+  [0xe5] = Q_KEY_CODE_UNMAPPED, /* linux:229 (KEY_KBDILLUMDOWN) -> linux:229 (KEY_KBDILLUMDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#346: FILE: ui/input-keymap-linux-to-qcode.c:238:
+  [0xe6] = Q_KEY_CODE_UNMAPPED, /* linux:230 (KEY_KBDILLUMUP) -> linux:230 (KEY_KBDILLUMUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#347: FILE: ui/input-keymap-linux-to-qcode.c:239:
+  [0xe7] = Q_KEY_CODE_UNMAPPED, /* linux:231 (KEY_SEND) -> linux:231 (KEY_SEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#348: FILE: ui/input-keymap-linux-to-qcode.c:240:
+  [0xe8] = Q_KEY_CODE_UNMAPPED, /* linux:232 (KEY_REPLY) -> linux:232 (KEY_REPLY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#349: FILE: ui/input-keymap-linux-to-qcode.c:241:
+  [0xe9] = Q_KEY_CODE_UNMAPPED, /* linux:233 (KEY_FORWARDMAIL) -> linux:233 (KEY_FORWARDMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#350: FILE: ui/input-keymap-linux-to-qcode.c:242:
+  [0xea] = Q_KEY_CODE_UNMAPPED, /* linux:234 (KEY_SAVE) -> linux:234 (KEY_SAVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#351: FILE: ui/input-keymap-linux-to-qcode.c:243:
+  [0xeb] = Q_KEY_CODE_UNMAPPED, /* linux:235 (KEY_DOCUMENTS) -> linux:235 (KEY_DOCUMENTS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#352: FILE: ui/input-keymap-linux-to-qcode.c:244:
+  [0xec] = Q_KEY_CODE_UNMAPPED, /* linux:236 (KEY_BATTERY) -> linux:236 (KEY_BATTERY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#353: FILE: ui/input-keymap-linux-to-qcode.c:245:
+  [0xed] = Q_KEY_CODE_UNMAPPED, /* linux:237 (KEY_BLUETOOTH) -> linux:237 (KEY_BLUETOOTH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#354: FILE: ui/input-keymap-linux-to-qcode.c:246:
+  [0xee] = Q_KEY_CODE_UNMAPPED, /* linux:238 (KEY_WLAN) -> linux:238 (KEY_WLAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#355: FILE: ui/input-keymap-linux-to-qcode.c:247:
+  [0xef] = Q_KEY_CODE_UNMAPPED, /* linux:239 (KEY_UWB) -> linux:239 (KEY_UWB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#356: FILE: ui/input-keymap-linux-to-qcode.c:248:
+  [0xf0] = Q_KEY_CODE_UNMAPPED, /* linux:240 (KEY_UNKNOWN) -> linux:240 (KEY_UNKNOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#357: FILE: ui/input-keymap-linux-to-qcode.c:249:
+  [0xf1] = Q_KEY_CODE_UNMAPPED, /* linux:241 (KEY_VIDEO_NEXT) -> linux:241 (KEY_VIDEO_NEXT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#358: FILE: ui/input-keymap-linux-to-qcode.c:250:
+  [0xf2] = Q_KEY_CODE_UNMAPPED, /* linux:242 (KEY_VIDEO_PREV) -> linux:242 (KEY_VIDEO_PREV) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#359: FILE: ui/input-keymap-linux-to-qcode.c:251:
+  [0xf3] = Q_KEY_CODE_UNMAPPED, /* linux:243 (KEY_BRIGHTNESS_CYCLE) -> linux:243 (KEY_BRIGHTNESS_CYCLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#360: FILE: ui/input-keymap-linux-to-qcode.c:252:
+  [0xf4] = Q_KEY_CODE_UNMAPPED, /* linux:244 (KEY_BRIGHTNESS_ZERO) -> linux:244 (KEY_BRIGHTNESS_ZERO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#361: FILE: ui/input-keymap-linux-to-qcode.c:253:
+  [0xf5] = Q_KEY_CODE_UNMAPPED, /* linux:245 (KEY_DISPLAY_OFF) -> linux:245 (KEY_DISPLAY_OFF) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#362: FILE: ui/input-keymap-linux-to-qcode.c:254:
+  [0xf6] = Q_KEY_CODE_UNMAPPED, /* linux:246 (KEY_WIMAX) -> linux:246 (KEY_WIMAX) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#363: FILE: ui/input-keymap-linux-to-qcode.c:255:
+  [0xf7] = Q_KEY_CODE_UNMAPPED, /* linux:247 (unnamed) -> linux:247 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#364: FILE: ui/input-keymap-linux-to-qcode.c:256:
+  [0xf8] = Q_KEY_CODE_UNMAPPED, /* linux:248 (unnamed) -> linux:248 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#365: FILE: ui/input-keymap-linux-to-qcode.c:257:
+  [0xf9] = Q_KEY_CODE_UNMAPPED, /* linux:249 (unnamed) -> linux:249 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#366: FILE: ui/input-keymap-linux-to-qcode.c:258:
+  [0xfa] = Q_KEY_CODE_UNMAPPED, /* linux:250 (unnamed) -> linux:250 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#367: FILE: ui/input-keymap-linux-to-qcode.c:259:
+  [0xfb] = Q_KEY_CODE_UNMAPPED, /* linux:251 (unnamed) -> linux:251 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#368: FILE: ui/input-keymap-linux-to-qcode.c:260:
+  [0xfc] = Q_KEY_CODE_UNMAPPED, /* linux:252 (unnamed) -> linux:252 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#369: FILE: ui/input-keymap-linux-to-qcode.c:261:
+  [0xfd] = Q_KEY_CODE_UNMAPPED, /* linux:253 (unnamed) -> linux:253 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#370: FILE: ui/input-keymap-linux-to-qcode.c:262:
+  [0xfe] = Q_KEY_CODE_UNMAPPED, /* linux:254 (unnamed) -> linux:254 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#371: FILE: ui/input-keymap-linux-to-qcode.c:263:
+  [0xff] = Q_KEY_CODE_UNMAPPED, /* linux:255 (unnamed) -> linux:255 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#372: FILE: ui/input-keymap-linux-to-qcode.c:264:
+  [0x100] = Q_KEY_CODE_UNMAPPED, /* linux:256 (BTN_0) -> linux:256 (BTN_0) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#373: FILE: ui/input-keymap-linux-to-qcode.c:265:
+  [0x101] = Q_KEY_CODE_UNMAPPED, /* linux:257 (BTN_1) -> linux:257 (BTN_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#374: FILE: ui/input-keymap-linux-to-qcode.c:266:
+  [0x102] = Q_KEY_CODE_UNMAPPED, /* linux:258 (BTN_2) -> linux:258 (BTN_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#375: FILE: ui/input-keymap-linux-to-qcode.c:267:
+  [0x103] = Q_KEY_CODE_UNMAPPED, /* linux:259 (BTN_3) -> linux:259 (BTN_3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#376: FILE: ui/input-keymap-linux-to-qcode.c:268:
+  [0x104] = Q_KEY_CODE_UNMAPPED, /* linux:260 (BTN_4) -> linux:260 (BTN_4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#377: FILE: ui/input-keymap-linux-to-qcode.c:269:
+  [0x105] = Q_KEY_CODE_UNMAPPED, /* linux:261 (BTN_5) -> linux:261 (BTN_5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#378: FILE: ui/input-keymap-linux-to-qcode.c:270:
+  [0x106] = Q_KEY_CODE_UNMAPPED, /* linux:262 (BTN_6) -> linux:262 (BTN_6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#379: FILE: ui/input-keymap-linux-to-qcode.c:271:
+  [0x107] = Q_KEY_CODE_UNMAPPED, /* linux:263 (BTN_7) -> linux:263 (BTN_7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#380: FILE: ui/input-keymap-linux-to-qcode.c:272:
+  [0x108] = Q_KEY_CODE_UNMAPPED, /* linux:264 (BTN_8) -> linux:264 (BTN_8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#381: FILE: ui/input-keymap-linux-to-qcode.c:273:
+  [0x109] = Q_KEY_CODE_UNMAPPED, /* linux:265 (BTN_9) -> linux:265 (BTN_9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#382: FILE: ui/input-keymap-linux-to-qcode.c:274:
+  [0x110] = Q_KEY_CODE_UNMAPPED, /* linux:272 (BTN_LEFT) -> linux:272 (BTN_LEFT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#383: FILE: ui/input-keymap-linux-to-qcode.c:275:
+  [0x111] = Q_KEY_CODE_UNMAPPED, /* linux:273 (BTN_RIGHT) -> linux:273 (BTN_RIGHT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#384: FILE: ui/input-keymap-linux-to-qcode.c:276:
+  [0x112] = Q_KEY_CODE_UNMAPPED, /* linux:274 (BTN_MIDDLE) -> linux:274 (BTN_MIDDLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#385: FILE: ui/input-keymap-linux-to-qcode.c:277:
+  [0x113] = Q_KEY_CODE_UNMAPPED, /* linux:275 (BTN_SIDE) -> linux:275 (BTN_SIDE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#386: FILE: ui/input-keymap-linux-to-qcode.c:278:
+  [0x114] = Q_KEY_CODE_UNMAPPED, /* linux:276 (BTN_EXTRA) -> linux:276 (BTN_EXTRA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#387: FILE: ui/input-keymap-linux-to-qcode.c:279:
+  [0x115] = Q_KEY_CODE_UNMAPPED, /* linux:277 (BTN_FORWARD) -> linux:277 (BTN_FORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#388: FILE: ui/input-keymap-linux-to-qcode.c:280:
+  [0x116] = Q_KEY_CODE_UNMAPPED, /* linux:278 (BTN_BACK) -> linux:278 (BTN_BACK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#389: FILE: ui/input-keymap-linux-to-qcode.c:281:
+  [0x117] = Q_KEY_CODE_UNMAPPED, /* linux:279 (BTN_TASK) -> linux:279 (BTN_TASK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#390: FILE: ui/input-keymap-linux-to-qcode.c:282:
+  [0x120] = Q_KEY_CODE_UNMAPPED, /* linux:288 (BTN_TRIGGER) -> linux:288 (BTN_TRIGGER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#391: FILE: ui/input-keymap-linux-to-qcode.c:283:
+  [0x121] = Q_KEY_CODE_UNMAPPED, /* linux:289 (BTN_THUMB) -> linux:289 (BTN_THUMB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#392: FILE: ui/input-keymap-linux-to-qcode.c:284:
+  [0x122] = Q_KEY_CODE_UNMAPPED, /* linux:290 (BTN_THUMB2) -> linux:290 (BTN_THUMB2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#393: FILE: ui/input-keymap-linux-to-qcode.c:285:
+  [0x123] = Q_KEY_CODE_UNMAPPED, /* linux:291 (BTN_TOP) -> linux:291 (BTN_TOP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#394: FILE: ui/input-keymap-linux-to-qcode.c:286:
+  [0x124] = Q_KEY_CODE_UNMAPPED, /* linux:292 (BTN_TOP2) -> linux:292 (BTN_TOP2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#395: FILE: ui/input-keymap-linux-to-qcode.c:287:
+  [0x125] = Q_KEY_CODE_UNMAPPED, /* linux:293 (BTN_PINKIE) -> linux:293 (BTN_PINKIE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#396: FILE: ui/input-keymap-linux-to-qcode.c:288:
+  [0x126] = Q_KEY_CODE_UNMAPPED, /* linux:294 (BTN_BASE) -> linux:294 (BTN_BASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#397: FILE: ui/input-keymap-linux-to-qcode.c:289:
+  [0x127] = Q_KEY_CODE_UNMAPPED, /* linux:295 (BTN_BASE2) -> linux:295 (BTN_BASE2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#398: FILE: ui/input-keymap-linux-to-qcode.c:290:
+  [0x128] = Q_KEY_CODE_UNMAPPED, /* linux:296 (BTN_BASE3) -> linux:296 (BTN_BASE3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#399: FILE: ui/input-keymap-linux-to-qcode.c:291:
+  [0x129] = Q_KEY_CODE_UNMAPPED, /* linux:297 (BTN_BASE4) -> linux:297 (BTN_BASE4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#400: FILE: ui/input-keymap-linux-to-qcode.c:292:
+  [0x12a] = Q_KEY_CODE_UNMAPPED, /* linux:298 (BTN_BASE5) -> linux:298 (BTN_BASE5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#401: FILE: ui/input-keymap-linux-to-qcode.c:293:
+  [0x12b] = Q_KEY_CODE_UNMAPPED, /* linux:299 (BTN_BASE6) -> linux:299 (BTN_BASE6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#402: FILE: ui/input-keymap-linux-to-qcode.c:294:
+  [0x12f] = Q_KEY_CODE_UNMAPPED, /* linux:303 (BTN_DEAD) -> linux:303 (BTN_DEAD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#403: FILE: ui/input-keymap-linux-to-qcode.c:295:
+  [0x130] = Q_KEY_CODE_UNMAPPED, /* linux:304 (BTN_A) -> linux:304 (BTN_A) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#404: FILE: ui/input-keymap-linux-to-qcode.c:296:
+  [0x131] = Q_KEY_CODE_UNMAPPED, /* linux:305 (BTN_B) -> linux:305 (BTN_B) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#405: FILE: ui/input-keymap-linux-to-qcode.c:297:
+  [0x132] = Q_KEY_CODE_UNMAPPED, /* linux:306 (BTN_C) -> linux:306 (BTN_C) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#406: FILE: ui/input-keymap-linux-to-qcode.c:298:
+  [0x133] = Q_KEY_CODE_UNMAPPED, /* linux:307 (BTN_X) -> linux:307 (BTN_X) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#407: FILE: ui/input-keymap-linux-to-qcode.c:299:
+  [0x134] = Q_KEY_CODE_UNMAPPED, /* linux:308 (BTN_Y) -> linux:308 (BTN_Y) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#408: FILE: ui/input-keymap-linux-to-qcode.c:300:
+  [0x135] = Q_KEY_CODE_UNMAPPED, /* linux:309 (BTN_Z) -> linux:309 (BTN_Z) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#409: FILE: ui/input-keymap-linux-to-qcode.c:301:
+  [0x136] = Q_KEY_CODE_UNMAPPED, /* linux:310 (BTN_TL) -> linux:310 (BTN_TL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#410: FILE: ui/input-keymap-linux-to-qcode.c:302:
+  [0x137] = Q_KEY_CODE_UNMAPPED, /* linux:311 (BTN_TR) -> linux:311 (BTN_TR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#411: FILE: ui/input-keymap-linux-to-qcode.c:303:
+  [0x138] = Q_KEY_CODE_UNMAPPED, /* linux:312 (BTN_TL2) -> linux:312 (BTN_TL2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#412: FILE: ui/input-keymap-linux-to-qcode.c:304:
+  [0x139] = Q_KEY_CODE_UNMAPPED, /* linux:313 (BTN_TR2) -> linux:313 (BTN_TR2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#413: FILE: ui/input-keymap-linux-to-qcode.c:305:
+  [0x13a] = Q_KEY_CODE_UNMAPPED, /* linux:314 (BTN_SELECT) -> linux:314 (BTN_SELECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#414: FILE: ui/input-keymap-linux-to-qcode.c:306:
+  [0x13b] = Q_KEY_CODE_UNMAPPED, /* linux:315 (BTN_START) -> linux:315 (BTN_START) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#415: FILE: ui/input-keymap-linux-to-qcode.c:307:
+  [0x13c] = Q_KEY_CODE_UNMAPPED, /* linux:316 (BTN_MODE) -> linux:316 (BTN_MODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#416: FILE: ui/input-keymap-linux-to-qcode.c:308:
+  [0x13d] = Q_KEY_CODE_UNMAPPED, /* linux:317 (BTN_THUMBL) -> linux:317 (BTN_THUMBL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#417: FILE: ui/input-keymap-linux-to-qcode.c:309:
+  [0x13e] = Q_KEY_CODE_UNMAPPED, /* linux:318 (BTN_THUMBR) -> linux:318 (BTN_THUMBR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#418: FILE: ui/input-keymap-linux-to-qcode.c:310:
+  [0x140] = Q_KEY_CODE_UNMAPPED, /* linux:320 (BTN_TOOL_PEN) -> linux:320 (BTN_TOOL_PEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#419: FILE: ui/input-keymap-linux-to-qcode.c:311:
+  [0x141] = Q_KEY_CODE_UNMAPPED, /* linux:321 (BTN_TOOL_RUBBER) -> linux:321 (BTN_TOOL_RUBBER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#420: FILE: ui/input-keymap-linux-to-qcode.c:312:
+  [0x142] = Q_KEY_CODE_UNMAPPED, /* linux:322 (BTN_TOOL_BRUSH) -> linux:322 (BTN_TOOL_BRUSH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#421: FILE: ui/input-keymap-linux-to-qcode.c:313:
+  [0x143] = Q_KEY_CODE_UNMAPPED, /* linux:323 (BTN_TOOL_PENCIL) -> linux:323 (BTN_TOOL_PENCIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#422: FILE: ui/input-keymap-linux-to-qcode.c:314:
+  [0x144] = Q_KEY_CODE_UNMAPPED, /* linux:324 (BTN_TOOL_AIRBRUSH) -> linux:324 (BTN_TOOL_AIRBRUSH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#423: FILE: ui/input-keymap-linux-to-qcode.c:315:
+  [0x145] = Q_KEY_CODE_UNMAPPED, /* linux:325 (BTN_TOOL_FINGER) -> linux:325 (BTN_TOOL_FINGER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#424: FILE: ui/input-keymap-linux-to-qcode.c:316:
+  [0x146] = Q_KEY_CODE_UNMAPPED, /* linux:326 (BTN_TOOL_MOUSE) -> linux:326 (BTN_TOOL_MOUSE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#425: FILE: ui/input-keymap-linux-to-qcode.c:317:
+  [0x147] = Q_KEY_CODE_UNMAPPED, /* linux:327 (BTN_TOOL_LENS) -> linux:327 (BTN_TOOL_LENS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#426: FILE: ui/input-keymap-linux-to-qcode.c:318:
+  [0x14a] = Q_KEY_CODE_UNMAPPED, /* linux:330 (BTN_TOUCH) -> linux:330 (BTN_TOUCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#427: FILE: ui/input-keymap-linux-to-qcode.c:319:
+  [0x14b] = Q_KEY_CODE_UNMAPPED, /* linux:331 (BTN_STYLUS) -> linux:331 (BTN_STYLUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#428: FILE: ui/input-keymap-linux-to-qcode.c:320:
+  [0x14c] = Q_KEY_CODE_UNMAPPED, /* linux:332 (BTN_STYLUS2) -> linux:332 (BTN_STYLUS2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#429: FILE: ui/input-keymap-linux-to-qcode.c:321:
+  [0x14d] = Q_KEY_CODE_UNMAPPED, /* linux:333 (BTN_TOOL_DOUBLETAP) -> linux:333 (BTN_TOOL_DOUBLETAP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#430: FILE: ui/input-keymap-linux-to-qcode.c:322:
+  [0x14e] = Q_KEY_CODE_UNMAPPED, /* linux:334 (BTN_TOOL_TRIPLETAP) -> linux:334 (BTN_TOOL_TRIPLETAP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#431: FILE: ui/input-keymap-linux-to-qcode.c:323:
+  [0x14f] = Q_KEY_CODE_UNMAPPED, /* linux:335 (BTN_TOOL_QUADTAP) -> linux:335 (BTN_TOOL_QUADTAP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#432: FILE: ui/input-keymap-linux-to-qcode.c:324:
+  [0x150] = Q_KEY_CODE_UNMAPPED, /* linux:336 (BTN_GEAR_DOWN) -> linux:336 (BTN_GEAR_DOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#433: FILE: ui/input-keymap-linux-to-qcode.c:325:
+  [0x151] = Q_KEY_CODE_UNMAPPED, /* linux:337 (BTN_GEAR_UP) -> linux:337 (BTN_GEAR_UP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#434: FILE: ui/input-keymap-linux-to-qcode.c:326:
+  [0x160] = Q_KEY_CODE_UNMAPPED, /* linux:352 (KEY_OK) -> linux:352 (KEY_OK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#435: FILE: ui/input-keymap-linux-to-qcode.c:327:
+  [0x161] = Q_KEY_CODE_UNMAPPED, /* linux:353 (KEY_SELECT) -> linux:353 (KEY_SELECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#436: FILE: ui/input-keymap-linux-to-qcode.c:328:
+  [0x162] = Q_KEY_CODE_UNMAPPED, /* linux:354 (KEY_GOTO) -> linux:354 (KEY_GOTO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#437: FILE: ui/input-keymap-linux-to-qcode.c:329:
+  [0x163] = Q_KEY_CODE_UNMAPPED, /* linux:355 (KEY_CLEAR) -> linux:355 (KEY_CLEAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#438: FILE: ui/input-keymap-linux-to-qcode.c:330:
+  [0x164] = Q_KEY_CODE_UNMAPPED, /* linux:356 (KEY_POWER2) -> linux:356 (KEY_POWER2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#439: FILE: ui/input-keymap-linux-to-qcode.c:331:
+  [0x165] = Q_KEY_CODE_UNMAPPED, /* linux:357 (KEY_OPTION) -> linux:357 (KEY_OPTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#440: FILE: ui/input-keymap-linux-to-qcode.c:332:
+  [0x166] = Q_KEY_CODE_UNMAPPED, /* linux:358 (KEY_INFO) -> linux:358 (KEY_INFO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#441: FILE: ui/input-keymap-linux-to-qcode.c:333:
+  [0x167] = Q_KEY_CODE_UNMAPPED, /* linux:359 (KEY_TIME) -> linux:359 (KEY_TIME) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#442: FILE: ui/input-keymap-linux-to-qcode.c:334:
+  [0x168] = Q_KEY_CODE_UNMAPPED, /* linux:360 (KEY_VENDOR) -> linux:360 (KEY_VENDOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#443: FILE: ui/input-keymap-linux-to-qcode.c:335:
+  [0x169] = Q_KEY_CODE_UNMAPPED, /* linux:361 (KEY_ARCHIVE) -> linux:361 (KEY_ARCHIVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#444: FILE: ui/input-keymap-linux-to-qcode.c:336:
+  [0x16a] = Q_KEY_CODE_UNMAPPED, /* linux:362 (KEY_PROGRAM) -> linux:362 (KEY_PROGRAM) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#445: FILE: ui/input-keymap-linux-to-qcode.c:337:
+  [0x16b] = Q_KEY_CODE_UNMAPPED, /* linux:363 (KEY_CHANNEL) -> linux:363 (KEY_CHANNEL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#446: FILE: ui/input-keymap-linux-to-qcode.c:338:
+  [0x16c] = Q_KEY_CODE_UNMAPPED, /* linux:364 (KEY_FAVORITES) -> linux:364 (KEY_FAVORITES) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#447: FILE: ui/input-keymap-linux-to-qcode.c:339:
+  [0x16d] = Q_KEY_CODE_UNMAPPED, /* linux:365 (KEY_EPG) -> linux:365 (KEY_EPG) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#448: FILE: ui/input-keymap-linux-to-qcode.c:340:
+  [0x16e] = Q_KEY_CODE_UNMAPPED, /* linux:366 (KEY_PVR) -> linux:366 (KEY_PVR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#449: FILE: ui/input-keymap-linux-to-qcode.c:341:
+  [0x16f] = Q_KEY_CODE_UNMAPPED, /* linux:367 (KEY_MHP) -> linux:367 (KEY_MHP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#450: FILE: ui/input-keymap-linux-to-qcode.c:342:
+  [0x170] = Q_KEY_CODE_UNMAPPED, /* linux:368 (KEY_LANGUAGE) -> linux:368 (KEY_LANGUAGE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#451: FILE: ui/input-keymap-linux-to-qcode.c:343:
+  [0x171] = Q_KEY_CODE_UNMAPPED, /* linux:369 (KEY_TITLE) -> linux:369 (KEY_TITLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#452: FILE: ui/input-keymap-linux-to-qcode.c:344:
+  [0x172] = Q_KEY_CODE_UNMAPPED, /* linux:370 (KEY_SUBTITLE) -> linux:370 (KEY_SUBTITLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#453: FILE: ui/input-keymap-linux-to-qcode.c:345:
+  [0x173] = Q_KEY_CODE_UNMAPPED, /* linux:371 (KEY_ANGLE) -> linux:371 (KEY_ANGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#454: FILE: ui/input-keymap-linux-to-qcode.c:346:
+  [0x174] = Q_KEY_CODE_UNMAPPED, /* linux:372 (KEY_ZOOM) -> linux:372 (KEY_ZOOM) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#455: FILE: ui/input-keymap-linux-to-qcode.c:347:
+  [0x175] = Q_KEY_CODE_UNMAPPED, /* linux:373 (KEY_MODE) -> linux:373 (KEY_MODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#456: FILE: ui/input-keymap-linux-to-qcode.c:348:
+  [0x176] = Q_KEY_CODE_UNMAPPED, /* linux:374 (KEY_KEYBOARD) -> linux:374 (KEY_KEYBOARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#457: FILE: ui/input-keymap-linux-to-qcode.c:349:
+  [0x177] = Q_KEY_CODE_UNMAPPED, /* linux:375 (KEY_SCREEN) -> linux:375 (KEY_SCREEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#458: FILE: ui/input-keymap-linux-to-qcode.c:350:
+  [0x178] = Q_KEY_CODE_UNMAPPED, /* linux:376 (KEY_PC) -> linux:376 (KEY_PC) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#459: FILE: ui/input-keymap-linux-to-qcode.c:351:
+  [0x179] = Q_KEY_CODE_UNMAPPED, /* linux:377 (KEY_TV) -> linux:377 (KEY_TV) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#460: FILE: ui/input-keymap-linux-to-qcode.c:352:
+  [0x17a] = Q_KEY_CODE_UNMAPPED, /* linux:378 (KEY_TV2) -> linux:378 (KEY_TV2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#461: FILE: ui/input-keymap-linux-to-qcode.c:353:
+  [0x17b] = Q_KEY_CODE_UNMAPPED, /* linux:379 (KEY_VCR) -> linux:379 (KEY_VCR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#462: FILE: ui/input-keymap-linux-to-qcode.c:354:
+  [0x17c] = Q_KEY_CODE_UNMAPPED, /* linux:380 (KEY_VCR2) -> linux:380 (KEY_VCR2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#463: FILE: ui/input-keymap-linux-to-qcode.c:355:
+  [0x17d] = Q_KEY_CODE_UNMAPPED, /* linux:381 (KEY_SAT) -> linux:381 (KEY_SAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#464: FILE: ui/input-keymap-linux-to-qcode.c:356:
+  [0x17e] = Q_KEY_CODE_UNMAPPED, /* linux:382 (KEY_SAT2) -> linux:382 (KEY_SAT2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#465: FILE: ui/input-keymap-linux-to-qcode.c:357:
+  [0x17f] = Q_KEY_CODE_UNMAPPED, /* linux:383 (KEY_CD) -> linux:383 (KEY_CD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#466: FILE: ui/input-keymap-linux-to-qcode.c:358:
+  [0x180] = Q_KEY_CODE_UNMAPPED, /* linux:384 (KEY_TAPE) -> linux:384 (KEY_TAPE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#467: FILE: ui/input-keymap-linux-to-qcode.c:359:
+  [0x181] = Q_KEY_CODE_UNMAPPED, /* linux:385 (KEY_RADIO) -> linux:385 (KEY_RADIO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#468: FILE: ui/input-keymap-linux-to-qcode.c:360:
+  [0x182] = Q_KEY_CODE_UNMAPPED, /* linux:386 (KEY_TUNER) -> linux:386 (KEY_TUNER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#469: FILE: ui/input-keymap-linux-to-qcode.c:361:
+  [0x183] = Q_KEY_CODE_UNMAPPED, /* linux:387 (KEY_PLAYER) -> linux:387 (KEY_PLAYER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#470: FILE: ui/input-keymap-linux-to-qcode.c:362:
+  [0x184] = Q_KEY_CODE_UNMAPPED, /* linux:388 (KEY_TEXT) -> linux:388 (KEY_TEXT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#471: FILE: ui/input-keymap-linux-to-qcode.c:363:
+  [0x185] = Q_KEY_CODE_UNMAPPED, /* linux:389 (KEY_DVD) -> linux:389 (KEY_DVD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#472: FILE: ui/input-keymap-linux-to-qcode.c:364:
+  [0x186] = Q_KEY_CODE_UNMAPPED, /* linux:390 (KEY_AUX) -> linux:390 (KEY_AUX) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#473: FILE: ui/input-keymap-linux-to-qcode.c:365:
+  [0x187] = Q_KEY_CODE_UNMAPPED, /* linux:391 (KEY_MP3) -> linux:391 (KEY_MP3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#474: FILE: ui/input-keymap-linux-to-qcode.c:366:
+  [0x188] = Q_KEY_CODE_UNMAPPED, /* linux:392 (KEY_AUDIO) -> linux:392 (KEY_AUDIO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#475: FILE: ui/input-keymap-linux-to-qcode.c:367:
+  [0x189] = Q_KEY_CODE_UNMAPPED, /* linux:393 (KEY_VIDEO) -> linux:393 (KEY_VIDEO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#476: FILE: ui/input-keymap-linux-to-qcode.c:368:
+  [0x18a] = Q_KEY_CODE_UNMAPPED, /* linux:394 (KEY_DIRECTORY) -> linux:394 (KEY_DIRECTORY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#477: FILE: ui/input-keymap-linux-to-qcode.c:369:
+  [0x18b] = Q_KEY_CODE_UNMAPPED, /* linux:395 (KEY_LIST) -> linux:395 (KEY_LIST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#478: FILE: ui/input-keymap-linux-to-qcode.c:370:
+  [0x18c] = Q_KEY_CODE_UNMAPPED, /* linux:396 (KEY_MEMO) -> linux:396 (KEY_MEMO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#479: FILE: ui/input-keymap-linux-to-qcode.c:371:
+  [0x18d] = Q_KEY_CODE_UNMAPPED, /* linux:397 (KEY_CALENDAR) -> linux:397 (KEY_CALENDAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#480: FILE: ui/input-keymap-linux-to-qcode.c:372:
+  [0x18e] = Q_KEY_CODE_UNMAPPED, /* linux:398 (KEY_RED) -> linux:398 (KEY_RED) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#481: FILE: ui/input-keymap-linux-to-qcode.c:373:
+  [0x18f] = Q_KEY_CODE_UNMAPPED, /* linux:399 (KEY_GREEN) -> linux:399 (KEY_GREEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#482: FILE: ui/input-keymap-linux-to-qcode.c:374:
+  [0x190] = Q_KEY_CODE_UNMAPPED, /* linux:400 (KEY_YELLOW) -> linux:400 (KEY_YELLOW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#483: FILE: ui/input-keymap-linux-to-qcode.c:375:
+  [0x191] = Q_KEY_CODE_UNMAPPED, /* linux:401 (KEY_BLUE) -> linux:401 (KEY_BLUE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#484: FILE: ui/input-keymap-linux-to-qcode.c:376:
+  [0x192] = Q_KEY_CODE_UNMAPPED, /* linux:402 (KEY_CHANNELUP) -> linux:402 (KEY_CHANNELUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#485: FILE: ui/input-keymap-linux-to-qcode.c:377:
+  [0x193] = Q_KEY_CODE_UNMAPPED, /* linux:403 (KEY_CHANNELDOWN) -> linux:403 (KEY_CHANNELDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#486: FILE: ui/input-keymap-linux-to-qcode.c:378:
+  [0x194] = Q_KEY_CODE_UNMAPPED, /* linux:404 (KEY_FIRST) -> linux:404 (KEY_FIRST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#487: FILE: ui/input-keymap-linux-to-qcode.c:379:
+  [0x195] = Q_KEY_CODE_UNMAPPED, /* linux:405 (KEY_LAST) -> linux:405 (KEY_LAST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#488: FILE: ui/input-keymap-linux-to-qcode.c:380:
+  [0x196] = Q_KEY_CODE_UNMAPPED, /* linux:406 (KEY_AB) -> linux:406 (KEY_AB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#489: FILE: ui/input-keymap-linux-to-qcode.c:381:
+  [0x197] = Q_KEY_CODE_UNMAPPED, /* linux:407 (KEY_NEXT) -> linux:407 (KEY_NEXT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#490: FILE: ui/input-keymap-linux-to-qcode.c:382:
+  [0x198] = Q_KEY_CODE_UNMAPPED, /* linux:408 (KEY_RESTART) -> linux:408 (KEY_RESTART) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#491: FILE: ui/input-keymap-linux-to-qcode.c:383:
+  [0x199] = Q_KEY_CODE_UNMAPPED, /* linux:409 (KEY_SLOW) -> linux:409 (KEY_SLOW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#492: FILE: ui/input-keymap-linux-to-qcode.c:384:
+  [0x19a] = Q_KEY_CODE_UNMAPPED, /* linux:410 (KEY_SHUFFLE) -> linux:410 (KEY_SHUFFLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#493: FILE: ui/input-keymap-linux-to-qcode.c:385:
+  [0x19b] = Q_KEY_CODE_UNMAPPED, /* linux:411 (KEY_BREAK) -> linux:411 (KEY_BREAK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#494: FILE: ui/input-keymap-linux-to-qcode.c:386:
+  [0x19c] = Q_KEY_CODE_UNMAPPED, /* linux:412 (KEY_PREVIOUS) -> linux:412 (KEY_PREVIOUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#495: FILE: ui/input-keymap-linux-to-qcode.c:387:
+  [0x19d] = Q_KEY_CODE_UNMAPPED, /* linux:413 (KEY_DIGITS) -> linux:413 (KEY_DIGITS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#496: FILE: ui/input-keymap-linux-to-qcode.c:388:
+  [0x19e] = Q_KEY_CODE_UNMAPPED, /* linux:414 (KEY_TEEN) -> linux:414 (KEY_TEEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#497: FILE: ui/input-keymap-linux-to-qcode.c:389:
+  [0x19f] = Q_KEY_CODE_UNMAPPED, /* linux:415 (KEY_TWEN) -> linux:415 (KEY_TWEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#498: FILE: ui/input-keymap-linux-to-qcode.c:390:
+  [0x1a0] = Q_KEY_CODE_UNMAPPED, /* linux:416 (KEY_VIDEOPHONE) -> linux:416 (KEY_VIDEOPHONE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#499: FILE: ui/input-keymap-linux-to-qcode.c:391:
+  [0x1a1] = Q_KEY_CODE_UNMAPPED, /* linux:417 (KEY_GAMES) -> linux:417 (KEY_GAMES) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#500: FILE: ui/input-keymap-linux-to-qcode.c:392:
+  [0x1a2] = Q_KEY_CODE_UNMAPPED, /* linux:418 (KEY_ZOOMIN) -> linux:418 (KEY_ZOOMIN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#501: FILE: ui/input-keymap-linux-to-qcode.c:393:
+  [0x1a3] = Q_KEY_CODE_UNMAPPED, /* linux:419 (KEY_ZOOMOUT) -> linux:419 (KEY_ZOOMOUT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#502: FILE: ui/input-keymap-linux-to-qcode.c:394:
+  [0x1a4] = Q_KEY_CODE_UNMAPPED, /* linux:420 (KEY_ZOOMRESET) -> linux:420 (KEY_ZOOMRESET) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#503: FILE: ui/input-keymap-linux-to-qcode.c:395:
+  [0x1a5] = Q_KEY_CODE_UNMAPPED, /* linux:421 (KEY_WORDPROCESSOR) -> linux:421 (KEY_WORDPROCESSOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#504: FILE: ui/input-keymap-linux-to-qcode.c:396:
+  [0x1a6] = Q_KEY_CODE_UNMAPPED, /* linux:422 (KEY_EDITOR) -> linux:422 (KEY_EDITOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#505: FILE: ui/input-keymap-linux-to-qcode.c:397:
+  [0x1a7] = Q_KEY_CODE_UNMAPPED, /* linux:423 (KEY_SPREADSHEET) -> linux:423 (KEY_SPREADSHEET) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#506: FILE: ui/input-keymap-linux-to-qcode.c:398:
+  [0x1a8] = Q_KEY_CODE_UNMAPPED, /* linux:424 (KEY_GRAPHICSEDITOR) -> linux:424 (KEY_GRAPHICSEDITOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#507: FILE: ui/input-keymap-linux-to-qcode.c:399:
+  [0x1a9] = Q_KEY_CODE_UNMAPPED, /* linux:425 (KEY_PRESENTATION) -> linux:425 (KEY_PRESENTATION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#508: FILE: ui/input-keymap-linux-to-qcode.c:400:
+  [0x1aa] = Q_KEY_CODE_UNMAPPED, /* linux:426 (KEY_DATABASE) -> linux:426 (KEY_DATABASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#509: FILE: ui/input-keymap-linux-to-qcode.c:401:
+  [0x1ab] = Q_KEY_CODE_UNMAPPED, /* linux:427 (KEY_NEWS) -> linux:427 (KEY_NEWS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#510: FILE: ui/input-keymap-linux-to-qcode.c:402:
+  [0x1ac] = Q_KEY_CODE_UNMAPPED, /* linux:428 (KEY_VOICEMAIL) -> linux:428 (KEY_VOICEMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#511: FILE: ui/input-keymap-linux-to-qcode.c:403:
+  [0x1ad] = Q_KEY_CODE_UNMAPPED, /* linux:429 (KEY_ADDRESSBOOK) -> linux:429 (KEY_ADDRESSBOOK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#512: FILE: ui/input-keymap-linux-to-qcode.c:404:
+  [0x1ae] = Q_KEY_CODE_UNMAPPED, /* linux:430 (KEY_MESSENGER) -> linux:430 (KEY_MESSENGER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#513: FILE: ui/input-keymap-linux-to-qcode.c:405:
+  [0x1af] = Q_KEY_CODE_UNMAPPED, /* linux:431 (KEY_DISPLAYTOGGLE) -> linux:431 (KEY_DISPLAYTOGGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#514: FILE: ui/input-keymap-linux-to-qcode.c:406:
+  [0x1b0] = Q_KEY_CODE_UNMAPPED, /* linux:432 (KEY_SPELLCHECK) -> linux:432 (KEY_SPELLCHECK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#515: FILE: ui/input-keymap-linux-to-qcode.c:407:
+  [0x1b1] = Q_KEY_CODE_UNMAPPED, /* linux:433 (KEY_LOGOFF) -> linux:433 (KEY_LOGOFF) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#516: FILE: ui/input-keymap-linux-to-qcode.c:408:
+  [0x1b2] = Q_KEY_CODE_UNMAPPED, /* linux:434 (KEY_DOLLAR) -> linux:434 (KEY_DOLLAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#517: FILE: ui/input-keymap-linux-to-qcode.c:409:
+  [0x1b3] = Q_KEY_CODE_UNMAPPED, /* linux:435 (KEY_EURO) -> linux:435 (KEY_EURO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#518: FILE: ui/input-keymap-linux-to-qcode.c:410:
+  [0x1b4] = Q_KEY_CODE_UNMAPPED, /* linux:436 (KEY_FRAMEBACK) -> linux:436 (KEY_FRAMEBACK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#519: FILE: ui/input-keymap-linux-to-qcode.c:411:
+  [0x1b5] = Q_KEY_CODE_UNMAPPED, /* linux:437 (KEY_FRAMEFORWARD) -> linux:437 (KEY_FRAMEFORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#520: FILE: ui/input-keymap-linux-to-qcode.c:412:
+  [0x1b6] = Q_KEY_CODE_UNMAPPED, /* linux:438 (KEY_CONTEXT_MENU) -> linux:438 (KEY_CONTEXT_MENU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#521: FILE: ui/input-keymap-linux-to-qcode.c:413:
+  [0x1b7] = Q_KEY_CODE_UNMAPPED, /* linux:439 (KEY_MEDIA_REPEAT) -> linux:439 (KEY_MEDIA_REPEAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#522: FILE: ui/input-keymap-linux-to-qcode.c:414:
+  [0x1c0] = Q_KEY_CODE_UNMAPPED, /* linux:448 (KEY_DEL_EOL) -> linux:448 (KEY_DEL_EOL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#523: FILE: ui/input-keymap-linux-to-qcode.c:415:
+  [0x1c1] = Q_KEY_CODE_UNMAPPED, /* linux:449 (KEY_DEL_EOS) -> linux:449 (KEY_DEL_EOS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#524: FILE: ui/input-keymap-linux-to-qcode.c:416:
+  [0x1c2] = Q_KEY_CODE_UNMAPPED, /* linux:450 (KEY_INS_LINE) -> linux:450 (KEY_INS_LINE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#525: FILE: ui/input-keymap-linux-to-qcode.c:417:
+  [0x1c3] = Q_KEY_CODE_UNMAPPED, /* linux:451 (KEY_DEL_LINE) -> linux:451 (KEY_DEL_LINE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#526: FILE: ui/input-keymap-linux-to-qcode.c:418:
+  [0x1d0] = Q_KEY_CODE_UNMAPPED, /* linux:464 (KEY_FN) -> linux:464 (KEY_FN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#527: FILE: ui/input-keymap-linux-to-qcode.c:419:
+  [0x1d1] = Q_KEY_CODE_UNMAPPED, /* linux:465 (KEY_FN_ESC) -> linux:465 (KEY_FN_ESC) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#528: FILE: ui/input-keymap-linux-to-qcode.c:420:
+  [0x1d2] = Q_KEY_CODE_UNMAPPED, /* linux:466 (KEY_FN_F1) -> linux:466 (KEY_FN_F1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#529: FILE: ui/input-keymap-linux-to-qcode.c:421:
+  [0x1d3] = Q_KEY_CODE_UNMAPPED, /* linux:467 (KEY_FN_F2) -> linux:467 (KEY_FN_F2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#530: FILE: ui/input-keymap-linux-to-qcode.c:422:
+  [0x1d4] = Q_KEY_CODE_UNMAPPED, /* linux:468 (KEY_FN_F3) -> linux:468 (KEY_FN_F3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#531: FILE: ui/input-keymap-linux-to-qcode.c:423:
+  [0x1d5] = Q_KEY_CODE_UNMAPPED, /* linux:469 (KEY_FN_F4) -> linux:469 (KEY_FN_F4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#532: FILE: ui/input-keymap-linux-to-qcode.c:424:
+  [0x1d6] = Q_KEY_CODE_UNMAPPED, /* linux:470 (KEY_FN_F5) -> linux:470 (KEY_FN_F5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#533: FILE: ui/input-keymap-linux-to-qcode.c:425:
+  [0x1d7] = Q_KEY_CODE_UNMAPPED, /* linux:471 (KEY_FN_F6) -> linux:471 (KEY_FN_F6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#534: FILE: ui/input-keymap-linux-to-qcode.c:426:
+  [0x1d8] = Q_KEY_CODE_UNMAPPED, /* linux:472 (KEY_FN_F7) -> linux:472 (KEY_FN_F7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#535: FILE: ui/input-keymap-linux-to-qcode.c:427:
+  [0x1d9] = Q_KEY_CODE_UNMAPPED, /* linux:473 (KEY_FN_F8) -> linux:473 (KEY_FN_F8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#536: FILE: ui/input-keymap-linux-to-qcode.c:428:
+  [0x1da] = Q_KEY_CODE_UNMAPPED, /* linux:474 (KEY_FN_F9) -> linux:474 (KEY_FN_F9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#537: FILE: ui/input-keymap-linux-to-qcode.c:429:
+  [0x1db] = Q_KEY_CODE_UNMAPPED, /* linux:475 (KEY_FN_F10) -> linux:475 (KEY_FN_F10) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#538: FILE: ui/input-keymap-linux-to-qcode.c:430:
+  [0x1dc] = Q_KEY_CODE_UNMAPPED, /* linux:476 (KEY_FN_F11) -> linux:476 (KEY_FN_F11) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#539: FILE: ui/input-keymap-linux-to-qcode.c:431:
+  [0x1dd] = Q_KEY_CODE_UNMAPPED, /* linux:477 (KEY_FN_F12) -> linux:477 (KEY_FN_F12) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#540: FILE: ui/input-keymap-linux-to-qcode.c:432:
+  [0x1de] = Q_KEY_CODE_UNMAPPED, /* linux:478 (KEY_FN_1) -> linux:478 (KEY_FN_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#541: FILE: ui/input-keymap-linux-to-qcode.c:433:
+  [0x1df] = Q_KEY_CODE_UNMAPPED, /* linux:479 (KEY_FN_2) -> linux:479 (KEY_FN_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#542: FILE: ui/input-keymap-linux-to-qcode.c:434:
+  [0x1e0] = Q_KEY_CODE_UNMAPPED, /* linux:480 (KEY_FN_D) -> linux:480 (KEY_FN_D) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#543: FILE: ui/input-keymap-linux-to-qcode.c:435:
+  [0x1e1] = Q_KEY_CODE_UNMAPPED, /* linux:481 (KEY_FN_E) -> linux:481 (KEY_FN_E) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#544: FILE: ui/input-keymap-linux-to-qcode.c:436:
+  [0x1e2] = Q_KEY_CODE_UNMAPPED, /* linux:482 (KEY_FN_F) -> linux:482 (KEY_FN_F) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#545: FILE: ui/input-keymap-linux-to-qcode.c:437:
+  [0x1e3] = Q_KEY_CODE_UNMAPPED, /* linux:483 (KEY_FN_S) -> linux:483 (KEY_FN_S) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#546: FILE: ui/input-keymap-linux-to-qcode.c:438:
+  [0x1e4] = Q_KEY_CODE_UNMAPPED, /* linux:484 (KEY_FN_B) -> linux:484 (KEY_FN_B) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#547: FILE: ui/input-keymap-linux-to-qcode.c:439:
+  [0x1f1] = Q_KEY_CODE_UNMAPPED, /* linux:497 (KEY_BRL_DOT1) -> linux:497 (KEY_BRL_DOT1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#548: FILE: ui/input-keymap-linux-to-qcode.c:440:
+  [0x1f2] = Q_KEY_CODE_UNMAPPED, /* linux:498 (KEY_BRL_DOT2) -> linux:498 (KEY_BRL_DOT2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#549: FILE: ui/input-keymap-linux-to-qcode.c:441:
+  [0x1f3] = Q_KEY_CODE_UNMAPPED, /* linux:499 (KEY_BRL_DOT3) -> linux:499 (KEY_BRL_DOT3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#550: FILE: ui/input-keymap-linux-to-qcode.c:442:
+  [0x1f4] = Q_KEY_CODE_UNMAPPED, /* linux:500 (KEY_BRL_DOT4) -> linux:500 (KEY_BRL_DOT4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#551: FILE: ui/input-keymap-linux-to-qcode.c:443:
+  [0x1f5] = Q_KEY_CODE_UNMAPPED, /* linux:501 (KEY_BRL_DOT5) -> linux:501 (KEY_BRL_DOT5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#552: FILE: ui/input-keymap-linux-to-qcode.c:444:
+  [0x1f6] = Q_KEY_CODE_UNMAPPED, /* linux:502 (KEY_BRL_DOT6) -> linux:502 (KEY_BRL_DOT6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#553: FILE: ui/input-keymap-linux-to-qcode.c:445:
+  [0x1f7] = Q_KEY_CODE_UNMAPPED, /* linux:503 (KEY_BRL_DOT7) -> linux:503 (KEY_BRL_DOT7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#554: FILE: ui/input-keymap-linux-to-qcode.c:446:
+  [0x1f8] = Q_KEY_CODE_UNMAPPED, /* linux:504 (KEY_BRL_DOT8) -> linux:504 (KEY_BRL_DOT8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#555: FILE: ui/input-keymap-linux-to-qcode.c:447:
+  [0x1f9] = Q_KEY_CODE_UNMAPPED, /* linux:505 (KEY_BRL_DOT9) -> linux:505 (KEY_BRL_DOT9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#556: FILE: ui/input-keymap-linux-to-qcode.c:448:
+  [0x1fa] = Q_KEY_CODE_UNMAPPED, /* linux:506 (KEY_BRL_DOT10) -> linux:506 (KEY_BRL_DOT10) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#557: FILE: ui/input-keymap-linux-to-qcode.c:449:
+  [0x200] = Q_KEY_CODE_UNMAPPED, /* linux:512 (KEY_NUMERIC_0) -> linux:512 (KEY_NUMERIC_0) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#558: FILE: ui/input-keymap-linux-to-qcode.c:450:
+  [0x201] = Q_KEY_CODE_UNMAPPED, /* linux:513 (KEY_NUMERIC_1) -> linux:513 (KEY_NUMERIC_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#559: FILE: ui/input-keymap-linux-to-qcode.c:451:
+  [0x202] = Q_KEY_CODE_UNMAPPED, /* linux:514 (KEY_NUMERIC_2) -> linux:514 (KEY_NUMERIC_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#560: FILE: ui/input-keymap-linux-to-qcode.c:452:
+  [0x203] = Q_KEY_CODE_UNMAPPED, /* linux:515 (KEY_NUMERIC_3) -> linux:515 (KEY_NUMERIC_3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#561: FILE: ui/input-keymap-linux-to-qcode.c:453:
+  [0x204] = Q_KEY_CODE_UNMAPPED, /* linux:516 (KEY_NUMERIC_4) -> linux:516 (KEY_NUMERIC_4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#562: FILE: ui/input-keymap-linux-to-qcode.c:454:
+  [0x205] = Q_KEY_CODE_UNMAPPED, /* linux:517 (KEY_NUMERIC_5) -> linux:517 (KEY_NUMERIC_5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#563: FILE: ui/input-keymap-linux-to-qcode.c:455:
+  [0x206] = Q_KEY_CODE_UNMAPPED, /* linux:518 (KEY_NUMERIC_6) -> linux:518 (KEY_NUMERIC_6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#564: FILE: ui/input-keymap-linux-to-qcode.c:456:
+  [0x207] = Q_KEY_CODE_UNMAPPED, /* linux:519 (KEY_NUMERIC_7) -> linux:519 (KEY_NUMERIC_7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#565: FILE: ui/input-keymap-linux-to-qcode.c:457:
+  [0x208] = Q_KEY_CODE_UNMAPPED, /* linux:520 (KEY_NUMERIC_8) -> linux:520 (KEY_NUMERIC_8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#566: FILE: ui/input-keymap-linux-to-qcode.c:458:
+  [0x209] = Q_KEY_CODE_UNMAPPED, /* linux:521 (KEY_NUMERIC_9) -> linux:521 (KEY_NUMERIC_9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#567: FILE: ui/input-keymap-linux-to-qcode.c:459:
+  [0x20a] = Q_KEY_CODE_UNMAPPED, /* linux:522 (KEY_NUMERIC_STAR) -> linux:522 (KEY_NUMERIC_STAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#568: FILE: ui/input-keymap-linux-to-qcode.c:460:
+  [0x20b] = Q_KEY_CODE_UNMAPPED, /* linux:523 (KEY_NUMERIC_POUND) -> linux:523 (KEY_NUMERIC_POUND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#569: FILE: ui/input-keymap-linux-to-qcode.c:461:
+  [0x20c] = Q_KEY_CODE_UNMAPPED, /* linux:524 (KEY_RFKILL) -> linux:524 (KEY_RFKILL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#571: FILE: ui/input-keymap-linux-to-qcode.c:463:
+const guint qemu_input_map_linux_to_qcode_len = sizeof(qemu_input_map_linux_to_qcode)/sizeof(qemu_input_map_linux_to_qcode[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#571: FILE: ui/input-keymap-linux-to-qcode.c:463:
+const guint qemu_input_map_linux_to_qcode_len = sizeof(qemu_input_map_linux_to_qcode)/sizeof(qemu_input_map_linux_to_qcode[0]);
                                                                                      ^

ERROR: line over 90 characters
#580: FILE: ui/input-keymap-qcode-to-qnum.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#582: FILE: ui/input-keymap-qcode-to-qnum.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qcode_to_qnum code-map keymaps.csv qcode qnum

WARNING: line over 80 characters
#585: FILE: ui/input-keymap-qcode-to-qnum.c:8:
+  [Q_KEY_CODE_0] = 0xb, /* qcode:Q_KEY_CODE_0 (0) -> linux:11 (KEY_0) -> qnum:11 */

WARNING: line over 80 characters
#586: FILE: ui/input-keymap-qcode-to-qnum.c:9:
+  [Q_KEY_CODE_1] = 0x2, /* qcode:Q_KEY_CODE_1 (1) -> linux:2 (KEY_1) -> qnum:2 */

WARNING: line over 80 characters
#587: FILE: ui/input-keymap-qcode-to-qnum.c:10:
+  [Q_KEY_CODE_2] = 0x3, /* qcode:Q_KEY_CODE_2 (2) -> linux:3 (KEY_2) -> qnum:3 */

WARNING: line over 80 characters
#588: FILE: ui/input-keymap-qcode-to-qnum.c:11:
+  [Q_KEY_CODE_3] = 0x4, /* qcode:Q_KEY_CODE_3 (3) -> linux:4 (KEY_3) -> qnum:4 */

WARNING: line over 80 characters
#589: FILE: ui/input-keymap-qcode-to-qnum.c:12:
+  [Q_KEY_CODE_4] = 0x5, /* qcode:Q_KEY_CODE_4 (4) -> linux:5 (KEY_4) -> qnum:5 */

WARNING: line over 80 characters
#590: FILE: ui/input-keymap-qcode-to-qnum.c:13:
+  [Q_KEY_CODE_5] = 0x6, /* qcode:Q_KEY_CODE_5 (5) -> linux:6 (KEY_5) -> qnum:6 */

WARNING: line over 80 characters
#591: FILE: ui/input-keymap-qcode-to-qnum.c:14:
+  [Q_KEY_CODE_6] = 0x7, /* qcode:Q_KEY_CODE_6 (6) -> linux:7 (KEY_6) -> qnum:7 */

WARNING: line over 80 characters
#592: FILE: ui/input-keymap-qcode-to-qnum.c:15:
+  [Q_KEY_CODE_7] = 0x8, /* qcode:Q_KEY_CODE_7 (7) -> linux:8 (KEY_7) -> qnum:8 */

WARNING: line over 80 characters
#593: FILE: ui/input-keymap-qcode-to-qnum.c:16:
+  [Q_KEY_CODE_8] = 0x9, /* qcode:Q_KEY_CODE_8 (8) -> linux:9 (KEY_8) -> qnum:9 */

WARNING: line over 80 characters
#594: FILE: ui/input-keymap-qcode-to-qnum.c:17:
+  [Q_KEY_CODE_9] = 0xa, /* qcode:Q_KEY_CODE_9 (9) -> linux:10 (KEY_9) -> qnum:10 */

WARNING: line over 80 characters
#595: FILE: ui/input-keymap-qcode-to-qnum.c:18:
+  [Q_KEY_CODE_A] = 0x1e, /* qcode:Q_KEY_CODE_A (a) -> linux:30 (KEY_A) -> qnum:30 */

ERROR: line over 90 characters
#596: FILE: ui/input-keymap-qcode-to-qnum.c:19:
+  [Q_KEY_CODE_AC_BACK] = 0xea, /* qcode:Q_KEY_CODE_AC_BACK (ac_back) -> linux:158 (KEY_BACK) -> qnum:234 */

ERROR: line over 90 characters
#597: FILE: ui/input-keymap-qcode-to-qnum.c:20:
+  [Q_KEY_CODE_AC_BOOKMARKS] = 0xe6, /* qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) -> linux:156 (KEY_BOOKMARKS) -> qnum:230 */

ERROR: line over 90 characters
#598: FILE: ui/input-keymap-qcode-to-qnum.c:21:
+  [Q_KEY_CODE_AC_FORWARD] = 0xe9, /* qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) -> linux:159 (KEY_FORWARD) -> qnum:233 */

ERROR: line over 90 characters
#599: FILE: ui/input-keymap-qcode-to-qnum.c:22:
+  [Q_KEY_CODE_AC_HOME] = 0xb2, /* qcode:Q_KEY_CODE_AC_HOME (ac_home) -> linux:172 (KEY_HOMEPAGE) -> qnum:178 */

ERROR: line over 90 characters
#600: FILE: ui/input-keymap-qcode-to-qnum.c:23:
+  [Q_KEY_CODE_AC_REFRESH] = 0xe7, /* qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) -> linux:173 (KEY_REFRESH) -> qnum:231 */

ERROR: line over 90 characters
#601: FILE: ui/input-keymap-qcode-to-qnum.c:24:
+  [Q_KEY_CODE_AGAIN] = 0x85, /* qcode:Q_KEY_CODE_AGAIN (again) -> linux:129 (KEY_AGAIN) -> qnum:133 */

ERROR: line over 90 characters
#602: FILE: ui/input-keymap-qcode-to-qnum.c:25:
+  [Q_KEY_CODE_ALT] = 0x38, /* qcode:Q_KEY_CODE_ALT (alt) -> linux:56 (KEY_LEFTALT) -> qnum:56 */

ERROR: line over 90 characters
#603: FILE: ui/input-keymap-qcode-to-qnum.c:26:
+  [Q_KEY_CODE_ALT_R] = 0xb8, /* qcode:Q_KEY_CODE_ALT_R (alt_r) -> linux:100 (KEY_RIGHTALT) -> qnum:184 */

ERROR: line over 90 characters
#604: FILE: ui/input-keymap-qcode-to-qnum.c:27:
+  [Q_KEY_CODE_APOSTROPHE] = 0x28, /* qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) -> linux:40 (KEY_APOSTROPHE) -> qnum:40 */

ERROR: line over 90 characters
#605: FILE: ui/input-keymap-qcode-to-qnum.c:28:
+  [Q_KEY_CODE_ASTERISK] = 0x37, /* qcode:Q_KEY_CODE_ASTERISK (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> qnum:55 */

ERROR: line over 90 characters
#606: FILE: ui/input-keymap-qcode-to-qnum.c:29:
+  [Q_KEY_CODE_AUDIOMUTE] = 0xa0, /* qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) -> linux:113 (KEY_MUTE) -> qnum:160 */

ERROR: line over 90 characters
#607: FILE: ui/input-keymap-qcode-to-qnum.c:30:
+  [Q_KEY_CODE_AUDIONEXT] = 0x99, /* qcode:Q_KEY_CODE_AUDIONEXT (audionext) -> linux:163 (KEY_NEXTSONG) -> qnum:153 */

ERROR: line over 90 characters
#608: FILE: ui/input-keymap-qcode-to-qnum.c:31:
+  [Q_KEY_CODE_AUDIOPLAY] = 0xa2, /* qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) -> linux:164 (KEY_PLAYPAUSE) -> qnum:162 */

ERROR: line over 90 characters
#609: FILE: ui/input-keymap-qcode-to-qnum.c:32:
+  [Q_KEY_CODE_AUDIOPREV] = 0x90, /* qcode:Q_KEY_CODE_AUDIOPREV (audioprev) -> linux:165 (KEY_PREVIOUSSONG) -> qnum:144 */

ERROR: line over 90 characters
#610: FILE: ui/input-keymap-qcode-to-qnum.c:33:
+  [Q_KEY_CODE_AUDIOSTOP] = 0xa4, /* qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) -> linux:166 (KEY_STOPCD) -> qnum:164 */

WARNING: line over 80 characters
#611: FILE: ui/input-keymap-qcode-to-qnum.c:34:
+  [Q_KEY_CODE_B] = 0x30, /* qcode:Q_KEY_CODE_B (b) -> linux:48 (KEY_B) -> qnum:48 */

ERROR: line over 90 characters
#612: FILE: ui/input-keymap-qcode-to-qnum.c:35:
+  [Q_KEY_CODE_BACKSLASH] = 0x2b, /* qcode:Q_KEY_CODE_BACKSLASH (backslash) -> linux:43 (KEY_BACKSLASH) -> qnum:43 */

ERROR: line over 90 characters
#613: FILE: ui/input-keymap-qcode-to-qnum.c:36:
+  [Q_KEY_CODE_BACKSPACE] = 0xe, /* qcode:Q_KEY_CODE_BACKSPACE (backspace) -> linux:14 (KEY_BACKSPACE) -> qnum:14 */

ERROR: line over 90 characters
#614: FILE: ui/input-keymap-qcode-to-qnum.c:37:
+  [Q_KEY_CODE_BRACKET_LEFT] = 0x1a, /* qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) -> linux:26 (KEY_LEFTBRACE) -> qnum:26 */

ERROR: line over 90 characters
#615: FILE: ui/input-keymap-qcode-to-qnum.c:38:
+  [Q_KEY_CODE_BRACKET_RIGHT] = 0x1b, /* qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) -> linux:27 (KEY_RIGHTBRACE) -> qnum:27 */

WARNING: line over 80 characters
#616: FILE: ui/input-keymap-qcode-to-qnum.c:39:
+  [Q_KEY_CODE_C] = 0x2e, /* qcode:Q_KEY_CODE_C (c) -> linux:46 (KEY_C) -> qnum:46 */

ERROR: line over 90 characters
#617: FILE: ui/input-keymap-qcode-to-qnum.c:40:
+  [Q_KEY_CODE_CALCULATOR] = 0xa1, /* qcode:Q_KEY_CODE_CALCULATOR (calculator) -> linux:140 (KEY_CALC) -> qnum:161 */

ERROR: line over 90 characters
#618: FILE: ui/input-keymap-qcode-to-qnum.c:41:
+  [Q_KEY_CODE_CAPS_LOCK] = 0x3a, /* qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) -> linux:58 (KEY_CAPSLOCK) -> qnum:58 */

ERROR: line over 90 characters
#619: FILE: ui/input-keymap-qcode-to-qnum.c:42:
+  [Q_KEY_CODE_COMMA] = 0x33, /* qcode:Q_KEY_CODE_COMMA (comma) -> linux:51 (KEY_COMMA) -> qnum:51 */

ERROR: line over 90 characters
#620: FILE: ui/input-keymap-qcode-to-qnum.c:43:
+  [Q_KEY_CODE_COMPOSE] = 0xdd, /* qcode:Q_KEY_CODE_COMPOSE (compose) -> linux:127 (KEY_COMPOSE) -> qnum:221 */

ERROR: line over 90 characters
#621: FILE: ui/input-keymap-qcode-to-qnum.c:44:
+  [Q_KEY_CODE_COMPUTER] = 0xeb, /* qcode:Q_KEY_CODE_COMPUTER (computer) -> linux:157 (KEY_COMPUTER) -> qnum:235 */

ERROR: line over 90 characters
#622: FILE: ui/input-keymap-qcode-to-qnum.c:45:
+  [Q_KEY_CODE_COPY] = 0xf8, /* qcode:Q_KEY_CODE_COPY (copy) -> linux:133 (KEY_COPY) -> qnum:248 */

ERROR: line over 90 characters
#623: FILE: ui/input-keymap-qcode-to-qnum.c:46:
+  [Q_KEY_CODE_CTRL] = 0x1d, /* qcode:Q_KEY_CODE_CTRL (ctrl) -> linux:29 (KEY_LEFTCTRL) -> qnum:29 */

ERROR: line over 90 characters
#624: FILE: ui/input-keymap-qcode-to-qnum.c:47:
+  [Q_KEY_CODE_CTRL_R] = 0x9d, /* qcode:Q_KEY_CODE_CTRL_R (ctrl_r) -> linux:97 (KEY_RIGHTCTRL) -> qnum:157 */

ERROR: line over 90 characters
#625: FILE: ui/input-keymap-qcode-to-qnum.c:48:
+  [Q_KEY_CODE_CUT] = 0xbc, /* qcode:Q_KEY_CODE_CUT (cut) -> linux:137 (KEY_CUT) -> qnum:188 */

WARNING: line over 80 characters
#626: FILE: ui/input-keymap-qcode-to-qnum.c:49:
+  [Q_KEY_CODE_D] = 0x20, /* qcode:Q_KEY_CODE_D (d) -> linux:32 (KEY_D) -> qnum:32 */

ERROR: line over 90 characters
#627: FILE: ui/input-keymap-qcode-to-qnum.c:50:
+  [Q_KEY_CODE_DELETE] = 0xd3, /* qcode:Q_KEY_CODE_DELETE (delete) -> linux:111 (KEY_DELETE) -> qnum:211 */

ERROR: line over 90 characters
#628: FILE: ui/input-keymap-qcode-to-qnum.c:51:
+  [Q_KEY_CODE_DOT] = 0x34, /* qcode:Q_KEY_CODE_DOT (dot) -> linux:52 (KEY_DOT) -> qnum:52 */

ERROR: line over 90 characters
#629: FILE: ui/input-keymap-qcode-to-qnum.c:52:
+  [Q_KEY_CODE_DOWN] = 0xd0, /* qcode:Q_KEY_CODE_DOWN (down) -> linux:108 (KEY_DOWN) -> qnum:208 */

WARNING: line over 80 characters
#630: FILE: ui/input-keymap-qcode-to-qnum.c:53:
+  [Q_KEY_CODE_E] = 0x12, /* qcode:Q_KEY_CODE_E (e) -> linux:18 (KEY_E) -> qnum:18 */

ERROR: line over 90 characters
#631: FILE: ui/input-keymap-qcode-to-qnum.c:54:
+  [Q_KEY_CODE_END] = 0xcf, /* qcode:Q_KEY_CODE_END (end) -> linux:107 (KEY_END) -> qnum:207 */

ERROR: line over 90 characters
#632: FILE: ui/input-keymap-qcode-to-qnum.c:55:
+  [Q_KEY_CODE_EQUAL] = 0xd, /* qcode:Q_KEY_CODE_EQUAL (equal) -> linux:13 (KEY_EQUAL) -> qnum:13 */

WARNING: line over 80 characters
#633: FILE: ui/input-keymap-qcode-to-qnum.c:56:
+  [Q_KEY_CODE_ESC] = 0x1, /* qcode:Q_KEY_CODE_ESC (esc) -> linux:1 (KEY_ESC) -> qnum:1 */

WARNING: line over 80 characters
#634: FILE: ui/input-keymap-qcode-to-qnum.c:57:
+  [Q_KEY_CODE_F] = 0x21, /* qcode:Q_KEY_CODE_F (f) -> linux:33 (KEY_F) -> qnum:33 */

WARNING: line over 80 characters
#635: FILE: ui/input-keymap-qcode-to-qnum.c:58:
+  [Q_KEY_CODE_F1] = 0x3b, /* qcode:Q_KEY_CODE_F1 (f1) -> linux:59 (KEY_F1) -> qnum:59 */

ERROR: line over 90 characters
#636: FILE: ui/input-keymap-qcode-to-qnum.c:59:
+  [Q_KEY_CODE_F10] = 0x44, /* qcode:Q_KEY_CODE_F10 (f10) -> linux:68 (KEY_F10) -> qnum:68 */

ERROR: line over 90 characters
#637: FILE: ui/input-keymap-qcode-to-qnum.c:60:
+  [Q_KEY_CODE_F11] = 0x57, /* qcode:Q_KEY_CODE_F11 (f11) -> linux:87 (KEY_F11) -> qnum:87 */

ERROR: line over 90 characters
#638: FILE: ui/input-keymap-qcode-to-qnum.c:61:
+  [Q_KEY_CODE_F12] = 0x58, /* qcode:Q_KEY_CODE_F12 (f12) -> linux:88 (KEY_F12) -> qnum:88 */

WARNING: line over 80 characters
#639: FILE: ui/input-keymap-qcode-to-qnum.c:62:
+  [Q_KEY_CODE_F2] = 0x3c, /* qcode:Q_KEY_CODE_F2 (f2) -> linux:60 (KEY_F2) -> qnum:60 */

WARNING: line over 80 characters
#640: FILE: ui/input-keymap-qcode-to-qnum.c:63:
+  [Q_KEY_CODE_F3] = 0x3d, /* qcode:Q_KEY_CODE_F3 (f3) -> linux:61 (KEY_F3) -> qnum:61 */

WARNING: line over 80 characters
#641: FILE: ui/input-keymap-qcode-to-qnum.c:64:
+  [Q_KEY_CODE_F4] = 0x3e, /* qcode:Q_KEY_CODE_F4 (f4) -> linux:62 (KEY_F4) -> qnum:62 */

WARNING: line over 80 characters
#642: FILE: ui/input-keymap-qcode-to-qnum.c:65:
+  [Q_KEY_CODE_F5] = 0x3f, /* qcode:Q_KEY_CODE_F5 (f5) -> linux:63 (KEY_F5) -> qnum:63 */

WARNING: line over 80 characters
#643: FILE: ui/input-keymap-qcode-to-qnum.c:66:
+  [Q_KEY_CODE_F6] = 0x40, /* qcode:Q_KEY_CODE_F6 (f6) -> linux:64 (KEY_F6) -> qnum:64 */

WARNING: line over 80 characters
#644: FILE: ui/input-keymap-qcode-to-qnum.c:67:
+  [Q_KEY_CODE_F7] = 0x41, /* qcode:Q_KEY_CODE_F7 (f7) -> linux:65 (KEY_F7) -> qnum:65 */

WARNING: line over 80 characters
#645: FILE: ui/input-keymap-qcode-to-qnum.c:68:
+  [Q_KEY_CODE_F8] = 0x42, /* qcode:Q_KEY_CODE_F8 (f8) -> linux:66 (KEY_F8) -> qnum:66 */

WARNING: line over 80 characters
#646: FILE: ui/input-keymap-qcode-to-qnum.c:69:
+  [Q_KEY_CODE_F9] = 0x43, /* qcode:Q_KEY_CODE_F9 (f9) -> linux:67 (KEY_F9) -> qnum:67 */

ERROR: line over 90 characters
#647: FILE: ui/input-keymap-qcode-to-qnum.c:70:
+  [Q_KEY_CODE_FIND] = 0xc1, /* qcode:Q_KEY_CODE_FIND (find) -> linux:136 (KEY_FIND) -> qnum:193 */

ERROR: line over 90 characters
#648: FILE: ui/input-keymap-qcode-to-qnum.c:71:
+  [Q_KEY_CODE_FRONT] = 0x8c, /* qcode:Q_KEY_CODE_FRONT (front) -> linux:132 (KEY_FRONT) -> qnum:140 */

WARNING: line over 80 characters
#649: FILE: ui/input-keymap-qcode-to-qnum.c:72:
+  [Q_KEY_CODE_G] = 0x22, /* qcode:Q_KEY_CODE_G (g) -> linux:34 (KEY_G) -> qnum:34 */

ERROR: line over 90 characters
#650: FILE: ui/input-keymap-qcode-to-qnum.c:73:
+  [Q_KEY_CODE_GRAVE_ACCENT] = 0x29, /* qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) -> linux:41 (KEY_GRAVE) -> qnum:41 */

WARNING: line over 80 characters
#651: FILE: ui/input-keymap-qcode-to-qnum.c:74:
+  [Q_KEY_CODE_H] = 0x23, /* qcode:Q_KEY_CODE_H (h) -> linux:35 (KEY_H) -> qnum:35 */

ERROR: line over 90 characters
#652: FILE: ui/input-keymap-qcode-to-qnum.c:75:
+  [Q_KEY_CODE_HELP] = 0xf5, /* qcode:Q_KEY_CODE_HELP (help) -> linux:138 (KEY_HELP) -> qnum:245 */

ERROR: line over 90 characters
#653: FILE: ui/input-keymap-qcode-to-qnum.c:76:
+  [Q_KEY_CODE_HENKAN] = 0x79, /* qcode:Q_KEY_CODE_HENKAN (henkan) -> linux:92 (KEY_HENKAN) -> qnum:121 */

ERROR: line over 90 characters
#654: FILE: ui/input-keymap-qcode-to-qnum.c:77:
+  [Q_KEY_CODE_HIRAGANA] = 0x77, /* qcode:Q_KEY_CODE_HIRAGANA (hiragana) -> linux:91 (KEY_HIRAGANA) -> qnum:119 */

ERROR: line over 90 characters
#655: FILE: ui/input-keymap-qcode-to-qnum.c:78:
+  [Q_KEY_CODE_HOME] = 0xc7, /* qcode:Q_KEY_CODE_HOME (home) -> linux:102 (KEY_HOME) -> qnum:199 */

WARNING: line over 80 characters
#656: FILE: ui/input-keymap-qcode-to-qnum.c:79:
+  [Q_KEY_CODE_I] = 0x17, /* qcode:Q_KEY_CODE_I (i) -> linux:23 (KEY_I) -> qnum:23 */

ERROR: line over 90 characters
#657: FILE: ui/input-keymap-qcode-to-qnum.c:80:
+  [Q_KEY_CODE_INSERT] = 0xd2, /* qcode:Q_KEY_CODE_INSERT (insert) -> linux:110 (KEY_INSERT) -> qnum:210 */

WARNING: line over 80 characters
#658: FILE: ui/input-keymap-qcode-to-qnum.c:81:
+  [Q_KEY_CODE_J] = 0x24, /* qcode:Q_KEY_CODE_J (j) -> linux:36 (KEY_J) -> qnum:36 */

WARNING: line over 80 characters
#659: FILE: ui/input-keymap-qcode-to-qnum.c:82:
+  [Q_KEY_CODE_K] = 0x25, /* qcode:Q_KEY_CODE_K (k) -> linux:37 (KEY_K) -> qnum:37 */

ERROR: line over 90 characters
#660: FILE: ui/input-keymap-qcode-to-qnum.c:83:
+  [Q_KEY_CODE_KP_0] = 0x52, /* qcode:Q_KEY_CODE_KP_0 (kp_0) -> linux:82 (KEY_KP0) -> qnum:82 */

ERROR: line over 90 characters
#661: FILE: ui/input-keymap-qcode-to-qnum.c:84:
+  [Q_KEY_CODE_KP_1] = 0x4f, /* qcode:Q_KEY_CODE_KP_1 (kp_1) -> linux:79 (KEY_KP1) -> qnum:79 */

ERROR: line over 90 characters
#662: FILE: ui/input-keymap-qcode-to-qnum.c:85:
+  [Q_KEY_CODE_KP_2] = 0x50, /* qcode:Q_KEY_CODE_KP_2 (kp_2) -> linux:80 (KEY_KP2) -> qnum:80 */

ERROR: line over 90 characters
#663: FILE: ui/input-keymap-qcode-to-qnum.c:86:
+  [Q_KEY_CODE_KP_3] = 0x51, /* qcode:Q_KEY_CODE_KP_3 (kp_3) -> linux:81 (KEY_KP3) -> qnum:81 */

ERROR: line over 90 characters
#664: FILE: ui/input-keymap-qcode-to-qnum.c:87:
+  [Q_KEY_CODE_KP_4] = 0x4b, /* qcode:Q_KEY_CODE_KP_4 (kp_4) -> linux:75 (KEY_KP4) -> qnum:75 */

ERROR: line over 90 characters
#665: FILE: ui/input-keymap-qcode-to-qnum.c:88:
+  [Q_KEY_CODE_KP_5] = 0x4c, /* qcode:Q_KEY_CODE_KP_5 (kp_5) -> linux:76 (KEY_KP5) -> qnum:76 */

ERROR: line over 90 characters
#666: FILE: ui/input-keymap-qcode-to-qnum.c:89:
+  [Q_KEY_CODE_KP_6] = 0x4d, /* qcode:Q_KEY_CODE_KP_6 (kp_6) -> linux:77 (KEY_KP6) -> qnum:77 */

ERROR: line over 90 characters
#667: FILE: ui/input-keymap-qcode-to-qnum.c:90:
+  [Q_KEY_CODE_KP_7] = 0x47, /* qcode:Q_KEY_CODE_KP_7 (kp_7) -> linux:71 (KEY_KP7) -> qnum:71 */

ERROR: line over 90 characters
#668: FILE: ui/input-keymap-qcode-to-qnum.c:91:
+  [Q_KEY_CODE_KP_8] = 0x48, /* qcode:Q_KEY_CODE_KP_8 (kp_8) -> linux:72 (KEY_KP8) -> qnum:72 */

ERROR: line over 90 characters
#669: FILE: ui/input-keymap-qcode-to-qnum.c:92:
+  [Q_KEY_CODE_KP_9] = 0x49, /* qcode:Q_KEY_CODE_KP_9 (kp_9) -> linux:73 (KEY_KP9) -> qnum:73 */

ERROR: line over 90 characters
#670: FILE: ui/input-keymap-qcode-to-qnum.c:93:
+  [Q_KEY_CODE_KP_ADD] = 0x4e, /* qcode:Q_KEY_CODE_KP_ADD (kp_add) -> linux:78 (KEY_KPPLUS) -> qnum:78 */

ERROR: line over 90 characters
#671: FILE: ui/input-keymap-qcode-to-qnum.c:94:
+  [Q_KEY_CODE_KP_COMMA] = 0x7e, /* qcode:Q_KEY_CODE_KP_COMMA (kp_comma) -> linux:121 (KEY_KPCOMMA) -> qnum:126 */

ERROR: line over 90 characters
#672: FILE: ui/input-keymap-qcode-to-qnum.c:95:
+  [Q_KEY_CODE_KP_DECIMAL] = 0x53, /* qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) -> linux:83 (KEY_KPDOT) -> qnum:83 */

ERROR: line over 90 characters
#673: FILE: ui/input-keymap-qcode-to-qnum.c:96:
+  [Q_KEY_CODE_KP_DIVIDE] = 0xb5, /* qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) -> linux:98 (KEY_KPSLASH) -> qnum:181 */

ERROR: line over 90 characters
#674: FILE: ui/input-keymap-qcode-to-qnum.c:97:
+  [Q_KEY_CODE_KP_ENTER] = 0x9c, /* qcode:Q_KEY_CODE_KP_ENTER (kp_enter) -> linux:96 (KEY_KPENTER) -> qnum:156 */

ERROR: line over 90 characters
#675: FILE: ui/input-keymap-qcode-to-qnum.c:98:
+  [Q_KEY_CODE_KP_EQUALS] = 0x59, /* qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) -> linux:117 (KEY_KPEQUAL) -> qnum:89 */

ERROR: line over 90 characters
#676: FILE: ui/input-keymap-qcode-to-qnum.c:99:
+  [Q_KEY_CODE_KP_MULTIPLY] = 0x37, /* qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> qnum:55 */

ERROR: line over 90 characters
#677: FILE: ui/input-keymap-qcode-to-qnum.c:100:
+  [Q_KEY_CODE_KP_SUBTRACT] = 0x4a, /* qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) -> linux:74 (KEY_KPMINUS) -> qnum:74 */

WARNING: line over 80 characters
#678: FILE: ui/input-keymap-qcode-to-qnum.c:101:
+  [Q_KEY_CODE_L] = 0x26, /* qcode:Q_KEY_CODE_L (l) -> linux:38 (KEY_L) -> qnum:38 */

ERROR: line over 90 characters
#679: FILE: ui/input-keymap-qcode-to-qnum.c:102:
+  [Q_KEY_CODE_LEFT] = 0xcb, /* qcode:Q_KEY_CODE_LEFT (left) -> linux:105 (KEY_LEFT) -> qnum:203 */

ERROR: line over 90 characters
#680: FILE: ui/input-keymap-qcode-to-qnum.c:103:
+  [Q_KEY_CODE_LESS] = 0x56, /* qcode:Q_KEY_CODE_LESS (less) -> linux:86 (KEY_102ND) -> qnum:86 */

ERROR: line over 90 characters
#681: FILE: ui/input-keymap-qcode-to-qnum.c:104:
+  [Q_KEY_CODE_LF] = 0x5b, /* qcode:Q_KEY_CODE_LF (lf) -> linux:101 (KEY_LINEFEED) -> qnum:91 */

WARNING: line over 80 characters
#682: FILE: ui/input-keymap-qcode-to-qnum.c:105:
+  [Q_KEY_CODE_M] = 0x32, /* qcode:Q_KEY_CODE_M (m) -> linux:50 (KEY_M) -> qnum:50 */

ERROR: line over 90 characters
#683: FILE: ui/input-keymap-qcode-to-qnum.c:106:
+  [Q_KEY_CODE_MAIL] = 0xec, /* qcode:Q_KEY_CODE_MAIL (mail) -> linux:155 (KEY_MAIL) -> qnum:236 */

ERROR: line over 90 characters
#684: FILE: ui/input-keymap-qcode-to-qnum.c:107:
+  [Q_KEY_CODE_MEDIASELECT] = 0xed, /* qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) -> linux:226 (KEY_MEDIA) -> qnum:237 */

ERROR: line over 90 characters
#685: FILE: ui/input-keymap-qcode-to-qnum.c:108:
+  [Q_KEY_CODE_MENU] = 0x9e, /* qcode:Q_KEY_CODE_MENU (menu) -> linux:139 (KEY_MENU) -> qnum:158 */

ERROR: line over 90 characters
#686: FILE: ui/input-keymap-qcode-to-qnum.c:109:
+  [Q_KEY_CODE_META_L] = 0xdb, /* qcode:Q_KEY_CODE_META_L (meta_l) -> linux:125 (KEY_LEFTMETA) -> qnum:219 */

ERROR: line over 90 characters
#687: FILE: ui/input-keymap-qcode-to-qnum.c:110:
+  [Q_KEY_CODE_META_R] = 0xdc, /* qcode:Q_KEY_CODE_META_R (meta_r) -> linux:126 (KEY_RIGHTMETA) -> qnum:220 */

ERROR: line over 90 characters
#688: FILE: ui/input-keymap-qcode-to-qnum.c:111:
+  [Q_KEY_CODE_MINUS] = 0xc, /* qcode:Q_KEY_CODE_MINUS (minus) -> linux:12 (KEY_MINUS) -> qnum:12 */

WARNING: line over 80 characters
#689: FILE: ui/input-keymap-qcode-to-qnum.c:112:
+  [Q_KEY_CODE_N] = 0x31, /* qcode:Q_KEY_CODE_N (n) -> linux:49 (KEY_N) -> qnum:49 */

ERROR: line over 90 characters
#690: FILE: ui/input-keymap-qcode-to-qnum.c:113:
+  [Q_KEY_CODE_NUM_LOCK] = 0x45, /* qcode:Q_KEY_CODE_NUM_LOCK (num_lock) -> linux:69 (KEY_NUMLOCK) -> qnum:69 */

WARNING: line over 80 characters
#691: FILE: ui/input-keymap-qcode-to-qnum.c:114:
+  [Q_KEY_CODE_O] = 0x18, /* qcode:Q_KEY_CODE_O (o) -> linux:24 (KEY_O) -> qnum:24 */

ERROR: line over 90 characters
#692: FILE: ui/input-keymap-qcode-to-qnum.c:115:
+  [Q_KEY_CODE_OPEN] = 0x64, /* qcode:Q_KEY_CODE_OPEN (open) -> linux:134 (KEY_OPEN) -> qnum:100 */

WARNING: line over 80 characters
#693: FILE: ui/input-keymap-qcode-to-qnum.c:116:
+  [Q_KEY_CODE_P] = 0x19, /* qcode:Q_KEY_CODE_P (p) -> linux:25 (KEY_P) -> qnum:25 */

ERROR: line over 90 characters
#694: FILE: ui/input-keymap-qcode-to-qnum.c:117:
+  [Q_KEY_CODE_PASTE] = 0x65, /* qcode:Q_KEY_CODE_PASTE (paste) -> linux:135 (KEY_PASTE) -> qnum:101 */

ERROR: line over 90 characters
#695: FILE: ui/input-keymap-qcode-to-qnum.c:118:
+  [Q_KEY_CODE_PAUSE] = 0xc6, /* qcode:Q_KEY_CODE_PAUSE (pause) -> linux:119 (KEY_PAUSE) -> qnum:198 */

ERROR: line over 90 characters
#696: FILE: ui/input-keymap-qcode-to-qnum.c:119:
+  [Q_KEY_CODE_PGDN] = 0xd1, /* qcode:Q_KEY_CODE_PGDN (pgdn) -> linux:109 (KEY_PAGEDOWN) -> qnum:209 */

ERROR: line over 90 characters
#697: FILE: ui/input-keymap-qcode-to-qnum.c:120:
+  [Q_KEY_CODE_PGUP] = 0xc9, /* qcode:Q_KEY_CODE_PGUP (pgup) -> linux:104 (KEY_PAGEUP) -> qnum:201 */

ERROR: line over 90 characters
#698: FILE: ui/input-keymap-qcode-to-qnum.c:121:
+  [Q_KEY_CODE_POWER] = 0xde, /* qcode:Q_KEY_CODE_POWER (power) -> linux:116 (KEY_POWER) -> qnum:222 */

ERROR: line over 90 characters
#699: FILE: ui/input-keymap-qcode-to-qnum.c:122:
+  [Q_KEY_CODE_PRINT] = 0x54, /* qcode:Q_KEY_CODE_PRINT (sysrq) -> linux:99 (KEY_SYSRQ) -> qnum:84 */

ERROR: line over 90 characters
#700: FILE: ui/input-keymap-qcode-to-qnum.c:123:
+  [Q_KEY_CODE_PROPS] = 0x86, /* qcode:Q_KEY_CODE_PROPS (props) -> linux:130 (KEY_PROPS) -> qnum:134 */

WARNING: line over 80 characters
#701: FILE: ui/input-keymap-qcode-to-qnum.c:124:
+  [Q_KEY_CODE_Q] = 0x10, /* qcode:Q_KEY_CODE_Q (q) -> linux:16 (KEY_Q) -> qnum:16 */

WARNING: line over 80 characters
#702: FILE: ui/input-keymap-qcode-to-qnum.c:125:
+  [Q_KEY_CODE_R] = 0x13, /* qcode:Q_KEY_CODE_R (r) -> linux:19 (KEY_R) -> qnum:19 */

ERROR: line over 90 characters
#703: FILE: ui/input-keymap-qcode-to-qnum.c:126:
+  [Q_KEY_CODE_RET] = 0x1c, /* qcode:Q_KEY_CODE_RET (ret) -> linux:28 (KEY_ENTER) -> qnum:28 */

ERROR: line over 90 characters
#704: FILE: ui/input-keymap-qcode-to-qnum.c:127:
+  [Q_KEY_CODE_RIGHT] = 0xcd, /* qcode:Q_KEY_CODE_RIGHT (right) -> linux:106 (KEY_RIGHT) -> qnum:205 */

WARNING: line over 80 characters
#705: FILE: ui/input-keymap-qcode-to-qnum.c:128:
+  [Q_KEY_CODE_RO] = 0x73, /* qcode:Q_KEY_CODE_RO (ro) -> linux:89 (KEY_RO) -> qnum:115 */

WARNING: line over 80 characters
#706: FILE: ui/input-keymap-qcode-to-qnum.c:129:
+  [Q_KEY_CODE_S] = 0x1f, /* qcode:Q_KEY_CODE_S (s) -> linux:31 (KEY_S) -> qnum:31 */

ERROR: line over 90 characters
#707: FILE: ui/input-keymap-qcode-to-qnum.c:130:
+  [Q_KEY_CODE_SCROLL_LOCK] = 0x46, /* qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) -> linux:70 (KEY_SCROLLLOCK) -> qnum:70 */

ERROR: line over 90 characters
#708: FILE: ui/input-keymap-qcode-to-qnum.c:131:
+  [Q_KEY_CODE_SEMICOLON] = 0x27, /* qcode:Q_KEY_CODE_SEMICOLON (semicolon) -> linux:39 (KEY_SEMICOLON) -> qnum:39 */

ERROR: line over 90 characters
#709: FILE: ui/input-keymap-qcode-to-qnum.c:132:
+  [Q_KEY_CODE_SHIFT] = 0x2a, /* qcode:Q_KEY_CODE_SHIFT (shift) -> linux:42 (KEY_LEFTSHIFT) -> qnum:42 */

ERROR: line over 90 characters
#710: FILE: ui/input-keymap-qcode-to-qnum.c:133:
+  [Q_KEY_CODE_SHIFT_R] = 0x36, /* qcode:Q_KEY_CODE_SHIFT_R (shift_r) -> linux:54 (KEY_RIGHTSHIFT) -> qnum:54 */

ERROR: line over 90 characters
#711: FILE: ui/input-keymap-qcode-to-qnum.c:134:
+  [Q_KEY_CODE_SLASH] = 0x35, /* qcode:Q_KEY_CODE_SLASH (slash) -> linux:53 (KEY_SLASH) -> qnum:53 */

ERROR: line over 90 characters
#712: FILE: ui/input-keymap-qcode-to-qnum.c:135:
+  [Q_KEY_CODE_SLEEP] = 0xdf, /* qcode:Q_KEY_CODE_SLEEP (sleep) -> linux:142 (KEY_SLEEP) -> qnum:223 */

ERROR: line over 90 characters
#713: FILE: ui/input-keymap-qcode-to-qnum.c:136:
+  [Q_KEY_CODE_SPC] = 0x39, /* qcode:Q_KEY_CODE_SPC (spc) -> linux:57 (KEY_SPACE) -> qnum:57 */

ERROR: line over 90 characters
#714: FILE: ui/input-keymap-qcode-to-qnum.c:137:
+  [Q_KEY_CODE_STOP] = 0xe8, /* qcode:Q_KEY_CODE_STOP (stop) -> linux:128 (KEY_STOP) -> qnum:232 */

ERROR: line over 90 characters
#715: FILE: ui/input-keymap-qcode-to-qnum.c:138:
+  [Q_KEY_CODE_SYSRQ] = 0x54, /* qcode:Q_KEY_CODE_SYSRQ (sysrq) -> linux:99 (KEY_SYSRQ) -> qnum:84 */

WARNING: line over 80 characters
#716: FILE: ui/input-keymap-qcode-to-qnum.c:139:
+  [Q_KEY_CODE_T] = 0x14, /* qcode:Q_KEY_CODE_T (t) -> linux:20 (KEY_T) -> qnum:20 */

ERROR: line over 90 characters
#717: FILE: ui/input-keymap-qcode-to-qnum.c:140:
+  [Q_KEY_CODE_TAB] = 0xf, /* qcode:Q_KEY_CODE_TAB (tab) -> linux:15 (KEY_TAB) -> qnum:15 */

WARNING: line over 80 characters
#718: FILE: ui/input-keymap-qcode-to-qnum.c:141:
+  [Q_KEY_CODE_U] = 0x16, /* qcode:Q_KEY_CODE_U (u) -> linux:22 (KEY_U) -> qnum:22 */

ERROR: line over 90 characters
#719: FILE: ui/input-keymap-qcode-to-qnum.c:142:
+  [Q_KEY_CODE_UNDO] = 0x87, /* qcode:Q_KEY_CODE_UNDO (undo) -> linux:131 (KEY_UNDO) -> qnum:135 */

WARNING: line over 80 characters
#720: FILE: ui/input-keymap-qcode-to-qnum.c:143:
+  [Q_KEY_CODE_UP] = 0xc8, /* qcode:Q_KEY_CODE_UP (up) -> linux:103 (KEY_UP) -> qnum:200 */

WARNING: line over 80 characters
#721: FILE: ui/input-keymap-qcode-to-qnum.c:144:
+  [Q_KEY_CODE_V] = 0x2f, /* qcode:Q_KEY_CODE_V (v) -> linux:47 (KEY_V) -> qnum:47 */

ERROR: line over 90 characters
#722: FILE: ui/input-keymap-qcode-to-qnum.c:145:
+  [Q_KEY_CODE_VOLUMEDOWN] = 0xae, /* qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) -> linux:114 (KEY_VOLUMEDOWN) -> qnum:174 */

ERROR: line over 90 characters
#723: FILE: ui/input-keymap-qcode-to-qnum.c:146:
+  [Q_KEY_CODE_VOLUMEUP] = 0xb0, /* qcode:Q_KEY_CODE_VOLUMEUP (volumeup) -> linux:115 (KEY_VOLUMEUP) -> qnum:176 */

WARNING: line over 80 characters
#724: FILE: ui/input-keymap-qcode-to-qnum.c:147:
+  [Q_KEY_CODE_W] = 0x11, /* qcode:Q_KEY_CODE_W (w) -> linux:17 (KEY_W) -> qnum:17 */

ERROR: line over 90 characters
#725: FILE: ui/input-keymap-qcode-to-qnum.c:148:
+  [Q_KEY_CODE_WAKE] = 0xe3, /* qcode:Q_KEY_CODE_WAKE (wake) -> linux:143 (KEY_WAKEUP) -> qnum:227 */

WARNING: line over 80 characters
#726: FILE: ui/input-keymap-qcode-to-qnum.c:149:
+  [Q_KEY_CODE_X] = 0x2d, /* qcode:Q_KEY_CODE_X (x) -> linux:45 (KEY_X) -> qnum:45 */

WARNING: line over 80 characters
#727: FILE: ui/input-keymap-qcode-to-qnum.c:150:
+  [Q_KEY_CODE_Y] = 0x15, /* qcode:Q_KEY_CODE_Y (y) -> linux:21 (KEY_Y) -> qnum:21 */

ERROR: line over 90 characters
#728: FILE: ui/input-keymap-qcode-to-qnum.c:151:
+  [Q_KEY_CODE_YEN] = 0x7d, /* qcode:Q_KEY_CODE_YEN (yen) -> linux:124 (KEY_YEN) -> qnum:125 */

WARNING: line over 80 characters
#729: FILE: ui/input-keymap-qcode-to-qnum.c:152:
+  [Q_KEY_CODE_Z] = 0x2c, /* qcode:Q_KEY_CODE_Z (z) -> linux:44 (KEY_Z) -> qnum:44 */

ERROR: line over 90 characters
#731: FILE: ui/input-keymap-qcode-to-qnum.c:154:
+const guint qemu_input_map_qcode_to_qnum_len = sizeof(qemu_input_map_qcode_to_qnum)/sizeof(qemu_input_map_qcode_to_qnum[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#731: FILE: ui/input-keymap-qcode-to-qnum.c:154:
+const guint qemu_input_map_qcode_to_qnum_len = sizeof(qemu_input_map_qcode_to_qnum)/sizeof(qemu_input_map_qcode_to_qnum[0]);
                                                                                    ^

ERROR: line over 90 characters
#740: FILE: ui/input-keymap-qnum-to-qcode.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#742: FILE: ui/input-keymap-qnum-to-qcode.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qnum_to_qcode code-map keymaps.csv qnum qcode

WARNING: line over 80 characters
#745: FILE: ui/input-keymap-qnum-to-qcode.c:8:
+  [0x1] = Q_KEY_CODE_ESC, /* qnum:1 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */

WARNING: line over 80 characters
#746: FILE: ui/input-keymap-qnum-to-qcode.c:9:
+  [0x2] = Q_KEY_CODE_1, /* qnum:2 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */

WARNING: line over 80 characters
#747: FILE: ui/input-keymap-qnum-to-qcode.c:10:
+  [0x3] = Q_KEY_CODE_2, /* qnum:3 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */

WARNING: line over 80 characters
#748: FILE: ui/input-keymap-qnum-to-qcode.c:11:
+  [0x4] = Q_KEY_CODE_3, /* qnum:4 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */

WARNING: line over 80 characters
#749: FILE: ui/input-keymap-qnum-to-qcode.c:12:
+  [0x5] = Q_KEY_CODE_4, /* qnum:5 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */

WARNING: line over 80 characters
#750: FILE: ui/input-keymap-qnum-to-qcode.c:13:
+  [0x6] = Q_KEY_CODE_5, /* qnum:6 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */

WARNING: line over 80 characters
#751: FILE: ui/input-keymap-qnum-to-qcode.c:14:
+  [0x7] = Q_KEY_CODE_6, /* qnum:7 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */

WARNING: line over 80 characters
#752: FILE: ui/input-keymap-qnum-to-qcode.c:15:
+  [0x8] = Q_KEY_CODE_7, /* qnum:8 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */

WARNING: line over 80 characters
#753: FILE: ui/input-keymap-qnum-to-qcode.c:16:
+  [0x9] = Q_KEY_CODE_8, /* qnum:9 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */

WARNING: line over 80 characters
#754: FILE: ui/input-keymap-qnum-to-qcode.c:17:
+  [0xa] = Q_KEY_CODE_9, /* qnum:10 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */

WARNING: line over 80 characters
#755: FILE: ui/input-keymap-qnum-to-qcode.c:18:
+  [0xb] = Q_KEY_CODE_0, /* qnum:11 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */

ERROR: line over 90 characters
#756: FILE: ui/input-keymap-qnum-to-qcode.c:19:
+  [0xc] = Q_KEY_CODE_MINUS, /* qnum:12 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */

ERROR: line over 90 characters
#757: FILE: ui/input-keymap-qnum-to-qcode.c:20:
+  [0xd] = Q_KEY_CODE_EQUAL, /* qnum:13 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */

ERROR: line over 90 characters
#758: FILE: ui/input-keymap-qnum-to-qcode.c:21:
+  [0xe] = Q_KEY_CODE_BACKSPACE, /* qnum:14 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */

ERROR: line over 90 characters
#759: FILE: ui/input-keymap-qnum-to-qcode.c:22:
+  [0xf] = Q_KEY_CODE_TAB, /* qnum:15 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */

WARNING: line over 80 characters
#760: FILE: ui/input-keymap-qnum-to-qcode.c:23:
+  [0x10] = Q_KEY_CODE_Q, /* qnum:16 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */

WARNING: line over 80 characters
#761: FILE: ui/input-keymap-qnum-to-qcode.c:24:
+  [0x11] = Q_KEY_CODE_W, /* qnum:17 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */

WARNING: line over 80 characters
#762: FILE: ui/input-keymap-qnum-to-qcode.c:25:
+  [0x12] = Q_KEY_CODE_E, /* qnum:18 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */

WARNING: line over 80 characters
#763: FILE: ui/input-keymap-qnum-to-qcode.c:26:
+  [0x13] = Q_KEY_CODE_R, /* qnum:19 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */

WARNING: line over 80 characters
#764: FILE: ui/input-keymap-qnum-to-qcode.c:27:
+  [0x14] = Q_KEY_CODE_T, /* qnum:20 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */

WARNING: line over 80 characters
#765: FILE: ui/input-keymap-qnum-to-qcode.c:28:
+  [0x15] = Q_KEY_CODE_Y, /* qnum:21 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */

WARNING: line over 80 characters
#766: FILE: ui/input-keymap-qnum-to-qcode.c:29:
+  [0x16] = Q_KEY_CODE_U, /* qnum:22 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */

WARNING: line over 80 characters
#767: FILE: ui/input-keymap-qnum-to-qcode.c:30:
+  [0x17] = Q_KEY_CODE_I, /* qnum:23 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */

WARNING: line over 80 characters
#768: FILE: ui/input-keymap-qnum-to-qcode.c:31:
+  [0x18] = Q_KEY_CODE_O, /* qnum:24 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */

WARNING: line over 80 characters
#769: FILE: ui/input-keymap-qnum-to-qcode.c:32:
+  [0x19] = Q_KEY_CODE_P, /* qnum:25 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */

ERROR: line over 90 characters
#770: FILE: ui/input-keymap-qnum-to-qcode.c:33:
+  [0x1a] = Q_KEY_CODE_BRACKET_LEFT, /* qnum:26 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */

ERROR: line over 90 characters
#771: FILE: ui/input-keymap-qnum-to-qcode.c:34:
+  [0x1b] = Q_KEY_CODE_BRACKET_RIGHT, /* qnum:27 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */

ERROR: line over 90 characters
#772: FILE: ui/input-keymap-qnum-to-qcode.c:35:
+  [0x1c] = Q_KEY_CODE_RET, /* qnum:28 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */

ERROR: line over 90 characters
#773: FILE: ui/input-keymap-qnum-to-qcode.c:36:
+  [0x1d] = Q_KEY_CODE_CTRL, /* qnum:29 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */

WARNING: line over 80 characters
#774: FILE: ui/input-keymap-qnum-to-qcode.c:37:
+  [0x1e] = Q_KEY_CODE_A, /* qnum:30 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */

WARNING: line over 80 characters
#775: FILE: ui/input-keymap-qnum-to-qcode.c:38:
+  [0x1f] = Q_KEY_CODE_S, /* qnum:31 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */

WARNING: line over 80 characters
#776: FILE: ui/input-keymap-qnum-to-qcode.c:39:
+  [0x20] = Q_KEY_CODE_D, /* qnum:32 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */

WARNING: line over 80 characters
#777: FILE: ui/input-keymap-qnum-to-qcode.c:40:
+  [0x21] = Q_KEY_CODE_F, /* qnum:33 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */

WARNING: line over 80 characters
#778: FILE: ui/input-keymap-qnum-to-qcode.c:41:
+  [0x22] = Q_KEY_CODE_G, /* qnum:34 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */

WARNING: line over 80 characters
#779: FILE: ui/input-keymap-qnum-to-qcode.c:42:
+  [0x23] = Q_KEY_CODE_H, /* qnum:35 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */

WARNING: line over 80 characters
#780: FILE: ui/input-keymap-qnum-to-qcode.c:43:
+  [0x24] = Q_KEY_CODE_J, /* qnum:36 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */

WARNING: line over 80 characters
#781: FILE: ui/input-keymap-qnum-to-qcode.c:44:
+  [0x25] = Q_KEY_CODE_K, /* qnum:37 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */

WARNING: line over 80 characters
#782: FILE: ui/input-keymap-qnum-to-qcode.c:45:
+  [0x26] = Q_KEY_CODE_L, /* qnum:38 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */

ERROR: line over 90 characters
#783: FILE: ui/input-keymap-qnum-to-qcode.c:46:
+  [0x27] = Q_KEY_CODE_SEMICOLON, /* qnum:39 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */

ERROR: line over 90 characters
#784: FILE: ui/input-keymap-qnum-to-qcode.c:47:
+  [0x28] = Q_KEY_CODE_APOSTROPHE, /* qnum:40 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */

ERROR: line over 90 characters
#785: FILE: ui/input-keymap-qnum-to-qcode.c:48:
+  [0x29] = Q_KEY_CODE_GRAVE_ACCENT, /* qnum:41 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */

ERROR: line over 90 characters
#786: FILE: ui/input-keymap-qnum-to-qcode.c:49:
+  [0x2a] = Q_KEY_CODE_SHIFT, /* qnum:42 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */

ERROR: line over 90 characters
#787: FILE: ui/input-keymap-qnum-to-qcode.c:50:
+  [0x2b] = Q_KEY_CODE_BACKSLASH, /* qnum:43 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

WARNING: line over 80 characters
#788: FILE: ui/input-keymap-qnum-to-qcode.c:51:
+  [0x2c] = Q_KEY_CODE_Z, /* qnum:44 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */

WARNING: line over 80 characters
#789: FILE: ui/input-keymap-qnum-to-qcode.c:52:
+  [0x2d] = Q_KEY_CODE_X, /* qnum:45 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */

WARNING: line over 80 characters
#790: FILE: ui/input-keymap-qnum-to-qcode.c:53:
+  [0x2e] = Q_KEY_CODE_C, /* qnum:46 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */

WARNING: line over 80 characters
#791: FILE: ui/input-keymap-qnum-to-qcode.c:54:
+  [0x2f] = Q_KEY_CODE_V, /* qnum:47 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */

WARNING: line over 80 characters
#792: FILE: ui/input-keymap-qnum-to-qcode.c:55:
+  [0x30] = Q_KEY_CODE_B, /* qnum:48 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */

WARNING: line over 80 characters
#793: FILE: ui/input-keymap-qnum-to-qcode.c:56:
+  [0x31] = Q_KEY_CODE_N, /* qnum:49 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */

WARNING: line over 80 characters
#794: FILE: ui/input-keymap-qnum-to-qcode.c:57:
+  [0x32] = Q_KEY_CODE_M, /* qnum:50 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */

ERROR: line over 90 characters
#795: FILE: ui/input-keymap-qnum-to-qcode.c:58:
+  [0x33] = Q_KEY_CODE_COMMA, /* qnum:51 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */

ERROR: line over 90 characters
#796: FILE: ui/input-keymap-qnum-to-qcode.c:59:
+  [0x34] = Q_KEY_CODE_DOT, /* qnum:52 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */

ERROR: line over 90 characters
#797: FILE: ui/input-keymap-qnum-to-qcode.c:60:
+  [0x35] = Q_KEY_CODE_SLASH, /* qnum:53 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */

ERROR: line over 90 characters
#798: FILE: ui/input-keymap-qnum-to-qcode.c:61:
+  [0x36] = Q_KEY_CODE_SHIFT_R, /* qnum:54 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */

ERROR: line over 90 characters
#799: FILE: ui/input-keymap-qnum-to-qcode.c:62:
+  [0x37] = Q_KEY_CODE_KP_MULTIPLY, /* qnum:55 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */

ERROR: line over 90 characters
#800: FILE: ui/input-keymap-qnum-to-qcode.c:63:
+  [0x38] = Q_KEY_CODE_ALT, /* qnum:56 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */

ERROR: line over 90 characters
#801: FILE: ui/input-keymap-qnum-to-qcode.c:64:
+  [0x39] = Q_KEY_CODE_SPC, /* qnum:57 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */

ERROR: line over 90 characters
#802: FILE: ui/input-keymap-qnum-to-qcode.c:65:
+  [0x3a] = Q_KEY_CODE_CAPS_LOCK, /* qnum:58 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */

WARNING: line over 80 characters
#803: FILE: ui/input-keymap-qnum-to-qcode.c:66:
+  [0x3b] = Q_KEY_CODE_F1, /* qnum:59 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */

WARNING: line over 80 characters
#804: FILE: ui/input-keymap-qnum-to-qcode.c:67:
+  [0x3c] = Q_KEY_CODE_F2, /* qnum:60 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */

WARNING: line over 80 characters
#805: FILE: ui/input-keymap-qnum-to-qcode.c:68:
+  [0x3d] = Q_KEY_CODE_F3, /* qnum:61 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */

WARNING: line over 80 characters
#806: FILE: ui/input-keymap-qnum-to-qcode.c:69:
+  [0x3e] = Q_KEY_CODE_F4, /* qnum:62 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */

WARNING: line over 80 characters
#807: FILE: ui/input-keymap-qnum-to-qcode.c:70:
+  [0x3f] = Q_KEY_CODE_F5, /* qnum:63 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */

WARNING: line over 80 characters
#808: FILE: ui/input-keymap-qnum-to-qcode.c:71:
+  [0x40] = Q_KEY_CODE_F6, /* qnum:64 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */

WARNING: line over 80 characters
#809: FILE: ui/input-keymap-qnum-to-qcode.c:72:
+  [0x41] = Q_KEY_CODE_F7, /* qnum:65 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */

WARNING: line over 80 characters
#810: FILE: ui/input-keymap-qnum-to-qcode.c:73:
+  [0x42] = Q_KEY_CODE_F8, /* qnum:66 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */

WARNING: line over 80 characters
#811: FILE: ui/input-keymap-qnum-to-qcode.c:74:
+  [0x43] = Q_KEY_CODE_F9, /* qnum:67 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */

ERROR: line over 90 characters
#812: FILE: ui/input-keymap-qnum-to-qcode.c:75:
+  [0x44] = Q_KEY_CODE_F10, /* qnum:68 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */

ERROR: line over 90 characters
#813: FILE: ui/input-keymap-qnum-to-qcode.c:76:
+  [0x45] = Q_KEY_CODE_NUM_LOCK, /* qnum:69 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */

ERROR: line over 90 characters
#814: FILE: ui/input-keymap-qnum-to-qcode.c:77:
+  [0x46] = Q_KEY_CODE_SCROLL_LOCK, /* qnum:70 -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */

ERROR: line over 90 characters
#815: FILE: ui/input-keymap-qnum-to-qcode.c:78:
+  [0x47] = Q_KEY_CODE_KP_7, /* qnum:71 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */

ERROR: line over 90 characters
#816: FILE: ui/input-keymap-qnum-to-qcode.c:79:
+  [0x48] = Q_KEY_CODE_KP_8, /* qnum:72 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */

ERROR: line over 90 characters
#817: FILE: ui/input-keymap-qnum-to-qcode.c:80:
+  [0x49] = Q_KEY_CODE_KP_9, /* qnum:73 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */

ERROR: line over 90 characters
#818: FILE: ui/input-keymap-qnum-to-qcode.c:81:
+  [0x4a] = Q_KEY_CODE_KP_SUBTRACT, /* qnum:74 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */

ERROR: line over 90 characters
#819: FILE: ui/input-keymap-qnum-to-qcode.c:82:
+  [0x4b] = Q_KEY_CODE_KP_4, /* qnum:75 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */

ERROR: line over 90 characters
#820: FILE: ui/input-keymap-qnum-to-qcode.c:83:
+  [0x4c] = Q_KEY_CODE_KP_5, /* qnum:76 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */

ERROR: line over 90 characters
#821: FILE: ui/input-keymap-qnum-to-qcode.c:84:
+  [0x4d] = Q_KEY_CODE_KP_6, /* qnum:77 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */

ERROR: line over 90 characters
#822: FILE: ui/input-keymap-qnum-to-qcode.c:85:
+  [0x4e] = Q_KEY_CODE_KP_ADD, /* qnum:78 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */

ERROR: line over 90 characters
#823: FILE: ui/input-keymap-qnum-to-qcode.c:86:
+  [0x4f] = Q_KEY_CODE_KP_1, /* qnum:79 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */

ERROR: line over 90 characters
#824: FILE: ui/input-keymap-qnum-to-qcode.c:87:
+  [0x50] = Q_KEY_CODE_KP_2, /* qnum:80 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */

ERROR: line over 90 characters
#825: FILE: ui/input-keymap-qnum-to-qcode.c:88:
+  [0x51] = Q_KEY_CODE_KP_3, /* qnum:81 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */

ERROR: line over 90 characters
#826: FILE: ui/input-keymap-qnum-to-qcode.c:89:
+  [0x52] = Q_KEY_CODE_KP_0, /* qnum:82 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */

ERROR: line over 90 characters
#827: FILE: ui/input-keymap-qnum-to-qcode.c:90:
+  [0x53] = Q_KEY_CODE_KP_DECIMAL, /* qnum:83 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */

ERROR: line over 90 characters
#828: FILE: ui/input-keymap-qnum-to-qcode.c:91:
+  [0x54] = Q_KEY_CODE_SYSRQ, /* qnum:84 -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */

ERROR: line over 90 characters
#829: FILE: ui/input-keymap-qnum-to-qcode.c:92:
+  [0x55] = Q_KEY_CODE_UNMAPPED, /* qnum:85 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#830: FILE: ui/input-keymap-qnum-to-qcode.c:93:
+  [0x56] = Q_KEY_CODE_LESS, /* qnum:86 -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */

ERROR: line over 90 characters
#831: FILE: ui/input-keymap-qnum-to-qcode.c:94:
+  [0x57] = Q_KEY_CODE_F11, /* qnum:87 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */

ERROR: line over 90 characters
#832: FILE: ui/input-keymap-qnum-to-qcode.c:95:
+  [0x58] = Q_KEY_CODE_F12, /* qnum:88 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */

ERROR: line over 90 characters
#833: FILE: ui/input-keymap-qnum-to-qcode.c:96:
+  [0x59] = Q_KEY_CODE_KP_EQUALS, /* qnum:89 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */

ERROR: line over 90 characters
#834: FILE: ui/input-keymap-qnum-to-qcode.c:97:
+  [0x5a] = Q_KEY_CODE_UNMAPPED, /* qnum:90 -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#835: FILE: ui/input-keymap-qnum-to-qcode.c:98:
+  [0x5b] = Q_KEY_CODE_LF, /* qnum:91 -> linux:101 (KEY_LINEFEED) -> qcode:Q_KEY_CODE_LF (lf) */

ERROR: line over 90 characters
#836: FILE: ui/input-keymap-qnum-to-qcode.c:99:
+  [0x5c] = Q_KEY_CODE_UNMAPPED, /* qnum:92 -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#837: FILE: ui/input-keymap-qnum-to-qcode.c:100:
+  [0x5d] = Q_KEY_CODE_UNMAPPED, /* qnum:93 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#838: FILE: ui/input-keymap-qnum-to-qcode.c:101:
+  [0x5e] = Q_KEY_CODE_UNMAPPED, /* qnum:94 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#839: FILE: ui/input-keymap-qnum-to-qcode.c:102:
+  [0x5f] = Q_KEY_CODE_UNMAPPED, /* qnum:95 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#840: FILE: ui/input-keymap-qnum-to-qcode.c:103:
+  [0x63] = Q_KEY_CODE_UNMAPPED, /* qnum:99 -> linux:169 (KEY_PHONE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#841: FILE: ui/input-keymap-qnum-to-qcode.c:104:
+  [0x64] = Q_KEY_CODE_OPEN, /* qnum:100 -> linux:134 (KEY_OPEN) -> qcode:Q_KEY_CODE_OPEN (open) */

ERROR: line over 90 characters
#842: FILE: ui/input-keymap-qnum-to-qcode.c:105:
+  [0x65] = Q_KEY_CODE_PASTE, /* qnum:101 -> linux:135 (KEY_PASTE) -> qcode:Q_KEY_CODE_PASTE (paste) */

ERROR: line over 90 characters
#843: FILE: ui/input-keymap-qnum-to-qcode.c:106:
+  [0x66] = Q_KEY_CODE_UNMAPPED, /* qnum:102 -> linux:141 (KEY_SETUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#844: FILE: ui/input-keymap-qnum-to-qcode.c:107:
+  [0x67] = Q_KEY_CODE_UNMAPPED, /* qnum:103 -> linux:144 (KEY_FILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#845: FILE: ui/input-keymap-qnum-to-qcode.c:108:
+  [0x68] = Q_KEY_CODE_UNMAPPED, /* qnum:104 -> linux:145 (KEY_SENDFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#846: FILE: ui/input-keymap-qnum-to-qcode.c:109:
+  [0x69] = Q_KEY_CODE_UNMAPPED, /* qnum:105 -> linux:146 (KEY_DELETEFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#847: FILE: ui/input-keymap-qnum-to-qcode.c:110:
+  [0x6a] = Q_KEY_CODE_UNMAPPED, /* qnum:106 -> linux:151 (KEY_MSDOS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#848: FILE: ui/input-keymap-qnum-to-qcode.c:111:
+  [0x6b] = Q_KEY_CODE_UNMAPPED, /* qnum:107 -> linux:153 (KEY_DIRECTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#849: FILE: ui/input-keymap-qnum-to-qcode.c:112:
+  [0x6c] = Q_KEY_CODE_UNMAPPED, /* qnum:108 -> linux:161 (KEY_EJECTCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#850: FILE: ui/input-keymap-qnum-to-qcode.c:113:
+  [0x6d] = Q_KEY_CODE_UNMAPPED, /* qnum:109 -> linux:193 (KEY_F23) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#851: FILE: ui/input-keymap-qnum-to-qcode.c:114:
+  [0x6f] = Q_KEY_CODE_UNMAPPED, /* qnum:111 -> linux:194 (KEY_F24) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#852: FILE: ui/input-keymap-qnum-to-qcode.c:115:
+  [0x70] = Q_KEY_CODE_UNMAPPED, /* qnum:112 -> linux:170 (KEY_ISO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#853: FILE: ui/input-keymap-qnum-to-qcode.c:116:
+  [0x71] = Q_KEY_CODE_UNMAPPED, /* qnum:113 -> linux:174 (KEY_EXIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#854: FILE: ui/input-keymap-qnum-to-qcode.c:117:
+  [0x72] = Q_KEY_CODE_UNMAPPED, /* qnum:114 -> linux:175 (KEY_MOVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

WARNING: line over 80 characters
#855: FILE: ui/input-keymap-qnum-to-qcode.c:118:
+  [0x73] = Q_KEY_CODE_RO, /* qnum:115 -> linux:89 (KEY_RO) -> qcode:Q_KEY_CODE_RO (ro) */

ERROR: line over 90 characters
#856: FILE: ui/input-keymap-qnum-to-qcode.c:119:
+  [0x74] = Q_KEY_CODE_UNMAPPED, /* qnum:116 -> linux:191 (KEY_F21) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#857: FILE: ui/input-keymap-qnum-to-qcode.c:120:
+  [0x75] = Q_KEY_CODE_UNMAPPED, /* qnum:117 -> linux:177 (KEY_SCROLLUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#858: FILE: ui/input-keymap-qnum-to-qcode.c:121:
+  [0x76] = Q_KEY_CODE_UNMAPPED, /* qnum:118 -> linux:85 (KEY_ZENKAKUHANKAKU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#859: FILE: ui/input-keymap-qnum-to-qcode.c:122:
+  [0x77] = Q_KEY_CODE_HIRAGANA, /* qnum:119 -> linux:91 (KEY_HIRAGANA) -> qcode:Q_KEY_CODE_HIRAGANA (hiragana) */

ERROR: line over 90 characters
#860: FILE: ui/input-keymap-qnum-to-qcode.c:123:
+  [0x78] = Q_KEY_CODE_UNMAPPED, /* qnum:120 -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#861: FILE: ui/input-keymap-qnum-to-qcode.c:124:
+  [0x79] = Q_KEY_CODE_HENKAN, /* qnum:121 -> linux:92 (KEY_HENKAN) -> qcode:Q_KEY_CODE_HENKAN (henkan) */

ERROR: line over 90 characters
#862: FILE: ui/input-keymap-qnum-to-qcode.c:125:
+  [0x7b] = Q_KEY_CODE_UNMAPPED, /* qnum:123 -> linux:94 (KEY_MUHENKAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#863: FILE: ui/input-keymap-qnum-to-qcode.c:126:
+  [0x7d] = Q_KEY_CODE_YEN, /* qnum:125 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */

ERROR: line over 90 characters
#864: FILE: ui/input-keymap-qnum-to-qcode.c:127:
+  [0x7e] = Q_KEY_CODE_KP_COMMA, /* qnum:126 -> linux:121 (KEY_KPCOMMA) -> qcode:Q_KEY_CODE_KP_COMMA (kp_comma) */

ERROR: line over 90 characters
#865: FILE: ui/input-keymap-qnum-to-qcode.c:128:
+  [0x81] = Q_KEY_CODE_UNMAPPED, /* qnum:129 -> linux:171 (KEY_CONFIG) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#866: FILE: ui/input-keymap-qnum-to-qcode.c:129:
+  [0x82] = Q_KEY_CODE_UNMAPPED, /* qnum:130 -> linux:150 (KEY_WWW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#867: FILE: ui/input-keymap-qnum-to-qcode.c:130:
+  [0x83] = Q_KEY_CODE_UNMAPPED, /* qnum:131 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#868: FILE: ui/input-keymap-qnum-to-qcode.c:131:
+  [0x84] = Q_KEY_CODE_UNMAPPED, /* qnum:132 -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#869: FILE: ui/input-keymap-qnum-to-qcode.c:132:
+  [0x85] = Q_KEY_CODE_AGAIN, /* qnum:133 -> linux:129 (KEY_AGAIN) -> qcode:Q_KEY_CODE_AGAIN (again) */

ERROR: line over 90 characters
#870: FILE: ui/input-keymap-qnum-to-qcode.c:133:
+  [0x86] = Q_KEY_CODE_PROPS, /* qnum:134 -> linux:130 (KEY_PROPS) -> qcode:Q_KEY_CODE_PROPS (props) */

ERROR: line over 90 characters
#871: FILE: ui/input-keymap-qnum-to-qcode.c:134:
+  [0x87] = Q_KEY_CODE_UNDO, /* qnum:135 -> linux:131 (KEY_UNDO) -> qcode:Q_KEY_CODE_UNDO (undo) */

ERROR: line over 90 characters
#872: FILE: ui/input-keymap-qnum-to-qcode.c:135:
+  [0x88] = Q_KEY_CODE_UNMAPPED, /* qnum:136 -> linux:176 (KEY_EDIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#873: FILE: ui/input-keymap-qnum-to-qcode.c:136:
+  [0x89] = Q_KEY_CODE_UNMAPPED, /* qnum:137 -> linux:181 (KEY_NEW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#874: FILE: ui/input-keymap-qnum-to-qcode.c:137:
+  [0x8a] = Q_KEY_CODE_UNMAPPED, /* qnum:138 -> linux:182 (KEY_REDO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#875: FILE: ui/input-keymap-qnum-to-qcode.c:138:
+  [0x8b] = Q_KEY_CODE_UNMAPPED, /* qnum:139 -> linux:120 (KEY_SCALE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#876: FILE: ui/input-keymap-qnum-to-qcode.c:139:
+  [0x8c] = Q_KEY_CODE_FRONT, /* qnum:140 -> linux:132 (KEY_FRONT) -> qcode:Q_KEY_CODE_FRONT (front) */

ERROR: line over 90 characters
#877: FILE: ui/input-keymap-qnum-to-qcode.c:140:
+  [0x8d] = Q_KEY_CODE_UNMAPPED, /* qnum:141 -> linux:123 (KEY_HANJA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#878: FILE: ui/input-keymap-qnum-to-qcode.c:141:
+  [0x8e] = Q_KEY_CODE_UNMAPPED, /* qnum:142 -> linux:233 (KEY_FORWARDMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#879: FILE: ui/input-keymap-qnum-to-qcode.c:142:
+  [0x8f] = Q_KEY_CODE_UNMAPPED, /* qnum:143 -> linux:178 (KEY_SCROLLDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#880: FILE: ui/input-keymap-qnum-to-qcode.c:143:
+  [0x90] = Q_KEY_CODE_AUDIOPREV, /* qnum:144 -> linux:165 (KEY_PREVIOUSSONG) -> qcode:Q_KEY_CODE_AUDIOPREV (audioprev) */

ERROR: line over 90 characters
#881: FILE: ui/input-keymap-qnum-to-qcode.c:144:
+  [0x92] = Q_KEY_CODE_UNMAPPED, /* qnum:146 -> linux:152 (KEY_SCREENLOCK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#882: FILE: ui/input-keymap-qnum-to-qcode.c:145:
+  [0x93] = Q_KEY_CODE_UNMAPPED, /* qnum:147 -> linux:147 (KEY_XFER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#883: FILE: ui/input-keymap-qnum-to-qcode.c:146:
+  [0x94] = Q_KEY_CODE_UNMAPPED, /* qnum:148 -> linux:222 (KEY_ALTERASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#884: FILE: ui/input-keymap-qnum-to-qcode.c:147:
+  [0x95] = Q_KEY_CODE_UNMAPPED, /* qnum:149 -> linux:195 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#885: FILE: ui/input-keymap-qnum-to-qcode.c:148:
+  [0x96] = Q_KEY_CODE_UNMAPPED, /* qnum:150 -> linux:196 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#886: FILE: ui/input-keymap-qnum-to-qcode.c:149:
+  [0x97] = Q_KEY_CODE_UNMAPPED, /* qnum:151 -> linux:149 (KEY_PROG2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#887: FILE: ui/input-keymap-qnum-to-qcode.c:150:
+  [0x98] = Q_KEY_CODE_UNMAPPED, /* qnum:152 -> linux:168 (KEY_REWIND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#888: FILE: ui/input-keymap-qnum-to-qcode.c:151:
+  [0x99] = Q_KEY_CODE_AUDIONEXT, /* qnum:153 -> linux:163 (KEY_NEXTSONG) -> qcode:Q_KEY_CODE_AUDIONEXT (audionext) */

ERROR: line over 90 characters
#889: FILE: ui/input-keymap-qnum-to-qcode.c:152:
+  [0x9a] = Q_KEY_CODE_UNMAPPED, /* qnum:154 -> linux:197 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#890: FILE: ui/input-keymap-qnum-to-qcode.c:153:
+  [0x9b] = Q_KEY_CODE_UNMAPPED, /* qnum:155 -> linux:198 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#891: FILE: ui/input-keymap-qnum-to-qcode.c:154:
+  [0x9c] = Q_KEY_CODE_KP_ENTER, /* qnum:156 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */

ERROR: line over 90 characters
#892: FILE: ui/input-keymap-qnum-to-qcode.c:155:
+  [0x9d] = Q_KEY_CODE_CTRL_R, /* qnum:157 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */

ERROR: line over 90 characters
#893: FILE: ui/input-keymap-qnum-to-qcode.c:156:
+  [0x9e] = Q_KEY_CODE_MENU, /* qnum:158 -> linux:139 (KEY_MENU) -> qcode:Q_KEY_CODE_MENU (menu) */

ERROR: line over 90 characters
#894: FILE: ui/input-keymap-qnum-to-qcode.c:157:
+  [0x9f] = Q_KEY_CODE_UNMAPPED, /* qnum:159 -> linux:148 (KEY_PROG1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#895: FILE: ui/input-keymap-qnum-to-qcode.c:158:
+  [0xa0] = Q_KEY_CODE_AUDIOMUTE, /* qnum:160 -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */

ERROR: line over 90 characters
#896: FILE: ui/input-keymap-qnum-to-qcode.c:159:
+  [0xa1] = Q_KEY_CODE_CALCULATOR, /* qnum:161 -> linux:140 (KEY_CALC) -> qcode:Q_KEY_CODE_CALCULATOR (calculator) */

ERROR: line over 90 characters
#897: FILE: ui/input-keymap-qnum-to-qcode.c:160:
+  [0xa2] = Q_KEY_CODE_AUDIOPLAY, /* qnum:162 -> linux:164 (KEY_PLAYPAUSE) -> qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) */

ERROR: line over 90 characters
#898: FILE: ui/input-keymap-qnum-to-qcode.c:161:
+  [0xa3] = Q_KEY_CODE_UNMAPPED, /* qnum:163 -> linux:160 (KEY_CLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#899: FILE: ui/input-keymap-qnum-to-qcode.c:162:
+  [0xa4] = Q_KEY_CODE_AUDIOSTOP, /* qnum:164 -> linux:166 (KEY_STOPCD) -> qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) */

ERROR: line over 90 characters
#900: FILE: ui/input-keymap-qnum-to-qcode.c:163:
+  [0xa5] = Q_KEY_CODE_UNMAPPED, /* qnum:165 -> linux:205 (KEY_SUSPEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#901: FILE: ui/input-keymap-qnum-to-qcode.c:164:
+  [0xa6] = Q_KEY_CODE_UNMAPPED, /* qnum:166 -> linux:154 (KEY_CYCLEWINDOWS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#902: FILE: ui/input-keymap-qnum-to-qcode.c:165:
+  [0xa7] = Q_KEY_CODE_UNMAPPED, /* qnum:167 -> linux:199 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#903: FILE: ui/input-keymap-qnum-to-qcode.c:166:
+  [0xa8] = Q_KEY_CODE_UNMAPPED, /* qnum:168 -> linux:200 (KEY_PLAYCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#904: FILE: ui/input-keymap-qnum-to-qcode.c:167:
+  [0xa9] = Q_KEY_CODE_UNMAPPED, /* qnum:169 -> linux:201 (KEY_PAUSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#905: FILE: ui/input-keymap-qnum-to-qcode.c:168:
+  [0xab] = Q_KEY_CODE_UNMAPPED, /* qnum:171 -> linux:202 (KEY_PROG3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#906: FILE: ui/input-keymap-qnum-to-qcode.c:169:
+  [0xac] = Q_KEY_CODE_UNMAPPED, /* qnum:172 -> linux:203 (KEY_PROG4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#907: FILE: ui/input-keymap-qnum-to-qcode.c:170:
+  [0xad] = Q_KEY_CODE_UNMAPPED, /* qnum:173 -> linux:204 (KEY_DASHBOARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#908: FILE: ui/input-keymap-qnum-to-qcode.c:171:
+  [0xae] = Q_KEY_CODE_VOLUMEDOWN, /* qnum:174 -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */

ERROR: line over 90 characters
#909: FILE: ui/input-keymap-qnum-to-qcode.c:172:
+  [0xaf] = Q_KEY_CODE_UNMAPPED, /* qnum:175 -> linux:206 (KEY_CLOSE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#910: FILE: ui/input-keymap-qnum-to-qcode.c:173:
+  [0xb0] = Q_KEY_CODE_VOLUMEUP, /* qnum:176 -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */

ERROR: line over 90 characters
#911: FILE: ui/input-keymap-qnum-to-qcode.c:174:
+  [0xb1] = Q_KEY_CODE_UNMAPPED, /* qnum:177 -> linux:167 (KEY_RECORD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#912: FILE: ui/input-keymap-qnum-to-qcode.c:175:
+  [0xb2] = Q_KEY_CODE_AC_HOME, /* qnum:178 -> linux:172 (KEY_HOMEPAGE) -> qcode:Q_KEY_CODE_AC_HOME (ac_home) */

ERROR: line over 90 characters
#913: FILE: ui/input-keymap-qnum-to-qcode.c:176:
+  [0xb3] = Q_KEY_CODE_UNMAPPED, /* qnum:179 -> linux:207 (KEY_PLAY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#914: FILE: ui/input-keymap-qnum-to-qcode.c:177:
+  [0xb4] = Q_KEY_CODE_UNMAPPED, /* qnum:180 -> linux:208 (KEY_FASTFORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#915: FILE: ui/input-keymap-qnum-to-qcode.c:178:
+  [0xb5] = Q_KEY_CODE_KP_DIVIDE, /* qnum:181 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */

ERROR: line over 90 characters
#916: FILE: ui/input-keymap-qnum-to-qcode.c:179:
+  [0xb6] = Q_KEY_CODE_UNMAPPED, /* qnum:182 -> linux:209 (KEY_BASSBOOST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#917: FILE: ui/input-keymap-qnum-to-qcode.c:180:
+  [0xb8] = Q_KEY_CODE_ALT_R, /* qnum:184 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */

ERROR: line over 90 characters
#918: FILE: ui/input-keymap-qnum-to-qcode.c:181:
+  [0xb9] = Q_KEY_CODE_UNMAPPED, /* qnum:185 -> linux:210 (KEY_PRINT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#919: FILE: ui/input-keymap-qnum-to-qcode.c:182:
+  [0xba] = Q_KEY_CODE_UNMAPPED, /* qnum:186 -> linux:211 (KEY_HP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#920: FILE: ui/input-keymap-qnum-to-qcode.c:183:
+  [0xbb] = Q_KEY_CODE_UNMAPPED, /* qnum:187 -> linux:212 (KEY_CAMERA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#921: FILE: ui/input-keymap-qnum-to-qcode.c:184:
+  [0xbc] = Q_KEY_CODE_CUT, /* qnum:188 -> linux:137 (KEY_CUT) -> qcode:Q_KEY_CODE_CUT (cut) */

ERROR: line over 90 characters
#922: FILE: ui/input-keymap-qnum-to-qcode.c:185:
+  [0xbd] = Q_KEY_CODE_UNMAPPED, /* qnum:189 -> linux:213 (KEY_SOUND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#923: FILE: ui/input-keymap-qnum-to-qcode.c:186:
+  [0xbe] = Q_KEY_CODE_UNMAPPED, /* qnum:190 -> linux:214 (KEY_QUESTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#924: FILE: ui/input-keymap-qnum-to-qcode.c:187:
+  [0xbf] = Q_KEY_CODE_UNMAPPED, /* qnum:191 -> linux:215 (KEY_EMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#925: FILE: ui/input-keymap-qnum-to-qcode.c:188:
+  [0xc0] = Q_KEY_CODE_UNMAPPED, /* qnum:192 -> linux:216 (KEY_CHAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#926: FILE: ui/input-keymap-qnum-to-qcode.c:189:
+  [0xc1] = Q_KEY_CODE_FIND, /* qnum:193 -> linux:136 (KEY_FIND) -> qcode:Q_KEY_CODE_FIND (find) */

ERROR: line over 90 characters
#927: FILE: ui/input-keymap-qnum-to-qcode.c:190:
+  [0xc2] = Q_KEY_CODE_UNMAPPED, /* qnum:194 -> linux:218 (KEY_CONNECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#928: FILE: ui/input-keymap-qnum-to-qcode.c:191:
+  [0xc3] = Q_KEY_CODE_UNMAPPED, /* qnum:195 -> linux:219 (KEY_FINANCE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#929: FILE: ui/input-keymap-qnum-to-qcode.c:192:
+  [0xc4] = Q_KEY_CODE_UNMAPPED, /* qnum:196 -> linux:220 (KEY_SPORT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#930: FILE: ui/input-keymap-qnum-to-qcode.c:193:
+  [0xc5] = Q_KEY_CODE_UNMAPPED, /* qnum:197 -> linux:221 (KEY_SHOP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#931: FILE: ui/input-keymap-qnum-to-qcode.c:194:
+  [0xc6] = Q_KEY_CODE_PAUSE, /* qnum:198 -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */

ERROR: line over 90 characters
#932: FILE: ui/input-keymap-qnum-to-qcode.c:195:
+  [0xc7] = Q_KEY_CODE_HOME, /* qnum:199 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */

WARNING: line over 80 characters
#933: FILE: ui/input-keymap-qnum-to-qcode.c:196:
+  [0xc8] = Q_KEY_CODE_UP, /* qnum:200 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */

ERROR: line over 90 characters
#934: FILE: ui/input-keymap-qnum-to-qcode.c:197:
+  [0xc9] = Q_KEY_CODE_PGUP, /* qnum:201 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */

ERROR: line over 90 characters
#935: FILE: ui/input-keymap-qnum-to-qcode.c:198:
+  [0xca] = Q_KEY_CODE_UNMAPPED, /* qnum:202 -> linux:223 (KEY_CANCEL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#936: FILE: ui/input-keymap-qnum-to-qcode.c:199:
+  [0xcb] = Q_KEY_CODE_LEFT, /* qnum:203 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */

ERROR: line over 90 characters
#937: FILE: ui/input-keymap-qnum-to-qcode.c:200:
+  [0xcc] = Q_KEY_CODE_UNMAPPED, /* qnum:204 -> linux:224 (KEY_BRIGHTNESSDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#938: FILE: ui/input-keymap-qnum-to-qcode.c:201:
+  [0xcd] = Q_KEY_CODE_RIGHT, /* qnum:205 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */

ERROR: line over 90 characters
#939: FILE: ui/input-keymap-qnum-to-qcode.c:202:
+  [0xce] = Q_KEY_CODE_UNMAPPED, /* qnum:206 -> linux:118 (KEY_KPPLUSMINUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#940: FILE: ui/input-keymap-qnum-to-qcode.c:203:
+  [0xcf] = Q_KEY_CODE_END, /* qnum:207 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */

ERROR: line over 90 characters
#941: FILE: ui/input-keymap-qnum-to-qcode.c:204:
+  [0xd0] = Q_KEY_CODE_DOWN, /* qnum:208 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */

ERROR: line over 90 characters
#942: FILE: ui/input-keymap-qnum-to-qcode.c:205:
+  [0xd1] = Q_KEY_CODE_PGDN, /* qnum:209 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */

ERROR: line over 90 characters
#943: FILE: ui/input-keymap-qnum-to-qcode.c:206:
+  [0xd2] = Q_KEY_CODE_INSERT, /* qnum:210 -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */

ERROR: line over 90 characters
#944: FILE: ui/input-keymap-qnum-to-qcode.c:207:
+  [0xd3] = Q_KEY_CODE_DELETE, /* qnum:211 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */

ERROR: line over 90 characters
#945: FILE: ui/input-keymap-qnum-to-qcode.c:208:
+  [0xd4] = Q_KEY_CODE_UNMAPPED, /* qnum:212 -> linux:225 (KEY_BRIGHTNESSUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#946: FILE: ui/input-keymap-qnum-to-qcode.c:209:
+  [0xd5] = Q_KEY_CODE_UNMAPPED, /* qnum:213 -> linux:234 (KEY_SAVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#947: FILE: ui/input-keymap-qnum-to-qcode.c:210:
+  [0xd6] = Q_KEY_CODE_UNMAPPED, /* qnum:214 -> linux:227 (KEY_SWITCHVIDEOMODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#948: FILE: ui/input-keymap-qnum-to-qcode.c:211:
+  [0xd7] = Q_KEY_CODE_UNMAPPED, /* qnum:215 -> linux:228 (KEY_KBDILLUMTOGGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#949: FILE: ui/input-keymap-qnum-to-qcode.c:212:
+  [0xd8] = Q_KEY_CODE_UNMAPPED, /* qnum:216 -> linux:229 (KEY_KBDILLUMDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#950: FILE: ui/input-keymap-qnum-to-qcode.c:213:
+  [0xd9] = Q_KEY_CODE_UNMAPPED, /* qnum:217 -> linux:230 (KEY_KBDILLUMUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#951: FILE: ui/input-keymap-qnum-to-qcode.c:214:
+  [0xda] = Q_KEY_CODE_UNMAPPED, /* qnum:218 -> linux:231 (KEY_SEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#952: FILE: ui/input-keymap-qnum-to-qcode.c:215:
+  [0xdb] = Q_KEY_CODE_META_L, /* qnum:219 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */

ERROR: line over 90 characters
#953: FILE: ui/input-keymap-qnum-to-qcode.c:216:
+  [0xdc] = Q_KEY_CODE_META_R, /* qnum:220 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */

ERROR: line over 90 characters
#954: FILE: ui/input-keymap-qnum-to-qcode.c:217:
+  [0xdd] = Q_KEY_CODE_COMPOSE, /* qnum:221 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */

ERROR: line over 90 characters
#955: FILE: ui/input-keymap-qnum-to-qcode.c:218:
+  [0xde] = Q_KEY_CODE_POWER, /* qnum:222 -> linux:116 (KEY_POWER) -> qcode:Q_KEY_CODE_POWER (power) */

ERROR: line over 90 characters
#956: FILE: ui/input-keymap-qnum-to-qcode.c:219:
+  [0xdf] = Q_KEY_CODE_SLEEP, /* qnum:223 -> linux:142 (KEY_SLEEP) -> qcode:Q_KEY_CODE_SLEEP (sleep) */

ERROR: line over 90 characters
#957: FILE: ui/input-keymap-qnum-to-qcode.c:220:
+  [0xe3] = Q_KEY_CODE_WAKE, /* qnum:227 -> linux:143 (KEY_WAKEUP) -> qcode:Q_KEY_CODE_WAKE (wake) */

ERROR: line over 90 characters
#958: FILE: ui/input-keymap-qnum-to-qcode.c:221:
+  [0xe4] = Q_KEY_CODE_UNMAPPED, /* qnum:228 -> linux:232 (KEY_REPLY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#959: FILE: ui/input-keymap-qnum-to-qcode.c:222:
+  [0xe5] = Q_KEY_CODE_UNMAPPED, /* qnum:229 -> linux:217 (KEY_SEARCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#960: FILE: ui/input-keymap-qnum-to-qcode.c:223:
+  [0xe6] = Q_KEY_CODE_AC_BOOKMARKS, /* qnum:230 -> linux:156 (KEY_BOOKMARKS) -> qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) */

ERROR: line over 90 characters
#961: FILE: ui/input-keymap-qnum-to-qcode.c:224:
+  [0xe7] = Q_KEY_CODE_AC_REFRESH, /* qnum:231 -> linux:173 (KEY_REFRESH) -> qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) */

ERROR: line over 90 characters
#962: FILE: ui/input-keymap-qnum-to-qcode.c:225:
+  [0xe8] = Q_KEY_CODE_STOP, /* qnum:232 -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */

ERROR: line over 90 characters
#963: FILE: ui/input-keymap-qnum-to-qcode.c:226:
+  [0xe9] = Q_KEY_CODE_AC_FORWARD, /* qnum:233 -> linux:159 (KEY_FORWARD) -> qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) */

ERROR: line over 90 characters
#964: FILE: ui/input-keymap-qnum-to-qcode.c:227:
+  [0xea] = Q_KEY_CODE_AC_BACK, /* qnum:234 -> linux:158 (KEY_BACK) -> qcode:Q_KEY_CODE_AC_BACK (ac_back) */

ERROR: line over 90 characters
#965: FILE: ui/input-keymap-qnum-to-qcode.c:228:
+  [0xeb] = Q_KEY_CODE_COMPUTER, /* qnum:235 -> linux:157 (KEY_COMPUTER) -> qcode:Q_KEY_CODE_COMPUTER (computer) */

ERROR: line over 90 characters
#966: FILE: ui/input-keymap-qnum-to-qcode.c:229:
+  [0xec] = Q_KEY_CODE_MAIL, /* qnum:236 -> linux:155 (KEY_MAIL) -> qcode:Q_KEY_CODE_MAIL (mail) */

ERROR: line over 90 characters
#967: FILE: ui/input-keymap-qnum-to-qcode.c:230:
+  [0xed] = Q_KEY_CODE_MEDIASELECT, /* qnum:237 -> linux:226 (KEY_MEDIA) -> qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) */

ERROR: line over 90 characters
#968: FILE: ui/input-keymap-qnum-to-qcode.c:231:
+  [0xef] = Q_KEY_CODE_UNMAPPED, /* qnum:239 -> linux:112 (KEY_MACRO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#969: FILE: ui/input-keymap-qnum-to-qcode.c:232:
+  [0xf0] = Q_KEY_CODE_UNMAPPED, /* qnum:240 -> linux:235 (KEY_DOCUMENTS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#970: FILE: ui/input-keymap-qnum-to-qcode.c:233:
+  [0xf1] = Q_KEY_CODE_UNMAPPED, /* qnum:241 -> linux:236 (KEY_BATTERY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#971: FILE: ui/input-keymap-qnum-to-qcode.c:234:
+  [0xf2] = Q_KEY_CODE_UNMAPPED, /* qnum:242 -> linux:237 (KEY_BLUETOOTH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#972: FILE: ui/input-keymap-qnum-to-qcode.c:235:
+  [0xf3] = Q_KEY_CODE_UNMAPPED, /* qnum:243 -> linux:238 (KEY_WLAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#973: FILE: ui/input-keymap-qnum-to-qcode.c:236:
+  [0xf4] = Q_KEY_CODE_UNMAPPED, /* qnum:244 -> linux:239 (KEY_UWB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#974: FILE: ui/input-keymap-qnum-to-qcode.c:237:
+  [0xf5] = Q_KEY_CODE_HELP, /* qnum:245 -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */

ERROR: line over 90 characters
#975: FILE: ui/input-keymap-qnum-to-qcode.c:238:
+  [0xf6] = Q_KEY_CODE_UNMAPPED, /* qnum:246 -> linux:179 (KEY_KPLEFTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#976: FILE: ui/input-keymap-qnum-to-qcode.c:239:
+  [0xf7] = Q_KEY_CODE_UNMAPPED, /* qnum:247 -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#977: FILE: ui/input-keymap-qnum-to-qcode.c:240:
+  [0xf8] = Q_KEY_CODE_COPY, /* qnum:248 -> linux:133 (KEY_COPY) -> qcode:Q_KEY_CODE_COPY (copy) */

ERROR: line over 90 characters
#978: FILE: ui/input-keymap-qnum-to-qcode.c:241:
+  [0xf9] = Q_KEY_CODE_UNMAPPED, /* qnum:249 -> linux:192 (KEY_F22) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#979: FILE: ui/input-keymap-qnum-to-qcode.c:242:
+  [0xfb] = Q_KEY_CODE_UNMAPPED, /* qnum:251 -> linux:180 (KEY_KPRIGHTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#980: FILE: ui/input-keymap-qnum-to-qcode.c:243:
+  [0xfd] = Q_KEY_CODE_UNMAPPED, /* qnum:253 -> linux:162 (KEY_EJECTCLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#982: FILE: ui/input-keymap-qnum-to-qcode.c:245:
+const guint qemu_input_map_qnum_to_qcode_len = sizeof(qemu_input_map_qnum_to_qcode)/sizeof(qemu_input_map_qnum_to_qcode[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#982: FILE: ui/input-keymap-qnum-to-qcode.c:245:
+const guint qemu_input_map_qnum_to_qcode_len = sizeof(qemu_input_map_qnum_to_qcode)/sizeof(qemu_input_map_qnum_to_qcode[0]);
                                                                                    ^

total: 743 errors, 104 warnings, 1240 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 3/12: ui: convert key events to QKeyCodes immediately...
Checking PATCH 4/12: ui: don't export qemu_input_event_new_key...
Checking PATCH 5/12: input: convert virtio-input-hid device to keycodemapdb...
ERROR: line over 90 characters
#269: FILE: ui/input-keymap-qcode-to-linux.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#271: FILE: ui/input-keymap-qcode-to-linux.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qcode_to_linux code-map keymaps.csv qcode linux

ERROR: spaces required around that '-' (ctx:VxV)
#274: FILE: ui/input-keymap-qcode-to-linux.c:8:
+  [0 ... Q_KEY_CODE__MAX-1] = 0x0,
                         ^

ERROR: line over 90 characters
#275: FILE: ui/input-keymap-qcode-to-linux.c:9:
+  [Q_KEY_CODE_0] = 0xb, /* qcode:Q_KEY_CODE_0 (0) -> linux:11 (KEY_0) -> linux:11 (KEY_0) */

WARNING: line over 80 characters
#276: FILE: ui/input-keymap-qcode-to-linux.c:10:
+  [Q_KEY_CODE_1] = 0x2, /* qcode:Q_KEY_CODE_1 (1) -> linux:2 (KEY_1) -> linux:2 (KEY_1) */

WARNING: line over 80 characters
#277: FILE: ui/input-keymap-qcode-to-linux.c:11:
+  [Q_KEY_CODE_2] = 0x3, /* qcode:Q_KEY_CODE_2 (2) -> linux:3 (KEY_2) -> linux:3 (KEY_2) */

WARNING: line over 80 characters
#278: FILE: ui/input-keymap-qcode-to-linux.c:12:
+  [Q_KEY_CODE_3] = 0x4, /* qcode:Q_KEY_CODE_3 (3) -> linux:4 (KEY_3) -> linux:4 (KEY_3) */

WARNING: line over 80 characters
#279: FILE: ui/input-keymap-qcode-to-linux.c:13:
+  [Q_KEY_CODE_4] = 0x5, /* qcode:Q_KEY_CODE_4 (4) -> linux:5 (KEY_4) -> linux:5 (KEY_4) */

WARNING: line over 80 characters
#280: FILE: ui/input-keymap-qcode-to-linux.c:14:
+  [Q_KEY_CODE_5] = 0x6, /* qcode:Q_KEY_CODE_5 (5) -> linux:6 (KEY_5) -> linux:6 (KEY_5) */

WARNING: line over 80 characters
#281: FILE: ui/input-keymap-qcode-to-linux.c:15:
+  [Q_KEY_CODE_6] = 0x7, /* qcode:Q_KEY_CODE_6 (6) -> linux:7 (KEY_6) -> linux:7 (KEY_6) */

WARNING: line over 80 characters
#282: FILE: ui/input-keymap-qcode-to-linux.c:16:
+  [Q_KEY_CODE_7] = 0x8, /* qcode:Q_KEY_CODE_7 (7) -> linux:8 (KEY_7) -> linux:8 (KEY_7) */

WARNING: line over 80 characters
#283: FILE: ui/input-keymap-qcode-to-linux.c:17:
+  [Q_KEY_CODE_8] = 0x9, /* qcode:Q_KEY_CODE_8 (8) -> linux:9 (KEY_8) -> linux:9 (KEY_8) */

ERROR: line over 90 characters
#284: FILE: ui/input-keymap-qcode-to-linux.c:18:
+  [Q_KEY_CODE_9] = 0xa, /* qcode:Q_KEY_CODE_9 (9) -> linux:10 (KEY_9) -> linux:10 (KEY_9) */

ERROR: line over 90 characters
#285: FILE: ui/input-keymap-qcode-to-linux.c:19:
+  [Q_KEY_CODE_A] = 0x1e, /* qcode:Q_KEY_CODE_A (a) -> linux:30 (KEY_A) -> linux:30 (KEY_A) */

ERROR: line over 90 characters
#286: FILE: ui/input-keymap-qcode-to-linux.c:20:
+  [Q_KEY_CODE_AC_BACK] = 0x9e, /* qcode:Q_KEY_CODE_AC_BACK (ac_back) -> linux:158 (KEY_BACK) -> linux:158 (KEY_BACK) */

ERROR: line over 90 characters
#287: FILE: ui/input-keymap-qcode-to-linux.c:21:
+  [Q_KEY_CODE_AC_BOOKMARKS] = 0x9c, /* qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) -> linux:156 (KEY_BOOKMARKS) -> linux:156 (KEY_BOOKMARKS) */

ERROR: line over 90 characters
#288: FILE: ui/input-keymap-qcode-to-linux.c:22:
+  [Q_KEY_CODE_AC_FORWARD] = 0x9f, /* qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) -> linux:159 (KEY_FORWARD) -> linux:159 (KEY_FORWARD) */

ERROR: line over 90 characters
#289: FILE: ui/input-keymap-qcode-to-linux.c:23:
+  [Q_KEY_CODE_AC_HOME] = 0xac, /* qcode:Q_KEY_CODE_AC_HOME (ac_home) -> linux:172 (KEY_HOMEPAGE) -> linux:172 (KEY_HOMEPAGE) */

ERROR: line over 90 characters
#290: FILE: ui/input-keymap-qcode-to-linux.c:24:
+  [Q_KEY_CODE_AC_REFRESH] = 0xad, /* qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) -> linux:173 (KEY_REFRESH) -> linux:173 (KEY_REFRESH) */

ERROR: line over 90 characters
#291: FILE: ui/input-keymap-qcode-to-linux.c:25:
+  [Q_KEY_CODE_AGAIN] = 0x81, /* qcode:Q_KEY_CODE_AGAIN (again) -> linux:129 (KEY_AGAIN) -> linux:129 (KEY_AGAIN) */

ERROR: line over 90 characters
#292: FILE: ui/input-keymap-qcode-to-linux.c:26:
+  [Q_KEY_CODE_ALT] = 0x38, /* qcode:Q_KEY_CODE_ALT (alt) -> linux:56 (KEY_LEFTALT) -> linux:56 (KEY_LEFTALT) */

ERROR: line over 90 characters
#293: FILE: ui/input-keymap-qcode-to-linux.c:27:
+  [Q_KEY_CODE_ALT_R] = 0x64, /* qcode:Q_KEY_CODE_ALT_R (alt_r) -> linux:100 (KEY_RIGHTALT) -> linux:100 (KEY_RIGHTALT) */

ERROR: line over 90 characters
#294: FILE: ui/input-keymap-qcode-to-linux.c:28:
+  [Q_KEY_CODE_APOSTROPHE] = 0x28, /* qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) -> linux:40 (KEY_APOSTROPHE) -> linux:40 (KEY_APOSTROPHE) */

ERROR: line over 90 characters
#295: FILE: ui/input-keymap-qcode-to-linux.c:29:
+  [Q_KEY_CODE_ASTERISK] = 0x37, /* qcode:Q_KEY_CODE_ASTERISK (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> linux:55 (KEY_KPASTERISK) */

ERROR: line over 90 characters
#296: FILE: ui/input-keymap-qcode-to-linux.c:30:
+  [Q_KEY_CODE_AUDIOMUTE] = 0x71, /* qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) -> linux:113 (KEY_MUTE) -> linux:113 (KEY_MUTE) */

ERROR: line over 90 characters
#297: FILE: ui/input-keymap-qcode-to-linux.c:31:
+  [Q_KEY_CODE_AUDIONEXT] = 0xa3, /* qcode:Q_KEY_CODE_AUDIONEXT (audionext) -> linux:163 (KEY_NEXTSONG) -> linux:163 (KEY_NEXTSONG) */

ERROR: line over 90 characters
#298: FILE: ui/input-keymap-qcode-to-linux.c:32:
+  [Q_KEY_CODE_AUDIOPLAY] = 0xa4, /* qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) -> linux:164 (KEY_PLAYPAUSE) -> linux:164 (KEY_PLAYPAUSE) */

ERROR: line over 90 characters
#299: FILE: ui/input-keymap-qcode-to-linux.c:33:
+  [Q_KEY_CODE_AUDIOPREV] = 0xa5, /* qcode:Q_KEY_CODE_AUDIOPREV (audioprev) -> linux:165 (KEY_PREVIOUSSONG) -> linux:165 (KEY_PREVIOUSSONG) */

ERROR: line over 90 characters
#300: FILE: ui/input-keymap-qcode-to-linux.c:34:
+  [Q_KEY_CODE_AUDIOSTOP] = 0xa6, /* qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) -> linux:166 (KEY_STOPCD) -> linux:166 (KEY_STOPCD) */

ERROR: line over 90 characters
#301: FILE: ui/input-keymap-qcode-to-linux.c:35:
+  [Q_KEY_CODE_B] = 0x30, /* qcode:Q_KEY_CODE_B (b) -> linux:48 (KEY_B) -> linux:48 (KEY_B) */

ERROR: line over 90 characters
#302: FILE: ui/input-keymap-qcode-to-linux.c:36:
+  [Q_KEY_CODE_BACKSLASH] = 0x2b, /* qcode:Q_KEY_CODE_BACKSLASH (backslash) -> linux:43 (KEY_BACKSLASH) -> linux:43 (KEY_BACKSLASH) */

ERROR: line over 90 characters
#303: FILE: ui/input-keymap-qcode-to-linux.c:37:
+  [Q_KEY_CODE_BACKSPACE] = 0xe, /* qcode:Q_KEY_CODE_BACKSPACE (backspace) -> linux:14 (KEY_BACKSPACE) -> linux:14 (KEY_BACKSPACE) */

ERROR: line over 90 characters
#304: FILE: ui/input-keymap-qcode-to-linux.c:38:
+  [Q_KEY_CODE_BRACKET_LEFT] = 0x1a, /* qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) -> linux:26 (KEY_LEFTBRACE) -> linux:26 (KEY_LEFTBRACE) */

ERROR: line over 90 characters
#305: FILE: ui/input-keymap-qcode-to-linux.c:39:
+  [Q_KEY_CODE_BRACKET_RIGHT] = 0x1b, /* qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) -> linux:27 (KEY_RIGHTBRACE) -> linux:27 (KEY_RIGHTBRACE) */

ERROR: line over 90 characters
#306: FILE: ui/input-keymap-qcode-to-linux.c:40:
+  [Q_KEY_CODE_C] = 0x2e, /* qcode:Q_KEY_CODE_C (c) -> linux:46 (KEY_C) -> linux:46 (KEY_C) */

ERROR: line over 90 characters
#307: FILE: ui/input-keymap-qcode-to-linux.c:41:
+  [Q_KEY_CODE_CALCULATOR] = 0x8c, /* qcode:Q_KEY_CODE_CALCULATOR (calculator) -> linux:140 (KEY_CALC) -> linux:140 (KEY_CALC) */

ERROR: line over 90 characters
#308: FILE: ui/input-keymap-qcode-to-linux.c:42:
+  [Q_KEY_CODE_CAPS_LOCK] = 0x3a, /* qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) -> linux:58 (KEY_CAPSLOCK) -> linux:58 (KEY_CAPSLOCK) */

ERROR: line over 90 characters
#309: FILE: ui/input-keymap-qcode-to-linux.c:43:
+  [Q_KEY_CODE_COMMA] = 0x33, /* qcode:Q_KEY_CODE_COMMA (comma) -> linux:51 (KEY_COMMA) -> linux:51 (KEY_COMMA) */

ERROR: line over 90 characters
#310: FILE: ui/input-keymap-qcode-to-linux.c:44:
+  [Q_KEY_CODE_COMPOSE] = 0x7f, /* qcode:Q_KEY_CODE_COMPOSE (compose) -> linux:127 (KEY_COMPOSE) -> linux:127 (KEY_COMPOSE) */

ERROR: line over 90 characters
#311: FILE: ui/input-keymap-qcode-to-linux.c:45:
+  [Q_KEY_CODE_COMPUTER] = 0x9d, /* qcode:Q_KEY_CODE_COMPUTER (computer) -> linux:157 (KEY_COMPUTER) -> linux:157 (KEY_COMPUTER) */

ERROR: line over 90 characters
#312: FILE: ui/input-keymap-qcode-to-linux.c:46:
+  [Q_KEY_CODE_COPY] = 0x85, /* qcode:Q_KEY_CODE_COPY (copy) -> linux:133 (KEY_COPY) -> linux:133 (KEY_COPY) */

ERROR: line over 90 characters
#313: FILE: ui/input-keymap-qcode-to-linux.c:47:
+  [Q_KEY_CODE_CTRL] = 0x1d, /* qcode:Q_KEY_CODE_CTRL (ctrl) -> linux:29 (KEY_LEFTCTRL) -> linux:29 (KEY_LEFTCTRL) */

ERROR: line over 90 characters
#314: FILE: ui/input-keymap-qcode-to-linux.c:48:
+  [Q_KEY_CODE_CTRL_R] = 0x61, /* qcode:Q_KEY_CODE_CTRL_R (ctrl_r) -> linux:97 (KEY_RIGHTCTRL) -> linux:97 (KEY_RIGHTCTRL) */

ERROR: line over 90 characters
#315: FILE: ui/input-keymap-qcode-to-linux.c:49:
+  [Q_KEY_CODE_CUT] = 0x89, /* qcode:Q_KEY_CODE_CUT (cut) -> linux:137 (KEY_CUT) -> linux:137 (KEY_CUT) */

ERROR: line over 90 characters
#316: FILE: ui/input-keymap-qcode-to-linux.c:50:
+  [Q_KEY_CODE_D] = 0x20, /* qcode:Q_KEY_CODE_D (d) -> linux:32 (KEY_D) -> linux:32 (KEY_D) */

ERROR: line over 90 characters
#317: FILE: ui/input-keymap-qcode-to-linux.c:51:
+  [Q_KEY_CODE_DELETE] = 0x6f, /* qcode:Q_KEY_CODE_DELETE (delete) -> linux:111 (KEY_DELETE) -> linux:111 (KEY_DELETE) */

ERROR: line over 90 characters
#318: FILE: ui/input-keymap-qcode-to-linux.c:52:
+  [Q_KEY_CODE_DOT] = 0x34, /* qcode:Q_KEY_CODE_DOT (dot) -> linux:52 (KEY_DOT) -> linux:52 (KEY_DOT) */

ERROR: line over 90 characters
#319: FILE: ui/input-keymap-qcode-to-linux.c:53:
+  [Q_KEY_CODE_DOWN] = 0x6c, /* qcode:Q_KEY_CODE_DOWN (down) -> linux:108 (KEY_DOWN) -> linux:108 (KEY_DOWN) */

ERROR: line over 90 characters
#320: FILE: ui/input-keymap-qcode-to-linux.c:54:
+  [Q_KEY_CODE_E] = 0x12, /* qcode:Q_KEY_CODE_E (e) -> linux:18 (KEY_E) -> linux:18 (KEY_E) */

ERROR: line over 90 characters
#321: FILE: ui/input-keymap-qcode-to-linux.c:55:
+  [Q_KEY_CODE_END] = 0x6b, /* qcode:Q_KEY_CODE_END (end) -> linux:107 (KEY_END) -> linux:107 (KEY_END) */

ERROR: line over 90 characters
#322: FILE: ui/input-keymap-qcode-to-linux.c:56:
+  [Q_KEY_CODE_EQUAL] = 0xd, /* qcode:Q_KEY_CODE_EQUAL (equal) -> linux:13 (KEY_EQUAL) -> linux:13 (KEY_EQUAL) */

ERROR: line over 90 characters
#323: FILE: ui/input-keymap-qcode-to-linux.c:57:
+  [Q_KEY_CODE_ESC] = 0x1, /* qcode:Q_KEY_CODE_ESC (esc) -> linux:1 (KEY_ESC) -> linux:1 (KEY_ESC) */

ERROR: line over 90 characters
#324: FILE: ui/input-keymap-qcode-to-linux.c:58:
+  [Q_KEY_CODE_F] = 0x21, /* qcode:Q_KEY_CODE_F (f) -> linux:33 (KEY_F) -> linux:33 (KEY_F) */

ERROR: line over 90 characters
#325: FILE: ui/input-keymap-qcode-to-linux.c:59:
+  [Q_KEY_CODE_F1] = 0x3b, /* qcode:Q_KEY_CODE_F1 (f1) -> linux:59 (KEY_F1) -> linux:59 (KEY_F1) */

ERROR: line over 90 characters
#326: FILE: ui/input-keymap-qcode-to-linux.c:60:
+  [Q_KEY_CODE_F10] = 0x44, /* qcode:Q_KEY_CODE_F10 (f10) -> linux:68 (KEY_F10) -> linux:68 (KEY_F10) */

ERROR: line over 90 characters
#327: FILE: ui/input-keymap-qcode-to-linux.c:61:
+  [Q_KEY_CODE_F11] = 0x57, /* qcode:Q_KEY_CODE_F11 (f11) -> linux:87 (KEY_F11) -> linux:87 (KEY_F11) */

ERROR: line over 90 characters
#328: FILE: ui/input-keymap-qcode-to-linux.c:62:
+  [Q_KEY_CODE_F12] = 0x58, /* qcode:Q_KEY_CODE_F12 (f12) -> linux:88 (KEY_F12) -> linux:88 (KEY_F12) */

ERROR: line over 90 characters
#329: FILE: ui/input-keymap-qcode-to-linux.c:63:
+  [Q_KEY_CODE_F2] = 0x3c, /* qcode:Q_KEY_CODE_F2 (f2) -> linux:60 (KEY_F2) -> linux:60 (KEY_F2) */

ERROR: line over 90 characters
#330: FILE: ui/input-keymap-qcode-to-linux.c:64:
+  [Q_KEY_CODE_F3] = 0x3d, /* qcode:Q_KEY_CODE_F3 (f3) -> linux:61 (KEY_F3) -> linux:61 (KEY_F3) */

ERROR: line over 90 characters
#331: FILE: ui/input-keymap-qcode-to-linux.c:65:
+  [Q_KEY_CODE_F4] = 0x3e, /* qcode:Q_KEY_CODE_F4 (f4) -> linux:62 (KEY_F4) -> linux:62 (KEY_F4) */

ERROR: line over 90 characters
#332: FILE: ui/input-keymap-qcode-to-linux.c:66:
+  [Q_KEY_CODE_F5] = 0x3f, /* qcode:Q_KEY_CODE_F5 (f5) -> linux:63 (KEY_F5) -> linux:63 (KEY_F5) */

ERROR: line over 90 characters
#333: FILE: ui/input-keymap-qcode-to-linux.c:67:
+  [Q_KEY_CODE_F6] = 0x40, /* qcode:Q_KEY_CODE_F6 (f6) -> linux:64 (KEY_F6) -> linux:64 (KEY_F6) */

ERROR: line over 90 characters
#334: FILE: ui/input-keymap-qcode-to-linux.c:68:
+  [Q_KEY_CODE_F7] = 0x41, /* qcode:Q_KEY_CODE_F7 (f7) -> linux:65 (KEY_F7) -> linux:65 (KEY_F7) */

ERROR: line over 90 characters
#335: FILE: ui/input-keymap-qcode-to-linux.c:69:
+  [Q_KEY_CODE_F8] = 0x42, /* qcode:Q_KEY_CODE_F8 (f8) -> linux:66 (KEY_F8) -> linux:66 (KEY_F8) */

ERROR: line over 90 characters
#336: FILE: ui/input-keymap-qcode-to-linux.c:70:
+  [Q_KEY_CODE_F9] = 0x43, /* qcode:Q_KEY_CODE_F9 (f9) -> linux:67 (KEY_F9) -> linux:67 (KEY_F9) */

ERROR: line over 90 characters
#337: FILE: ui/input-keymap-qcode-to-linux.c:71:
+  [Q_KEY_CODE_FIND] = 0x88, /* qcode:Q_KEY_CODE_FIND (find) -> linux:136 (KEY_FIND) -> linux:136 (KEY_FIND) */

ERROR: line over 90 characters
#338: FILE: ui/input-keymap-qcode-to-linux.c:72:
+  [Q_KEY_CODE_FRONT] = 0x84, /* qcode:Q_KEY_CODE_FRONT (front) -> linux:132 (KEY_FRONT) -> linux:132 (KEY_FRONT) */

ERROR: line over 90 characters
#339: FILE: ui/input-keymap-qcode-to-linux.c:73:
+  [Q_KEY_CODE_G] = 0x22, /* qcode:Q_KEY_CODE_G (g) -> linux:34 (KEY_G) -> linux:34 (KEY_G) */

ERROR: line over 90 characters
#340: FILE: ui/input-keymap-qcode-to-linux.c:74:
+  [Q_KEY_CODE_GRAVE_ACCENT] = 0x29, /* qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) -> linux:41 (KEY_GRAVE) -> linux:41 (KEY_GRAVE) */

ERROR: line over 90 characters
#341: FILE: ui/input-keymap-qcode-to-linux.c:75:
+  [Q_KEY_CODE_H] = 0x23, /* qcode:Q_KEY_CODE_H (h) -> linux:35 (KEY_H) -> linux:35 (KEY_H) */

ERROR: line over 90 characters
#342: FILE: ui/input-keymap-qcode-to-linux.c:76:
+  [Q_KEY_CODE_HELP] = 0x8a, /* qcode:Q_KEY_CODE_HELP (help) -> linux:138 (KEY_HELP) -> linux:138 (KEY_HELP) */

ERROR: line over 90 characters
#343: FILE: ui/input-keymap-qcode-to-linux.c:77:
+  [Q_KEY_CODE_HENKAN] = 0x5c, /* qcode:Q_KEY_CODE_HENKAN (henkan) -> linux:92 (KEY_HENKAN) -> linux:92 (KEY_HENKAN) */

ERROR: line over 90 characters
#344: FILE: ui/input-keymap-qcode-to-linux.c:78:
+  [Q_KEY_CODE_HIRAGANA] = 0x5b, /* qcode:Q_KEY_CODE_HIRAGANA (hiragana) -> linux:91 (KEY_HIRAGANA) -> linux:91 (KEY_HIRAGANA) */

ERROR: line over 90 characters
#345: FILE: ui/input-keymap-qcode-to-linux.c:79:
+  [Q_KEY_CODE_HOME] = 0x66, /* qcode:Q_KEY_CODE_HOME (home) -> linux:102 (KEY_HOME) -> linux:102 (KEY_HOME) */

ERROR: line over 90 characters
#346: FILE: ui/input-keymap-qcode-to-linux.c:80:
+  [Q_KEY_CODE_I] = 0x17, /* qcode:Q_KEY_CODE_I (i) -> linux:23 (KEY_I) -> linux:23 (KEY_I) */

ERROR: line over 90 characters
#347: FILE: ui/input-keymap-qcode-to-linux.c:81:
+  [Q_KEY_CODE_INSERT] = 0x6e, /* qcode:Q_KEY_CODE_INSERT (insert) -> linux:110 (KEY_INSERT) -> linux:110 (KEY_INSERT) */

ERROR: line over 90 characters
#348: FILE: ui/input-keymap-qcode-to-linux.c:82:
+  [Q_KEY_CODE_J] = 0x24, /* qcode:Q_KEY_CODE_J (j) -> linux:36 (KEY_J) -> linux:36 (KEY_J) */

ERROR: line over 90 characters
#349: FILE: ui/input-keymap-qcode-to-linux.c:83:
+  [Q_KEY_CODE_K] = 0x25, /* qcode:Q_KEY_CODE_K (k) -> linux:37 (KEY_K) -> linux:37 (KEY_K) */

ERROR: line over 90 characters
#350: FILE: ui/input-keymap-qcode-to-linux.c:84:
+  [Q_KEY_CODE_KP_0] = 0x52, /* qcode:Q_KEY_CODE_KP_0 (kp_0) -> linux:82 (KEY_KP0) -> linux:82 (KEY_KP0) */

ERROR: line over 90 characters
#351: FILE: ui/input-keymap-qcode-to-linux.c:85:
+  [Q_KEY_CODE_KP_1] = 0x4f, /* qcode:Q_KEY_CODE_KP_1 (kp_1) -> linux:79 (KEY_KP1) -> linux:79 (KEY_KP1) */

ERROR: line over 90 characters
#352: FILE: ui/input-keymap-qcode-to-linux.c:86:
+  [Q_KEY_CODE_KP_2] = 0x50, /* qcode:Q_KEY_CODE_KP_2 (kp_2) -> linux:80 (KEY_KP2) -> linux:80 (KEY_KP2) */

ERROR: line over 90 characters
#353: FILE: ui/input-keymap-qcode-to-linux.c:87:
+  [Q_KEY_CODE_KP_3] = 0x51, /* qcode:Q_KEY_CODE_KP_3 (kp_3) -> linux:81 (KEY_KP3) -> linux:81 (KEY_KP3) */

ERROR: line over 90 characters
#354: FILE: ui/input-keymap-qcode-to-linux.c:88:
+  [Q_KEY_CODE_KP_4] = 0x4b, /* qcode:Q_KEY_CODE_KP_4 (kp_4) -> linux:75 (KEY_KP4) -> linux:75 (KEY_KP4) */

ERROR: line over 90 characters
#355: FILE: ui/input-keymap-qcode-to-linux.c:89:
+  [Q_KEY_CODE_KP_5] = 0x4c, /* qcode:Q_KEY_CODE_KP_5 (kp_5) -> linux:76 (KEY_KP5) -> linux:76 (KEY_KP5) */

ERROR: line over 90 characters
#356: FILE: ui/input-keymap-qcode-to-linux.c:90:
+  [Q_KEY_CODE_KP_6] = 0x4d, /* qcode:Q_KEY_CODE_KP_6 (kp_6) -> linux:77 (KEY_KP6) -> linux:77 (KEY_KP6) */

ERROR: line over 90 characters
#357: FILE: ui/input-keymap-qcode-to-linux.c:91:
+  [Q_KEY_CODE_KP_7] = 0x47, /* qcode:Q_KEY_CODE_KP_7 (kp_7) -> linux:71 (KEY_KP7) -> linux:71 (KEY_KP7) */

ERROR: line over 90 characters
#358: FILE: ui/input-keymap-qcode-to-linux.c:92:
+  [Q_KEY_CODE_KP_8] = 0x48, /* qcode:Q_KEY_CODE_KP_8 (kp_8) -> linux:72 (KEY_KP8) -> linux:72 (KEY_KP8) */

ERROR: line over 90 characters
#359: FILE: ui/input-keymap-qcode-to-linux.c:93:
+  [Q_KEY_CODE_KP_9] = 0x49, /* qcode:Q_KEY_CODE_KP_9 (kp_9) -> linux:73 (KEY_KP9) -> linux:73 (KEY_KP9) */

ERROR: line over 90 characters
#360: FILE: ui/input-keymap-qcode-to-linux.c:94:
+  [Q_KEY_CODE_KP_ADD] = 0x4e, /* qcode:Q_KEY_CODE_KP_ADD (kp_add) -> linux:78 (KEY_KPPLUS) -> linux:78 (KEY_KPPLUS) */

ERROR: line over 90 characters
#361: FILE: ui/input-keymap-qcode-to-linux.c:95:
+  [Q_KEY_CODE_KP_COMMA] = 0x79, /* qcode:Q_KEY_CODE_KP_COMMA (kp_comma) -> linux:121 (KEY_KPCOMMA) -> linux:121 (KEY_KPCOMMA) */

ERROR: line over 90 characters
#362: FILE: ui/input-keymap-qcode-to-linux.c:96:
+  [Q_KEY_CODE_KP_DECIMAL] = 0x53, /* qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) -> linux:83 (KEY_KPDOT) -> linux:83 (KEY_KPDOT) */

ERROR: line over 90 characters
#363: FILE: ui/input-keymap-qcode-to-linux.c:97:
+  [Q_KEY_CODE_KP_DIVIDE] = 0x62, /* qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) -> linux:98 (KEY_KPSLASH) -> linux:98 (KEY_KPSLASH) */

ERROR: line over 90 characters
#364: FILE: ui/input-keymap-qcode-to-linux.c:98:
+  [Q_KEY_CODE_KP_ENTER] = 0x60, /* qcode:Q_KEY_CODE_KP_ENTER (kp_enter) -> linux:96 (KEY_KPENTER) -> linux:96 (KEY_KPENTER) */

ERROR: line over 90 characters
#365: FILE: ui/input-keymap-qcode-to-linux.c:99:
+  [Q_KEY_CODE_KP_EQUALS] = 0x75, /* qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) -> linux:117 (KEY_KPEQUAL) -> linux:117 (KEY_KPEQUAL) */

ERROR: line over 90 characters
#366: FILE: ui/input-keymap-qcode-to-linux.c:100:
+  [Q_KEY_CODE_KP_MULTIPLY] = 0x37, /* qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> linux:55 (KEY_KPASTERISK) */

ERROR: line over 90 characters
#367: FILE: ui/input-keymap-qcode-to-linux.c:101:
+  [Q_KEY_CODE_KP_SUBTRACT] = 0x4a, /* qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) -> linux:74 (KEY_KPMINUS) -> linux:74 (KEY_KPMINUS) */

ERROR: line over 90 characters
#368: FILE: ui/input-keymap-qcode-to-linux.c:102:
+  [Q_KEY_CODE_L] = 0x26, /* qcode:Q_KEY_CODE_L (l) -> linux:38 (KEY_L) -> linux:38 (KEY_L) */

ERROR: line over 90 characters
#369: FILE: ui/input-keymap-qcode-to-linux.c:103:
+  [Q_KEY_CODE_LEFT] = 0x69, /* qcode:Q_KEY_CODE_LEFT (left) -> linux:105 (KEY_LEFT) -> linux:105 (KEY_LEFT) */

ERROR: line over 90 characters
#370: FILE: ui/input-keymap-qcode-to-linux.c:104:
+  [Q_KEY_CODE_LESS] = 0x56, /* qcode:Q_KEY_CODE_LESS (less) -> linux:86 (KEY_102ND) -> linux:86 (KEY_102ND) */

ERROR: line over 90 characters
#371: FILE: ui/input-keymap-qcode-to-linux.c:105:
+  [Q_KEY_CODE_LF] = 0x65, /* qcode:Q_KEY_CODE_LF (lf) -> linux:101 (KEY_LINEFEED) -> linux:101 (KEY_LINEFEED) */

ERROR: line over 90 characters
#372: FILE: ui/input-keymap-qcode-to-linux.c:106:
+  [Q_KEY_CODE_M] = 0x32, /* qcode:Q_KEY_CODE_M (m) -> linux:50 (KEY_M) -> linux:50 (KEY_M) */

ERROR: line over 90 characters
#373: FILE: ui/input-keymap-qcode-to-linux.c:107:
+  [Q_KEY_CODE_MAIL] = 0x9b, /* qcode:Q_KEY_CODE_MAIL (mail) -> linux:155 (KEY_MAIL) -> linux:155 (KEY_MAIL) */

ERROR: line over 90 characters
#374: FILE: ui/input-keymap-qcode-to-linux.c:108:
+  [Q_KEY_CODE_MEDIASELECT] = 0xe2, /* qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) -> linux:226 (KEY_MEDIA) -> linux:226 (KEY_MEDIA) */

ERROR: line over 90 characters
#375: FILE: ui/input-keymap-qcode-to-linux.c:109:
+  [Q_KEY_CODE_MENU] = 0x8b, /* qcode:Q_KEY_CODE_MENU (menu) -> linux:139 (KEY_MENU) -> linux:139 (KEY_MENU) */

ERROR: line over 90 characters
#376: FILE: ui/input-keymap-qcode-to-linux.c:110:
+  [Q_KEY_CODE_META_L] = 0x7d, /* qcode:Q_KEY_CODE_META_L (meta_l) -> linux:125 (KEY_LEFTMETA) -> linux:125 (KEY_LEFTMETA) */

ERROR: line over 90 characters
#377: FILE: ui/input-keymap-qcode-to-linux.c:111:
+  [Q_KEY_CODE_META_R] = 0x7e, /* qcode:Q_KEY_CODE_META_R (meta_r) -> linux:126 (KEY_RIGHTMETA) -> linux:126 (KEY_RIGHTMETA) */

ERROR: line over 90 characters
#378: FILE: ui/input-keymap-qcode-to-linux.c:112:
+  [Q_KEY_CODE_MINUS] = 0xc, /* qcode:Q_KEY_CODE_MINUS (minus) -> linux:12 (KEY_MINUS) -> linux:12 (KEY_MINUS) */

ERROR: line over 90 characters
#379: FILE: ui/input-keymap-qcode-to-linux.c:113:
+  [Q_KEY_CODE_N] = 0x31, /* qcode:Q_KEY_CODE_N (n) -> linux:49 (KEY_N) -> linux:49 (KEY_N) */

ERROR: line over 90 characters
#380: FILE: ui/input-keymap-qcode-to-linux.c:114:
+  [Q_KEY_CODE_NUM_LOCK] = 0x45, /* qcode:Q_KEY_CODE_NUM_LOCK (num_lock) -> linux:69 (KEY_NUMLOCK) -> linux:69 (KEY_NUMLOCK) */

ERROR: line over 90 characters
#381: FILE: ui/input-keymap-qcode-to-linux.c:115:
+  [Q_KEY_CODE_O] = 0x18, /* qcode:Q_KEY_CODE_O (o) -> linux:24 (KEY_O) -> linux:24 (KEY_O) */

ERROR: line over 90 characters
#382: FILE: ui/input-keymap-qcode-to-linux.c:116:
+  [Q_KEY_CODE_OPEN] = 0x86, /* qcode:Q_KEY_CODE_OPEN (open) -> linux:134 (KEY_OPEN) -> linux:134 (KEY_OPEN) */

ERROR: line over 90 characters
#383: FILE: ui/input-keymap-qcode-to-linux.c:117:
+  [Q_KEY_CODE_P] = 0x19, /* qcode:Q_KEY_CODE_P (p) -> linux:25 (KEY_P) -> linux:25 (KEY_P) */

ERROR: line over 90 characters
#384: FILE: ui/input-keymap-qcode-to-linux.c:118:
+  [Q_KEY_CODE_PASTE] = 0x87, /* qcode:Q_KEY_CODE_PASTE (paste) -> linux:135 (KEY_PASTE) -> linux:135 (KEY_PASTE) */

ERROR: line over 90 characters
#385: FILE: ui/input-keymap-qcode-to-linux.c:119:
+  [Q_KEY_CODE_PAUSE] = 0x77, /* qcode:Q_KEY_CODE_PAUSE (pause) -> linux:119 (KEY_PAUSE) -> linux:119 (KEY_PAUSE) */

ERROR: line over 90 characters
#386: FILE: ui/input-keymap-qcode-to-linux.c:120:
+  [Q_KEY_CODE_PGDN] = 0x6d, /* qcode:Q_KEY_CODE_PGDN (pgdn) -> linux:109 (KEY_PAGEDOWN) -> linux:109 (KEY_PAGEDOWN) */

ERROR: line over 90 characters
#387: FILE: ui/input-keymap-qcode-to-linux.c:121:
+  [Q_KEY_CODE_PGUP] = 0x68, /* qcode:Q_KEY_CODE_PGUP (pgup) -> linux:104 (KEY_PAGEUP) -> linux:104 (KEY_PAGEUP) */

ERROR: line over 90 characters
#388: FILE: ui/input-keymap-qcode-to-linux.c:122:
+  [Q_KEY_CODE_POWER] = 0x74, /* qcode:Q_KEY_CODE_POWER (power) -> linux:116 (KEY_POWER) -> linux:116 (KEY_POWER) */

ERROR: line over 90 characters
#389: FILE: ui/input-keymap-qcode-to-linux.c:123:
+  [Q_KEY_CODE_PRINT] = 0x63, /* qcode:Q_KEY_CODE_PRINT (sysrq) -> linux:99 (KEY_SYSRQ) -> linux:99 (KEY_SYSRQ) */

ERROR: line over 90 characters
#390: FILE: ui/input-keymap-qcode-to-linux.c:124:
+  [Q_KEY_CODE_PROPS] = 0x82, /* qcode:Q_KEY_CODE_PROPS (props) -> linux:130 (KEY_PROPS) -> linux:130 (KEY_PROPS) */

ERROR: line over 90 characters
#391: FILE: ui/input-keymap-qcode-to-linux.c:125:
+  [Q_KEY_CODE_Q] = 0x10, /* qcode:Q_KEY_CODE_Q (q) -> linux:16 (KEY_Q) -> linux:16 (KEY_Q) */

ERROR: line over 90 characters
#392: FILE: ui/input-keymap-qcode-to-linux.c:126:
+  [Q_KEY_CODE_R] = 0x13, /* qcode:Q_KEY_CODE_R (r) -> linux:19 (KEY_R) -> linux:19 (KEY_R) */

ERROR: line over 90 characters
#393: FILE: ui/input-keymap-qcode-to-linux.c:127:
+  [Q_KEY_CODE_RET] = 0x1c, /* qcode:Q_KEY_CODE_RET (ret) -> linux:28 (KEY_ENTER) -> linux:28 (KEY_ENTER) */

ERROR: line over 90 characters
#394: FILE: ui/input-keymap-qcode-to-linux.c:128:
+  [Q_KEY_CODE_RIGHT] = 0x6a, /* qcode:Q_KEY_CODE_RIGHT (right) -> linux:106 (KEY_RIGHT) -> linux:106 (KEY_RIGHT) */

ERROR: line over 90 characters
#395: FILE: ui/input-keymap-qcode-to-linux.c:129:
+  [Q_KEY_CODE_RO] = 0x59, /* qcode:Q_KEY_CODE_RO (ro) -> linux:89 (KEY_RO) -> linux:89 (KEY_RO) */

ERROR: line over 90 characters
#396: FILE: ui/input-keymap-qcode-to-linux.c:130:
+  [Q_KEY_CODE_S] = 0x1f, /* qcode:Q_KEY_CODE_S (s) -> linux:31 (KEY_S) -> linux:31 (KEY_S) */

ERROR: line over 90 characters
#397: FILE: ui/input-keymap-qcode-to-linux.c:131:
+  [Q_KEY_CODE_SCROLL_LOCK] = 0x46, /* qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) -> linux:70 (KEY_SCROLLLOCK) -> linux:70 (KEY_SCROLLLOCK) */

ERROR: line over 90 characters
#398: FILE: ui/input-keymap-qcode-to-linux.c:132:
+  [Q_KEY_CODE_SEMICOLON] = 0x27, /* qcode:Q_KEY_CODE_SEMICOLON (semicolon) -> linux:39 (KEY_SEMICOLON) -> linux:39 (KEY_SEMICOLON) */

ERROR: line over 90 characters
#399: FILE: ui/input-keymap-qcode-to-linux.c:133:
+  [Q_KEY_CODE_SHIFT] = 0x2a, /* qcode:Q_KEY_CODE_SHIFT (shift) -> linux:42 (KEY_LEFTSHIFT) -> linux:42 (KEY_LEFTSHIFT) */

ERROR: line over 90 characters
#400: FILE: ui/input-keymap-qcode-to-linux.c:134:
+  [Q_KEY_CODE_SHIFT_R] = 0x36, /* qcode:Q_KEY_CODE_SHIFT_R (shift_r) -> linux:54 (KEY_RIGHTSHIFT) -> linux:54 (KEY_RIGHTSHIFT) */

ERROR: line over 90 characters
#401: FILE: ui/input-keymap-qcode-to-linux.c:135:
+  [Q_KEY_CODE_SLASH] = 0x35, /* qcode:Q_KEY_CODE_SLASH (slash) -> linux:53 (KEY_SLASH) -> linux:53 (KEY_SLASH) */

ERROR: line over 90 characters
#402: FILE: ui/input-keymap-qcode-to-linux.c:136:
+  [Q_KEY_CODE_SLEEP] = 0x8e, /* qcode:Q_KEY_CODE_SLEEP (sleep) -> linux:142 (KEY_SLEEP) -> linux:142 (KEY_SLEEP) */

ERROR: line over 90 characters
#403: FILE: ui/input-keymap-qcode-to-linux.c:137:
+  [Q_KEY_CODE_SPC] = 0x39, /* qcode:Q_KEY_CODE_SPC (spc) -> linux:57 (KEY_SPACE) -> linux:57 (KEY_SPACE) */

ERROR: line over 90 characters
#404: FILE: ui/input-keymap-qcode-to-linux.c:138:
+  [Q_KEY_CODE_STOP] = 0x80, /* qcode:Q_KEY_CODE_STOP (stop) -> linux:128 (KEY_STOP) -> linux:128 (KEY_STOP) */

ERROR: line over 90 characters
#405: FILE: ui/input-keymap-qcode-to-linux.c:139:
+  [Q_KEY_CODE_SYSRQ] = 0x63, /* qcode:Q_KEY_CODE_SYSRQ (sysrq) -> linux:99 (KEY_SYSRQ) -> linux:99 (KEY_SYSRQ) */

ERROR: line over 90 characters
#406: FILE: ui/input-keymap-qcode-to-linux.c:140:
+  [Q_KEY_CODE_T] = 0x14, /* qcode:Q_KEY_CODE_T (t) -> linux:20 (KEY_T) -> linux:20 (KEY_T) */

ERROR: line over 90 characters
#407: FILE: ui/input-keymap-qcode-to-linux.c:141:
+  [Q_KEY_CODE_TAB] = 0xf, /* qcode:Q_KEY_CODE_TAB (tab) -> linux:15 (KEY_TAB) -> linux:15 (KEY_TAB) */

ERROR: line over 90 characters
#408: FILE: ui/input-keymap-qcode-to-linux.c:142:
+  [Q_KEY_CODE_U] = 0x16, /* qcode:Q_KEY_CODE_U (u) -> linux:22 (KEY_U) -> linux:22 (KEY_U) */

ERROR: line over 90 characters
#409: FILE: ui/input-keymap-qcode-to-linux.c:143:
+  [Q_KEY_CODE_UNDO] = 0x83, /* qcode:Q_KEY_CODE_UNDO (undo) -> linux:131 (KEY_UNDO) -> linux:131 (KEY_UNDO) */

ERROR: line over 90 characters
#410: FILE: ui/input-keymap-qcode-to-linux.c:144:
+  [Q_KEY_CODE_UNMAPPED] = 0x0, /* qcode:Q_KEY_CODE_UNMAPPED (unmapped) -> linux:0 (KEY_RESERVED) -> linux:0 (KEY_RESERVED) */

ERROR: line over 90 characters
#411: FILE: ui/input-keymap-qcode-to-linux.c:145:
+  [Q_KEY_CODE_UP] = 0x67, /* qcode:Q_KEY_CODE_UP (up) -> linux:103 (KEY_UP) -> linux:103 (KEY_UP) */

ERROR: line over 90 characters
#412: FILE: ui/input-keymap-qcode-to-linux.c:146:
+  [Q_KEY_CODE_V] = 0x2f, /* qcode:Q_KEY_CODE_V (v) -> linux:47 (KEY_V) -> linux:47 (KEY_V) */

ERROR: line over 90 characters
#413: FILE: ui/input-keymap-qcode-to-linux.c:147:
+  [Q_KEY_CODE_VOLUMEDOWN] = 0x72, /* qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) -> linux:114 (KEY_VOLUMEDOWN) -> linux:114 (KEY_VOLUMEDOWN) */

ERROR: line over 90 characters
#414: FILE: ui/input-keymap-qcode-to-linux.c:148:
+  [Q_KEY_CODE_VOLUMEUP] = 0x73, /* qcode:Q_KEY_CODE_VOLUMEUP (volumeup) -> linux:115 (KEY_VOLUMEUP) -> linux:115 (KEY_VOLUMEUP) */

ERROR: line over 90 characters
#415: FILE: ui/input-keymap-qcode-to-linux.c:149:
+  [Q_KEY_CODE_W] = 0x11, /* qcode:Q_KEY_CODE_W (w) -> linux:17 (KEY_W) -> linux:17 (KEY_W) */

ERROR: line over 90 characters
#416: FILE: ui/input-keymap-qcode-to-linux.c:150:
+  [Q_KEY_CODE_WAKE] = 0x8f, /* qcode:Q_KEY_CODE_WAKE (wake) -> linux:143 (KEY_WAKEUP) -> linux:143 (KEY_WAKEUP) */

ERROR: line over 90 characters
#417: FILE: ui/input-keymap-qcode-to-linux.c:151:
+  [Q_KEY_CODE_X] = 0x2d, /* qcode:Q_KEY_CODE_X (x) -> linux:45 (KEY_X) -> linux:45 (KEY_X) */

ERROR: line over 90 characters
#418: FILE: ui/input-keymap-qcode-to-linux.c:152:
+  [Q_KEY_CODE_Y] = 0x15, /* qcode:Q_KEY_CODE_Y (y) -> linux:21 (KEY_Y) -> linux:21 (KEY_Y) */

ERROR: line over 90 characters
#419: FILE: ui/input-keymap-qcode-to-linux.c:153:
+  [Q_KEY_CODE_YEN] = 0x7c, /* qcode:Q_KEY_CODE_YEN (yen) -> linux:124 (KEY_YEN) -> linux:124 (KEY_YEN) */

ERROR: line over 90 characters
#420: FILE: ui/input-keymap-qcode-to-linux.c:154:
+  [Q_KEY_CODE_Z] = 0x2c, /* qcode:Q_KEY_CODE_Z (z) -> linux:44 (KEY_Z) -> linux:44 (KEY_Z) */

ERROR: line over 90 characters
#422: FILE: ui/input-keymap-qcode-to-linux.c:156:
+const guint qemu_input_map_qcode_to_linux_len = sizeof(qemu_input_map_qcode_to_linux)/sizeof(qemu_input_map_qcode_to_linux[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#422: FILE: ui/input-keymap-qcode-to-linux.c:156:
+const guint qemu_input_map_qcode_to_linux_len = sizeof(qemu_input_map_qcode_to_linux)/sizeof(qemu_input_map_qcode_to_linux[0]);
                                                                                      ^

total: 143 errors, 8 warnings, 350 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 6/12: input: convert ps2 device to keycodemapdb...
ERROR: line over 90 characters
#577: FILE: ui/input-keymap-qcode-to-atset1.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#579: FILE: ui/input-keymap-qcode-to-atset1.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qcode_to_atset1 code-map keymaps.csv qcode atset1

WARNING: line over 80 characters
#582: FILE: ui/input-keymap-qcode-to-atset1.c:8:
+  [Q_KEY_CODE_0] = 0xb, /* qcode:Q_KEY_CODE_0 (0) -> linux:11 (KEY_0) -> atset1:11 */

WARNING: line over 80 characters
#583: FILE: ui/input-keymap-qcode-to-atset1.c:9:
+  [Q_KEY_CODE_1] = 0x2, /* qcode:Q_KEY_CODE_1 (1) -> linux:2 (KEY_1) -> atset1:2 */

WARNING: line over 80 characters
#584: FILE: ui/input-keymap-qcode-to-atset1.c:10:
+  [Q_KEY_CODE_2] = 0x3, /* qcode:Q_KEY_CODE_2 (2) -> linux:3 (KEY_2) -> atset1:3 */

WARNING: line over 80 characters
#585: FILE: ui/input-keymap-qcode-to-atset1.c:11:
+  [Q_KEY_CODE_3] = 0x4, /* qcode:Q_KEY_CODE_3 (3) -> linux:4 (KEY_3) -> atset1:4 */

WARNING: line over 80 characters
#586: FILE: ui/input-keymap-qcode-to-atset1.c:12:
+  [Q_KEY_CODE_4] = 0x5, /* qcode:Q_KEY_CODE_4 (4) -> linux:5 (KEY_4) -> atset1:5 */

WARNING: line over 80 characters
#587: FILE: ui/input-keymap-qcode-to-atset1.c:13:
+  [Q_KEY_CODE_5] = 0x6, /* qcode:Q_KEY_CODE_5 (5) -> linux:6 (KEY_5) -> atset1:6 */

WARNING: line over 80 characters
#588: FILE: ui/input-keymap-qcode-to-atset1.c:14:
+  [Q_KEY_CODE_6] = 0x7, /* qcode:Q_KEY_CODE_6 (6) -> linux:7 (KEY_6) -> atset1:7 */

WARNING: line over 80 characters
#589: FILE: ui/input-keymap-qcode-to-atset1.c:15:
+  [Q_KEY_CODE_7] = 0x8, /* qcode:Q_KEY_CODE_7 (7) -> linux:8 (KEY_7) -> atset1:8 */

WARNING: line over 80 characters
#590: FILE: ui/input-keymap-qcode-to-atset1.c:16:
+  [Q_KEY_CODE_8] = 0x9, /* qcode:Q_KEY_CODE_8 (8) -> linux:9 (KEY_8) -> atset1:9 */

WARNING: line over 80 characters
#591: FILE: ui/input-keymap-qcode-to-atset1.c:17:
+  [Q_KEY_CODE_9] = 0xa, /* qcode:Q_KEY_CODE_9 (9) -> linux:10 (KEY_9) -> atset1:10 */

WARNING: line over 80 characters
#592: FILE: ui/input-keymap-qcode-to-atset1.c:18:
+  [Q_KEY_CODE_A] = 0x1e, /* qcode:Q_KEY_CODE_A (a) -> linux:30 (KEY_A) -> atset1:30 */

ERROR: line over 90 characters
#593: FILE: ui/input-keymap-qcode-to-atset1.c:19:
+  [Q_KEY_CODE_AC_BACK] = 0xe06a, /* qcode:Q_KEY_CODE_AC_BACK (ac_back) -> linux:158 (KEY_BACK) -> atset1:57450 */

ERROR: line over 90 characters
#594: FILE: ui/input-keymap-qcode-to-atset1.c:20:
+  [Q_KEY_CODE_AC_BOOKMARKS] = 0xe066, /* qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) -> linux:156 (KEY_BOOKMARKS) -> atset1:57446 */

ERROR: line over 90 characters
#595: FILE: ui/input-keymap-qcode-to-atset1.c:21:
+  [Q_KEY_CODE_AC_FORWARD] = 0xe069, /* qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) -> linux:159 (KEY_FORWARD) -> atset1:57449 */

ERROR: line over 90 characters
#596: FILE: ui/input-keymap-qcode-to-atset1.c:22:
+  [Q_KEY_CODE_AC_HOME] = 0xe032, /* qcode:Q_KEY_CODE_AC_HOME (ac_home) -> linux:172 (KEY_HOMEPAGE) -> atset1:57394 */

ERROR: line over 90 characters
#597: FILE: ui/input-keymap-qcode-to-atset1.c:23:
+  [Q_KEY_CODE_AC_REFRESH] = 0xe067, /* qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) -> linux:173 (KEY_REFRESH) -> atset1:57447 */

ERROR: line over 90 characters
#598: FILE: ui/input-keymap-qcode-to-atset1.c:24:
+  [Q_KEY_CODE_AGAIN] = 0xe005, /* qcode:Q_KEY_CODE_AGAIN (again) -> linux:129 (KEY_AGAIN) -> atset1:57349 */

ERROR: line over 90 characters
#599: FILE: ui/input-keymap-qcode-to-atset1.c:25:
+  [Q_KEY_CODE_ALT] = 0x38, /* qcode:Q_KEY_CODE_ALT (alt) -> linux:56 (KEY_LEFTALT) -> atset1:56 */

ERROR: line over 90 characters
#600: FILE: ui/input-keymap-qcode-to-atset1.c:26:
+  [Q_KEY_CODE_ALT_R] = 0xe038, /* qcode:Q_KEY_CODE_ALT_R (alt_r) -> linux:100 (KEY_RIGHTALT) -> atset1:57400 */

ERROR: line over 90 characters
#601: FILE: ui/input-keymap-qcode-to-atset1.c:27:
+  [Q_KEY_CODE_APOSTROPHE] = 0x28, /* qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) -> linux:40 (KEY_APOSTROPHE) -> atset1:40 */

ERROR: line over 90 characters
#602: FILE: ui/input-keymap-qcode-to-atset1.c:28:
+  [Q_KEY_CODE_ASTERISK] = 0x37, /* qcode:Q_KEY_CODE_ASTERISK (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> atset1:55 */

ERROR: line over 90 characters
#603: FILE: ui/input-keymap-qcode-to-atset1.c:29:
+  [Q_KEY_CODE_AUDIOMUTE] = 0xe020, /* qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) -> linux:113 (KEY_MUTE) -> atset1:57376 */

ERROR: line over 90 characters
#604: FILE: ui/input-keymap-qcode-to-atset1.c:30:
+  [Q_KEY_CODE_AUDIONEXT] = 0xe019, /* qcode:Q_KEY_CODE_AUDIONEXT (audionext) -> linux:163 (KEY_NEXTSONG) -> atset1:57369 */

ERROR: line over 90 characters
#605: FILE: ui/input-keymap-qcode-to-atset1.c:31:
+  [Q_KEY_CODE_AUDIOPLAY] = 0xe022, /* qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) -> linux:164 (KEY_PLAYPAUSE) -> atset1:57378 */

ERROR: line over 90 characters
#606: FILE: ui/input-keymap-qcode-to-atset1.c:32:
+  [Q_KEY_CODE_AUDIOPREV] = 0xe010, /* qcode:Q_KEY_CODE_AUDIOPREV (audioprev) -> linux:165 (KEY_PREVIOUSSONG) -> atset1:57360 */

ERROR: line over 90 characters
#607: FILE: ui/input-keymap-qcode-to-atset1.c:33:
+  [Q_KEY_CODE_AUDIOSTOP] = 0xe024, /* qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) -> linux:166 (KEY_STOPCD) -> atset1:57380 */

WARNING: line over 80 characters
#608: FILE: ui/input-keymap-qcode-to-atset1.c:34:
+  [Q_KEY_CODE_B] = 0x30, /* qcode:Q_KEY_CODE_B (b) -> linux:48 (KEY_B) -> atset1:48 */

ERROR: line over 90 characters
#609: FILE: ui/input-keymap-qcode-to-atset1.c:35:
+  [Q_KEY_CODE_BACKSLASH] = 0x2b, /* qcode:Q_KEY_CODE_BACKSLASH (backslash) -> linux:43 (KEY_BACKSLASH) -> atset1:43 */

ERROR: line over 90 characters
#610: FILE: ui/input-keymap-qcode-to-atset1.c:36:
+  [Q_KEY_CODE_BACKSPACE] = 0xe, /* qcode:Q_KEY_CODE_BACKSPACE (backspace) -> linux:14 (KEY_BACKSPACE) -> atset1:14 */

ERROR: line over 90 characters
#611: FILE: ui/input-keymap-qcode-to-atset1.c:37:
+  [Q_KEY_CODE_BRACKET_LEFT] = 0x1a, /* qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) -> linux:26 (KEY_LEFTBRACE) -> atset1:26 */

ERROR: line over 90 characters
#612: FILE: ui/input-keymap-qcode-to-atset1.c:38:
+  [Q_KEY_CODE_BRACKET_RIGHT] = 0x1b, /* qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) -> linux:27 (KEY_RIGHTBRACE) -> atset1:27 */

WARNING: line over 80 characters
#613: FILE: ui/input-keymap-qcode-to-atset1.c:39:
+  [Q_KEY_CODE_C] = 0x2e, /* qcode:Q_KEY_CODE_C (c) -> linux:46 (KEY_C) -> atset1:46 */

ERROR: line over 90 characters
#614: FILE: ui/input-keymap-qcode-to-atset1.c:40:
+  [Q_KEY_CODE_CALCULATOR] = 0xe021, /* qcode:Q_KEY_CODE_CALCULATOR (calculator) -> linux:140 (KEY_CALC) -> atset1:57377 */

ERROR: line over 90 characters
#615: FILE: ui/input-keymap-qcode-to-atset1.c:41:
+  [Q_KEY_CODE_CAPS_LOCK] = 0x3a, /* qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) -> linux:58 (KEY_CAPSLOCK) -> atset1:58 */

ERROR: line over 90 characters
#616: FILE: ui/input-keymap-qcode-to-atset1.c:42:
+  [Q_KEY_CODE_COMMA] = 0x33, /* qcode:Q_KEY_CODE_COMMA (comma) -> linux:51 (KEY_COMMA) -> atset1:51 */

ERROR: line over 90 characters
#617: FILE: ui/input-keymap-qcode-to-atset1.c:43:
+  [Q_KEY_CODE_COMPOSE] = 0xe05d, /* qcode:Q_KEY_CODE_COMPOSE (compose) -> linux:127 (KEY_COMPOSE) -> atset1:57437 */

ERROR: line over 90 characters
#618: FILE: ui/input-keymap-qcode-to-atset1.c:44:
+  [Q_KEY_CODE_COMPUTER] = 0xe06b, /* qcode:Q_KEY_CODE_COMPUTER (computer) -> linux:157 (KEY_COMPUTER) -> atset1:57451 */

ERROR: line over 90 characters
#619: FILE: ui/input-keymap-qcode-to-atset1.c:45:
+  [Q_KEY_CODE_COPY] = 0xe078, /* qcode:Q_KEY_CODE_COPY (copy) -> linux:133 (KEY_COPY) -> atset1:57464 */

ERROR: line over 90 characters
#620: FILE: ui/input-keymap-qcode-to-atset1.c:46:
+  [Q_KEY_CODE_CTRL] = 0x1d, /* qcode:Q_KEY_CODE_CTRL (ctrl) -> linux:29 (KEY_LEFTCTRL) -> atset1:29 */

ERROR: line over 90 characters
#621: FILE: ui/input-keymap-qcode-to-atset1.c:47:
+  [Q_KEY_CODE_CTRL_R] = 0xe01d, /* qcode:Q_KEY_CODE_CTRL_R (ctrl_r) -> linux:97 (KEY_RIGHTCTRL) -> atset1:57373 */

ERROR: line over 90 characters
#622: FILE: ui/input-keymap-qcode-to-atset1.c:48:
+  [Q_KEY_CODE_CUT] = 0xe03c, /* qcode:Q_KEY_CODE_CUT (cut) -> linux:137 (KEY_CUT) -> atset1:57404 */

WARNING: line over 80 characters
#623: FILE: ui/input-keymap-qcode-to-atset1.c:49:
+  [Q_KEY_CODE_D] = 0x20, /* qcode:Q_KEY_CODE_D (d) -> linux:32 (KEY_D) -> atset1:32 */

ERROR: line over 90 characters
#624: FILE: ui/input-keymap-qcode-to-atset1.c:50:
+  [Q_KEY_CODE_DELETE] = 0xe053, /* qcode:Q_KEY_CODE_DELETE (delete) -> linux:111 (KEY_DELETE) -> atset1:57427 */

ERROR: line over 90 characters
#625: FILE: ui/input-keymap-qcode-to-atset1.c:51:
+  [Q_KEY_CODE_DOT] = 0x34, /* qcode:Q_KEY_CODE_DOT (dot) -> linux:52 (KEY_DOT) -> atset1:52 */

ERROR: line over 90 characters
#626: FILE: ui/input-keymap-qcode-to-atset1.c:52:
+  [Q_KEY_CODE_DOWN] = 0xe050, /* qcode:Q_KEY_CODE_DOWN (down) -> linux:108 (KEY_DOWN) -> atset1:57424 */

WARNING: line over 80 characters
#627: FILE: ui/input-keymap-qcode-to-atset1.c:53:
+  [Q_KEY_CODE_E] = 0x12, /* qcode:Q_KEY_CODE_E (e) -> linux:18 (KEY_E) -> atset1:18 */

ERROR: line over 90 characters
#628: FILE: ui/input-keymap-qcode-to-atset1.c:54:
+  [Q_KEY_CODE_END] = 0xe04f, /* qcode:Q_KEY_CODE_END (end) -> linux:107 (KEY_END) -> atset1:57423 */

ERROR: line over 90 characters
#629: FILE: ui/input-keymap-qcode-to-atset1.c:55:
+  [Q_KEY_CODE_EQUAL] = 0xd, /* qcode:Q_KEY_CODE_EQUAL (equal) -> linux:13 (KEY_EQUAL) -> atset1:13 */

ERROR: line over 90 characters
#630: FILE: ui/input-keymap-qcode-to-atset1.c:56:
+  [Q_KEY_CODE_ESC] = 0x1, /* qcode:Q_KEY_CODE_ESC (esc) -> linux:1 (KEY_ESC) -> atset1:1 */

WARNING: line over 80 characters
#631: FILE: ui/input-keymap-qcode-to-atset1.c:57:
+  [Q_KEY_CODE_F] = 0x21, /* qcode:Q_KEY_CODE_F (f) -> linux:33 (KEY_F) -> atset1:33 */

WARNING: line over 80 characters
#632: FILE: ui/input-keymap-qcode-to-atset1.c:58:
+  [Q_KEY_CODE_F1] = 0x3b, /* qcode:Q_KEY_CODE_F1 (f1) -> linux:59 (KEY_F1) -> atset1:59 */

ERROR: line over 90 characters
#633: FILE: ui/input-keymap-qcode-to-atset1.c:59:
+  [Q_KEY_CODE_F10] = 0x44, /* qcode:Q_KEY_CODE_F10 (f10) -> linux:68 (KEY_F10) -> atset1:68 */

ERROR: line over 90 characters
#634: FILE: ui/input-keymap-qcode-to-atset1.c:60:
+  [Q_KEY_CODE_F11] = 0x57, /* qcode:Q_KEY_CODE_F11 (f11) -> linux:87 (KEY_F11) -> atset1:87 */

ERROR: line over 90 characters
#635: FILE: ui/input-keymap-qcode-to-atset1.c:61:
+  [Q_KEY_CODE_F12] = 0x58, /* qcode:Q_KEY_CODE_F12 (f12) -> linux:88 (KEY_F12) -> atset1:88 */

WARNING: line over 80 characters
#636: FILE: ui/input-keymap-qcode-to-atset1.c:62:
+  [Q_KEY_CODE_F2] = 0x3c, /* qcode:Q_KEY_CODE_F2 (f2) -> linux:60 (KEY_F2) -> atset1:60 */

WARNING: line over 80 characters
#637: FILE: ui/input-keymap-qcode-to-atset1.c:63:
+  [Q_KEY_CODE_F3] = 0x3d, /* qcode:Q_KEY_CODE_F3 (f3) -> linux:61 (KEY_F3) -> atset1:61 */

WARNING: line over 80 characters
#638: FILE: ui/input-keymap-qcode-to-atset1.c:64:
+  [Q_KEY_CODE_F4] = 0x3e, /* qcode:Q_KEY_CODE_F4 (f4) -> linux:62 (KEY_F4) -> atset1:62 */

WARNING: line over 80 characters
#639: FILE: ui/input-keymap-qcode-to-atset1.c:65:
+  [Q_KEY_CODE_F5] = 0x3f, /* qcode:Q_KEY_CODE_F5 (f5) -> linux:63 (KEY_F5) -> atset1:63 */

WARNING: line over 80 characters
#640: FILE: ui/input-keymap-qcode-to-atset1.c:66:
+  [Q_KEY_CODE_F6] = 0x40, /* qcode:Q_KEY_CODE_F6 (f6) -> linux:64 (KEY_F6) -> atset1:64 */

WARNING: line over 80 characters
#641: FILE: ui/input-keymap-qcode-to-atset1.c:67:
+  [Q_KEY_CODE_F7] = 0x41, /* qcode:Q_KEY_CODE_F7 (f7) -> linux:65 (KEY_F7) -> atset1:65 */

WARNING: line over 80 characters
#642: FILE: ui/input-keymap-qcode-to-atset1.c:68:
+  [Q_KEY_CODE_F8] = 0x42, /* qcode:Q_KEY_CODE_F8 (f8) -> linux:66 (KEY_F8) -> atset1:66 */

WARNING: line over 80 characters
#643: FILE: ui/input-keymap-qcode-to-atset1.c:69:
+  [Q_KEY_CODE_F9] = 0x43, /* qcode:Q_KEY_CODE_F9 (f9) -> linux:67 (KEY_F9) -> atset1:67 */

ERROR: line over 90 characters
#644: FILE: ui/input-keymap-qcode-to-atset1.c:70:
+  [Q_KEY_CODE_FIND] = 0xe041, /* qcode:Q_KEY_CODE_FIND (find) -> linux:136 (KEY_FIND) -> atset1:57409 */

ERROR: line over 90 characters
#645: FILE: ui/input-keymap-qcode-to-atset1.c:71:
+  [Q_KEY_CODE_FRONT] = 0xe00c, /* qcode:Q_KEY_CODE_FRONT (front) -> linux:132 (KEY_FRONT) -> atset1:57356 */

WARNING: line over 80 characters
#646: FILE: ui/input-keymap-qcode-to-atset1.c:72:
+  [Q_KEY_CODE_G] = 0x22, /* qcode:Q_KEY_CODE_G (g) -> linux:34 (KEY_G) -> atset1:34 */

ERROR: line over 90 characters
#647: FILE: ui/input-keymap-qcode-to-atset1.c:73:
+  [Q_KEY_CODE_GRAVE_ACCENT] = 0x29, /* qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) -> linux:41 (KEY_GRAVE) -> atset1:41 */

WARNING: line over 80 characters
#648: FILE: ui/input-keymap-qcode-to-atset1.c:74:
+  [Q_KEY_CODE_H] = 0x23, /* qcode:Q_KEY_CODE_H (h) -> linux:35 (KEY_H) -> atset1:35 */

ERROR: line over 90 characters
#649: FILE: ui/input-keymap-qcode-to-atset1.c:75:
+  [Q_KEY_CODE_HELP] = 0xe075, /* qcode:Q_KEY_CODE_HELP (help) -> linux:138 (KEY_HELP) -> atset1:57461 */

ERROR: line over 90 characters
#650: FILE: ui/input-keymap-qcode-to-atset1.c:76:
+  [Q_KEY_CODE_HENKAN] = 0x79, /* qcode:Q_KEY_CODE_HENKAN (henkan) -> linux:92 (KEY_HENKAN) -> atset1:121 */

ERROR: line over 90 characters
#651: FILE: ui/input-keymap-qcode-to-atset1.c:77:
+  [Q_KEY_CODE_HIRAGANA] = 0x77, /* qcode:Q_KEY_CODE_HIRAGANA (hiragana) -> linux:91 (KEY_HIRAGANA) -> atset1:119 */

ERROR: line over 90 characters
#652: FILE: ui/input-keymap-qcode-to-atset1.c:78:
+  [Q_KEY_CODE_HOME] = 0xe047, /* qcode:Q_KEY_CODE_HOME (home) -> linux:102 (KEY_HOME) -> atset1:57415 */

WARNING: line over 80 characters
#653: FILE: ui/input-keymap-qcode-to-atset1.c:79:
+  [Q_KEY_CODE_I] = 0x17, /* qcode:Q_KEY_CODE_I (i) -> linux:23 (KEY_I) -> atset1:23 */

ERROR: line over 90 characters
#654: FILE: ui/input-keymap-qcode-to-atset1.c:80:
+  [Q_KEY_CODE_INSERT] = 0xe052, /* qcode:Q_KEY_CODE_INSERT (insert) -> linux:110 (KEY_INSERT) -> atset1:57426 */

WARNING: line over 80 characters
#655: FILE: ui/input-keymap-qcode-to-atset1.c:81:
+  [Q_KEY_CODE_J] = 0x24, /* qcode:Q_KEY_CODE_J (j) -> linux:36 (KEY_J) -> atset1:36 */

WARNING: line over 80 characters
#656: FILE: ui/input-keymap-qcode-to-atset1.c:82:
+  [Q_KEY_CODE_K] = 0x25, /* qcode:Q_KEY_CODE_K (k) -> linux:37 (KEY_K) -> atset1:37 */

ERROR: line over 90 characters
#657: FILE: ui/input-keymap-qcode-to-atset1.c:83:
+  [Q_KEY_CODE_KP_0] = 0x52, /* qcode:Q_KEY_CODE_KP_0 (kp_0) -> linux:82 (KEY_KP0) -> atset1:82 */

ERROR: line over 90 characters
#658: FILE: ui/input-keymap-qcode-to-atset1.c:84:
+  [Q_KEY_CODE_KP_1] = 0x4f, /* qcode:Q_KEY_CODE_KP_1 (kp_1) -> linux:79 (KEY_KP1) -> atset1:79 */

ERROR: line over 90 characters
#659: FILE: ui/input-keymap-qcode-to-atset1.c:85:
+  [Q_KEY_CODE_KP_2] = 0x50, /* qcode:Q_KEY_CODE_KP_2 (kp_2) -> linux:80 (KEY_KP2) -> atset1:80 */

ERROR: line over 90 characters
#660: FILE: ui/input-keymap-qcode-to-atset1.c:86:
+  [Q_KEY_CODE_KP_3] = 0x51, /* qcode:Q_KEY_CODE_KP_3 (kp_3) -> linux:81 (KEY_KP3) -> atset1:81 */

ERROR: line over 90 characters
#661: FILE: ui/input-keymap-qcode-to-atset1.c:87:
+  [Q_KEY_CODE_KP_4] = 0x4b, /* qcode:Q_KEY_CODE_KP_4 (kp_4) -> linux:75 (KEY_KP4) -> atset1:75 */

ERROR: line over 90 characters
#662: FILE: ui/input-keymap-qcode-to-atset1.c:88:
+  [Q_KEY_CODE_KP_5] = 0x4c, /* qcode:Q_KEY_CODE_KP_5 (kp_5) -> linux:76 (KEY_KP5) -> atset1:76 */

ERROR: line over 90 characters
#663: FILE: ui/input-keymap-qcode-to-atset1.c:89:
+  [Q_KEY_CODE_KP_6] = 0x4d, /* qcode:Q_KEY_CODE_KP_6 (kp_6) -> linux:77 (KEY_KP6) -> atset1:77 */

ERROR: line over 90 characters
#664: FILE: ui/input-keymap-qcode-to-atset1.c:90:
+  [Q_KEY_CODE_KP_7] = 0x47, /* qcode:Q_KEY_CODE_KP_7 (kp_7) -> linux:71 (KEY_KP7) -> atset1:71 */

ERROR: line over 90 characters
#665: FILE: ui/input-keymap-qcode-to-atset1.c:91:
+  [Q_KEY_CODE_KP_8] = 0x48, /* qcode:Q_KEY_CODE_KP_8 (kp_8) -> linux:72 (KEY_KP8) -> atset1:72 */

ERROR: line over 90 characters
#666: FILE: ui/input-keymap-qcode-to-atset1.c:92:
+  [Q_KEY_CODE_KP_9] = 0x49, /* qcode:Q_KEY_CODE_KP_9 (kp_9) -> linux:73 (KEY_KP9) -> atset1:73 */

ERROR: line over 90 characters
#667: FILE: ui/input-keymap-qcode-to-atset1.c:93:
+  [Q_KEY_CODE_KP_ADD] = 0x4e, /* qcode:Q_KEY_CODE_KP_ADD (kp_add) -> linux:78 (KEY_KPPLUS) -> atset1:78 */

ERROR: line over 90 characters
#668: FILE: ui/input-keymap-qcode-to-atset1.c:94:
+  [Q_KEY_CODE_KP_COMMA] = 0x7e, /* qcode:Q_KEY_CODE_KP_COMMA (kp_comma) -> linux:121 (KEY_KPCOMMA) -> atset1:126 */

ERROR: line over 90 characters
#669: FILE: ui/input-keymap-qcode-to-atset1.c:95:
+  [Q_KEY_CODE_KP_DECIMAL] = 0x53, /* qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) -> linux:83 (KEY_KPDOT) -> atset1:83 */

ERROR: line over 90 characters
#670: FILE: ui/input-keymap-qcode-to-atset1.c:96:
+  [Q_KEY_CODE_KP_DIVIDE] = 0xe035, /* qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) -> linux:98 (KEY_KPSLASH) -> atset1:57397 */

ERROR: line over 90 characters
#671: FILE: ui/input-keymap-qcode-to-atset1.c:97:
+  [Q_KEY_CODE_KP_ENTER] = 0xe01c, /* qcode:Q_KEY_CODE_KP_ENTER (kp_enter) -> linux:96 (KEY_KPENTER) -> atset1:57372 */

ERROR: line over 90 characters
#672: FILE: ui/input-keymap-qcode-to-atset1.c:98:
+  [Q_KEY_CODE_KP_EQUALS] = 0x59, /* qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) -> linux:117 (KEY_KPEQUAL) -> atset1:89 */

ERROR: line over 90 characters
#673: FILE: ui/input-keymap-qcode-to-atset1.c:99:
+  [Q_KEY_CODE_KP_MULTIPLY] = 0x37, /* qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> atset1:55 */

ERROR: line over 90 characters
#674: FILE: ui/input-keymap-qcode-to-atset1.c:100:
+  [Q_KEY_CODE_KP_SUBTRACT] = 0x4a, /* qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) -> linux:74 (KEY_KPMINUS) -> atset1:74 */

WARNING: line over 80 characters
#675: FILE: ui/input-keymap-qcode-to-atset1.c:101:
+  [Q_KEY_CODE_L] = 0x26, /* qcode:Q_KEY_CODE_L (l) -> linux:38 (KEY_L) -> atset1:38 */

ERROR: line over 90 characters
#676: FILE: ui/input-keymap-qcode-to-atset1.c:102:
+  [Q_KEY_CODE_LEFT] = 0xe04b, /* qcode:Q_KEY_CODE_LEFT (left) -> linux:105 (KEY_LEFT) -> atset1:57419 */

ERROR: line over 90 characters
#677: FILE: ui/input-keymap-qcode-to-atset1.c:103:
+  [Q_KEY_CODE_LESS] = 0x56, /* qcode:Q_KEY_CODE_LESS (less) -> linux:86 (KEY_102ND) -> atset1:86 */

ERROR: line over 90 characters
#678: FILE: ui/input-keymap-qcode-to-atset1.c:104:
+  [Q_KEY_CODE_LF] = 0x5b, /* qcode:Q_KEY_CODE_LF (lf) -> linux:101 (KEY_LINEFEED) -> atset1:91 */

WARNING: line over 80 characters
#679: FILE: ui/input-keymap-qcode-to-atset1.c:105:
+  [Q_KEY_CODE_M] = 0x32, /* qcode:Q_KEY_CODE_M (m) -> linux:50 (KEY_M) -> atset1:50 */

ERROR: line over 90 characters
#680: FILE: ui/input-keymap-qcode-to-atset1.c:106:
+  [Q_KEY_CODE_MAIL] = 0xe06c, /* qcode:Q_KEY_CODE_MAIL (mail) -> linux:155 (KEY_MAIL) -> atset1:57452 */

ERROR: line over 90 characters
#681: FILE: ui/input-keymap-qcode-to-atset1.c:107:
+  [Q_KEY_CODE_MEDIASELECT] = 0xe06d, /* qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) -> linux:226 (KEY_MEDIA) -> atset1:57453 */

ERROR: line over 90 characters
#682: FILE: ui/input-keymap-qcode-to-atset1.c:108:
+  [Q_KEY_CODE_MENU] = 0xe01e, /* qcode:Q_KEY_CODE_MENU (menu) -> linux:139 (KEY_MENU) -> atset1:57374 */

ERROR: line over 90 characters
#683: FILE: ui/input-keymap-qcode-to-atset1.c:109:
+  [Q_KEY_CODE_META_L] = 0xe05b, /* qcode:Q_KEY_CODE_META_L (meta_l) -> linux:125 (KEY_LEFTMETA) -> atset1:57435 */

ERROR: line over 90 characters
#684: FILE: ui/input-keymap-qcode-to-atset1.c:110:
+  [Q_KEY_CODE_META_R] = 0xe05c, /* qcode:Q_KEY_CODE_META_R (meta_r) -> linux:126 (KEY_RIGHTMETA) -> atset1:57436 */

ERROR: line over 90 characters
#685: FILE: ui/input-keymap-qcode-to-atset1.c:111:
+  [Q_KEY_CODE_MINUS] = 0xc, /* qcode:Q_KEY_CODE_MINUS (minus) -> linux:12 (KEY_MINUS) -> atset1:12 */

WARNING: line over 80 characters
#686: FILE: ui/input-keymap-qcode-to-atset1.c:112:
+  [Q_KEY_CODE_N] = 0x31, /* qcode:Q_KEY_CODE_N (n) -> linux:49 (KEY_N) -> atset1:49 */

ERROR: line over 90 characters
#687: FILE: ui/input-keymap-qcode-to-atset1.c:113:
+  [Q_KEY_CODE_NUM_LOCK] = 0x45, /* qcode:Q_KEY_CODE_NUM_LOCK (num_lock) -> linux:69 (KEY_NUMLOCK) -> atset1:69 */

WARNING: line over 80 characters
#688: FILE: ui/input-keymap-qcode-to-atset1.c:114:
+  [Q_KEY_CODE_O] = 0x18, /* qcode:Q_KEY_CODE_O (o) -> linux:24 (KEY_O) -> atset1:24 */

ERROR: line over 90 characters
#689: FILE: ui/input-keymap-qcode-to-atset1.c:115:
+  [Q_KEY_CODE_OPEN] = 0x64, /* qcode:Q_KEY_CODE_OPEN (open) -> linux:134 (KEY_OPEN) -> atset1:100 */

WARNING: line over 80 characters
#690: FILE: ui/input-keymap-qcode-to-atset1.c:116:
+  [Q_KEY_CODE_P] = 0x19, /* qcode:Q_KEY_CODE_P (p) -> linux:25 (KEY_P) -> atset1:25 */

ERROR: line over 90 characters
#691: FILE: ui/input-keymap-qcode-to-atset1.c:117:
+  [Q_KEY_CODE_PASTE] = 0x65, /* qcode:Q_KEY_CODE_PASTE (paste) -> linux:135 (KEY_PASTE) -> atset1:101 */

ERROR: line over 90 characters
#692: FILE: ui/input-keymap-qcode-to-atset1.c:118:
+  [Q_KEY_CODE_PAUSE] = 0xe046, /* qcode:Q_KEY_CODE_PAUSE (pause) -> linux:119 (KEY_PAUSE) -> atset1:57414 */

ERROR: line over 90 characters
#693: FILE: ui/input-keymap-qcode-to-atset1.c:119:
+  [Q_KEY_CODE_PGDN] = 0xe051, /* qcode:Q_KEY_CODE_PGDN (pgdn) -> linux:109 (KEY_PAGEDOWN) -> atset1:57425 */

ERROR: line over 90 characters
#694: FILE: ui/input-keymap-qcode-to-atset1.c:120:
+  [Q_KEY_CODE_PGUP] = 0xe049, /* qcode:Q_KEY_CODE_PGUP (pgup) -> linux:104 (KEY_PAGEUP) -> atset1:57417 */

ERROR: line over 90 characters
#695: FILE: ui/input-keymap-qcode-to-atset1.c:121:
+  [Q_KEY_CODE_POWER] = 0xe05e, /* qcode:Q_KEY_CODE_POWER (power) -> linux:116 (KEY_POWER) -> atset1:57438 */

ERROR: line over 90 characters
#696: FILE: ui/input-keymap-qcode-to-atset1.c:122:
+  [Q_KEY_CODE_PRINT] = 0x54, /* qcode:Q_KEY_CODE_PRINT (sysrq) -> linux:99 (KEY_SYSRQ) -> atset1:84 */

ERROR: line over 90 characters
#697: FILE: ui/input-keymap-qcode-to-atset1.c:123:
+  [Q_KEY_CODE_PROPS] = 0xe006, /* qcode:Q_KEY_CODE_PROPS (props) -> linux:130 (KEY_PROPS) -> atset1:57350 */

WARNING: line over 80 characters
#698: FILE: ui/input-keymap-qcode-to-atset1.c:124:
+  [Q_KEY_CODE_Q] = 0x10, /* qcode:Q_KEY_CODE_Q (q) -> linux:16 (KEY_Q) -> atset1:16 */

WARNING: line over 80 characters
#699: FILE: ui/input-keymap-qcode-to-atset1.c:125:
+  [Q_KEY_CODE_R] = 0x13, /* qcode:Q_KEY_CODE_R (r) -> linux:19 (KEY_R) -> atset1:19 */

ERROR: line over 90 characters
#700: FILE: ui/input-keymap-qcode-to-atset1.c:126:
+  [Q_KEY_CODE_RET] = 0x1c, /* qcode:Q_KEY_CODE_RET (ret) -> linux:28 (KEY_ENTER) -> atset1:28 */

ERROR: line over 90 characters
#701: FILE: ui/input-keymap-qcode-to-atset1.c:127:
+  [Q_KEY_CODE_RIGHT] = 0xe04d, /* qcode:Q_KEY_CODE_RIGHT (right) -> linux:106 (KEY_RIGHT) -> atset1:57421 */

ERROR: line over 90 characters
#702: FILE: ui/input-keymap-qcode-to-atset1.c:128:
+  [Q_KEY_CODE_RO] = 0x73, /* qcode:Q_KEY_CODE_RO (ro) -> linux:89 (KEY_RO) -> atset1:115 */

WARNING: line over 80 characters
#703: FILE: ui/input-keymap-qcode-to-atset1.c:129:
+  [Q_KEY_CODE_S] = 0x1f, /* qcode:Q_KEY_CODE_S (s) -> linux:31 (KEY_S) -> atset1:31 */

ERROR: line over 90 characters
#704: FILE: ui/input-keymap-qcode-to-atset1.c:130:
+  [Q_KEY_CODE_SCROLL_LOCK] = 0x46, /* qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) -> linux:70 (KEY_SCROLLLOCK) -> atset1:70 */

ERROR: line over 90 characters
#705: FILE: ui/input-keymap-qcode-to-atset1.c:131:
+  [Q_KEY_CODE_SEMICOLON] = 0x27, /* qcode:Q_KEY_CODE_SEMICOLON (semicolon) -> linux:39 (KEY_SEMICOLON) -> atset1:39 */

ERROR: line over 90 characters
#706: FILE: ui/input-keymap-qcode-to-atset1.c:132:
+  [Q_KEY_CODE_SHIFT] = 0x2a, /* qcode:Q_KEY_CODE_SHIFT (shift) -> linux:42 (KEY_LEFTSHIFT) -> atset1:42 */

ERROR: line over 90 characters
#707: FILE: ui/input-keymap-qcode-to-atset1.c:133:
+  [Q_KEY_CODE_SHIFT_R] = 0x36, /* qcode:Q_KEY_CODE_SHIFT_R (shift_r) -> linux:54 (KEY_RIGHTSHIFT) -> atset1:54 */

ERROR: line over 90 characters
#708: FILE: ui/input-keymap-qcode-to-atset1.c:134:
+  [Q_KEY_CODE_SLASH] = 0x35, /* qcode:Q_KEY_CODE_SLASH (slash) -> linux:53 (KEY_SLASH) -> atset1:53 */

ERROR: line over 90 characters
#709: FILE: ui/input-keymap-qcode-to-atset1.c:135:
+  [Q_KEY_CODE_SLEEP] = 0xe05f, /* qcode:Q_KEY_CODE_SLEEP (sleep) -> linux:142 (KEY_SLEEP) -> atset1:57439 */

ERROR: line over 90 characters
#710: FILE: ui/input-keymap-qcode-to-atset1.c:136:
+  [Q_KEY_CODE_SPC] = 0x39, /* qcode:Q_KEY_CODE_SPC (spc) -> linux:57 (KEY_SPACE) -> atset1:57 */

ERROR: line over 90 characters
#711: FILE: ui/input-keymap-qcode-to-atset1.c:137:
+  [Q_KEY_CODE_STOP] = 0xe068, /* qcode:Q_KEY_CODE_STOP (stop) -> linux:128 (KEY_STOP) -> atset1:57448 */

ERROR: line over 90 characters
#712: FILE: ui/input-keymap-qcode-to-atset1.c:138:
+  [Q_KEY_CODE_SYSRQ] = 0x54, /* qcode:Q_KEY_CODE_SYSRQ (sysrq) -> linux:99 (KEY_SYSRQ) -> atset1:84 */

WARNING: line over 80 characters
#713: FILE: ui/input-keymap-qcode-to-atset1.c:139:
+  [Q_KEY_CODE_T] = 0x14, /* qcode:Q_KEY_CODE_T (t) -> linux:20 (KEY_T) -> atset1:20 */

ERROR: line over 90 characters
#714: FILE: ui/input-keymap-qcode-to-atset1.c:140:
+  [Q_KEY_CODE_TAB] = 0xf, /* qcode:Q_KEY_CODE_TAB (tab) -> linux:15 (KEY_TAB) -> atset1:15 */

WARNING: line over 80 characters
#715: FILE: ui/input-keymap-qcode-to-atset1.c:141:
+  [Q_KEY_CODE_U] = 0x16, /* qcode:Q_KEY_CODE_U (u) -> linux:22 (KEY_U) -> atset1:22 */

ERROR: line over 90 characters
#716: FILE: ui/input-keymap-qcode-to-atset1.c:142:
+  [Q_KEY_CODE_UNDO] = 0xe007, /* qcode:Q_KEY_CODE_UNDO (undo) -> linux:131 (KEY_UNDO) -> atset1:57351 */

ERROR: line over 90 characters
#717: FILE: ui/input-keymap-qcode-to-atset1.c:143:
+  [Q_KEY_CODE_UP] = 0xe048, /* qcode:Q_KEY_CODE_UP (up) -> linux:103 (KEY_UP) -> atset1:57416 */

WARNING: line over 80 characters
#718: FILE: ui/input-keymap-qcode-to-atset1.c:144:
+  [Q_KEY_CODE_V] = 0x2f, /* qcode:Q_KEY_CODE_V (v) -> linux:47 (KEY_V) -> atset1:47 */

ERROR: line over 90 characters
#719: FILE: ui/input-keymap-qcode-to-atset1.c:145:
+  [Q_KEY_CODE_VOLUMEDOWN] = 0xe02e, /* qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) -> linux:114 (KEY_VOLUMEDOWN) -> atset1:57390 */

ERROR: line over 90 characters
#720: FILE: ui/input-keymap-qcode-to-atset1.c:146:
+  [Q_KEY_CODE_VOLUMEUP] = 0xe030, /* qcode:Q_KEY_CODE_VOLUMEUP (volumeup) -> linux:115 (KEY_VOLUMEUP) -> atset1:57392 */

WARNING: line over 80 characters
#721: FILE: ui/input-keymap-qcode-to-atset1.c:147:
+  [Q_KEY_CODE_W] = 0x11, /* qcode:Q_KEY_CODE_W (w) -> linux:17 (KEY_W) -> atset1:17 */

ERROR: line over 90 characters
#722: FILE: ui/input-keymap-qcode-to-atset1.c:148:
+  [Q_KEY_CODE_WAKE] = 0xe063, /* qcode:Q_KEY_CODE_WAKE (wake) -> linux:143 (KEY_WAKEUP) -> atset1:57443 */

WARNING: line over 80 characters
#723: FILE: ui/input-keymap-qcode-to-atset1.c:149:
+  [Q_KEY_CODE_X] = 0x2d, /* qcode:Q_KEY_CODE_X (x) -> linux:45 (KEY_X) -> atset1:45 */

WARNING: line over 80 characters
#724: FILE: ui/input-keymap-qcode-to-atset1.c:150:
+  [Q_KEY_CODE_Y] = 0x15, /* qcode:Q_KEY_CODE_Y (y) -> linux:21 (KEY_Y) -> atset1:21 */

ERROR: line over 90 characters
#725: FILE: ui/input-keymap-qcode-to-atset1.c:151:
+  [Q_KEY_CODE_YEN] = 0x7d, /* qcode:Q_KEY_CODE_YEN (yen) -> linux:124 (KEY_YEN) -> atset1:125 */

WARNING: line over 80 characters
#726: FILE: ui/input-keymap-qcode-to-atset1.c:152:
+  [Q_KEY_CODE_Z] = 0x2c, /* qcode:Q_KEY_CODE_Z (z) -> linux:44 (KEY_Z) -> atset1:44 */

ERROR: line over 90 characters
#728: FILE: ui/input-keymap-qcode-to-atset1.c:154:
+const guint qemu_input_map_qcode_to_atset1_len = sizeof(qemu_input_map_qcode_to_atset1)/sizeof(qemu_input_map_qcode_to_atset1[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#728: FILE: ui/input-keymap-qcode-to-atset1.c:154:
+const guint qemu_input_map_qcode_to_atset1_len = sizeof(qemu_input_map_qcode_to_atset1)/sizeof(qemu_input_map_qcode_to_atset1[0]);
                                                                                        ^

ERROR: line over 90 characters
#737: FILE: ui/input-keymap-qcode-to-atset2.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#739: FILE: ui/input-keymap-qcode-to-atset2.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qcode_to_atset2 code-map keymaps.csv qcode atset2

WARNING: line over 80 characters
#742: FILE: ui/input-keymap-qcode-to-atset2.c:8:
+  [Q_KEY_CODE_0] = 0x45, /* qcode:Q_KEY_CODE_0 (0) -> linux:11 (KEY_0) -> atset2:69 */

WARNING: line over 80 characters
#743: FILE: ui/input-keymap-qcode-to-atset2.c:9:
+  [Q_KEY_CODE_1] = 0x16, /* qcode:Q_KEY_CODE_1 (1) -> linux:2 (KEY_1) -> atset2:22 */

WARNING: line over 80 characters
#744: FILE: ui/input-keymap-qcode-to-atset2.c:10:
+  [Q_KEY_CODE_2] = 0x1e, /* qcode:Q_KEY_CODE_2 (2) -> linux:3 (KEY_2) -> atset2:30 */

WARNING: line over 80 characters
#745: FILE: ui/input-keymap-qcode-to-atset2.c:11:
+  [Q_KEY_CODE_3] = 0x26, /* qcode:Q_KEY_CODE_3 (3) -> linux:4 (KEY_3) -> atset2:38 */

WARNING: line over 80 characters
#746: FILE: ui/input-keymap-qcode-to-atset2.c:12:
+  [Q_KEY_CODE_4] = 0x25, /* qcode:Q_KEY_CODE_4 (4) -> linux:5 (KEY_4) -> atset2:37 */

WARNING: line over 80 characters
#747: FILE: ui/input-keymap-qcode-to-atset2.c:13:
+  [Q_KEY_CODE_5] = 0x2e, /* qcode:Q_KEY_CODE_5 (5) -> linux:6 (KEY_5) -> atset2:46 */

WARNING: line over 80 characters
#748: FILE: ui/input-keymap-qcode-to-atset2.c:14:
+  [Q_KEY_CODE_6] = 0x36, /* qcode:Q_KEY_CODE_6 (6) -> linux:7 (KEY_6) -> atset2:54 */

WARNING: line over 80 characters
#749: FILE: ui/input-keymap-qcode-to-atset2.c:15:
+  [Q_KEY_CODE_7] = 0x3d, /* qcode:Q_KEY_CODE_7 (7) -> linux:8 (KEY_7) -> atset2:61 */

WARNING: line over 80 characters
#750: FILE: ui/input-keymap-qcode-to-atset2.c:16:
+  [Q_KEY_CODE_8] = 0x3e, /* qcode:Q_KEY_CODE_8 (8) -> linux:9 (KEY_8) -> atset2:62 */

WARNING: line over 80 characters
#751: FILE: ui/input-keymap-qcode-to-atset2.c:17:
+  [Q_KEY_CODE_9] = 0x46, /* qcode:Q_KEY_CODE_9 (9) -> linux:10 (KEY_9) -> atset2:70 */

WARNING: line over 80 characters
#752: FILE: ui/input-keymap-qcode-to-atset2.c:18:
+  [Q_KEY_CODE_A] = 0x1c, /* qcode:Q_KEY_CODE_A (a) -> linux:30 (KEY_A) -> atset2:28 */

ERROR: line over 90 characters
#753: FILE: ui/input-keymap-qcode-to-atset2.c:19:
+  [Q_KEY_CODE_AC_BACK] = 0xe038, /* qcode:Q_KEY_CODE_AC_BACK (ac_back) -> linux:158 (KEY_BACK) -> atset2:57400 */

ERROR: line over 90 characters
#754: FILE: ui/input-keymap-qcode-to-atset2.c:20:
+  [Q_KEY_CODE_AC_BOOKMARKS] = 0xe018, /* qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) -> linux:156 (KEY_BOOKMARKS) -> atset2:57368 */

ERROR: line over 90 characters
#755: FILE: ui/input-keymap-qcode-to-atset2.c:21:
+  [Q_KEY_CODE_AC_FORWARD] = 0xe030, /* qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) -> linux:159 (KEY_FORWARD) -> atset2:57392 */

ERROR: line over 90 characters
#756: FILE: ui/input-keymap-qcode-to-atset2.c:22:
+  [Q_KEY_CODE_AC_HOME] = 0xe03a, /* qcode:Q_KEY_CODE_AC_HOME (ac_home) -> linux:172 (KEY_HOMEPAGE) -> atset2:57402 */

ERROR: line over 90 characters
#757: FILE: ui/input-keymap-qcode-to-atset2.c:23:
+  [Q_KEY_CODE_AC_REFRESH] = 0xe020, /* qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) -> linux:173 (KEY_REFRESH) -> atset2:57376 */

ERROR: line over 90 characters
#758: FILE: ui/input-keymap-qcode-to-atset2.c:24:
+  [Q_KEY_CODE_ALT] = 0x11, /* qcode:Q_KEY_CODE_ALT (alt) -> linux:56 (KEY_LEFTALT) -> atset2:17 */

ERROR: line over 90 characters
#759: FILE: ui/input-keymap-qcode-to-atset2.c:25:
+  [Q_KEY_CODE_ALT_R] = 0xe011, /* qcode:Q_KEY_CODE_ALT_R (alt_r) -> linux:100 (KEY_RIGHTALT) -> atset2:57361 */

ERROR: line over 90 characters
#760: FILE: ui/input-keymap-qcode-to-atset2.c:26:
+  [Q_KEY_CODE_APOSTROPHE] = 0x52, /* qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) -> linux:40 (KEY_APOSTROPHE) -> atset2:82 */

ERROR: line over 90 characters
#761: FILE: ui/input-keymap-qcode-to-atset2.c:27:
+  [Q_KEY_CODE_ASTERISK] = 0x7c, /* qcode:Q_KEY_CODE_ASTERISK (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> atset2:124 */

ERROR: line over 90 characters
#762: FILE: ui/input-keymap-qcode-to-atset2.c:28:
+  [Q_KEY_CODE_AUDIOMUTE] = 0xe023, /* qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) -> linux:113 (KEY_MUTE) -> atset2:57379 */

ERROR: line over 90 characters
#763: FILE: ui/input-keymap-qcode-to-atset2.c:29:
+  [Q_KEY_CODE_AUDIONEXT] = 0xe04d, /* qcode:Q_KEY_CODE_AUDIONEXT (audionext) -> linux:163 (KEY_NEXTSONG) -> atset2:57421 */

ERROR: line over 90 characters
#764: FILE: ui/input-keymap-qcode-to-atset2.c:30:
+  [Q_KEY_CODE_AUDIOPLAY] = 0xe034, /* qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) -> linux:164 (KEY_PLAYPAUSE) -> atset2:57396 */

ERROR: line over 90 characters
#765: FILE: ui/input-keymap-qcode-to-atset2.c:31:
+  [Q_KEY_CODE_AUDIOPREV] = 0xe015, /* qcode:Q_KEY_CODE_AUDIOPREV (audioprev) -> linux:165 (KEY_PREVIOUSSONG) -> atset2:57365 */

ERROR: line over 90 characters
#766: FILE: ui/input-keymap-qcode-to-atset2.c:32:
+  [Q_KEY_CODE_AUDIOSTOP] = 0xe03b, /* qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) -> linux:166 (KEY_STOPCD) -> atset2:57403 */

WARNING: line over 80 characters
#767: FILE: ui/input-keymap-qcode-to-atset2.c:33:
+  [Q_KEY_CODE_B] = 0x32, /* qcode:Q_KEY_CODE_B (b) -> linux:48 (KEY_B) -> atset2:50 */

ERROR: line over 90 characters
#768: FILE: ui/input-keymap-qcode-to-atset2.c:34:
+  [Q_KEY_CODE_BACKSLASH] = 0x5d, /* qcode:Q_KEY_CODE_BACKSLASH (backslash) -> linux:43 (KEY_BACKSLASH) -> atset2:93 */

ERROR: line over 90 characters
#769: FILE: ui/input-keymap-qcode-to-atset2.c:35:
+  [Q_KEY_CODE_BACKSPACE] = 0x66, /* qcode:Q_KEY_CODE_BACKSPACE (backspace) -> linux:14 (KEY_BACKSPACE) -> atset2:102 */

ERROR: line over 90 characters
#770: FILE: ui/input-keymap-qcode-to-atset2.c:36:
+  [Q_KEY_CODE_BRACKET_LEFT] = 0x54, /* qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) -> linux:26 (KEY_LEFTBRACE) -> atset2:84 */

ERROR: line over 90 characters
#771: FILE: ui/input-keymap-qcode-to-atset2.c:37:
+  [Q_KEY_CODE_BRACKET_RIGHT] = 0x5b, /* qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) -> linux:27 (KEY_RIGHTBRACE) -> atset2:91 */

WARNING: line over 80 characters
#772: FILE: ui/input-keymap-qcode-to-atset2.c:38:
+  [Q_KEY_CODE_C] = 0x21, /* qcode:Q_KEY_CODE_C (c) -> linux:46 (KEY_C) -> atset2:33 */

ERROR: line over 90 characters
#773: FILE: ui/input-keymap-qcode-to-atset2.c:39:
+  [Q_KEY_CODE_CALCULATOR] = 0xe02b, /* qcode:Q_KEY_CODE_CALCULATOR (calculator) -> linux:140 (KEY_CALC) -> atset2:57387 */

ERROR: line over 90 characters
#774: FILE: ui/input-keymap-qcode-to-atset2.c:40:
+  [Q_KEY_CODE_CAPS_LOCK] = 0x58, /* qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) -> linux:58 (KEY_CAPSLOCK) -> atset2:88 */

ERROR: line over 90 characters
#775: FILE: ui/input-keymap-qcode-to-atset2.c:41:
+  [Q_KEY_CODE_COMMA] = 0x41, /* qcode:Q_KEY_CODE_COMMA (comma) -> linux:51 (KEY_COMMA) -> atset2:65 */

ERROR: line over 90 characters
#776: FILE: ui/input-keymap-qcode-to-atset2.c:42:
+  [Q_KEY_CODE_COMPOSE] = 0xe02f, /* qcode:Q_KEY_CODE_COMPOSE (compose) -> linux:127 (KEY_COMPOSE) -> atset2:57391 */

ERROR: line over 90 characters
#777: FILE: ui/input-keymap-qcode-to-atset2.c:43:
+  [Q_KEY_CODE_COMPUTER] = 0xe040, /* qcode:Q_KEY_CODE_COMPUTER (computer) -> linux:157 (KEY_COMPUTER) -> atset2:57408 */

ERROR: line over 90 characters
#778: FILE: ui/input-keymap-qcode-to-atset2.c:44:
+  [Q_KEY_CODE_CTRL] = 0x14, /* qcode:Q_KEY_CODE_CTRL (ctrl) -> linux:29 (KEY_LEFTCTRL) -> atset2:20 */

ERROR: line over 90 characters
#779: FILE: ui/input-keymap-qcode-to-atset2.c:45:
+  [Q_KEY_CODE_CTRL_R] = 0xe014, /* qcode:Q_KEY_CODE_CTRL_R (ctrl_r) -> linux:97 (KEY_RIGHTCTRL) -> atset2:57364 */

WARNING: line over 80 characters
#780: FILE: ui/input-keymap-qcode-to-atset2.c:46:
+  [Q_KEY_CODE_D] = 0x23, /* qcode:Q_KEY_CODE_D (d) -> linux:32 (KEY_D) -> atset2:35 */

ERROR: line over 90 characters
#781: FILE: ui/input-keymap-qcode-to-atset2.c:47:
+  [Q_KEY_CODE_DELETE] = 0xe071, /* qcode:Q_KEY_CODE_DELETE (delete) -> linux:111 (KEY_DELETE) -> atset2:57457 */

ERROR: line over 90 characters
#782: FILE: ui/input-keymap-qcode-to-atset2.c:48:
+  [Q_KEY_CODE_DOT] = 0x49, /* qcode:Q_KEY_CODE_DOT (dot) -> linux:52 (KEY_DOT) -> atset2:73 */

ERROR: line over 90 characters
#783: FILE: ui/input-keymap-qcode-to-atset2.c:49:
+  [Q_KEY_CODE_DOWN] = 0xe072, /* qcode:Q_KEY_CODE_DOWN (down) -> linux:108 (KEY_DOWN) -> atset2:57458 */

WARNING: line over 80 characters
#784: FILE: ui/input-keymap-qcode-to-atset2.c:50:
+  [Q_KEY_CODE_E] = 0x24, /* qcode:Q_KEY_CODE_E (e) -> linux:18 (KEY_E) -> atset2:36 */

ERROR: line over 90 characters
#785: FILE: ui/input-keymap-qcode-to-atset2.c:51:
+  [Q_KEY_CODE_END] = 0xe069, /* qcode:Q_KEY_CODE_END (end) -> linux:107 (KEY_END) -> atset2:57449 */

ERROR: line over 90 characters
#786: FILE: ui/input-keymap-qcode-to-atset2.c:52:
+  [Q_KEY_CODE_EQUAL] = 0x55, /* qcode:Q_KEY_CODE_EQUAL (equal) -> linux:13 (KEY_EQUAL) -> atset2:85 */

ERROR: line over 90 characters
#787: FILE: ui/input-keymap-qcode-to-atset2.c:53:
+  [Q_KEY_CODE_ESC] = 0x76, /* qcode:Q_KEY_CODE_ESC (esc) -> linux:1 (KEY_ESC) -> atset2:118 */

WARNING: line over 80 characters
#788: FILE: ui/input-keymap-qcode-to-atset2.c:54:
+  [Q_KEY_CODE_F] = 0x2b, /* qcode:Q_KEY_CODE_F (f) -> linux:33 (KEY_F) -> atset2:43 */

WARNING: line over 80 characters
#789: FILE: ui/input-keymap-qcode-to-atset2.c:55:
+  [Q_KEY_CODE_F1] = 0x5, /* qcode:Q_KEY_CODE_F1 (f1) -> linux:59 (KEY_F1) -> atset2:5 */

ERROR: line over 90 characters
#790: FILE: ui/input-keymap-qcode-to-atset2.c:56:
+  [Q_KEY_CODE_F10] = 0x9, /* qcode:Q_KEY_CODE_F10 (f10) -> linux:68 (KEY_F10) -> atset2:9 */

ERROR: line over 90 characters
#791: FILE: ui/input-keymap-qcode-to-atset2.c:57:
+  [Q_KEY_CODE_F11] = 0x78, /* qcode:Q_KEY_CODE_F11 (f11) -> linux:87 (KEY_F11) -> atset2:120 */

ERROR: line over 90 characters
#792: FILE: ui/input-keymap-qcode-to-atset2.c:58:
+  [Q_KEY_CODE_F12] = 0x7, /* qcode:Q_KEY_CODE_F12 (f12) -> linux:88 (KEY_F12) -> atset2:7 */

WARNING: line over 80 characters
#793: FILE: ui/input-keymap-qcode-to-atset2.c:59:
+  [Q_KEY_CODE_F2] = 0x6, /* qcode:Q_KEY_CODE_F2 (f2) -> linux:60 (KEY_F2) -> atset2:6 */

WARNING: line over 80 characters
#794: FILE: ui/input-keymap-qcode-to-atset2.c:60:
+  [Q_KEY_CODE_F3] = 0x4, /* qcode:Q_KEY_CODE_F3 (f3) -> linux:61 (KEY_F3) -> atset2:4 */

WARNING: line over 80 characters
#795: FILE: ui/input-keymap-qcode-to-atset2.c:61:
+  [Q_KEY_CODE_F4] = 0xc, /* qcode:Q_KEY_CODE_F4 (f4) -> linux:62 (KEY_F4) -> atset2:12 */

WARNING: line over 80 characters
#796: FILE: ui/input-keymap-qcode-to-atset2.c:62:
+  [Q_KEY_CODE_F5] = 0x3, /* qcode:Q_KEY_CODE_F5 (f5) -> linux:63 (KEY_F5) -> atset2:3 */

WARNING: line over 80 characters
#797: FILE: ui/input-keymap-qcode-to-atset2.c:63:
+  [Q_KEY_CODE_F6] = 0xb, /* qcode:Q_KEY_CODE_F6 (f6) -> linux:64 (KEY_F6) -> atset2:11 */

ERROR: line over 90 characters
#798: FILE: ui/input-keymap-qcode-to-atset2.c:64:
+  [Q_KEY_CODE_F7] = 0x83, /* qcode:Q_KEY_CODE_F7 (f7) -> linux:65 (KEY_F7) -> atset2:131 */

WARNING: line over 80 characters
#799: FILE: ui/input-keymap-qcode-to-atset2.c:65:
+  [Q_KEY_CODE_F8] = 0xa, /* qcode:Q_KEY_CODE_F8 (f8) -> linux:66 (KEY_F8) -> atset2:10 */

WARNING: line over 80 characters
#800: FILE: ui/input-keymap-qcode-to-atset2.c:66:
+  [Q_KEY_CODE_F9] = 0x1, /* qcode:Q_KEY_CODE_F9 (f9) -> linux:67 (KEY_F9) -> atset2:1 */

WARNING: line over 80 characters
#801: FILE: ui/input-keymap-qcode-to-atset2.c:67:
+  [Q_KEY_CODE_G] = 0x34, /* qcode:Q_KEY_CODE_G (g) -> linux:34 (KEY_G) -> atset2:52 */

ERROR: line over 90 characters
#802: FILE: ui/input-keymap-qcode-to-atset2.c:68:
+  [Q_KEY_CODE_GRAVE_ACCENT] = 0xe, /* qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) -> linux:41 (KEY_GRAVE) -> atset2:14 */

WARNING: line over 80 characters
#803: FILE: ui/input-keymap-qcode-to-atset2.c:69:
+  [Q_KEY_CODE_H] = 0x33, /* qcode:Q_KEY_CODE_H (h) -> linux:35 (KEY_H) -> atset2:51 */

ERROR: line over 90 characters
#804: FILE: ui/input-keymap-qcode-to-atset2.c:70:
+  [Q_KEY_CODE_HENKAN] = 0x64, /* qcode:Q_KEY_CODE_HENKAN (henkan) -> linux:92 (KEY_HENKAN) -> atset2:100 */

ERROR: line over 90 characters
#805: FILE: ui/input-keymap-qcode-to-atset2.c:71:
+  [Q_KEY_CODE_HIRAGANA] = 0x62, /* qcode:Q_KEY_CODE_HIRAGANA (hiragana) -> linux:91 (KEY_HIRAGANA) -> atset2:98 */

ERROR: line over 90 characters
#806: FILE: ui/input-keymap-qcode-to-atset2.c:72:
+  [Q_KEY_CODE_HOME] = 0xe06c, /* qcode:Q_KEY_CODE_HOME (home) -> linux:102 (KEY_HOME) -> atset2:57452 */

WARNING: line over 80 characters
#807: FILE: ui/input-keymap-qcode-to-atset2.c:73:
+  [Q_KEY_CODE_I] = 0x43, /* qcode:Q_KEY_CODE_I (i) -> linux:23 (KEY_I) -> atset2:67 */

ERROR: line over 90 characters
#808: FILE: ui/input-keymap-qcode-to-atset2.c:74:
+  [Q_KEY_CODE_INSERT] = 0xe070, /* qcode:Q_KEY_CODE_INSERT (insert) -> linux:110 (KEY_INSERT) -> atset2:57456 */

WARNING: line over 80 characters
#809: FILE: ui/input-keymap-qcode-to-atset2.c:75:
+  [Q_KEY_CODE_J] = 0x3b, /* qcode:Q_KEY_CODE_J (j) -> linux:36 (KEY_J) -> atset2:59 */

WARNING: line over 80 characters
#810: FILE: ui/input-keymap-qcode-to-atset2.c:76:
+  [Q_KEY_CODE_K] = 0x42, /* qcode:Q_KEY_CODE_K (k) -> linux:37 (KEY_K) -> atset2:66 */

ERROR: line over 90 characters
#811: FILE: ui/input-keymap-qcode-to-atset2.c:77:
+  [Q_KEY_CODE_KP_0] = 0x70, /* qcode:Q_KEY_CODE_KP_0 (kp_0) -> linux:82 (KEY_KP0) -> atset2:112 */

ERROR: line over 90 characters
#812: FILE: ui/input-keymap-qcode-to-atset2.c:78:
+  [Q_KEY_CODE_KP_1] = 0x69, /* qcode:Q_KEY_CODE_KP_1 (kp_1) -> linux:79 (KEY_KP1) -> atset2:105 */

ERROR: line over 90 characters
#813: FILE: ui/input-keymap-qcode-to-atset2.c:79:
+  [Q_KEY_CODE_KP_2] = 0x72, /* qcode:Q_KEY_CODE_KP_2 (kp_2) -> linux:80 (KEY_KP2) -> atset2:114 */

ERROR: line over 90 characters
#814: FILE: ui/input-keymap-qcode-to-atset2.c:80:
+  [Q_KEY_CODE_KP_3] = 0x7a, /* qcode:Q_KEY_CODE_KP_3 (kp_3) -> linux:81 (KEY_KP3) -> atset2:122 */

ERROR: line over 90 characters
#815: FILE: ui/input-keymap-qcode-to-atset2.c:81:
+  [Q_KEY_CODE_KP_4] = 0x6b, /* qcode:Q_KEY_CODE_KP_4 (kp_4) -> linux:75 (KEY_KP4) -> atset2:107 */

ERROR: line over 90 characters
#816: FILE: ui/input-keymap-qcode-to-atset2.c:82:
+  [Q_KEY_CODE_KP_5] = 0x73, /* qcode:Q_KEY_CODE_KP_5 (kp_5) -> linux:76 (KEY_KP5) -> atset2:115 */

ERROR: line over 90 characters
#817: FILE: ui/input-keymap-qcode-to-atset2.c:83:
+  [Q_KEY_CODE_KP_6] = 0x74, /* qcode:Q_KEY_CODE_KP_6 (kp_6) -> linux:77 (KEY_KP6) -> atset2:116 */

ERROR: line over 90 characters
#818: FILE: ui/input-keymap-qcode-to-atset2.c:84:
+  [Q_KEY_CODE_KP_7] = 0x6c, /* qcode:Q_KEY_CODE_KP_7 (kp_7) -> linux:71 (KEY_KP7) -> atset2:108 */

ERROR: line over 90 characters
#819: FILE: ui/input-keymap-qcode-to-atset2.c:85:
+  [Q_KEY_CODE_KP_8] = 0x75, /* qcode:Q_KEY_CODE_KP_8 (kp_8) -> linux:72 (KEY_KP8) -> atset2:117 */

ERROR: line over 90 characters
#820: FILE: ui/input-keymap-qcode-to-atset2.c:86:
+  [Q_KEY_CODE_KP_9] = 0x7d, /* qcode:Q_KEY_CODE_KP_9 (kp_9) -> linux:73 (KEY_KP9) -> atset2:125 */

ERROR: line over 90 characters
#821: FILE: ui/input-keymap-qcode-to-atset2.c:87:
+  [Q_KEY_CODE_KP_ADD] = 0x79, /* qcode:Q_KEY_CODE_KP_ADD (kp_add) -> linux:78 (KEY_KPPLUS) -> atset2:121 */

ERROR: line over 90 characters
#822: FILE: ui/input-keymap-qcode-to-atset2.c:88:
+  [Q_KEY_CODE_KP_COMMA] = 0x6d, /* qcode:Q_KEY_CODE_KP_COMMA (kp_comma) -> linux:121 (KEY_KPCOMMA) -> atset2:109 */

ERROR: line over 90 characters
#823: FILE: ui/input-keymap-qcode-to-atset2.c:89:
+  [Q_KEY_CODE_KP_DECIMAL] = 0x71, /* qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) -> linux:83 (KEY_KPDOT) -> atset2:113 */

ERROR: line over 90 characters
#824: FILE: ui/input-keymap-qcode-to-atset2.c:90:
+  [Q_KEY_CODE_KP_DIVIDE] = 0xe04a, /* qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) -> linux:98 (KEY_KPSLASH) -> atset2:57418 */

ERROR: line over 90 characters
#825: FILE: ui/input-keymap-qcode-to-atset2.c:91:
+  [Q_KEY_CODE_KP_ENTER] = 0xe05a, /* qcode:Q_KEY_CODE_KP_ENTER (kp_enter) -> linux:96 (KEY_KPENTER) -> atset2:57434 */

ERROR: line over 90 characters
#826: FILE: ui/input-keymap-qcode-to-atset2.c:92:
+  [Q_KEY_CODE_KP_EQUALS] = 0xf, /* qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) -> linux:117 (KEY_KPEQUAL) -> atset2:15 */

ERROR: line over 90 characters
#827: FILE: ui/input-keymap-qcode-to-atset2.c:93:
+  [Q_KEY_CODE_KP_MULTIPLY] = 0x7c, /* qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> atset2:124 */

ERROR: line over 90 characters
#828: FILE: ui/input-keymap-qcode-to-atset2.c:94:
+  [Q_KEY_CODE_KP_SUBTRACT] = 0x7b, /* qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) -> linux:74 (KEY_KPMINUS) -> atset2:123 */

WARNING: line over 80 characters
#829: FILE: ui/input-keymap-qcode-to-atset2.c:95:
+  [Q_KEY_CODE_L] = 0x4b, /* qcode:Q_KEY_CODE_L (l) -> linux:38 (KEY_L) -> atset2:75 */

ERROR: line over 90 characters
#830: FILE: ui/input-keymap-qcode-to-atset2.c:96:
+  [Q_KEY_CODE_LEFT] = 0xe06b, /* qcode:Q_KEY_CODE_LEFT (left) -> linux:105 (KEY_LEFT) -> atset2:57451 */

ERROR: line over 90 characters
#831: FILE: ui/input-keymap-qcode-to-atset2.c:97:
+  [Q_KEY_CODE_LESS] = 0x61, /* qcode:Q_KEY_CODE_LESS (less) -> linux:86 (KEY_102ND) -> atset2:97 */

WARNING: line over 80 characters
#832: FILE: ui/input-keymap-qcode-to-atset2.c:98:
+  [Q_KEY_CODE_M] = 0x3a, /* qcode:Q_KEY_CODE_M (m) -> linux:50 (KEY_M) -> atset2:58 */

ERROR: line over 90 characters
#833: FILE: ui/input-keymap-qcode-to-atset2.c:99:
+  [Q_KEY_CODE_MAIL] = 0xe048, /* qcode:Q_KEY_CODE_MAIL (mail) -> linux:155 (KEY_MAIL) -> atset2:57416 */

ERROR: line over 90 characters
#834: FILE: ui/input-keymap-qcode-to-atset2.c:100:
+  [Q_KEY_CODE_MEDIASELECT] = 0xe050, /* qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) -> linux:226 (KEY_MEDIA) -> atset2:57424 */

ERROR: line over 90 characters
#835: FILE: ui/input-keymap-qcode-to-atset2.c:101:
+  [Q_KEY_CODE_META_L] = 0xe01f, /* qcode:Q_KEY_CODE_META_L (meta_l) -> linux:125 (KEY_LEFTMETA) -> atset2:57375 */

ERROR: line over 90 characters
#836: FILE: ui/input-keymap-qcode-to-atset2.c:102:
+  [Q_KEY_CODE_META_R] = 0xe027, /* qcode:Q_KEY_CODE_META_R (meta_r) -> linux:126 (KEY_RIGHTMETA) -> atset2:57383 */

ERROR: line over 90 characters
#837: FILE: ui/input-keymap-qcode-to-atset2.c:103:
+  [Q_KEY_CODE_MINUS] = 0x4e, /* qcode:Q_KEY_CODE_MINUS (minus) -> linux:12 (KEY_MINUS) -> atset2:78 */

WARNING: line over 80 characters
#838: FILE: ui/input-keymap-qcode-to-atset2.c:104:
+  [Q_KEY_CODE_N] = 0x31, /* qcode:Q_KEY_CODE_N (n) -> linux:49 (KEY_N) -> atset2:49 */

ERROR: line over 90 characters
#839: FILE: ui/input-keymap-qcode-to-atset2.c:105:
+  [Q_KEY_CODE_NUM_LOCK] = 0x77, /* qcode:Q_KEY_CODE_NUM_LOCK (num_lock) -> linux:69 (KEY_NUMLOCK) -> atset2:119 */

WARNING: line over 80 characters
#840: FILE: ui/input-keymap-qcode-to-atset2.c:106:
+  [Q_KEY_CODE_O] = 0x44, /* qcode:Q_KEY_CODE_O (o) -> linux:24 (KEY_O) -> atset2:68 */

WARNING: line over 80 characters
#841: FILE: ui/input-keymap-qcode-to-atset2.c:107:
+  [Q_KEY_CODE_P] = 0x4d, /* qcode:Q_KEY_CODE_P (p) -> linux:25 (KEY_P) -> atset2:77 */

ERROR: line over 90 characters
#842: FILE: ui/input-keymap-qcode-to-atset2.c:108:
+  [Q_KEY_CODE_PAUSE] = 0xe077, /* qcode:Q_KEY_CODE_PAUSE (pause) -> linux:119 (KEY_PAUSE) -> atset2:57463 */

ERROR: line over 90 characters
#843: FILE: ui/input-keymap-qcode-to-atset2.c:109:
+  [Q_KEY_CODE_PGDN] = 0xe07a, /* qcode:Q_KEY_CODE_PGDN (pgdn) -> linux:109 (KEY_PAGEDOWN) -> atset2:57466 */

ERROR: line over 90 characters
#844: FILE: ui/input-keymap-qcode-to-atset2.c:110:
+  [Q_KEY_CODE_PGUP] = 0xe07d, /* qcode:Q_KEY_CODE_PGUP (pgup) -> linux:104 (KEY_PAGEUP) -> atset2:57469 */

ERROR: line over 90 characters
#845: FILE: ui/input-keymap-qcode-to-atset2.c:111:
+  [Q_KEY_CODE_POWER] = 0xe037, /* qcode:Q_KEY_CODE_POWER (power) -> linux:116 (KEY_POWER) -> atset2:57399 */

ERROR: line over 90 characters
#846: FILE: ui/input-keymap-qcode-to-atset2.c:112:
+  [Q_KEY_CODE_PRINT] = 0x7f, /* qcode:Q_KEY_CODE_PRINT (sysrq) -> linux:99 (KEY_SYSRQ) -> atset2:127 */

WARNING: line over 80 characters
#847: FILE: ui/input-keymap-qcode-to-atset2.c:113:
+  [Q_KEY_CODE_Q] = 0x15, /* qcode:Q_KEY_CODE_Q (q) -> linux:16 (KEY_Q) -> atset2:21 */

WARNING: line over 80 characters
#848: FILE: ui/input-keymap-qcode-to-atset2.c:114:
+  [Q_KEY_CODE_R] = 0x2d, /* qcode:Q_KEY_CODE_R (r) -> linux:19 (KEY_R) -> atset2:45 */

ERROR: line over 90 characters
#849: FILE: ui/input-keymap-qcode-to-atset2.c:115:
+  [Q_KEY_CODE_RET] = 0x5a, /* qcode:Q_KEY_CODE_RET (ret) -> linux:28 (KEY_ENTER) -> atset2:90 */

ERROR: line over 90 characters
#850: FILE: ui/input-keymap-qcode-to-atset2.c:116:
+  [Q_KEY_CODE_RIGHT] = 0xe074, /* qcode:Q_KEY_CODE_RIGHT (right) -> linux:106 (KEY_RIGHT) -> atset2:57460 */

WARNING: line over 80 characters
#851: FILE: ui/input-keymap-qcode-to-atset2.c:117:
+  [Q_KEY_CODE_RO] = 0x51, /* qcode:Q_KEY_CODE_RO (ro) -> linux:89 (KEY_RO) -> atset2:81 */

WARNING: line over 80 characters
#852: FILE: ui/input-keymap-qcode-to-atset2.c:118:
+  [Q_KEY_CODE_S] = 0x1b, /* qcode:Q_KEY_CODE_S (s) -> linux:31 (KEY_S) -> atset2:27 */

ERROR: line over 90 characters
#853: FILE: ui/input-keymap-qcode-to-atset2.c:119:
+  [Q_KEY_CODE_SCROLL_LOCK] = 0x7e, /* qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) -> linux:70 (KEY_SCROLLLOCK) -> atset2:126 */

ERROR: line over 90 characters
#854: FILE: ui/input-keymap-qcode-to-atset2.c:120:
+  [Q_KEY_CODE_SEMICOLON] = 0x4c, /* qcode:Q_KEY_CODE_SEMICOLON (semicolon) -> linux:39 (KEY_SEMICOLON) -> atset2:76 */

ERROR: line over 90 characters
#855: FILE: ui/input-keymap-qcode-to-atset2.c:121:
+  [Q_KEY_CODE_SHIFT] = 0x12, /* qcode:Q_KEY_CODE_SHIFT (shift) -> linux:42 (KEY_LEFTSHIFT) -> atset2:18 */

ERROR: line over 90 characters
#856: FILE: ui/input-keymap-qcode-to-atset2.c:122:
+  [Q_KEY_CODE_SHIFT_R] = 0x59, /* qcode:Q_KEY_CODE_SHIFT_R (shift_r) -> linux:54 (KEY_RIGHTSHIFT) -> atset2:89 */

ERROR: line over 90 characters
#857: FILE: ui/input-keymap-qcode-to-atset2.c:123:
+  [Q_KEY_CODE_SLASH] = 0x4a, /* qcode:Q_KEY_CODE_SLASH (slash) -> linux:53 (KEY_SLASH) -> atset2:74 */

ERROR: line over 90 characters
#858: FILE: ui/input-keymap-qcode-to-atset2.c:124:
+  [Q_KEY_CODE_SLEEP] = 0xe03f, /* qcode:Q_KEY_CODE_SLEEP (sleep) -> linux:142 (KEY_SLEEP) -> atset2:57407 */

ERROR: line over 90 characters
#859: FILE: ui/input-keymap-qcode-to-atset2.c:125:
+  [Q_KEY_CODE_SPC] = 0x29, /* qcode:Q_KEY_CODE_SPC (spc) -> linux:57 (KEY_SPACE) -> atset2:41 */

ERROR: line over 90 characters
#860: FILE: ui/input-keymap-qcode-to-atset2.c:126:
+  [Q_KEY_CODE_STOP] = 0xe028, /* qcode:Q_KEY_CODE_STOP (stop) -> linux:128 (KEY_STOP) -> atset2:57384 */

ERROR: line over 90 characters
#861: FILE: ui/input-keymap-qcode-to-atset2.c:127:
+  [Q_KEY_CODE_SYSRQ] = 0x7f, /* qcode:Q_KEY_CODE_SYSRQ (sysrq) -> linux:99 (KEY_SYSRQ) -> atset2:127 */

WARNING: line over 80 characters
#862: FILE: ui/input-keymap-qcode-to-atset2.c:128:
+  [Q_KEY_CODE_T] = 0x2c, /* qcode:Q_KEY_CODE_T (t) -> linux:20 (KEY_T) -> atset2:44 */

ERROR: line over 90 characters
#863: FILE: ui/input-keymap-qcode-to-atset2.c:129:
+  [Q_KEY_CODE_TAB] = 0xd, /* qcode:Q_KEY_CODE_TAB (tab) -> linux:15 (KEY_TAB) -> atset2:13 */

WARNING: line over 80 characters
#864: FILE: ui/input-keymap-qcode-to-atset2.c:130:
+  [Q_KEY_CODE_U] = 0x3c, /* qcode:Q_KEY_CODE_U (u) -> linux:22 (KEY_U) -> atset2:60 */

ERROR: line over 90 characters
#865: FILE: ui/input-keymap-qcode-to-atset2.c:131:
+  [Q_KEY_CODE_UP] = 0xe075, /* qcode:Q_KEY_CODE_UP (up) -> linux:103 (KEY_UP) -> atset2:57461 */

WARNING: line over 80 characters
#866: FILE: ui/input-keymap-qcode-to-atset2.c:132:
+  [Q_KEY_CODE_V] = 0x2a, /* qcode:Q_KEY_CODE_V (v) -> linux:47 (KEY_V) -> atset2:42 */

ERROR: line over 90 characters
#867: FILE: ui/input-keymap-qcode-to-atset2.c:133:
+  [Q_KEY_CODE_VOLUMEDOWN] = 0xe021, /* qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) -> linux:114 (KEY_VOLUMEDOWN) -> atset2:57377 */

ERROR: line over 90 characters
#868: FILE: ui/input-keymap-qcode-to-atset2.c:134:
+  [Q_KEY_CODE_VOLUMEUP] = 0xe032, /* qcode:Q_KEY_CODE_VOLUMEUP (volumeup) -> linux:115 (KEY_VOLUMEUP) -> atset2:57394 */

WARNING: line over 80 characters
#869: FILE: ui/input-keymap-qcode-to-atset2.c:135:
+  [Q_KEY_CODE_W] = 0x1d, /* qcode:Q_KEY_CODE_W (w) -> linux:17 (KEY_W) -> atset2:29 */

ERROR: line over 90 characters
#870: FILE: ui/input-keymap-qcode-to-atset2.c:136:
+  [Q_KEY_CODE_WAKE] = 0xe05e, /* qcode:Q_KEY_CODE_WAKE (wake) -> linux:143 (KEY_WAKEUP) -> atset2:57438 */

WARNING: line over 80 characters
#871: FILE: ui/input-keymap-qcode-to-atset2.c:137:
+  [Q_KEY_CODE_X] = 0x22, /* qcode:Q_KEY_CODE_X (x) -> linux:45 (KEY_X) -> atset2:34 */

WARNING: line over 80 characters
#872: FILE: ui/input-keymap-qcode-to-atset2.c:138:
+  [Q_KEY_CODE_Y] = 0x35, /* qcode:Q_KEY_CODE_Y (y) -> linux:21 (KEY_Y) -> atset2:53 */

ERROR: line over 90 characters
#873: FILE: ui/input-keymap-qcode-to-atset2.c:139:
+  [Q_KEY_CODE_YEN] = 0x6a, /* qcode:Q_KEY_CODE_YEN (yen) -> linux:124 (KEY_YEN) -> atset2:106 */

WARNING: line over 80 characters
#874: FILE: ui/input-keymap-qcode-to-atset2.c:140:
+  [Q_KEY_CODE_Z] = 0x1a, /* qcode:Q_KEY_CODE_Z (z) -> linux:44 (KEY_Z) -> atset2:26 */

ERROR: line over 90 characters
#876: FILE: ui/input-keymap-qcode-to-atset2.c:142:
+const guint qemu_input_map_qcode_to_atset2_len = sizeof(qemu_input_map_qcode_to_atset2)/sizeof(qemu_input_map_qcode_to_atset2[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#876: FILE: ui/input-keymap-qcode-to-atset2.c:142:
+const guint qemu_input_map_qcode_to_atset2_len = sizeof(qemu_input_map_qcode_to_atset2)/sizeof(qemu_input_map_qcode_to_atset2[0]);
                                                                                        ^

ERROR: line over 90 characters
#885: FILE: ui/input-keymap-qcode-to-atset3.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#887: FILE: ui/input-keymap-qcode-to-atset3.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qcode_to_atset3 code-map keymaps.csv qcode atset3

WARNING: line over 80 characters
#890: FILE: ui/input-keymap-qcode-to-atset3.c:8:
+  [Q_KEY_CODE_0] = 0x45, /* qcode:Q_KEY_CODE_0 (0) -> linux:11 (KEY_0) -> atset3:69 */

WARNING: line over 80 characters
#891: FILE: ui/input-keymap-qcode-to-atset3.c:9:
+  [Q_KEY_CODE_1] = 0x16, /* qcode:Q_KEY_CODE_1 (1) -> linux:2 (KEY_1) -> atset3:22 */

WARNING: line over 80 characters
#892: FILE: ui/input-keymap-qcode-to-atset3.c:10:
+  [Q_KEY_CODE_2] = 0x1e, /* qcode:Q_KEY_CODE_2 (2) -> linux:3 (KEY_2) -> atset3:30 */

WARNING: line over 80 characters
#893: FILE: ui/input-keymap-qcode-to-atset3.c:11:
+  [Q_KEY_CODE_3] = 0x26, /* qcode:Q_KEY_CODE_3 (3) -> linux:4 (KEY_3) -> atset3:38 */

WARNING: line over 80 characters
#894: FILE: ui/input-keymap-qcode-to-atset3.c:12:
+  [Q_KEY_CODE_4] = 0x25, /* qcode:Q_KEY_CODE_4 (4) -> linux:5 (KEY_4) -> atset3:37 */

WARNING: line over 80 characters
#895: FILE: ui/input-keymap-qcode-to-atset3.c:13:
+  [Q_KEY_CODE_5] = 0x2e, /* qcode:Q_KEY_CODE_5 (5) -> linux:6 (KEY_5) -> atset3:46 */

WARNING: line over 80 characters
#896: FILE: ui/input-keymap-qcode-to-atset3.c:14:
+  [Q_KEY_CODE_6] = 0x36, /* qcode:Q_KEY_CODE_6 (6) -> linux:7 (KEY_6) -> atset3:54 */

WARNING: line over 80 characters
#897: FILE: ui/input-keymap-qcode-to-atset3.c:15:
+  [Q_KEY_CODE_7] = 0x3d, /* qcode:Q_KEY_CODE_7 (7) -> linux:8 (KEY_7) -> atset3:61 */

WARNING: line over 80 characters
#898: FILE: ui/input-keymap-qcode-to-atset3.c:16:
+  [Q_KEY_CODE_8] = 0x3e, /* qcode:Q_KEY_CODE_8 (8) -> linux:9 (KEY_8) -> atset3:62 */

WARNING: line over 80 characters
#899: FILE: ui/input-keymap-qcode-to-atset3.c:17:
+  [Q_KEY_CODE_9] = 0x46, /* qcode:Q_KEY_CODE_9 (9) -> linux:10 (KEY_9) -> atset3:70 */

WARNING: line over 80 characters
#900: FILE: ui/input-keymap-qcode-to-atset3.c:18:
+  [Q_KEY_CODE_A] = 0x1c, /* qcode:Q_KEY_CODE_A (a) -> linux:30 (KEY_A) -> atset3:28 */

ERROR: line over 90 characters
#901: FILE: ui/input-keymap-qcode-to-atset3.c:19:
+  [Q_KEY_CODE_AC_HOME] = 0x97, /* qcode:Q_KEY_CODE_AC_HOME (ac_home) -> linux:172 (KEY_HOMEPAGE) -> atset3:151 */

ERROR: line over 90 characters
#902: FILE: ui/input-keymap-qcode-to-atset3.c:20:
+  [Q_KEY_CODE_AGAIN] = 0xb, /* qcode:Q_KEY_CODE_AGAIN (again) -> linux:129 (KEY_AGAIN) -> atset3:11 */

ERROR: line over 90 characters
#903: FILE: ui/input-keymap-qcode-to-atset3.c:21:
+  [Q_KEY_CODE_ALT] = 0x19, /* qcode:Q_KEY_CODE_ALT (alt) -> linux:56 (KEY_LEFTALT) -> atset3:25 */

ERROR: line over 90 characters
#904: FILE: ui/input-keymap-qcode-to-atset3.c:22:
+  [Q_KEY_CODE_ALT_R] = 0x39, /* qcode:Q_KEY_CODE_ALT_R (alt_r) -> linux:100 (KEY_RIGHTALT) -> atset3:57 */

ERROR: line over 90 characters
#905: FILE: ui/input-keymap-qcode-to-atset3.c:23:
+  [Q_KEY_CODE_APOSTROPHE] = 0x52, /* qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) -> linux:40 (KEY_APOSTROPHE) -> atset3:82 */

ERROR: line over 90 characters
#906: FILE: ui/input-keymap-qcode-to-atset3.c:24:
+  [Q_KEY_CODE_ASTERISK] = 0x7e, /* qcode:Q_KEY_CODE_ASTERISK (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> atset3:126 */

ERROR: line over 90 characters
#907: FILE: ui/input-keymap-qcode-to-atset3.c:25:
+  [Q_KEY_CODE_AUDIOMUTE] = 0x9c, /* qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) -> linux:113 (KEY_MUTE) -> atset3:156 */

ERROR: line over 90 characters
#908: FILE: ui/input-keymap-qcode-to-atset3.c:26:
+  [Q_KEY_CODE_AUDIONEXT] = 0x93, /* qcode:Q_KEY_CODE_AUDIONEXT (audionext) -> linux:163 (KEY_NEXTSONG) -> atset3:147 */

ERROR: line over 90 characters
#909: FILE: ui/input-keymap-qcode-to-atset3.c:27:
+  [Q_KEY_CODE_AUDIOPREV] = 0x94, /* qcode:Q_KEY_CODE_AUDIOPREV (audioprev) -> linux:165 (KEY_PREVIOUSSONG) -> atset3:148 */

ERROR: line over 90 characters
#910: FILE: ui/input-keymap-qcode-to-atset3.c:28:
+  [Q_KEY_CODE_AUDIOSTOP] = 0x98, /* qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) -> linux:166 (KEY_STOPCD) -> atset3:152 */

WARNING: line over 80 characters
#911: FILE: ui/input-keymap-qcode-to-atset3.c:29:
+  [Q_KEY_CODE_B] = 0x32, /* qcode:Q_KEY_CODE_B (b) -> linux:48 (KEY_B) -> atset3:50 */

ERROR: line over 90 characters
#912: FILE: ui/input-keymap-qcode-to-atset3.c:30:
+  [Q_KEY_CODE_BACKSLASH] = 0x5c, /* qcode:Q_KEY_CODE_BACKSLASH (backslash) -> linux:43 (KEY_BACKSLASH) -> atset3:92 */

ERROR: line over 90 characters
#913: FILE: ui/input-keymap-qcode-to-atset3.c:31:
+  [Q_KEY_CODE_BACKSPACE] = 0x66, /* qcode:Q_KEY_CODE_BACKSPACE (backspace) -> linux:14 (KEY_BACKSPACE) -> atset3:102 */

ERROR: line over 90 characters
#914: FILE: ui/input-keymap-qcode-to-atset3.c:32:
+  [Q_KEY_CODE_BRACKET_LEFT] = 0x54, /* qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) -> linux:26 (KEY_LEFTBRACE) -> atset3:84 */

ERROR: line over 90 characters
#915: FILE: ui/input-keymap-qcode-to-atset3.c:33:
+  [Q_KEY_CODE_BRACKET_RIGHT] = 0x5b, /* qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) -> linux:27 (KEY_RIGHTBRACE) -> atset3:91 */

WARNING: line over 80 characters
#916: FILE: ui/input-keymap-qcode-to-atset3.c:34:
+  [Q_KEY_CODE_C] = 0x21, /* qcode:Q_KEY_CODE_C (c) -> linux:46 (KEY_C) -> atset3:33 */

ERROR: line over 90 characters
#917: FILE: ui/input-keymap-qcode-to-atset3.c:35:
+  [Q_KEY_CODE_CALCULATOR] = 0xa3, /* qcode:Q_KEY_CODE_CALCULATOR (calculator) -> linux:140 (KEY_CALC) -> atset3:163 */

ERROR: line over 90 characters
#918: FILE: ui/input-keymap-qcode-to-atset3.c:36:
+  [Q_KEY_CODE_CAPS_LOCK] = 0x14, /* qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) -> linux:58 (KEY_CAPSLOCK) -> atset3:20 */

ERROR: line over 90 characters
#919: FILE: ui/input-keymap-qcode-to-atset3.c:37:
+  [Q_KEY_CODE_COMMA] = 0x41, /* qcode:Q_KEY_CODE_COMMA (comma) -> linux:51 (KEY_COMMA) -> atset3:65 */

ERROR: line over 90 characters
#920: FILE: ui/input-keymap-qcode-to-atset3.c:38:
+  [Q_KEY_CODE_COMPOSE] = 0x8d, /* qcode:Q_KEY_CODE_COMPOSE (compose) -> linux:127 (KEY_COMPOSE) -> atset3:141 */

ERROR: line over 90 characters
#921: FILE: ui/input-keymap-qcode-to-atset3.c:39:
+  [Q_KEY_CODE_COPY] = 0x18, /* qcode:Q_KEY_CODE_COPY (copy) -> linux:133 (KEY_COPY) -> atset3:24 */

ERROR: line over 90 characters
#922: FILE: ui/input-keymap-qcode-to-atset3.c:40:
+  [Q_KEY_CODE_CTRL] = 0x11, /* qcode:Q_KEY_CODE_CTRL (ctrl) -> linux:29 (KEY_LEFTCTRL) -> atset3:17 */

ERROR: line over 90 characters
#923: FILE: ui/input-keymap-qcode-to-atset3.c:41:
+  [Q_KEY_CODE_CTRL_R] = 0x58, /* qcode:Q_KEY_CODE_CTRL_R (ctrl_r) -> linux:97 (KEY_RIGHTCTRL) -> atset3:88 */

ERROR: line over 90 characters
#924: FILE: ui/input-keymap-qcode-to-atset3.c:42:
+  [Q_KEY_CODE_CUT] = 0x38, /* qcode:Q_KEY_CODE_CUT (cut) -> linux:137 (KEY_CUT) -> atset3:56 */

WARNING: line over 80 characters
#925: FILE: ui/input-keymap-qcode-to-atset3.c:43:
+  [Q_KEY_CODE_D] = 0x23, /* qcode:Q_KEY_CODE_D (d) -> linux:32 (KEY_D) -> atset3:35 */

ERROR: line over 90 characters
#926: FILE: ui/input-keymap-qcode-to-atset3.c:44:
+  [Q_KEY_CODE_DELETE] = 0x64, /* qcode:Q_KEY_CODE_DELETE (delete) -> linux:111 (KEY_DELETE) -> atset3:100 */

ERROR: line over 90 characters
#927: FILE: ui/input-keymap-qcode-to-atset3.c:45:
+  [Q_KEY_CODE_DOT] = 0x49, /* qcode:Q_KEY_CODE_DOT (dot) -> linux:52 (KEY_DOT) -> atset3:73 */

ERROR: line over 90 characters
#928: FILE: ui/input-keymap-qcode-to-atset3.c:46:
+  [Q_KEY_CODE_DOWN] = 0x60, /* qcode:Q_KEY_CODE_DOWN (down) -> linux:108 (KEY_DOWN) -> atset3:96 */

WARNING: line over 80 characters
#929: FILE: ui/input-keymap-qcode-to-atset3.c:47:
+  [Q_KEY_CODE_E] = 0x24, /* qcode:Q_KEY_CODE_E (e) -> linux:18 (KEY_E) -> atset3:36 */

ERROR: line over 90 characters
#930: FILE: ui/input-keymap-qcode-to-atset3.c:48:
+  [Q_KEY_CODE_END] = 0x65, /* qcode:Q_KEY_CODE_END (end) -> linux:107 (KEY_END) -> atset3:101 */

ERROR: line over 90 characters
#931: FILE: ui/input-keymap-qcode-to-atset3.c:49:
+  [Q_KEY_CODE_EQUAL] = 0x55, /* qcode:Q_KEY_CODE_EQUAL (equal) -> linux:13 (KEY_EQUAL) -> atset3:85 */

ERROR: line over 90 characters
#932: FILE: ui/input-keymap-qcode-to-atset3.c:50:
+  [Q_KEY_CODE_ESC] = 0x8, /* qcode:Q_KEY_CODE_ESC (esc) -> linux:1 (KEY_ESC) -> atset3:8 */

WARNING: line over 80 characters
#933: FILE: ui/input-keymap-qcode-to-atset3.c:51:
+  [Q_KEY_CODE_F] = 0x2b, /* qcode:Q_KEY_CODE_F (f) -> linux:33 (KEY_F) -> atset3:43 */

WARNING: line over 80 characters
#934: FILE: ui/input-keymap-qcode-to-atset3.c:52:
+  [Q_KEY_CODE_F1] = 0x7, /* qcode:Q_KEY_CODE_F1 (f1) -> linux:59 (KEY_F1) -> atset3:7 */

ERROR: line over 90 characters
#935: FILE: ui/input-keymap-qcode-to-atset3.c:53:
+  [Q_KEY_CODE_F10] = 0x4f, /* qcode:Q_KEY_CODE_F10 (f10) -> linux:68 (KEY_F10) -> atset3:79 */

ERROR: line over 90 characters
#936: FILE: ui/input-keymap-qcode-to-atset3.c:54:
+  [Q_KEY_CODE_F11] = 0x56, /* qcode:Q_KEY_CODE_F11 (f11) -> linux:87 (KEY_F11) -> atset3:86 */

ERROR: line over 90 characters
#937: FILE: ui/input-keymap-qcode-to-atset3.c:55:
+  [Q_KEY_CODE_F12] = 0x5e, /* qcode:Q_KEY_CODE_F12 (f12) -> linux:88 (KEY_F12) -> atset3:94 */

WARNING: line over 80 characters
#938: FILE: ui/input-keymap-qcode-to-atset3.c:56:
+  [Q_KEY_CODE_F2] = 0xf, /* qcode:Q_KEY_CODE_F2 (f2) -> linux:60 (KEY_F2) -> atset3:15 */

WARNING: line over 80 characters
#939: FILE: ui/input-keymap-qcode-to-atset3.c:57:
+  [Q_KEY_CODE_F3] = 0x17, /* qcode:Q_KEY_CODE_F3 (f3) -> linux:61 (KEY_F3) -> atset3:23 */

WARNING: line over 80 characters
#940: FILE: ui/input-keymap-qcode-to-atset3.c:58:
+  [Q_KEY_CODE_F4] = 0x1f, /* qcode:Q_KEY_CODE_F4 (f4) -> linux:62 (KEY_F4) -> atset3:31 */

WARNING: line over 80 characters
#941: FILE: ui/input-keymap-qcode-to-atset3.c:59:
+  [Q_KEY_CODE_F5] = 0x27, /* qcode:Q_KEY_CODE_F5 (f5) -> linux:63 (KEY_F5) -> atset3:39 */

WARNING: line over 80 characters
#942: FILE: ui/input-keymap-qcode-to-atset3.c:60:
+  [Q_KEY_CODE_F6] = 0x2f, /* qcode:Q_KEY_CODE_F6 (f6) -> linux:64 (KEY_F6) -> atset3:47 */

WARNING: line over 80 characters
#943: FILE: ui/input-keymap-qcode-to-atset3.c:61:
+  [Q_KEY_CODE_F7] = 0x37, /* qcode:Q_KEY_CODE_F7 (f7) -> linux:65 (KEY_F7) -> atset3:55 */

WARNING: line over 80 characters
#944: FILE: ui/input-keymap-qcode-to-atset3.c:62:
+  [Q_KEY_CODE_F8] = 0x3f, /* qcode:Q_KEY_CODE_F8 (f8) -> linux:66 (KEY_F8) -> atset3:63 */

WARNING: line over 80 characters
#945: FILE: ui/input-keymap-qcode-to-atset3.c:63:
+  [Q_KEY_CODE_F9] = 0x47, /* qcode:Q_KEY_CODE_F9 (f9) -> linux:67 (KEY_F9) -> atset3:71 */

ERROR: line over 90 characters
#946: FILE: ui/input-keymap-qcode-to-atset3.c:64:
+  [Q_KEY_CODE_FIND] = 0x30, /* qcode:Q_KEY_CODE_FIND (find) -> linux:136 (KEY_FIND) -> atset3:48 */

WARNING: line over 80 characters
#947: FILE: ui/input-keymap-qcode-to-atset3.c:65:
+  [Q_KEY_CODE_G] = 0x34, /* qcode:Q_KEY_CODE_G (g) -> linux:34 (KEY_G) -> atset3:52 */

ERROR: line over 90 characters
#948: FILE: ui/input-keymap-qcode-to-atset3.c:66:
+  [Q_KEY_CODE_GRAVE_ACCENT] = 0xe, /* qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) -> linux:41 (KEY_GRAVE) -> atset3:14 */

WARNING: line over 80 characters
#949: FILE: ui/input-keymap-qcode-to-atset3.c:67:
+  [Q_KEY_CODE_H] = 0x33, /* qcode:Q_KEY_CODE_H (h) -> linux:35 (KEY_H) -> atset3:51 */

ERROR: line over 90 characters
#950: FILE: ui/input-keymap-qcode-to-atset3.c:68:
+  [Q_KEY_CODE_HELP] = 0x9, /* qcode:Q_KEY_CODE_HELP (help) -> linux:138 (KEY_HELP) -> atset3:9 */

ERROR: line over 90 characters
#951: FILE: ui/input-keymap-qcode-to-atset3.c:69:
+  [Q_KEY_CODE_HENKAN] = 0x86, /* qcode:Q_KEY_CODE_HENKAN (henkan) -> linux:92 (KEY_HENKAN) -> atset3:134 */

ERROR: line over 90 characters
#952: FILE: ui/input-keymap-qcode-to-atset3.c:70:
+  [Q_KEY_CODE_HIRAGANA] = 0x87, /* qcode:Q_KEY_CODE_HIRAGANA (hiragana) -> linux:91 (KEY_HIRAGANA) -> atset3:135 */

ERROR: line over 90 characters
#953: FILE: ui/input-keymap-qcode-to-atset3.c:71:
+  [Q_KEY_CODE_HOME] = 0x6e, /* qcode:Q_KEY_CODE_HOME (home) -> linux:102 (KEY_HOME) -> atset3:110 */

WARNING: line over 80 characters
#954: FILE: ui/input-keymap-qcode-to-atset3.c:72:
+  [Q_KEY_CODE_I] = 0x43, /* qcode:Q_KEY_CODE_I (i) -> linux:23 (KEY_I) -> atset3:67 */

ERROR: line over 90 characters
#955: FILE: ui/input-keymap-qcode-to-atset3.c:73:
+  [Q_KEY_CODE_INSERT] = 0x67, /* qcode:Q_KEY_CODE_INSERT (insert) -> linux:110 (KEY_INSERT) -> atset3:103 */

WARNING: line over 80 characters
#956: FILE: ui/input-keymap-qcode-to-atset3.c:74:
+  [Q_KEY_CODE_J] = 0x3b, /* qcode:Q_KEY_CODE_J (j) -> linux:36 (KEY_J) -> atset3:59 */

WARNING: line over 80 characters
#957: FILE: ui/input-keymap-qcode-to-atset3.c:75:
+  [Q_KEY_CODE_K] = 0x42, /* qcode:Q_KEY_CODE_K (k) -> linux:37 (KEY_K) -> atset3:66 */

ERROR: line over 90 characters
#958: FILE: ui/input-keymap-qcode-to-atset3.c:76:
+  [Q_KEY_CODE_KP_0] = 0x70, /* qcode:Q_KEY_CODE_KP_0 (kp_0) -> linux:82 (KEY_KP0) -> atset3:112 */

ERROR: line over 90 characters
#959: FILE: ui/input-keymap-qcode-to-atset3.c:77:
+  [Q_KEY_CODE_KP_1] = 0x69, /* qcode:Q_KEY_CODE_KP_1 (kp_1) -> linux:79 (KEY_KP1) -> atset3:105 */

ERROR: line over 90 characters
#960: FILE: ui/input-keymap-qcode-to-atset3.c:78:
+  [Q_KEY_CODE_KP_2] = 0x72, /* qcode:Q_KEY_CODE_KP_2 (kp_2) -> linux:80 (KEY_KP2) -> atset3:114 */

ERROR: line over 90 characters
#961: FILE: ui/input-keymap-qcode-to-atset3.c:79:
+  [Q_KEY_CODE_KP_3] = 0x7a, /* qcode:Q_KEY_CODE_KP_3 (kp_3) -> linux:81 (KEY_KP3) -> atset3:122 */

ERROR: line over 90 characters
#962: FILE: ui/input-keymap-qcode-to-atset3.c:80:
+  [Q_KEY_CODE_KP_4] = 0x6b, /* qcode:Q_KEY_CODE_KP_4 (kp_4) -> linux:75 (KEY_KP4) -> atset3:107 */

ERROR: line over 90 characters
#963: FILE: ui/input-keymap-qcode-to-atset3.c:81:
+  [Q_KEY_CODE_KP_5] = 0x73, /* qcode:Q_KEY_CODE_KP_5 (kp_5) -> linux:76 (KEY_KP5) -> atset3:115 */

ERROR: line over 90 characters
#964: FILE: ui/input-keymap-qcode-to-atset3.c:82:
+  [Q_KEY_CODE_KP_6] = 0x74, /* qcode:Q_KEY_CODE_KP_6 (kp_6) -> linux:77 (KEY_KP6) -> atset3:116 */

ERROR: line over 90 characters
#965: FILE: ui/input-keymap-qcode-to-atset3.c:83:
+  [Q_KEY_CODE_KP_7] = 0x6c, /* qcode:Q_KEY_CODE_KP_7 (kp_7) -> linux:71 (KEY_KP7) -> atset3:108 */

ERROR: line over 90 characters
#966: FILE: ui/input-keymap-qcode-to-atset3.c:84:
+  [Q_KEY_CODE_KP_8] = 0x75, /* qcode:Q_KEY_CODE_KP_8 (kp_8) -> linux:72 (KEY_KP8) -> atset3:117 */

ERROR: line over 90 characters
#967: FILE: ui/input-keymap-qcode-to-atset3.c:85:
+  [Q_KEY_CODE_KP_9] = 0x7d, /* qcode:Q_KEY_CODE_KP_9 (kp_9) -> linux:73 (KEY_KP9) -> atset3:125 */

ERROR: line over 90 characters
#968: FILE: ui/input-keymap-qcode-to-atset3.c:86:
+  [Q_KEY_CODE_KP_ADD] = 0x7c, /* qcode:Q_KEY_CODE_KP_ADD (kp_add) -> linux:78 (KEY_KPPLUS) -> atset3:124 */

ERROR: line over 90 characters
#969: FILE: ui/input-keymap-qcode-to-atset3.c:87:
+  [Q_KEY_CODE_KP_DECIMAL] = 0x71, /* qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) -> linux:83 (KEY_KPDOT) -> atset3:113 */

ERROR: line over 90 characters
#970: FILE: ui/input-keymap-qcode-to-atset3.c:88:
+  [Q_KEY_CODE_KP_DIVIDE] = 0x4a, /* qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) -> linux:98 (KEY_KPSLASH) -> atset3:74 */

ERROR: line over 90 characters
#971: FILE: ui/input-keymap-qcode-to-atset3.c:89:
+  [Q_KEY_CODE_KP_ENTER] = 0x79, /* qcode:Q_KEY_CODE_KP_ENTER (kp_enter) -> linux:96 (KEY_KPENTER) -> atset3:121 */

ERROR: line over 90 characters
#972: FILE: ui/input-keymap-qcode-to-atset3.c:90:
+  [Q_KEY_CODE_KP_MULTIPLY] = 0x7e, /* qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> atset3:126 */

ERROR: line over 90 characters
#973: FILE: ui/input-keymap-qcode-to-atset3.c:91:
+  [Q_KEY_CODE_KP_SUBTRACT] = 0x4e, /* qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) -> linux:74 (KEY_KPMINUS) -> atset3:78 */

WARNING: line over 80 characters
#974: FILE: ui/input-keymap-qcode-to-atset3.c:92:
+  [Q_KEY_CODE_L] = 0x4b, /* qcode:Q_KEY_CODE_L (l) -> linux:38 (KEY_L) -> atset3:75 */

ERROR: line over 90 characters
#975: FILE: ui/input-keymap-qcode-to-atset3.c:93:
+  [Q_KEY_CODE_LEFT] = 0x61, /* qcode:Q_KEY_CODE_LEFT (left) -> linux:105 (KEY_LEFT) -> atset3:97 */

ERROR: line over 90 characters
#976: FILE: ui/input-keymap-qcode-to-atset3.c:94:
+  [Q_KEY_CODE_LESS] = 0x13, /* qcode:Q_KEY_CODE_LESS (less) -> linux:86 (KEY_102ND) -> atset3:19 */

WARNING: line over 80 characters
#977: FILE: ui/input-keymap-qcode-to-atset3.c:95:
+  [Q_KEY_CODE_M] = 0x3a, /* qcode:Q_KEY_CODE_M (m) -> linux:50 (KEY_M) -> atset3:58 */

ERROR: line over 90 characters
#978: FILE: ui/input-keymap-qcode-to-atset3.c:96:
+  [Q_KEY_CODE_MENU] = 0x91, /* qcode:Q_KEY_CODE_MENU (menu) -> linux:139 (KEY_MENU) -> atset3:145 */

ERROR: line over 90 characters
#979: FILE: ui/input-keymap-qcode-to-atset3.c:97:
+  [Q_KEY_CODE_META_L] = 0x8b, /* qcode:Q_KEY_CODE_META_L (meta_l) -> linux:125 (KEY_LEFTMETA) -> atset3:139 */

ERROR: line over 90 characters
#980: FILE: ui/input-keymap-qcode-to-atset3.c:98:
+  [Q_KEY_CODE_META_R] = 0x8c, /* qcode:Q_KEY_CODE_META_R (meta_r) -> linux:126 (KEY_RIGHTMETA) -> atset3:140 */

ERROR: line over 90 characters
#981: FILE: ui/input-keymap-qcode-to-atset3.c:99:
+  [Q_KEY_CODE_MINUS] = 0x4e, /* qcode:Q_KEY_CODE_MINUS (minus) -> linux:12 (KEY_MINUS) -> atset3:78 */

WARNING: line over 80 characters
#982: FILE: ui/input-keymap-qcode-to-atset3.c:100:
+  [Q_KEY_CODE_N] = 0x31, /* qcode:Q_KEY_CODE_N (n) -> linux:49 (KEY_N) -> atset3:49 */

ERROR: line over 90 characters
#983: FILE: ui/input-keymap-qcode-to-atset3.c:101:
+  [Q_KEY_CODE_NUM_LOCK] = 0x76, /* qcode:Q_KEY_CODE_NUM_LOCK (num_lock) -> linux:69 (KEY_NUMLOCK) -> atset3:118 */

WARNING: line over 80 characters
#984: FILE: ui/input-keymap-qcode-to-atset3.c:102:
+  [Q_KEY_CODE_O] = 0x44, /* qcode:Q_KEY_CODE_O (o) -> linux:24 (KEY_O) -> atset3:68 */

ERROR: line over 90 characters
#985: FILE: ui/input-keymap-qcode-to-atset3.c:103:
+  [Q_KEY_CODE_OPEN] = 0x20, /* qcode:Q_KEY_CODE_OPEN (open) -> linux:134 (KEY_OPEN) -> atset3:32 */

WARNING: line over 80 characters
#986: FILE: ui/input-keymap-qcode-to-atset3.c:104:
+  [Q_KEY_CODE_P] = 0x4d, /* qcode:Q_KEY_CODE_P (p) -> linux:25 (KEY_P) -> atset3:77 */

ERROR: line over 90 characters
#987: FILE: ui/input-keymap-qcode-to-atset3.c:105:
+  [Q_KEY_CODE_PASTE] = 0x28, /* qcode:Q_KEY_CODE_PASTE (paste) -> linux:135 (KEY_PASTE) -> atset3:40 */

ERROR: line over 90 characters
#988: FILE: ui/input-keymap-qcode-to-atset3.c:106:
+  [Q_KEY_CODE_PAUSE] = 0x62, /* qcode:Q_KEY_CODE_PAUSE (pause) -> linux:119 (KEY_PAUSE) -> atset3:98 */

ERROR: line over 90 characters
#989: FILE: ui/input-keymap-qcode-to-atset3.c:107:
+  [Q_KEY_CODE_PGDN] = 0x6d, /* qcode:Q_KEY_CODE_PGDN (pgdn) -> linux:109 (KEY_PAGEDOWN) -> atset3:109 */

ERROR: line over 90 characters
#990: FILE: ui/input-keymap-qcode-to-atset3.c:108:
+  [Q_KEY_CODE_PGUP] = 0x6f, /* qcode:Q_KEY_CODE_PGUP (pgup) -> linux:104 (KEY_PAGEUP) -> atset3:111 */

ERROR: line over 90 characters
#991: FILE: ui/input-keymap-qcode-to-atset3.c:109:
+  [Q_KEY_CODE_PRINT] = 0x57, /* qcode:Q_KEY_CODE_PRINT (sysrq) -> linux:99 (KEY_SYSRQ) -> atset3:87 */

ERROR: line over 90 characters
#992: FILE: ui/input-keymap-qcode-to-atset3.c:110:
+  [Q_KEY_CODE_PROPS] = 0xc, /* qcode:Q_KEY_CODE_PROPS (props) -> linux:130 (KEY_PROPS) -> atset3:12 */

WARNING: line over 80 characters
#993: FILE: ui/input-keymap-qcode-to-atset3.c:111:
+  [Q_KEY_CODE_Q] = 0x15, /* qcode:Q_KEY_CODE_Q (q) -> linux:16 (KEY_Q) -> atset3:21 */

WARNING: line over 80 characters
#994: FILE: ui/input-keymap-qcode-to-atset3.c:112:
+  [Q_KEY_CODE_R] = 0x2d, /* qcode:Q_KEY_CODE_R (r) -> linux:19 (KEY_R) -> atset3:45 */

ERROR: line over 90 characters
#995: FILE: ui/input-keymap-qcode-to-atset3.c:113:
+  [Q_KEY_CODE_RET] = 0x5a, /* qcode:Q_KEY_CODE_RET (ret) -> linux:28 (KEY_ENTER) -> atset3:90 */

ERROR: line over 90 characters
#996: FILE: ui/input-keymap-qcode-to-atset3.c:114:
+  [Q_KEY_CODE_RIGHT] = 0x6a, /* qcode:Q_KEY_CODE_RIGHT (right) -> linux:106 (KEY_RIGHT) -> atset3:106 */

WARNING: line over 80 characters
#997: FILE: ui/input-keymap-qcode-to-atset3.c:115:
+  [Q_KEY_CODE_S] = 0x1b, /* qcode:Q_KEY_CODE_S (s) -> linux:31 (KEY_S) -> atset3:27 */

ERROR: line over 90 characters
#998: FILE: ui/input-keymap-qcode-to-atset3.c:116:
+  [Q_KEY_CODE_SCROLL_LOCK] = 0x5f, /* qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) -> linux:70 (KEY_SCROLLLOCK) -> atset3:95 */

ERROR: line over 90 characters
#999: FILE: ui/input-keymap-qcode-to-atset3.c:117:
+  [Q_KEY_CODE_SEMICOLON] = 0x4c, /* qcode:Q_KEY_CODE_SEMICOLON (semicolon) -> linux:39 (KEY_SEMICOLON) -> atset3:76 */

ERROR: line over 90 characters
#1000: FILE: ui/input-keymap-qcode-to-atset3.c:118:
+  [Q_KEY_CODE_SHIFT] = 0x12, /* qcode:Q_KEY_CODE_SHIFT (shift) -> linux:42 (KEY_LEFTSHIFT) -> atset3:18 */

ERROR: line over 90 characters
#1001: FILE: ui/input-keymap-qcode-to-atset3.c:119:
+  [Q_KEY_CODE_SHIFT_R] = 0x59, /* qcode:Q_KEY_CODE_SHIFT_R (shift_r) -> linux:54 (KEY_RIGHTSHIFT) -> atset3:89 */

ERROR: line over 90 characters
#1002: FILE: ui/input-keymap-qcode-to-atset3.c:120:
+  [Q_KEY_CODE_SLASH] = 0x4a, /* qcode:Q_KEY_CODE_SLASH (slash) -> linux:53 (KEY_SLASH) -> atset3:74 */

ERROR: line over 90 characters
#1003: FILE: ui/input-keymap-qcode-to-atset3.c:121:
+  [Q_KEY_CODE_SPC] = 0x29, /* qcode:Q_KEY_CODE_SPC (spc) -> linux:57 (KEY_SPACE) -> atset3:41 */

ERROR: line over 90 characters
#1004: FILE: ui/input-keymap-qcode-to-atset3.c:122:
+  [Q_KEY_CODE_STOP] = 0xa, /* qcode:Q_KEY_CODE_STOP (stop) -> linux:128 (KEY_STOP) -> atset3:10 */

ERROR: line over 90 characters
#1005: FILE: ui/input-keymap-qcode-to-atset3.c:123:
+  [Q_KEY_CODE_SYSRQ] = 0x57, /* qcode:Q_KEY_CODE_SYSRQ (sysrq) -> linux:99 (KEY_SYSRQ) -> atset3:87 */

WARNING: line over 80 characters
#1006: FILE: ui/input-keymap-qcode-to-atset3.c:124:
+  [Q_KEY_CODE_T] = 0x2c, /* qcode:Q_KEY_CODE_T (t) -> linux:20 (KEY_T) -> atset3:44 */

ERROR: line over 90 characters
#1007: FILE: ui/input-keymap-qcode-to-atset3.c:125:
+  [Q_KEY_CODE_TAB] = 0xd, /* qcode:Q_KEY_CODE_TAB (tab) -> linux:15 (KEY_TAB) -> atset3:13 */

WARNING: line over 80 characters
#1008: FILE: ui/input-keymap-qcode-to-atset3.c:126:
+  [Q_KEY_CODE_U] = 0x3c, /* qcode:Q_KEY_CODE_U (u) -> linux:22 (KEY_U) -> atset3:60 */

ERROR: line over 90 characters
#1009: FILE: ui/input-keymap-qcode-to-atset3.c:127:
+  [Q_KEY_CODE_UNDO] = 0x10, /* qcode:Q_KEY_CODE_UNDO (undo) -> linux:131 (KEY_UNDO) -> atset3:16 */

ERROR: line over 90 characters
#1010: FILE: ui/input-keymap-qcode-to-atset3.c:128:
+  [Q_KEY_CODE_UP] = 0x63, /* qcode:Q_KEY_CODE_UP (up) -> linux:103 (KEY_UP) -> atset3:99 */

WARNING: line over 80 characters
#1011: FILE: ui/input-keymap-qcode-to-atset3.c:129:
+  [Q_KEY_CODE_V] = 0x2a, /* qcode:Q_KEY_CODE_V (v) -> linux:47 (KEY_V) -> atset3:42 */

ERROR: line over 90 characters
#1012: FILE: ui/input-keymap-qcode-to-atset3.c:130:
+  [Q_KEY_CODE_VOLUMEDOWN] = 0x9d, /* qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) -> linux:114 (KEY_VOLUMEDOWN) -> atset3:157 */

ERROR: line over 90 characters
#1013: FILE: ui/input-keymap-qcode-to-atset3.c:131:
+  [Q_KEY_CODE_VOLUMEUP] = 0x95, /* qcode:Q_KEY_CODE_VOLUMEUP (volumeup) -> linux:115 (KEY_VOLUMEUP) -> atset3:149 */

WARNING: line over 80 characters
#1014: FILE: ui/input-keymap-qcode-to-atset3.c:132:
+  [Q_KEY_CODE_W] = 0x1d, /* qcode:Q_KEY_CODE_W (w) -> linux:17 (KEY_W) -> atset3:29 */

WARNING: line over 80 characters
#1015: FILE: ui/input-keymap-qcode-to-atset3.c:133:
+  [Q_KEY_CODE_X] = 0x22, /* qcode:Q_KEY_CODE_X (x) -> linux:45 (KEY_X) -> atset3:34 */

WARNING: line over 80 characters
#1016: FILE: ui/input-keymap-qcode-to-atset3.c:134:
+  [Q_KEY_CODE_Y] = 0x35, /* qcode:Q_KEY_CODE_Y (y) -> linux:21 (KEY_Y) -> atset3:53 */

ERROR: line over 90 characters
#1017: FILE: ui/input-keymap-qcode-to-atset3.c:135:
+  [Q_KEY_CODE_YEN] = 0x5d, /* qcode:Q_KEY_CODE_YEN (yen) -> linux:124 (KEY_YEN) -> atset3:93 */

WARNING: line over 80 characters
#1018: FILE: ui/input-keymap-qcode-to-atset3.c:136:
+  [Q_KEY_CODE_Z] = 0x1a, /* qcode:Q_KEY_CODE_Z (z) -> linux:44 (KEY_Z) -> atset3:26 */

ERROR: line over 90 characters
#1020: FILE: ui/input-keymap-qcode-to-atset3.c:138:
+const guint qemu_input_map_qcode_to_atset3_len = sizeof(qemu_input_map_qcode_to_atset3)/sizeof(qemu_input_map_qcode_to_atset3[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#1020: FILE: ui/input-keymap-qcode-to-atset3.c:138:
+const guint qemu_input_map_qcode_to_atset3_len = sizeof(qemu_input_map_qcode_to_atset3)/sizeof(qemu_input_map_qcode_to_atset3[0]);
                                                                                        ^

total: 284 errors, 135 warnings, 903 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 7/12: input: convert the adb device to keycodemapdb...
ERROR: line over 90 characters
#349: FILE: ui/input-keymap-qcode-to-adb.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#351: FILE: ui/input-keymap-qcode-to-adb.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_qcode_to_adb code-map keymaps.csv qcode adb

ERROR: spaces required around that '-' (ctx:VxV)
#354: FILE: ui/input-keymap-qcode-to-adb.c:8:
+  [0 ... Q_KEY_CODE__MAX-1] = 0xff,
                         ^

WARNING: line over 80 characters
#355: FILE: ui/input-keymap-qcode-to-adb.c:9:
+  [Q_KEY_CODE_0] = 0x1d, /* qcode:Q_KEY_CODE_0 (0) -> linux:11 (KEY_0) -> adb:29 */

WARNING: line over 80 characters
#356: FILE: ui/input-keymap-qcode-to-adb.c:10:
+  [Q_KEY_CODE_1] = 0x12, /* qcode:Q_KEY_CODE_1 (1) -> linux:2 (KEY_1) -> adb:18 */

WARNING: line over 80 characters
#357: FILE: ui/input-keymap-qcode-to-adb.c:11:
+  [Q_KEY_CODE_2] = 0x13, /* qcode:Q_KEY_CODE_2 (2) -> linux:3 (KEY_2) -> adb:19 */

WARNING: line over 80 characters
#358: FILE: ui/input-keymap-qcode-to-adb.c:12:
+  [Q_KEY_CODE_3] = 0x14, /* qcode:Q_KEY_CODE_3 (3) -> linux:4 (KEY_3) -> adb:20 */

WARNING: line over 80 characters
#359: FILE: ui/input-keymap-qcode-to-adb.c:13:
+  [Q_KEY_CODE_4] = 0x15, /* qcode:Q_KEY_CODE_4 (4) -> linux:5 (KEY_4) -> adb:21 */

WARNING: line over 80 characters
#360: FILE: ui/input-keymap-qcode-to-adb.c:14:
+  [Q_KEY_CODE_5] = 0x17, /* qcode:Q_KEY_CODE_5 (5) -> linux:6 (KEY_5) -> adb:23 */

WARNING: line over 80 characters
#361: FILE: ui/input-keymap-qcode-to-adb.c:15:
+  [Q_KEY_CODE_6] = 0x16, /* qcode:Q_KEY_CODE_6 (6) -> linux:7 (KEY_6) -> adb:22 */

WARNING: line over 80 characters
#362: FILE: ui/input-keymap-qcode-to-adb.c:16:
+  [Q_KEY_CODE_7] = 0x1a, /* qcode:Q_KEY_CODE_7 (7) -> linux:8 (KEY_7) -> adb:26 */

WARNING: line over 80 characters
#363: FILE: ui/input-keymap-qcode-to-adb.c:17:
+  [Q_KEY_CODE_8] = 0x1c, /* qcode:Q_KEY_CODE_8 (8) -> linux:9 (KEY_8) -> adb:28 */

WARNING: line over 80 characters
#364: FILE: ui/input-keymap-qcode-to-adb.c:18:
+  [Q_KEY_CODE_9] = 0x19, /* qcode:Q_KEY_CODE_9 (9) -> linux:10 (KEY_9) -> adb:25 */

WARNING: line over 80 characters
#365: FILE: ui/input-keymap-qcode-to-adb.c:19:
+  [Q_KEY_CODE_A] = 0x0, /* qcode:Q_KEY_CODE_A (a) -> linux:30 (KEY_A) -> adb:0 */

ERROR: line over 90 characters
#366: FILE: ui/input-keymap-qcode-to-adb.c:20:
+  [Q_KEY_CODE_AC_BACK] = 0xff, /* qcode:Q_KEY_CODE_AC_BACK (ac_back) -> linux:158 (KEY_BACK) -> adb:255 */

ERROR: line over 90 characters
#367: FILE: ui/input-keymap-qcode-to-adb.c:21:
+  [Q_KEY_CODE_AC_BOOKMARKS] = 0xff, /* qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) -> linux:156 (KEY_BOOKMARKS) -> adb:255 */

ERROR: line over 90 characters
#368: FILE: ui/input-keymap-qcode-to-adb.c:22:
+  [Q_KEY_CODE_AC_FORWARD] = 0xff, /* qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) -> linux:159 (KEY_FORWARD) -> adb:255 */

ERROR: line over 90 characters
#369: FILE: ui/input-keymap-qcode-to-adb.c:23:
+  [Q_KEY_CODE_AC_HOME] = 0xff, /* qcode:Q_KEY_CODE_AC_HOME (ac_home) -> linux:172 (KEY_HOMEPAGE) -> adb:255 */

ERROR: line over 90 characters
#370: FILE: ui/input-keymap-qcode-to-adb.c:24:
+  [Q_KEY_CODE_AC_REFRESH] = 0xff, /* qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) -> linux:173 (KEY_REFRESH) -> adb:255 */

ERROR: line over 90 characters
#371: FILE: ui/input-keymap-qcode-to-adb.c:25:
+  [Q_KEY_CODE_AGAIN] = 0xff, /* qcode:Q_KEY_CODE_AGAIN (again) -> linux:129 (KEY_AGAIN) -> adb:255 */

ERROR: line over 90 characters
#372: FILE: ui/input-keymap-qcode-to-adb.c:26:
+  [Q_KEY_CODE_ALT] = 0x3a, /* qcode:Q_KEY_CODE_ALT (alt) -> linux:56 (KEY_LEFTALT) -> adb:58 */

ERROR: line over 90 characters
#373: FILE: ui/input-keymap-qcode-to-adb.c:27:
+  [Q_KEY_CODE_ALT_R] = 0x7c, /* qcode:Q_KEY_CODE_ALT_R (alt_r) -> linux:100 (KEY_RIGHTALT) -> adb:124 */

ERROR: line over 90 characters
#374: FILE: ui/input-keymap-qcode-to-adb.c:28:
+  [Q_KEY_CODE_APOSTROPHE] = 0x27, /* qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) -> linux:40 (KEY_APOSTROPHE) -> adb:39 */

ERROR: line over 90 characters
#375: FILE: ui/input-keymap-qcode-to-adb.c:29:
+  [Q_KEY_CODE_ASTERISK] = 0x43, /* qcode:Q_KEY_CODE_ASTERISK (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> adb:67 */

ERROR: line over 90 characters
#376: FILE: ui/input-keymap-qcode-to-adb.c:30:
+  [Q_KEY_CODE_AUDIOMUTE] = 0xff, /* qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) -> linux:113 (KEY_MUTE) -> adb:255 */

ERROR: line over 90 characters
#377: FILE: ui/input-keymap-qcode-to-adb.c:31:
+  [Q_KEY_CODE_AUDIONEXT] = 0xff, /* qcode:Q_KEY_CODE_AUDIONEXT (audionext) -> linux:163 (KEY_NEXTSONG) -> adb:255 */

ERROR: line over 90 characters
#378: FILE: ui/input-keymap-qcode-to-adb.c:32:
+  [Q_KEY_CODE_AUDIOPLAY] = 0xff, /* qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) -> linux:164 (KEY_PLAYPAUSE) -> adb:255 */

ERROR: line over 90 characters
#379: FILE: ui/input-keymap-qcode-to-adb.c:33:
+  [Q_KEY_CODE_AUDIOPREV] = 0xff, /* qcode:Q_KEY_CODE_AUDIOPREV (audioprev) -> linux:165 (KEY_PREVIOUSSONG) -> adb:255 */

ERROR: line over 90 characters
#380: FILE: ui/input-keymap-qcode-to-adb.c:34:
+  [Q_KEY_CODE_AUDIOSTOP] = 0xff, /* qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) -> linux:166 (KEY_STOPCD) -> adb:255 */

WARNING: line over 80 characters
#381: FILE: ui/input-keymap-qcode-to-adb.c:35:
+  [Q_KEY_CODE_B] = 0xb, /* qcode:Q_KEY_CODE_B (b) -> linux:48 (KEY_B) -> adb:11 */

ERROR: line over 90 characters
#382: FILE: ui/input-keymap-qcode-to-adb.c:36:
+  [Q_KEY_CODE_BACKSLASH] = 0x2a, /* qcode:Q_KEY_CODE_BACKSLASH (backslash) -> linux:43 (KEY_BACKSLASH) -> adb:42 */

ERROR: line over 90 characters
#383: FILE: ui/input-keymap-qcode-to-adb.c:37:
+  [Q_KEY_CODE_BACKSPACE] = 0x33, /* qcode:Q_KEY_CODE_BACKSPACE (backspace) -> linux:14 (KEY_BACKSPACE) -> adb:51 */

ERROR: line over 90 characters
#384: FILE: ui/input-keymap-qcode-to-adb.c:38:
+  [Q_KEY_CODE_BRACKET_LEFT] = 0x21, /* qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) -> linux:26 (KEY_LEFTBRACE) -> adb:33 */

ERROR: line over 90 characters
#385: FILE: ui/input-keymap-qcode-to-adb.c:39:
+  [Q_KEY_CODE_BRACKET_RIGHT] = 0x1e, /* qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) -> linux:27 (KEY_RIGHTBRACE) -> adb:30 */

WARNING: line over 80 characters
#386: FILE: ui/input-keymap-qcode-to-adb.c:40:
+  [Q_KEY_CODE_C] = 0x8, /* qcode:Q_KEY_CODE_C (c) -> linux:46 (KEY_C) -> adb:8 */

ERROR: line over 90 characters
#387: FILE: ui/input-keymap-qcode-to-adb.c:41:
+  [Q_KEY_CODE_CALCULATOR] = 0xff, /* qcode:Q_KEY_CODE_CALCULATOR (calculator) -> linux:140 (KEY_CALC) -> adb:255 */

ERROR: line over 90 characters
#388: FILE: ui/input-keymap-qcode-to-adb.c:42:
+  [Q_KEY_CODE_CAPS_LOCK] = 0x39, /* qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) -> linux:58 (KEY_CAPSLOCK) -> adb:57 */

ERROR: line over 90 characters
#389: FILE: ui/input-keymap-qcode-to-adb.c:43:
+  [Q_KEY_CODE_COMMA] = 0x2b, /* qcode:Q_KEY_CODE_COMMA (comma) -> linux:51 (KEY_COMMA) -> adb:43 */

ERROR: line over 90 characters
#390: FILE: ui/input-keymap-qcode-to-adb.c:44:
+  [Q_KEY_CODE_COMPOSE] = 0xff, /* qcode:Q_KEY_CODE_COMPOSE (compose) -> linux:127 (KEY_COMPOSE) -> adb:255 */

ERROR: line over 90 characters
#391: FILE: ui/input-keymap-qcode-to-adb.c:45:
+  [Q_KEY_CODE_COMPUTER] = 0xff, /* qcode:Q_KEY_CODE_COMPUTER (computer) -> linux:157 (KEY_COMPUTER) -> adb:255 */

ERROR: line over 90 characters
#392: FILE: ui/input-keymap-qcode-to-adb.c:46:
+  [Q_KEY_CODE_COPY] = 0xff, /* qcode:Q_KEY_CODE_COPY (copy) -> linux:133 (KEY_COPY) -> adb:255 */

ERROR: line over 90 characters
#393: FILE: ui/input-keymap-qcode-to-adb.c:47:
+  [Q_KEY_CODE_CTRL] = 0x36, /* qcode:Q_KEY_CODE_CTRL (ctrl) -> linux:29 (KEY_LEFTCTRL) -> adb:54 */

ERROR: line over 90 characters
#394: FILE: ui/input-keymap-qcode-to-adb.c:48:
+  [Q_KEY_CODE_CTRL_R] = 0x7d, /* qcode:Q_KEY_CODE_CTRL_R (ctrl_r) -> linux:97 (KEY_RIGHTCTRL) -> adb:125 */

ERROR: line over 90 characters
#395: FILE: ui/input-keymap-qcode-to-adb.c:49:
+  [Q_KEY_CODE_CUT] = 0xff, /* qcode:Q_KEY_CODE_CUT (cut) -> linux:137 (KEY_CUT) -> adb:255 */

WARNING: line over 80 characters
#396: FILE: ui/input-keymap-qcode-to-adb.c:50:
+  [Q_KEY_CODE_D] = 0x2, /* qcode:Q_KEY_CODE_D (d) -> linux:32 (KEY_D) -> adb:2 */

ERROR: line over 90 characters
#397: FILE: ui/input-keymap-qcode-to-adb.c:51:
+  [Q_KEY_CODE_DELETE] = 0x75, /* qcode:Q_KEY_CODE_DELETE (delete) -> linux:111 (KEY_DELETE) -> adb:117 */

ERROR: line over 90 characters
#398: FILE: ui/input-keymap-qcode-to-adb.c:52:
+  [Q_KEY_CODE_DOT] = 0x2f, /* qcode:Q_KEY_CODE_DOT (dot) -> linux:52 (KEY_DOT) -> adb:47 */

ERROR: line over 90 characters
#399: FILE: ui/input-keymap-qcode-to-adb.c:53:
+  [Q_KEY_CODE_DOWN] = 0x3d, /* qcode:Q_KEY_CODE_DOWN (down) -> linux:108 (KEY_DOWN) -> adb:61 */

WARNING: line over 80 characters
#400: FILE: ui/input-keymap-qcode-to-adb.c:54:
+  [Q_KEY_CODE_E] = 0xe, /* qcode:Q_KEY_CODE_E (e) -> linux:18 (KEY_E) -> adb:14 */

ERROR: line over 90 characters
#401: FILE: ui/input-keymap-qcode-to-adb.c:55:
+  [Q_KEY_CODE_END] = 0x77, /* qcode:Q_KEY_CODE_END (end) -> linux:107 (KEY_END) -> adb:119 */

ERROR: line over 90 characters
#402: FILE: ui/input-keymap-qcode-to-adb.c:56:
+  [Q_KEY_CODE_EQUAL] = 0x18, /* qcode:Q_KEY_CODE_EQUAL (equal) -> linux:13 (KEY_EQUAL) -> adb:24 */

WARNING: line over 80 characters
#403: FILE: ui/input-keymap-qcode-to-adb.c:57:
+  [Q_KEY_CODE_ESC] = 0x35, /* qcode:Q_KEY_CODE_ESC (esc) -> linux:1 (KEY_ESC) -> adb:53 */

WARNING: line over 80 characters
#404: FILE: ui/input-keymap-qcode-to-adb.c:58:
+  [Q_KEY_CODE_F] = 0x3, /* qcode:Q_KEY_CODE_F (f) -> linux:33 (KEY_F) -> adb:3 */

WARNING: line over 80 characters
#405: FILE: ui/input-keymap-qcode-to-adb.c:59:
+  [Q_KEY_CODE_F1] = 0x7a, /* qcode:Q_KEY_CODE_F1 (f1) -> linux:59 (KEY_F1) -> adb:122 */

ERROR: line over 90 characters
#406: FILE: ui/input-keymap-qcode-to-adb.c:60:
+  [Q_KEY_CODE_F10] = 0x6d, /* qcode:Q_KEY_CODE_F10 (f10) -> linux:68 (KEY_F10) -> adb:109 */

ERROR: line over 90 characters
#407: FILE: ui/input-keymap-qcode-to-adb.c:61:
+  [Q_KEY_CODE_F11] = 0x67, /* qcode:Q_KEY_CODE_F11 (f11) -> linux:87 (KEY_F11) -> adb:103 */

ERROR: line over 90 characters
#408: FILE: ui/input-keymap-qcode-to-adb.c:62:
+  [Q_KEY_CODE_F12] = 0x6f, /* qcode:Q_KEY_CODE_F12 (f12) -> linux:88 (KEY_F12) -> adb:111 */

WARNING: line over 80 characters
#409: FILE: ui/input-keymap-qcode-to-adb.c:63:
+  [Q_KEY_CODE_F2] = 0x78, /* qcode:Q_KEY_CODE_F2 (f2) -> linux:60 (KEY_F2) -> adb:120 */

WARNING: line over 80 characters
#410: FILE: ui/input-keymap-qcode-to-adb.c:64:
+  [Q_KEY_CODE_F3] = 0x63, /* qcode:Q_KEY_CODE_F3 (f3) -> linux:61 (KEY_F3) -> adb:99 */

WARNING: line over 80 characters
#411: FILE: ui/input-keymap-qcode-to-adb.c:65:
+  [Q_KEY_CODE_F4] = 0x76, /* qcode:Q_KEY_CODE_F4 (f4) -> linux:62 (KEY_F4) -> adb:118 */

WARNING: line over 80 characters
#412: FILE: ui/input-keymap-qcode-to-adb.c:66:
+  [Q_KEY_CODE_F5] = 0x60, /* qcode:Q_KEY_CODE_F5 (f5) -> linux:63 (KEY_F5) -> adb:96 */

WARNING: line over 80 characters
#413: FILE: ui/input-keymap-qcode-to-adb.c:67:
+  [Q_KEY_CODE_F6] = 0x61, /* qcode:Q_KEY_CODE_F6 (f6) -> linux:64 (KEY_F6) -> adb:97 */

WARNING: line over 80 characters
#414: FILE: ui/input-keymap-qcode-to-adb.c:68:
+  [Q_KEY_CODE_F7] = 0x62, /* qcode:Q_KEY_CODE_F7 (f7) -> linux:65 (KEY_F7) -> adb:98 */

WARNING: line over 80 characters
#415: FILE: ui/input-keymap-qcode-to-adb.c:69:
+  [Q_KEY_CODE_F8] = 0x64, /* qcode:Q_KEY_CODE_F8 (f8) -> linux:66 (KEY_F8) -> adb:100 */

WARNING: line over 80 characters
#416: FILE: ui/input-keymap-qcode-to-adb.c:70:
+  [Q_KEY_CODE_F9] = 0x65, /* qcode:Q_KEY_CODE_F9 (f9) -> linux:67 (KEY_F9) -> adb:101 */

ERROR: line over 90 characters
#417: FILE: ui/input-keymap-qcode-to-adb.c:71:
+  [Q_KEY_CODE_FIND] = 0xff, /* qcode:Q_KEY_CODE_FIND (find) -> linux:136 (KEY_FIND) -> adb:255 */

ERROR: line over 90 characters
#418: FILE: ui/input-keymap-qcode-to-adb.c:72:
+  [Q_KEY_CODE_FRONT] = 0xff, /* qcode:Q_KEY_CODE_FRONT (front) -> linux:132 (KEY_FRONT) -> adb:255 */

WARNING: line over 80 characters
#419: FILE: ui/input-keymap-qcode-to-adb.c:73:
+  [Q_KEY_CODE_G] = 0x5, /* qcode:Q_KEY_CODE_G (g) -> linux:34 (KEY_G) -> adb:5 */

ERROR: line over 90 characters
#420: FILE: ui/input-keymap-qcode-to-adb.c:74:
+  [Q_KEY_CODE_GRAVE_ACCENT] = 0x32, /* qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) -> linux:41 (KEY_GRAVE) -> adb:50 */

WARNING: line over 80 characters
#421: FILE: ui/input-keymap-qcode-to-adb.c:75:
+  [Q_KEY_CODE_H] = 0x4, /* qcode:Q_KEY_CODE_H (h) -> linux:35 (KEY_H) -> adb:4 */

ERROR: line over 90 characters
#422: FILE: ui/input-keymap-qcode-to-adb.c:76:
+  [Q_KEY_CODE_HELP] = 0xff, /* qcode:Q_KEY_CODE_HELP (help) -> linux:138 (KEY_HELP) -> adb:255 */

ERROR: line over 90 characters
#423: FILE: ui/input-keymap-qcode-to-adb.c:77:
+  [Q_KEY_CODE_HENKAN] = 0xff, /* qcode:Q_KEY_CODE_HENKAN (henkan) -> linux:92 (KEY_HENKAN) -> adb:255 */

ERROR: line over 90 characters
#424: FILE: ui/input-keymap-qcode-to-adb.c:78:
+  [Q_KEY_CODE_HIRAGANA] = 0xff, /* qcode:Q_KEY_CODE_HIRAGANA (hiragana) -> linux:91 (KEY_HIRAGANA) -> adb:255 */

ERROR: line over 90 characters
#425: FILE: ui/input-keymap-qcode-to-adb.c:79:
+  [Q_KEY_CODE_HOME] = 0x73, /* qcode:Q_KEY_CODE_HOME (home) -> linux:102 (KEY_HOME) -> adb:115 */

WARNING: line over 80 characters
#426: FILE: ui/input-keymap-qcode-to-adb.c:80:
+  [Q_KEY_CODE_I] = 0x22, /* qcode:Q_KEY_CODE_I (i) -> linux:23 (KEY_I) -> adb:34 */

ERROR: line over 90 characters
#427: FILE: ui/input-keymap-qcode-to-adb.c:81:
+  [Q_KEY_CODE_INSERT] = 0x72, /* qcode:Q_KEY_CODE_INSERT (insert) -> linux:110 (KEY_INSERT) -> adb:114 */

WARNING: line over 80 characters
#428: FILE: ui/input-keymap-qcode-to-adb.c:82:
+  [Q_KEY_CODE_J] = 0x26, /* qcode:Q_KEY_CODE_J (j) -> linux:36 (KEY_J) -> adb:38 */

WARNING: line over 80 characters
#429: FILE: ui/input-keymap-qcode-to-adb.c:83:
+  [Q_KEY_CODE_K] = 0x28, /* qcode:Q_KEY_CODE_K (k) -> linux:37 (KEY_K) -> adb:40 */

ERROR: line over 90 characters
#430: FILE: ui/input-keymap-qcode-to-adb.c:84:
+  [Q_KEY_CODE_KP_0] = 0x52, /* qcode:Q_KEY_CODE_KP_0 (kp_0) -> linux:82 (KEY_KP0) -> adb:82 */

ERROR: line over 90 characters
#431: FILE: ui/input-keymap-qcode-to-adb.c:85:
+  [Q_KEY_CODE_KP_1] = 0x53, /* qcode:Q_KEY_CODE_KP_1 (kp_1) -> linux:79 (KEY_KP1) -> adb:83 */

ERROR: line over 90 characters
#432: FILE: ui/input-keymap-qcode-to-adb.c:86:
+  [Q_KEY_CODE_KP_2] = 0x54, /* qcode:Q_KEY_CODE_KP_2 (kp_2) -> linux:80 (KEY_KP2) -> adb:84 */

ERROR: line over 90 characters
#433: FILE: ui/input-keymap-qcode-to-adb.c:87:
+  [Q_KEY_CODE_KP_3] = 0x55, /* qcode:Q_KEY_CODE_KP_3 (kp_3) -> linux:81 (KEY_KP3) -> adb:85 */

ERROR: line over 90 characters
#434: FILE: ui/input-keymap-qcode-to-adb.c:88:
+  [Q_KEY_CODE_KP_4] = 0x56, /* qcode:Q_KEY_CODE_KP_4 (kp_4) -> linux:75 (KEY_KP4) -> adb:86 */

ERROR: line over 90 characters
#435: FILE: ui/input-keymap-qcode-to-adb.c:89:
+  [Q_KEY_CODE_KP_5] = 0x57, /* qcode:Q_KEY_CODE_KP_5 (kp_5) -> linux:76 (KEY_KP5) -> adb:87 */

ERROR: line over 90 characters
#436: FILE: ui/input-keymap-qcode-to-adb.c:90:
+  [Q_KEY_CODE_KP_6] = 0x58, /* qcode:Q_KEY_CODE_KP_6 (kp_6) -> linux:77 (KEY_KP6) -> adb:88 */

ERROR: line over 90 characters
#437: FILE: ui/input-keymap-qcode-to-adb.c:91:
+  [Q_KEY_CODE_KP_7] = 0x59, /* qcode:Q_KEY_CODE_KP_7 (kp_7) -> linux:71 (KEY_KP7) -> adb:89 */

ERROR: line over 90 characters
#438: FILE: ui/input-keymap-qcode-to-adb.c:92:
+  [Q_KEY_CODE_KP_8] = 0x5b, /* qcode:Q_KEY_CODE_KP_8 (kp_8) -> linux:72 (KEY_KP8) -> adb:91 */

ERROR: line over 90 characters
#439: FILE: ui/input-keymap-qcode-to-adb.c:93:
+  [Q_KEY_CODE_KP_9] = 0x5c, /* qcode:Q_KEY_CODE_KP_9 (kp_9) -> linux:73 (KEY_KP9) -> adb:92 */

ERROR: line over 90 characters
#440: FILE: ui/input-keymap-qcode-to-adb.c:94:
+  [Q_KEY_CODE_KP_ADD] = 0x45, /* qcode:Q_KEY_CODE_KP_ADD (kp_add) -> linux:78 (KEY_KPPLUS) -> adb:69 */

ERROR: line over 90 characters
#441: FILE: ui/input-keymap-qcode-to-adb.c:95:
+  [Q_KEY_CODE_KP_COMMA] = 0xff, /* qcode:Q_KEY_CODE_KP_COMMA (kp_comma) -> linux:121 (KEY_KPCOMMA) -> adb:255 */

ERROR: line over 90 characters
#442: FILE: ui/input-keymap-qcode-to-adb.c:96:
+  [Q_KEY_CODE_KP_DECIMAL] = 0x41, /* qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) -> linux:83 (KEY_KPDOT) -> adb:65 */

ERROR: line over 90 characters
#443: FILE: ui/input-keymap-qcode-to-adb.c:97:
+  [Q_KEY_CODE_KP_DIVIDE] = 0x4b, /* qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) -> linux:98 (KEY_KPSLASH) -> adb:75 */

ERROR: line over 90 characters
#444: FILE: ui/input-keymap-qcode-to-adb.c:98:
+  [Q_KEY_CODE_KP_ENTER] = 0x4c, /* qcode:Q_KEY_CODE_KP_ENTER (kp_enter) -> linux:96 (KEY_KPENTER) -> adb:76 */

ERROR: line over 90 characters
#445: FILE: ui/input-keymap-qcode-to-adb.c:99:
+  [Q_KEY_CODE_KP_EQUALS] = 0x51, /* qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) -> linux:117 (KEY_KPEQUAL) -> adb:81 */

ERROR: line over 90 characters
#446: FILE: ui/input-keymap-qcode-to-adb.c:100:
+  [Q_KEY_CODE_KP_MULTIPLY] = 0x43, /* qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) -> linux:55 (KEY_KPASTERISK) -> adb:67 */

ERROR: line over 90 characters
#447: FILE: ui/input-keymap-qcode-to-adb.c:101:
+  [Q_KEY_CODE_KP_SUBTRACT] = 0x4e, /* qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) -> linux:74 (KEY_KPMINUS) -> adb:78 */

WARNING: line over 80 characters
#448: FILE: ui/input-keymap-qcode-to-adb.c:102:
+  [Q_KEY_CODE_L] = 0x25, /* qcode:Q_KEY_CODE_L (l) -> linux:38 (KEY_L) -> adb:37 */

ERROR: line over 90 characters
#449: FILE: ui/input-keymap-qcode-to-adb.c:103:
+  [Q_KEY_CODE_LEFT] = 0x3b, /* qcode:Q_KEY_CODE_LEFT (left) -> linux:105 (KEY_LEFT) -> adb:59 */

ERROR: line over 90 characters
#450: FILE: ui/input-keymap-qcode-to-adb.c:104:
+  [Q_KEY_CODE_LESS] = 0xff, /* qcode:Q_KEY_CODE_LESS (less) -> linux:86 (KEY_102ND) -> adb:255 */

ERROR: line over 90 characters
#451: FILE: ui/input-keymap-qcode-to-adb.c:105:
+  [Q_KEY_CODE_LF] = 0xff, /* qcode:Q_KEY_CODE_LF (lf) -> linux:101 (KEY_LINEFEED) -> adb:255 */

WARNING: line over 80 characters
#452: FILE: ui/input-keymap-qcode-to-adb.c:106:
+  [Q_KEY_CODE_M] = 0x2e, /* qcode:Q_KEY_CODE_M (m) -> linux:50 (KEY_M) -> adb:46 */

ERROR: line over 90 characters
#453: FILE: ui/input-keymap-qcode-to-adb.c:107:
+  [Q_KEY_CODE_MAIL] = 0xff, /* qcode:Q_KEY_CODE_MAIL (mail) -> linux:155 (KEY_MAIL) -> adb:255 */

ERROR: line over 90 characters
#454: FILE: ui/input-keymap-qcode-to-adb.c:108:
+  [Q_KEY_CODE_MEDIASELECT] = 0xff, /* qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) -> linux:226 (KEY_MEDIA) -> adb:255 */

ERROR: line over 90 characters
#455: FILE: ui/input-keymap-qcode-to-adb.c:109:
+  [Q_KEY_CODE_MENU] = 0xff, /* qcode:Q_KEY_CODE_MENU (menu) -> linux:139 (KEY_MENU) -> adb:255 */

ERROR: line over 90 characters
#456: FILE: ui/input-keymap-qcode-to-adb.c:110:
+  [Q_KEY_CODE_META_L] = 0x37, /* qcode:Q_KEY_CODE_META_L (meta_l) -> linux:125 (KEY_LEFTMETA) -> adb:55 */

ERROR: line over 90 characters
#457: FILE: ui/input-keymap-qcode-to-adb.c:111:
+  [Q_KEY_CODE_META_R] = 0x37, /* qcode:Q_KEY_CODE_META_R (meta_r) -> linux:126 (KEY_RIGHTMETA) -> adb:55 */

ERROR: line over 90 characters
#458: FILE: ui/input-keymap-qcode-to-adb.c:112:
+  [Q_KEY_CODE_MINUS] = 0x1b, /* qcode:Q_KEY_CODE_MINUS (minus) -> linux:12 (KEY_MINUS) -> adb:27 */

WARNING: line over 80 characters
#459: FILE: ui/input-keymap-qcode-to-adb.c:113:
+  [Q_KEY_CODE_N] = 0x2d, /* qcode:Q_KEY_CODE_N (n) -> linux:49 (KEY_N) -> adb:45 */

ERROR: line over 90 characters
#460: FILE: ui/input-keymap-qcode-to-adb.c:114:
+  [Q_KEY_CODE_NUM_LOCK] = 0x47, /* qcode:Q_KEY_CODE_NUM_LOCK (num_lock) -> linux:69 (KEY_NUMLOCK) -> adb:71 */

WARNING: line over 80 characters
#461: FILE: ui/input-keymap-qcode-to-adb.c:115:
+  [Q_KEY_CODE_O] = 0x1f, /* qcode:Q_KEY_CODE_O (o) -> linux:24 (KEY_O) -> adb:31 */

ERROR: line over 90 characters
#462: FILE: ui/input-keymap-qcode-to-adb.c:116:
+  [Q_KEY_CODE_OPEN] = 0xff, /* qcode:Q_KEY_CODE_OPEN (open) -> linux:134 (KEY_OPEN) -> adb:255 */

WARNING: line over 80 characters
#463: FILE: ui/input-keymap-qcode-to-adb.c:117:
+  [Q_KEY_CODE_P] = 0x23, /* qcode:Q_KEY_CODE_P (p) -> linux:25 (KEY_P) -> adb:35 */

ERROR: line over 90 characters
#464: FILE: ui/input-keymap-qcode-to-adb.c:118:
+  [Q_KEY_CODE_PASTE] = 0xff, /* qcode:Q_KEY_CODE_PASTE (paste) -> linux:135 (KEY_PASTE) -> adb:255 */

ERROR: line over 90 characters
#465: FILE: ui/input-keymap-qcode-to-adb.c:119:
+  [Q_KEY_CODE_PAUSE] = 0x71, /* qcode:Q_KEY_CODE_PAUSE (pause) -> linux:119 (KEY_PAUSE) -> adb:113 */

ERROR: line over 90 characters
#466: FILE: ui/input-keymap-qcode-to-adb.c:120:
+  [Q_KEY_CODE_PGDN] = 0x79, /* qcode:Q_KEY_CODE_PGDN (pgdn) -> linux:109 (KEY_PAGEDOWN) -> adb:121 */

ERROR: line over 90 characters
#467: FILE: ui/input-keymap-qcode-to-adb.c:121:
+  [Q_KEY_CODE_PGUP] = 0x74, /* qcode:Q_KEY_CODE_PGUP (pgup) -> linux:104 (KEY_PAGEUP) -> adb:116 */

ERROR: line over 90 characters
#468: FILE: ui/input-keymap-qcode-to-adb.c:122:
+  [Q_KEY_CODE_POWER] = 0x7f7f, /* qcode:Q_KEY_CODE_POWER (power) -> linux:116 (KEY_POWER) -> adb:32639 */

ERROR: line over 90 characters
#469: FILE: ui/input-keymap-qcode-to-adb.c:123:
+  [Q_KEY_CODE_PRINT] = 0x69, /* qcode:Q_KEY_CODE_PRINT (sysrq) -> linux:99 (KEY_SYSRQ) -> adb:105 */

ERROR: line over 90 characters
#470: FILE: ui/input-keymap-qcode-to-adb.c:124:
+  [Q_KEY_CODE_PROPS] = 0xff, /* qcode:Q_KEY_CODE_PROPS (props) -> linux:130 (KEY_PROPS) -> adb:255 */

WARNING: line over 80 characters
#471: FILE: ui/input-keymap-qcode-to-adb.c:125:
+  [Q_KEY_CODE_Q] = 0xc, /* qcode:Q_KEY_CODE_Q (q) -> linux:16 (KEY_Q) -> adb:12 */

WARNING: line over 80 characters
#472: FILE: ui/input-keymap-qcode-to-adb.c:126:
+  [Q_KEY_CODE_R] = 0xf, /* qcode:Q_KEY_CODE_R (r) -> linux:19 (KEY_R) -> adb:15 */

ERROR: line over 90 characters
#473: FILE: ui/input-keymap-qcode-to-adb.c:127:
+  [Q_KEY_CODE_RET] = 0x24, /* qcode:Q_KEY_CODE_RET (ret) -> linux:28 (KEY_ENTER) -> adb:36 */

ERROR: line over 90 characters
#474: FILE: ui/input-keymap-qcode-to-adb.c:128:
+  [Q_KEY_CODE_RIGHT] = 0x3c, /* qcode:Q_KEY_CODE_RIGHT (right) -> linux:106 (KEY_RIGHT) -> adb:60 */

WARNING: line over 80 characters
#475: FILE: ui/input-keymap-qcode-to-adb.c:129:
+  [Q_KEY_CODE_RO] = 0xff, /* qcode:Q_KEY_CODE_RO (ro) -> linux:89 (KEY_RO) -> adb:255 */

WARNING: line over 80 characters
#476: FILE: ui/input-keymap-qcode-to-adb.c:130:
+  [Q_KEY_CODE_S] = 0x1, /* qcode:Q_KEY_CODE_S (s) -> linux:31 (KEY_S) -> adb:1 */

ERROR: line over 90 characters
#477: FILE: ui/input-keymap-qcode-to-adb.c:131:
+  [Q_KEY_CODE_SCROLL_LOCK] = 0x6b, /* qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) -> linux:70 (KEY_SCROLLLOCK) -> adb:107 */

ERROR: line over 90 characters
#478: FILE: ui/input-keymap-qcode-to-adb.c:132:
+  [Q_KEY_CODE_SEMICOLON] = 0x29, /* qcode:Q_KEY_CODE_SEMICOLON (semicolon) -> linux:39 (KEY_SEMICOLON) -> adb:41 */

ERROR: line over 90 characters
#479: FILE: ui/input-keymap-qcode-to-adb.c:133:
+  [Q_KEY_CODE_SHIFT] = 0x38, /* qcode:Q_KEY_CODE_SHIFT (shift) -> linux:42 (KEY_LEFTSHIFT) -> adb:56 */

ERROR: line over 90 characters
#480: FILE: ui/input-keymap-qcode-to-adb.c:134:
+  [Q_KEY_CODE_SHIFT_R] = 0x7b, /* qcode:Q_KEY_CODE_SHIFT_R (shift_r) -> linux:54 (KEY_RIGHTSHIFT) -> adb:123 */

ERROR: line over 90 characters
#481: FILE: ui/input-keymap-qcode-to-adb.c:135:
+  [Q_KEY_CODE_SLASH] = 0x2c, /* qcode:Q_KEY_CODE_SLASH (slash) -> linux:53 (KEY_SLASH) -> adb:44 */

ERROR: line over 90 characters
#482: FILE: ui/input-keymap-qcode-to-adb.c:136:
+  [Q_KEY_CODE_SLEEP] = 0xff, /* qcode:Q_KEY_CODE_SLEEP (sleep) -> linux:142 (KEY_SLEEP) -> adb:255 */

ERROR: line over 90 characters
#483: FILE: ui/input-keymap-qcode-to-adb.c:137:
+  [Q_KEY_CODE_SPC] = 0x31, /* qcode:Q_KEY_CODE_SPC (spc) -> linux:57 (KEY_SPACE) -> adb:49 */

ERROR: line over 90 characters
#484: FILE: ui/input-keymap-qcode-to-adb.c:138:
+  [Q_KEY_CODE_STOP] = 0xff, /* qcode:Q_KEY_CODE_STOP (stop) -> linux:128 (KEY_STOP) -> adb:255 */

ERROR: line over 90 characters
#485: FILE: ui/input-keymap-qcode-to-adb.c:139:
+  [Q_KEY_CODE_SYSRQ] = 0x69, /* qcode:Q_KEY_CODE_SYSRQ (sysrq) -> linux:99 (KEY_SYSRQ) -> adb:105 */

WARNING: line over 80 characters
#486: FILE: ui/input-keymap-qcode-to-adb.c:140:
+  [Q_KEY_CODE_T] = 0x11, /* qcode:Q_KEY_CODE_T (t) -> linux:20 (KEY_T) -> adb:17 */

ERROR: line over 90 characters
#487: FILE: ui/input-keymap-qcode-to-adb.c:141:
+  [Q_KEY_CODE_TAB] = 0x30, /* qcode:Q_KEY_CODE_TAB (tab) -> linux:15 (KEY_TAB) -> adb:48 */

WARNING: line over 80 characters
#488: FILE: ui/input-keymap-qcode-to-adb.c:142:
+  [Q_KEY_CODE_U] = 0x20, /* qcode:Q_KEY_CODE_U (u) -> linux:22 (KEY_U) -> adb:32 */

ERROR: line over 90 characters
#489: FILE: ui/input-keymap-qcode-to-adb.c:143:
+  [Q_KEY_CODE_UNDO] = 0xff, /* qcode:Q_KEY_CODE_UNDO (undo) -> linux:131 (KEY_UNDO) -> adb:255 */

ERROR: line over 90 characters
#490: FILE: ui/input-keymap-qcode-to-adb.c:144:
+  [Q_KEY_CODE_UNMAPPED] = 0xff, /* qcode:Q_KEY_CODE_UNMAPPED (unmapped) -> linux:0 (KEY_RESERVED) -> adb:255 */

WARNING: line over 80 characters
#491: FILE: ui/input-keymap-qcode-to-adb.c:145:
+  [Q_KEY_CODE_UP] = 0x3e, /* qcode:Q_KEY_CODE_UP (up) -> linux:103 (KEY_UP) -> adb:62 */

WARNING: line over 80 characters
#492: FILE: ui/input-keymap-qcode-to-adb.c:146:
+  [Q_KEY_CODE_V] = 0x9, /* qcode:Q_KEY_CODE_V (v) -> linux:47 (KEY_V) -> adb:9 */

ERROR: line over 90 characters
#493: FILE: ui/input-keymap-qcode-to-adb.c:147:
+  [Q_KEY_CODE_VOLUMEDOWN] = 0xff, /* qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) -> linux:114 (KEY_VOLUMEDOWN) -> adb:255 */

ERROR: line over 90 characters
#494: FILE: ui/input-keymap-qcode-to-adb.c:148:
+  [Q_KEY_CODE_VOLUMEUP] = 0xff, /* qcode:Q_KEY_CODE_VOLUMEUP (volumeup) -> linux:115 (KEY_VOLUMEUP) -> adb:255 */

WARNING: line over 80 characters
#495: FILE: ui/input-keymap-qcode-to-adb.c:149:
+  [Q_KEY_CODE_W] = 0xd, /* qcode:Q_KEY_CODE_W (w) -> linux:17 (KEY_W) -> adb:13 */

ERROR: line over 90 characters
#496: FILE: ui/input-keymap-qcode-to-adb.c:150:
+  [Q_KEY_CODE_WAKE] = 0xff, /* qcode:Q_KEY_CODE_WAKE (wake) -> linux:143 (KEY_WAKEUP) -> adb:255 */

WARNING: line over 80 characters
#497: FILE: ui/input-keymap-qcode-to-adb.c:151:
+  [Q_KEY_CODE_X] = 0x7, /* qcode:Q_KEY_CODE_X (x) -> linux:45 (KEY_X) -> adb:7 */

WARNING: line over 80 characters
#498: FILE: ui/input-keymap-qcode-to-adb.c:152:
+  [Q_KEY_CODE_Y] = 0x10, /* qcode:Q_KEY_CODE_Y (y) -> linux:21 (KEY_Y) -> adb:16 */

ERROR: line over 90 characters
#499: FILE: ui/input-keymap-qcode-to-adb.c:153:
+  [Q_KEY_CODE_YEN] = 0xff, /* qcode:Q_KEY_CODE_YEN (yen) -> linux:124 (KEY_YEN) -> adb:255 */

WARNING: line over 80 characters
#500: FILE: ui/input-keymap-qcode-to-adb.c:154:
+  [Q_KEY_CODE_Z] = 0x6, /* qcode:Q_KEY_CODE_Z (z) -> linux:44 (KEY_Z) -> adb:6 */

ERROR: line over 90 characters
#502: FILE: ui/input-keymap-qcode-to-adb.c:156:
+const guint qemu_input_map_qcode_to_adb_len = sizeof(qemu_input_map_qcode_to_adb)/sizeof(qemu_input_map_qcode_to_adb[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#502: FILE: ui/input-keymap-qcode-to-adb.c:156:
+const guint qemu_input_map_qcode_to_adb_len = sizeof(qemu_input_map_qcode_to_adb)/sizeof(qemu_input_map_qcode_to_adb[0]);
                                                                                  ^

total: 103 errors, 48 warnings, 324 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 8/12: char: convert the escc device to keycodemapdb...
Checking PATCH 9/12: ui: convert cocoa frontend to keycodemapdb...
ERROR: line over 90 characters
#192: FILE: ui/input-keymap-osx-to-qcode.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#194: FILE: ui/input-keymap-osx-to-qcode.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_osx_to_qcode code-map keymaps.csv osx qcode

WARNING: line over 80 characters
#197: FILE: ui/input-keymap-osx-to-qcode.c:8:
+  [0x0] = Q_KEY_CODE_A, /* osx:0 (ANSI_A) -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */

WARNING: line over 80 characters
#198: FILE: ui/input-keymap-osx-to-qcode.c:9:
+  [0x1] = Q_KEY_CODE_S, /* osx:1 (ANSI_S) -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */

WARNING: line over 80 characters
#199: FILE: ui/input-keymap-osx-to-qcode.c:10:
+  [0x2] = Q_KEY_CODE_D, /* osx:2 (ANSI_D) -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */

WARNING: line over 80 characters
#200: FILE: ui/input-keymap-osx-to-qcode.c:11:
+  [0x3] = Q_KEY_CODE_F, /* osx:3 (ANSI_F) -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */

WARNING: line over 80 characters
#201: FILE: ui/input-keymap-osx-to-qcode.c:12:
+  [0x4] = Q_KEY_CODE_H, /* osx:4 (ANSI_H) -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */

WARNING: line over 80 characters
#202: FILE: ui/input-keymap-osx-to-qcode.c:13:
+  [0x5] = Q_KEY_CODE_G, /* osx:5 (ANSI_G) -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */

WARNING: line over 80 characters
#203: FILE: ui/input-keymap-osx-to-qcode.c:14:
+  [0x6] = Q_KEY_CODE_Z, /* osx:6 (ANSI_Z) -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */

WARNING: line over 80 characters
#204: FILE: ui/input-keymap-osx-to-qcode.c:15:
+  [0x7] = Q_KEY_CODE_X, /* osx:7 (ANSI_X) -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */

WARNING: line over 80 characters
#205: FILE: ui/input-keymap-osx-to-qcode.c:16:
+  [0x8] = Q_KEY_CODE_C, /* osx:8 (ANSI_C) -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */

WARNING: line over 80 characters
#206: FILE: ui/input-keymap-osx-to-qcode.c:17:
+  [0x9] = Q_KEY_CODE_V, /* osx:9 (ANSI_V) -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */

ERROR: line over 90 characters
#207: FILE: ui/input-keymap-osx-to-qcode.c:18:
+  [0xa] = Q_KEY_CODE_UNMAPPED, /* osx:10 (ISO_Section) -> linux:170 (KEY_ISO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#208: FILE: ui/input-keymap-osx-to-qcode.c:19:
+  [0xb] = Q_KEY_CODE_B, /* osx:11 (ANSI_B) -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */

ERROR: line over 90 characters
#209: FILE: ui/input-keymap-osx-to-qcode.c:20:
+  [0xc] = Q_KEY_CODE_Q, /* osx:12 (ANSI_Q) -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */

ERROR: line over 90 characters
#210: FILE: ui/input-keymap-osx-to-qcode.c:21:
+  [0xd] = Q_KEY_CODE_W, /* osx:13 (ANSI_W) -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */

ERROR: line over 90 characters
#211: FILE: ui/input-keymap-osx-to-qcode.c:22:
+  [0xe] = Q_KEY_CODE_E, /* osx:14 (ANSI_E) -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */

ERROR: line over 90 characters
#212: FILE: ui/input-keymap-osx-to-qcode.c:23:
+  [0xf] = Q_KEY_CODE_R, /* osx:15 (ANSI_R) -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */

ERROR: line over 90 characters
#213: FILE: ui/input-keymap-osx-to-qcode.c:24:
+  [0x10] = Q_KEY_CODE_Y, /* osx:16 (ANSI_Y) -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */

ERROR: line over 90 characters
#214: FILE: ui/input-keymap-osx-to-qcode.c:25:
+  [0x11] = Q_KEY_CODE_T, /* osx:17 (ANSI_T) -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */

ERROR: line over 90 characters
#215: FILE: ui/input-keymap-osx-to-qcode.c:26:
+  [0x12] = Q_KEY_CODE_1, /* osx:18 (ANSI_1) -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */

ERROR: line over 90 characters
#216: FILE: ui/input-keymap-osx-to-qcode.c:27:
+  [0x13] = Q_KEY_CODE_2, /* osx:19 (ANSI_2) -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */

ERROR: line over 90 characters
#217: FILE: ui/input-keymap-osx-to-qcode.c:28:
+  [0x14] = Q_KEY_CODE_3, /* osx:20 (ANSI_3) -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */

ERROR: line over 90 characters
#218: FILE: ui/input-keymap-osx-to-qcode.c:29:
+  [0x15] = Q_KEY_CODE_4, /* osx:21 (ANSI_4) -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */

ERROR: line over 90 characters
#219: FILE: ui/input-keymap-osx-to-qcode.c:30:
+  [0x16] = Q_KEY_CODE_6, /* osx:22 (ANSI_6) -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */

ERROR: line over 90 characters
#220: FILE: ui/input-keymap-osx-to-qcode.c:31:
+  [0x17] = Q_KEY_CODE_5, /* osx:23 (ANSI_5) -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */

ERROR: line over 90 characters
#221: FILE: ui/input-keymap-osx-to-qcode.c:32:
+  [0x18] = Q_KEY_CODE_EQUAL, /* osx:24 (ANSI_Equal) -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */

ERROR: line over 90 characters
#222: FILE: ui/input-keymap-osx-to-qcode.c:33:
+  [0x19] = Q_KEY_CODE_9, /* osx:25 (ANSI_9) -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */

ERROR: line over 90 characters
#223: FILE: ui/input-keymap-osx-to-qcode.c:34:
+  [0x1a] = Q_KEY_CODE_7, /* osx:26 (ANSI_7) -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */

ERROR: line over 90 characters
#224: FILE: ui/input-keymap-osx-to-qcode.c:35:
+  [0x1b] = Q_KEY_CODE_MINUS, /* osx:27 (ANSI_Minus) -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */

ERROR: line over 90 characters
#225: FILE: ui/input-keymap-osx-to-qcode.c:36:
+  [0x1c] = Q_KEY_CODE_8, /* osx:28 (ANSI_8) -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */

ERROR: line over 90 characters
#226: FILE: ui/input-keymap-osx-to-qcode.c:37:
+  [0x1d] = Q_KEY_CODE_0, /* osx:29 (ANSI_0) -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */

ERROR: line over 90 characters
#227: FILE: ui/input-keymap-osx-to-qcode.c:38:
+  [0x1e] = Q_KEY_CODE_BRACKET_RIGHT, /* osx:30 (ANSI_RightBracket) -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */

ERROR: line over 90 characters
#228: FILE: ui/input-keymap-osx-to-qcode.c:39:
+  [0x1f] = Q_KEY_CODE_O, /* osx:31 (ANSI_O) -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */

ERROR: line over 90 characters
#229: FILE: ui/input-keymap-osx-to-qcode.c:40:
+  [0x20] = Q_KEY_CODE_U, /* osx:32 (ANSI_U) -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */

ERROR: line over 90 characters
#230: FILE: ui/input-keymap-osx-to-qcode.c:41:
+  [0x21] = Q_KEY_CODE_BRACKET_LEFT, /* osx:33 (ANSI_LeftBracket) -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */

ERROR: line over 90 characters
#231: FILE: ui/input-keymap-osx-to-qcode.c:42:
+  [0x22] = Q_KEY_CODE_I, /* osx:34 (ANSI_I) -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */

ERROR: line over 90 characters
#232: FILE: ui/input-keymap-osx-to-qcode.c:43:
+  [0x23] = Q_KEY_CODE_P, /* osx:35 (ANSI_P) -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */

ERROR: line over 90 characters
#233: FILE: ui/input-keymap-osx-to-qcode.c:44:
+  [0x24] = Q_KEY_CODE_RET, /* osx:36 (Return) -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */

ERROR: line over 90 characters
#234: FILE: ui/input-keymap-osx-to-qcode.c:45:
+  [0x25] = Q_KEY_CODE_L, /* osx:37 (ANSI_L) -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */

ERROR: line over 90 characters
#235: FILE: ui/input-keymap-osx-to-qcode.c:46:
+  [0x26] = Q_KEY_CODE_J, /* osx:38 (ANSI_J) -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */

ERROR: line over 90 characters
#236: FILE: ui/input-keymap-osx-to-qcode.c:47:
+  [0x27] = Q_KEY_CODE_APOSTROPHE, /* osx:39 (ANSI_Quote) -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */

ERROR: line over 90 characters
#237: FILE: ui/input-keymap-osx-to-qcode.c:48:
+  [0x28] = Q_KEY_CODE_K, /* osx:40 (ANSI_K) -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */

ERROR: line over 90 characters
#238: FILE: ui/input-keymap-osx-to-qcode.c:49:
+  [0x29] = Q_KEY_CODE_SEMICOLON, /* osx:41 (ANSI_Semicolon) -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */

ERROR: line over 90 characters
#239: FILE: ui/input-keymap-osx-to-qcode.c:50:
+  [0x2a] = Q_KEY_CODE_BACKSLASH, /* osx:42 (ANSI_Backslash) -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

ERROR: line over 90 characters
#240: FILE: ui/input-keymap-osx-to-qcode.c:51:
+  [0x2b] = Q_KEY_CODE_COMMA, /* osx:43 (ANSI_Comma) -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */

ERROR: line over 90 characters
#241: FILE: ui/input-keymap-osx-to-qcode.c:52:
+  [0x2c] = Q_KEY_CODE_SLASH, /* osx:44 (ANSI_Slash) -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */

ERROR: line over 90 characters
#242: FILE: ui/input-keymap-osx-to-qcode.c:53:
+  [0x2d] = Q_KEY_CODE_N, /* osx:45 (ANSI_N) -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */

ERROR: line over 90 characters
#243: FILE: ui/input-keymap-osx-to-qcode.c:54:
+  [0x2e] = Q_KEY_CODE_M, /* osx:46 (ANSI_M) -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */

ERROR: line over 90 characters
#244: FILE: ui/input-keymap-osx-to-qcode.c:55:
+  [0x2f] = Q_KEY_CODE_DOT, /* osx:47 (ANSI_Period) -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */

ERROR: line over 90 characters
#245: FILE: ui/input-keymap-osx-to-qcode.c:56:
+  [0x30] = Q_KEY_CODE_TAB, /* osx:48 (Tab) -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */

ERROR: line over 90 characters
#246: FILE: ui/input-keymap-osx-to-qcode.c:57:
+  [0x31] = Q_KEY_CODE_SPC, /* osx:49 (Space) -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */

ERROR: line over 90 characters
#247: FILE: ui/input-keymap-osx-to-qcode.c:58:
+  [0x32] = Q_KEY_CODE_GRAVE_ACCENT, /* osx:50 (ANSI_Grave) -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */

ERROR: line over 90 characters
#248: FILE: ui/input-keymap-osx-to-qcode.c:59:
+  [0x33] = Q_KEY_CODE_BACKSPACE, /* osx:51 (Delete) -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */

ERROR: line over 90 characters
#249: FILE: ui/input-keymap-osx-to-qcode.c:60:
+  [0x35] = Q_KEY_CODE_ESC, /* osx:53 (Escape) -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */

ERROR: line over 90 characters
#250: FILE: ui/input-keymap-osx-to-qcode.c:61:
+  [0x36] = Q_KEY_CODE_META_R, /* osx:54 (RightCommand) -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */

ERROR: line over 90 characters
#251: FILE: ui/input-keymap-osx-to-qcode.c:62:
+  [0x37] = Q_KEY_CODE_META_L, /* osx:55 (Command) -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */

ERROR: line over 90 characters
#252: FILE: ui/input-keymap-osx-to-qcode.c:63:
+  [0x38] = Q_KEY_CODE_SHIFT, /* osx:56 (Shift) -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */

ERROR: line over 90 characters
#253: FILE: ui/input-keymap-osx-to-qcode.c:64:
+  [0x39] = Q_KEY_CODE_CAPS_LOCK, /* osx:57 (CapsLock) -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */

ERROR: line over 90 characters
#254: FILE: ui/input-keymap-osx-to-qcode.c:65:
+  [0x3a] = Q_KEY_CODE_ALT, /* osx:58 (Option) -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */

ERROR: line over 90 characters
#255: FILE: ui/input-keymap-osx-to-qcode.c:66:
+  [0x3b] = Q_KEY_CODE_CTRL, /* osx:59 (Control) -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */

ERROR: line over 90 characters
#256: FILE: ui/input-keymap-osx-to-qcode.c:67:
+  [0x3c] = Q_KEY_CODE_SHIFT_R, /* osx:60 (RightShift) -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */

ERROR: line over 90 characters
#257: FILE: ui/input-keymap-osx-to-qcode.c:68:
+  [0x3d] = Q_KEY_CODE_ALT_R, /* osx:61 (RightOption) -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */

ERROR: line over 90 characters
#258: FILE: ui/input-keymap-osx-to-qcode.c:69:
+  [0x3e] = Q_KEY_CODE_CTRL_R, /* osx:62 (RightControl) -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */

ERROR: line over 90 characters
#259: FILE: ui/input-keymap-osx-to-qcode.c:70:
+  [0x3f] = Q_KEY_CODE_UNMAPPED, /* osx:63 (Function) -> linux:464 (KEY_FN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#260: FILE: ui/input-keymap-osx-to-qcode.c:71:
+  [0x40] = Q_KEY_CODE_UNMAPPED, /* osx:64 (F17) -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#261: FILE: ui/input-keymap-osx-to-qcode.c:72:
+  [0x41] = Q_KEY_CODE_KP_DECIMAL, /* osx:65 (ANSI_KeypadDecimal) -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */

ERROR: line over 90 characters
#262: FILE: ui/input-keymap-osx-to-qcode.c:73:
+  [0x43] = Q_KEY_CODE_KP_MULTIPLY, /* osx:67 (ANSI_KeypadMultiply) -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */

ERROR: line over 90 characters
#263: FILE: ui/input-keymap-osx-to-qcode.c:74:
+  [0x45] = Q_KEY_CODE_KP_ADD, /* osx:69 (ANSI_KeypadPlus) -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */

ERROR: line over 90 characters
#264: FILE: ui/input-keymap-osx-to-qcode.c:75:
+  [0x47] = Q_KEY_CODE_NUM_LOCK, /* osx:71 (ANSI_KeypadClear) -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */

ERROR: line over 90 characters
#265: FILE: ui/input-keymap-osx-to-qcode.c:76:
+  [0x48] = Q_KEY_CODE_VOLUMEUP, /* osx:72 (VolumeUp) -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */

ERROR: line over 90 characters
#266: FILE: ui/input-keymap-osx-to-qcode.c:77:
+  [0x49] = Q_KEY_CODE_VOLUMEDOWN, /* osx:73 (VolumeDown) -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */

ERROR: line over 90 characters
#267: FILE: ui/input-keymap-osx-to-qcode.c:78:
+  [0x4a] = Q_KEY_CODE_AUDIOMUTE, /* osx:74 (Mute) -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */

ERROR: line over 90 characters
#268: FILE: ui/input-keymap-osx-to-qcode.c:79:
+  [0x4b] = Q_KEY_CODE_KP_DIVIDE, /* osx:75 (ANSI_KeypadDivide) -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */

ERROR: line over 90 characters
#269: FILE: ui/input-keymap-osx-to-qcode.c:80:
+  [0x4c] = Q_KEY_CODE_KP_ENTER, /* osx:76 (ANSI_KeypadEnter) -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */

ERROR: line over 90 characters
#270: FILE: ui/input-keymap-osx-to-qcode.c:81:
+  [0x4e] = Q_KEY_CODE_KP_SUBTRACT, /* osx:78 (ANSI_KeypadMinus) -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */

ERROR: line over 90 characters
#271: FILE: ui/input-keymap-osx-to-qcode.c:82:
+  [0x4f] = Q_KEY_CODE_UNMAPPED, /* osx:79 (F18) -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#272: FILE: ui/input-keymap-osx-to-qcode.c:83:
+  [0x50] = Q_KEY_CODE_UNMAPPED, /* osx:80 (F19) -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#273: FILE: ui/input-keymap-osx-to-qcode.c:84:
+  [0x51] = Q_KEY_CODE_KP_EQUALS, /* osx:81 (ANSI_KeypadEquals) -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */

ERROR: line over 90 characters
#274: FILE: ui/input-keymap-osx-to-qcode.c:85:
+  [0x52] = Q_KEY_CODE_KP_0, /* osx:82 (ANSI_Keypad0) -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */

ERROR: line over 90 characters
#275: FILE: ui/input-keymap-osx-to-qcode.c:86:
+  [0x53] = Q_KEY_CODE_KP_1, /* osx:83 (ANSI_Keypad1) -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */

ERROR: line over 90 characters
#276: FILE: ui/input-keymap-osx-to-qcode.c:87:
+  [0x54] = Q_KEY_CODE_KP_2, /* osx:84 (ANSI_Keypad2) -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */

ERROR: line over 90 characters
#277: FILE: ui/input-keymap-osx-to-qcode.c:88:
+  [0x55] = Q_KEY_CODE_KP_3, /* osx:85 (ANSI_Keypad3) -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */

ERROR: line over 90 characters
#278: FILE: ui/input-keymap-osx-to-qcode.c:89:
+  [0x56] = Q_KEY_CODE_KP_4, /* osx:86 (ANSI_Keypad4) -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */

ERROR: line over 90 characters
#279: FILE: ui/input-keymap-osx-to-qcode.c:90:
+  [0x57] = Q_KEY_CODE_KP_5, /* osx:87 (ANSI_Keypad5) -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */

ERROR: line over 90 characters
#280: FILE: ui/input-keymap-osx-to-qcode.c:91:
+  [0x58] = Q_KEY_CODE_KP_6, /* osx:88 (ANSI_Keypad6) -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */

ERROR: line over 90 characters
#281: FILE: ui/input-keymap-osx-to-qcode.c:92:
+  [0x59] = Q_KEY_CODE_KP_7, /* osx:89 (ANSI_Keypad7) -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */

ERROR: line over 90 characters
#282: FILE: ui/input-keymap-osx-to-qcode.c:93:
+  [0x5a] = Q_KEY_CODE_UNMAPPED, /* osx:90 (F20) -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#283: FILE: ui/input-keymap-osx-to-qcode.c:94:
+  [0x5b] = Q_KEY_CODE_KP_8, /* osx:91 (ANSI_Keypad8) -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */

ERROR: line over 90 characters
#284: FILE: ui/input-keymap-osx-to-qcode.c:95:
+  [0x5c] = Q_KEY_CODE_KP_9, /* osx:92 (ANSI_Keypad9) -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */

ERROR: line over 90 characters
#285: FILE: ui/input-keymap-osx-to-qcode.c:96:
+  [0x5d] = Q_KEY_CODE_YEN, /* osx:93 (JIS_Yen) -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */

ERROR: line over 90 characters
#286: FILE: ui/input-keymap-osx-to-qcode.c:97:
+  [0x5f] = Q_KEY_CODE_UNMAPPED, /* osx:95 (JIS_KeypadComma) -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#287: FILE: ui/input-keymap-osx-to-qcode.c:98:
+  [0x60] = Q_KEY_CODE_F5, /* osx:96 (F5) -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */

ERROR: line over 90 characters
#288: FILE: ui/input-keymap-osx-to-qcode.c:99:
+  [0x61] = Q_KEY_CODE_F6, /* osx:97 (F6) -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */

ERROR: line over 90 characters
#289: FILE: ui/input-keymap-osx-to-qcode.c:100:
+  [0x62] = Q_KEY_CODE_F7, /* osx:98 (F7) -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */

ERROR: line over 90 characters
#290: FILE: ui/input-keymap-osx-to-qcode.c:101:
+  [0x63] = Q_KEY_CODE_F3, /* osx:99 (F3) -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */

ERROR: line over 90 characters
#291: FILE: ui/input-keymap-osx-to-qcode.c:102:
+  [0x64] = Q_KEY_CODE_F8, /* osx:100 (F8) -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */

ERROR: line over 90 characters
#292: FILE: ui/input-keymap-osx-to-qcode.c:103:
+  [0x65] = Q_KEY_CODE_F9, /* osx:101 (F9) -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */

ERROR: line over 90 characters
#293: FILE: ui/input-keymap-osx-to-qcode.c:104:
+  [0x67] = Q_KEY_CODE_F11, /* osx:103 (F11) -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */

ERROR: line over 90 characters
#294: FILE: ui/input-keymap-osx-to-qcode.c:105:
+  [0x68] = Q_KEY_CODE_UNMAPPED, /* osx:104 (JIS_Kana) -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#295: FILE: ui/input-keymap-osx-to-qcode.c:106:
+  [0x69] = Q_KEY_CODE_UNMAPPED, /* osx:105 (F13) -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#296: FILE: ui/input-keymap-osx-to-qcode.c:107:
+  [0x6a] = Q_KEY_CODE_UNMAPPED, /* osx:106 (F16) -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#297: FILE: ui/input-keymap-osx-to-qcode.c:108:
+  [0x6b] = Q_KEY_CODE_UNMAPPED, /* osx:107 (F14) -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#298: FILE: ui/input-keymap-osx-to-qcode.c:109:
+  [0x6d] = Q_KEY_CODE_F10, /* osx:109 (F10) -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */

ERROR: line over 90 characters
#299: FILE: ui/input-keymap-osx-to-qcode.c:110:
+  [0x6e] = Q_KEY_CODE_COMPOSE, /* osx:110 (unnamed) -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */

ERROR: line over 90 characters
#300: FILE: ui/input-keymap-osx-to-qcode.c:111:
+  [0x6f] = Q_KEY_CODE_F12, /* osx:111 (F12) -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */

ERROR: line over 90 characters
#301: FILE: ui/input-keymap-osx-to-qcode.c:112:
+  [0x71] = Q_KEY_CODE_UNMAPPED, /* osx:113 (F15) -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#302: FILE: ui/input-keymap-osx-to-qcode.c:113:
+  [0x72] = Q_KEY_CODE_HELP, /* osx:114 (Help) -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */

ERROR: line over 90 characters
#303: FILE: ui/input-keymap-osx-to-qcode.c:114:
+  [0x73] = Q_KEY_CODE_HOME, /* osx:115 (Home) -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */

ERROR: line over 90 characters
#304: FILE: ui/input-keymap-osx-to-qcode.c:115:
+  [0x74] = Q_KEY_CODE_PGUP, /* osx:116 (PageUp) -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */

ERROR: line over 90 characters
#305: FILE: ui/input-keymap-osx-to-qcode.c:116:
+  [0x75] = Q_KEY_CODE_DELETE, /* osx:117 (ForwardDelete) -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */

ERROR: line over 90 characters
#306: FILE: ui/input-keymap-osx-to-qcode.c:117:
+  [0x76] = Q_KEY_CODE_F4, /* osx:118 (F4) -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */

ERROR: line over 90 characters
#307: FILE: ui/input-keymap-osx-to-qcode.c:118:
+  [0x77] = Q_KEY_CODE_END, /* osx:119 (End) -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */

ERROR: line over 90 characters
#308: FILE: ui/input-keymap-osx-to-qcode.c:119:
+  [0x78] = Q_KEY_CODE_F2, /* osx:120 (F2) -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */

ERROR: line over 90 characters
#309: FILE: ui/input-keymap-osx-to-qcode.c:120:
+  [0x79] = Q_KEY_CODE_PGDN, /* osx:121 (PageDown) -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */

ERROR: line over 90 characters
#310: FILE: ui/input-keymap-osx-to-qcode.c:121:
+  [0x7a] = Q_KEY_CODE_F1, /* osx:122 (F1) -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */

ERROR: line over 90 characters
#311: FILE: ui/input-keymap-osx-to-qcode.c:122:
+  [0x7b] = Q_KEY_CODE_LEFT, /* osx:123 (LeftArrow) -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */

ERROR: line over 90 characters
#312: FILE: ui/input-keymap-osx-to-qcode.c:123:
+  [0x7c] = Q_KEY_CODE_RIGHT, /* osx:124 (RightArrow) -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */

ERROR: line over 90 characters
#313: FILE: ui/input-keymap-osx-to-qcode.c:124:
+  [0x7d] = Q_KEY_CODE_DOWN, /* osx:125 (DownArrow) -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */

ERROR: line over 90 characters
#314: FILE: ui/input-keymap-osx-to-qcode.c:125:
+  [0x7e] = Q_KEY_CODE_UP, /* osx:126 (UpArrow) -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */

ERROR: line over 90 characters
#315: FILE: ui/input-keymap-osx-to-qcode.c:126:
+  [0xff] = Q_KEY_CODE_UNMAPPED, /* osx:255 (unnamed) -> linux:0 (KEY_RESERVED) -> qcode:Q_KEY_CODE_UNMAPPED (unmapped) */

ERROR: line over 90 characters
#317: FILE: ui/input-keymap-osx-to-qcode.c:128:
+const guint qemu_input_map_osx_to_qcode_len = sizeof(qemu_input_map_osx_to_qcode)/sizeof(qemu_input_map_osx_to_qcode[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#317: FILE: ui/input-keymap-osx-to-qcode.c:128:
+const guint qemu_input_map_osx_to_qcode_len = sizeof(qemu_input_map_osx_to_qcode)/sizeof(qemu_input_map_osx_to_qcode[0]);
                                                                                  ^

total: 113 errors, 10 warnings, 292 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 10/12: ui: convert the SDL2 frontend to keycodemapdb...
ERROR: line over 90 characters
#79: FILE: ui/input-keymap-usb-to-qcode.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#81: FILE: ui/input-keymap-usb-to-qcode.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_usb_to_qcode code-map keymaps.csv usb qcode

WARNING: line over 80 characters
#84: FILE: ui/input-keymap-usb-to-qcode.c:8:
+  [0x4] = Q_KEY_CODE_A, /* usb:4 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */

WARNING: line over 80 characters
#85: FILE: ui/input-keymap-usb-to-qcode.c:9:
+  [0x5] = Q_KEY_CODE_B, /* usb:5 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */

WARNING: line over 80 characters
#86: FILE: ui/input-keymap-usb-to-qcode.c:10:
+  [0x6] = Q_KEY_CODE_C, /* usb:6 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */

WARNING: line over 80 characters
#87: FILE: ui/input-keymap-usb-to-qcode.c:11:
+  [0x7] = Q_KEY_CODE_D, /* usb:7 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */

WARNING: line over 80 characters
#88: FILE: ui/input-keymap-usb-to-qcode.c:12:
+  [0x8] = Q_KEY_CODE_E, /* usb:8 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */

WARNING: line over 80 characters
#89: FILE: ui/input-keymap-usb-to-qcode.c:13:
+  [0x9] = Q_KEY_CODE_F, /* usb:9 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */

WARNING: line over 80 characters
#90: FILE: ui/input-keymap-usb-to-qcode.c:14:
+  [0xa] = Q_KEY_CODE_G, /* usb:10 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */

WARNING: line over 80 characters
#91: FILE: ui/input-keymap-usb-to-qcode.c:15:
+  [0xb] = Q_KEY_CODE_H, /* usb:11 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */

WARNING: line over 80 characters
#92: FILE: ui/input-keymap-usb-to-qcode.c:16:
+  [0xc] = Q_KEY_CODE_I, /* usb:12 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */

WARNING: line over 80 characters
#93: FILE: ui/input-keymap-usb-to-qcode.c:17:
+  [0xd] = Q_KEY_CODE_J, /* usb:13 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */

WARNING: line over 80 characters
#94: FILE: ui/input-keymap-usb-to-qcode.c:18:
+  [0xe] = Q_KEY_CODE_K, /* usb:14 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */

WARNING: line over 80 characters
#95: FILE: ui/input-keymap-usb-to-qcode.c:19:
+  [0xf] = Q_KEY_CODE_L, /* usb:15 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */

WARNING: line over 80 characters
#96: FILE: ui/input-keymap-usb-to-qcode.c:20:
+  [0x10] = Q_KEY_CODE_M, /* usb:16 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */

WARNING: line over 80 characters
#97: FILE: ui/input-keymap-usb-to-qcode.c:21:
+  [0x11] = Q_KEY_CODE_N, /* usb:17 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */

WARNING: line over 80 characters
#98: FILE: ui/input-keymap-usb-to-qcode.c:22:
+  [0x12] = Q_KEY_CODE_O, /* usb:18 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */

WARNING: line over 80 characters
#99: FILE: ui/input-keymap-usb-to-qcode.c:23:
+  [0x13] = Q_KEY_CODE_P, /* usb:19 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */

WARNING: line over 80 characters
#100: FILE: ui/input-keymap-usb-to-qcode.c:24:
+  [0x14] = Q_KEY_CODE_Q, /* usb:20 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */

WARNING: line over 80 characters
#101: FILE: ui/input-keymap-usb-to-qcode.c:25:
+  [0x15] = Q_KEY_CODE_R, /* usb:21 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */

WARNING: line over 80 characters
#102: FILE: ui/input-keymap-usb-to-qcode.c:26:
+  [0x16] = Q_KEY_CODE_S, /* usb:22 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */

WARNING: line over 80 characters
#103: FILE: ui/input-keymap-usb-to-qcode.c:27:
+  [0x17] = Q_KEY_CODE_T, /* usb:23 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */

WARNING: line over 80 characters
#104: FILE: ui/input-keymap-usb-to-qcode.c:28:
+  [0x18] = Q_KEY_CODE_U, /* usb:24 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */

WARNING: line over 80 characters
#105: FILE: ui/input-keymap-usb-to-qcode.c:29:
+  [0x19] = Q_KEY_CODE_V, /* usb:25 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */

WARNING: line over 80 characters
#106: FILE: ui/input-keymap-usb-to-qcode.c:30:
+  [0x1a] = Q_KEY_CODE_W, /* usb:26 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */

WARNING: line over 80 characters
#107: FILE: ui/input-keymap-usb-to-qcode.c:31:
+  [0x1b] = Q_KEY_CODE_X, /* usb:27 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */

WARNING: line over 80 characters
#108: FILE: ui/input-keymap-usb-to-qcode.c:32:
+  [0x1c] = Q_KEY_CODE_Y, /* usb:28 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */

WARNING: line over 80 characters
#109: FILE: ui/input-keymap-usb-to-qcode.c:33:
+  [0x1d] = Q_KEY_CODE_Z, /* usb:29 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */

WARNING: line over 80 characters
#110: FILE: ui/input-keymap-usb-to-qcode.c:34:
+  [0x1e] = Q_KEY_CODE_1, /* usb:30 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */

WARNING: line over 80 characters
#111: FILE: ui/input-keymap-usb-to-qcode.c:35:
+  [0x1f] = Q_KEY_CODE_2, /* usb:31 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */

WARNING: line over 80 characters
#112: FILE: ui/input-keymap-usb-to-qcode.c:36:
+  [0x20] = Q_KEY_CODE_3, /* usb:32 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */

WARNING: line over 80 characters
#113: FILE: ui/input-keymap-usb-to-qcode.c:37:
+  [0x21] = Q_KEY_CODE_4, /* usb:33 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */

WARNING: line over 80 characters
#114: FILE: ui/input-keymap-usb-to-qcode.c:38:
+  [0x22] = Q_KEY_CODE_5, /* usb:34 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */

WARNING: line over 80 characters
#115: FILE: ui/input-keymap-usb-to-qcode.c:39:
+  [0x23] = Q_KEY_CODE_6, /* usb:35 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */

WARNING: line over 80 characters
#116: FILE: ui/input-keymap-usb-to-qcode.c:40:
+  [0x24] = Q_KEY_CODE_7, /* usb:36 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */

WARNING: line over 80 characters
#117: FILE: ui/input-keymap-usb-to-qcode.c:41:
+  [0x25] = Q_KEY_CODE_8, /* usb:37 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */

WARNING: line over 80 characters
#118: FILE: ui/input-keymap-usb-to-qcode.c:42:
+  [0x26] = Q_KEY_CODE_9, /* usb:38 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */

WARNING: line over 80 characters
#119: FILE: ui/input-keymap-usb-to-qcode.c:43:
+  [0x27] = Q_KEY_CODE_0, /* usb:39 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */

ERROR: line over 90 characters
#120: FILE: ui/input-keymap-usb-to-qcode.c:44:
+  [0x28] = Q_KEY_CODE_RET, /* usb:40 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */

WARNING: line over 80 characters
#121: FILE: ui/input-keymap-usb-to-qcode.c:45:
+  [0x29] = Q_KEY_CODE_ESC, /* usb:41 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */

ERROR: line over 90 characters
#122: FILE: ui/input-keymap-usb-to-qcode.c:46:
+  [0x2a] = Q_KEY_CODE_BACKSPACE, /* usb:42 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */

ERROR: line over 90 characters
#123: FILE: ui/input-keymap-usb-to-qcode.c:47:
+  [0x2b] = Q_KEY_CODE_TAB, /* usb:43 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */

ERROR: line over 90 characters
#124: FILE: ui/input-keymap-usb-to-qcode.c:48:
+  [0x2c] = Q_KEY_CODE_SPC, /* usb:44 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */

ERROR: line over 90 characters
#125: FILE: ui/input-keymap-usb-to-qcode.c:49:
+  [0x2d] = Q_KEY_CODE_MINUS, /* usb:45 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */

ERROR: line over 90 characters
#126: FILE: ui/input-keymap-usb-to-qcode.c:50:
+  [0x2e] = Q_KEY_CODE_EQUAL, /* usb:46 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */

ERROR: line over 90 characters
#127: FILE: ui/input-keymap-usb-to-qcode.c:51:
+  [0x2f] = Q_KEY_CODE_BRACKET_LEFT, /* usb:47 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */

ERROR: line over 90 characters
#128: FILE: ui/input-keymap-usb-to-qcode.c:52:
+  [0x30] = Q_KEY_CODE_BRACKET_RIGHT, /* usb:48 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */

ERROR: line over 90 characters
#129: FILE: ui/input-keymap-usb-to-qcode.c:53:
+  [0x31] = Q_KEY_CODE_BACKSLASH, /* usb:49 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

ERROR: line over 90 characters
#130: FILE: ui/input-keymap-usb-to-qcode.c:54:
+  [0x32] = Q_KEY_CODE_BACKSLASH, /* usb:50 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

ERROR: line over 90 characters
#131: FILE: ui/input-keymap-usb-to-qcode.c:55:
+  [0x33] = Q_KEY_CODE_SEMICOLON, /* usb:51 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */

ERROR: line over 90 characters
#132: FILE: ui/input-keymap-usb-to-qcode.c:56:
+  [0x34] = Q_KEY_CODE_APOSTROPHE, /* usb:52 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */

ERROR: line over 90 characters
#133: FILE: ui/input-keymap-usb-to-qcode.c:57:
+  [0x35] = Q_KEY_CODE_GRAVE_ACCENT, /* usb:53 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */

ERROR: line over 90 characters
#134: FILE: ui/input-keymap-usb-to-qcode.c:58:
+  [0x36] = Q_KEY_CODE_COMMA, /* usb:54 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */

ERROR: line over 90 characters
#135: FILE: ui/input-keymap-usb-to-qcode.c:59:
+  [0x37] = Q_KEY_CODE_DOT, /* usb:55 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */

ERROR: line over 90 characters
#136: FILE: ui/input-keymap-usb-to-qcode.c:60:
+  [0x38] = Q_KEY_CODE_SLASH, /* usb:56 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */

ERROR: line over 90 characters
#137: FILE: ui/input-keymap-usb-to-qcode.c:61:
+  [0x39] = Q_KEY_CODE_CAPS_LOCK, /* usb:57 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */

WARNING: line over 80 characters
#138: FILE: ui/input-keymap-usb-to-qcode.c:62:
+  [0x3a] = Q_KEY_CODE_F1, /* usb:58 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */

WARNING: line over 80 characters
#139: FILE: ui/input-keymap-usb-to-qcode.c:63:
+  [0x3b] = Q_KEY_CODE_F2, /* usb:59 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */

WARNING: line over 80 characters
#140: FILE: ui/input-keymap-usb-to-qcode.c:64:
+  [0x3c] = Q_KEY_CODE_F3, /* usb:60 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */

WARNING: line over 80 characters
#141: FILE: ui/input-keymap-usb-to-qcode.c:65:
+  [0x3d] = Q_KEY_CODE_F4, /* usb:61 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */

WARNING: line over 80 characters
#142: FILE: ui/input-keymap-usb-to-qcode.c:66:
+  [0x3e] = Q_KEY_CODE_F5, /* usb:62 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */

WARNING: line over 80 characters
#143: FILE: ui/input-keymap-usb-to-qcode.c:67:
+  [0x3f] = Q_KEY_CODE_F6, /* usb:63 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */

WARNING: line over 80 characters
#144: FILE: ui/input-keymap-usb-to-qcode.c:68:
+  [0x40] = Q_KEY_CODE_F7, /* usb:64 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */

WARNING: line over 80 characters
#145: FILE: ui/input-keymap-usb-to-qcode.c:69:
+  [0x41] = Q_KEY_CODE_F8, /* usb:65 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */

WARNING: line over 80 characters
#146: FILE: ui/input-keymap-usb-to-qcode.c:70:
+  [0x42] = Q_KEY_CODE_F9, /* usb:66 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */

ERROR: line over 90 characters
#147: FILE: ui/input-keymap-usb-to-qcode.c:71:
+  [0x43] = Q_KEY_CODE_F10, /* usb:67 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */

ERROR: line over 90 characters
#148: FILE: ui/input-keymap-usb-to-qcode.c:72:
+  [0x44] = Q_KEY_CODE_F11, /* usb:68 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */

ERROR: line over 90 characters
#149: FILE: ui/input-keymap-usb-to-qcode.c:73:
+  [0x45] = Q_KEY_CODE_F12, /* usb:69 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */

ERROR: line over 90 characters
#150: FILE: ui/input-keymap-usb-to-qcode.c:74:
+  [0x46] = Q_KEY_CODE_SYSRQ, /* usb:70 -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */

ERROR: line over 90 characters
#151: FILE: ui/input-keymap-usb-to-qcode.c:75:
+  [0x47] = Q_KEY_CODE_SCROLL_LOCK, /* usb:71 -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */

ERROR: line over 90 characters
#152: FILE: ui/input-keymap-usb-to-qcode.c:76:
+  [0x48] = Q_KEY_CODE_PAUSE, /* usb:72 -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */

ERROR: line over 90 characters
#153: FILE: ui/input-keymap-usb-to-qcode.c:77:
+  [0x49] = Q_KEY_CODE_INSERT, /* usb:73 -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */

ERROR: line over 90 characters
#154: FILE: ui/input-keymap-usb-to-qcode.c:78:
+  [0x4a] = Q_KEY_CODE_HOME, /* usb:74 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */

ERROR: line over 90 characters
#155: FILE: ui/input-keymap-usb-to-qcode.c:79:
+  [0x4b] = Q_KEY_CODE_PGUP, /* usb:75 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */

ERROR: line over 90 characters
#156: FILE: ui/input-keymap-usb-to-qcode.c:80:
+  [0x4c] = Q_KEY_CODE_DELETE, /* usb:76 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */

ERROR: line over 90 characters
#157: FILE: ui/input-keymap-usb-to-qcode.c:81:
+  [0x4d] = Q_KEY_CODE_END, /* usb:77 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */

ERROR: line over 90 characters
#158: FILE: ui/input-keymap-usb-to-qcode.c:82:
+  [0x4e] = Q_KEY_CODE_PGDN, /* usb:78 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */

ERROR: line over 90 characters
#159: FILE: ui/input-keymap-usb-to-qcode.c:83:
+  [0x4f] = Q_KEY_CODE_RIGHT, /* usb:79 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */

ERROR: line over 90 characters
#160: FILE: ui/input-keymap-usb-to-qcode.c:84:
+  [0x50] = Q_KEY_CODE_LEFT, /* usb:80 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */

ERROR: line over 90 characters
#161: FILE: ui/input-keymap-usb-to-qcode.c:85:
+  [0x51] = Q_KEY_CODE_DOWN, /* usb:81 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */

WARNING: line over 80 characters
#162: FILE: ui/input-keymap-usb-to-qcode.c:86:
+  [0x52] = Q_KEY_CODE_UP, /* usb:82 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */

ERROR: line over 90 characters
#163: FILE: ui/input-keymap-usb-to-qcode.c:87:
+  [0x53] = Q_KEY_CODE_NUM_LOCK, /* usb:83 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */

ERROR: line over 90 characters
#164: FILE: ui/input-keymap-usb-to-qcode.c:88:
+  [0x54] = Q_KEY_CODE_KP_DIVIDE, /* usb:84 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */

ERROR: line over 90 characters
#165: FILE: ui/input-keymap-usb-to-qcode.c:89:
+  [0x55] = Q_KEY_CODE_KP_MULTIPLY, /* usb:85 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */

ERROR: line over 90 characters
#166: FILE: ui/input-keymap-usb-to-qcode.c:90:
+  [0x56] = Q_KEY_CODE_KP_SUBTRACT, /* usb:86 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */

ERROR: line over 90 characters
#167: FILE: ui/input-keymap-usb-to-qcode.c:91:
+  [0x57] = Q_KEY_CODE_KP_ADD, /* usb:87 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */

ERROR: line over 90 characters
#168: FILE: ui/input-keymap-usb-to-qcode.c:92:
+  [0x58] = Q_KEY_CODE_KP_ENTER, /* usb:88 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */

ERROR: line over 90 characters
#169: FILE: ui/input-keymap-usb-to-qcode.c:93:
+  [0x59] = Q_KEY_CODE_KP_1, /* usb:89 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */

ERROR: line over 90 characters
#170: FILE: ui/input-keymap-usb-to-qcode.c:94:
+  [0x5a] = Q_KEY_CODE_KP_2, /* usb:90 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */

ERROR: line over 90 characters
#171: FILE: ui/input-keymap-usb-to-qcode.c:95:
+  [0x5b] = Q_KEY_CODE_KP_3, /* usb:91 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */

ERROR: line over 90 characters
#172: FILE: ui/input-keymap-usb-to-qcode.c:96:
+  [0x5c] = Q_KEY_CODE_KP_4, /* usb:92 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */

ERROR: line over 90 characters
#173: FILE: ui/input-keymap-usb-to-qcode.c:97:
+  [0x5d] = Q_KEY_CODE_KP_5, /* usb:93 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */

ERROR: line over 90 characters
#174: FILE: ui/input-keymap-usb-to-qcode.c:98:
+  [0x5e] = Q_KEY_CODE_KP_6, /* usb:94 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */

ERROR: line over 90 characters
#175: FILE: ui/input-keymap-usb-to-qcode.c:99:
+  [0x5f] = Q_KEY_CODE_KP_7, /* usb:95 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */

ERROR: line over 90 characters
#176: FILE: ui/input-keymap-usb-to-qcode.c:100:
+  [0x60] = Q_KEY_CODE_KP_8, /* usb:96 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */

ERROR: line over 90 characters
#177: FILE: ui/input-keymap-usb-to-qcode.c:101:
+  [0x61] = Q_KEY_CODE_KP_9, /* usb:97 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */

ERROR: line over 90 characters
#178: FILE: ui/input-keymap-usb-to-qcode.c:102:
+  [0x62] = Q_KEY_CODE_KP_0, /* usb:98 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */

ERROR: line over 90 characters
#179: FILE: ui/input-keymap-usb-to-qcode.c:103:
+  [0x63] = Q_KEY_CODE_KP_DECIMAL, /* usb:99 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */

ERROR: line over 90 characters
#180: FILE: ui/input-keymap-usb-to-qcode.c:104:
+  [0x64] = Q_KEY_CODE_LESS, /* usb:100 -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */

ERROR: line over 90 characters
#181: FILE: ui/input-keymap-usb-to-qcode.c:105:
+  [0x65] = Q_KEY_CODE_COMPOSE, /* usb:101 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */

ERROR: line over 90 characters
#182: FILE: ui/input-keymap-usb-to-qcode.c:106:
+  [0x66] = Q_KEY_CODE_POWER, /* usb:102 -> linux:116 (KEY_POWER) -> qcode:Q_KEY_CODE_POWER (power) */

ERROR: line over 90 characters
#183: FILE: ui/input-keymap-usb-to-qcode.c:107:
+  [0x67] = Q_KEY_CODE_KP_EQUALS, /* usb:103 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */

ERROR: line over 90 characters
#184: FILE: ui/input-keymap-usb-to-qcode.c:108:
+  [0x68] = Q_KEY_CODE_UNMAPPED, /* usb:104 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#185: FILE: ui/input-keymap-usb-to-qcode.c:109:
+  [0x69] = Q_KEY_CODE_UNMAPPED, /* usb:105 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#186: FILE: ui/input-keymap-usb-to-qcode.c:110:
+  [0x6a] = Q_KEY_CODE_UNMAPPED, /* usb:106 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#187: FILE: ui/input-keymap-usb-to-qcode.c:111:
+  [0x6b] = Q_KEY_CODE_UNMAPPED, /* usb:107 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#188: FILE: ui/input-keymap-usb-to-qcode.c:112:
+  [0x6c] = Q_KEY_CODE_UNMAPPED, /* usb:108 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#189: FILE: ui/input-keymap-usb-to-qcode.c:113:
+  [0x6d] = Q_KEY_CODE_UNMAPPED, /* usb:109 -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#190: FILE: ui/input-keymap-usb-to-qcode.c:114:
+  [0x6e] = Q_KEY_CODE_UNMAPPED, /* usb:110 -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#191: FILE: ui/input-keymap-usb-to-qcode.c:115:
+  [0x6f] = Q_KEY_CODE_UNMAPPED, /* usb:111 -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#192: FILE: ui/input-keymap-usb-to-qcode.c:116:
+  [0x70] = Q_KEY_CODE_UNMAPPED, /* usb:112 -> linux:191 (KEY_F21) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#193: FILE: ui/input-keymap-usb-to-qcode.c:117:
+  [0x71] = Q_KEY_CODE_UNMAPPED, /* usb:113 -> linux:192 (KEY_F22) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#194: FILE: ui/input-keymap-usb-to-qcode.c:118:
+  [0x72] = Q_KEY_CODE_UNMAPPED, /* usb:114 -> linux:193 (KEY_F23) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#195: FILE: ui/input-keymap-usb-to-qcode.c:119:
+  [0x73] = Q_KEY_CODE_UNMAPPED, /* usb:115 -> linux:194 (KEY_F24) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#196: FILE: ui/input-keymap-usb-to-qcode.c:120:
+  [0x74] = Q_KEY_CODE_OPEN, /* usb:116 -> linux:134 (KEY_OPEN) -> qcode:Q_KEY_CODE_OPEN (open) */

ERROR: line over 90 characters
#197: FILE: ui/input-keymap-usb-to-qcode.c:121:
+  [0x75] = Q_KEY_CODE_HELP, /* usb:117 -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */

ERROR: line over 90 characters
#198: FILE: ui/input-keymap-usb-to-qcode.c:122:
+  [0x76] = Q_KEY_CODE_MENU, /* usb:118 -> linux:139 (KEY_MENU) -> qcode:Q_KEY_CODE_MENU (menu) */

ERROR: line over 90 characters
#199: FILE: ui/input-keymap-usb-to-qcode.c:123:
+  [0x77] = Q_KEY_CODE_FRONT, /* usb:119 -> linux:132 (KEY_FRONT) -> qcode:Q_KEY_CODE_FRONT (front) */

ERROR: line over 90 characters
#200: FILE: ui/input-keymap-usb-to-qcode.c:124:
+  [0x78] = Q_KEY_CODE_STOP, /* usb:120 -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */

ERROR: line over 90 characters
#201: FILE: ui/input-keymap-usb-to-qcode.c:125:
+  [0x79] = Q_KEY_CODE_AGAIN, /* usb:121 -> linux:129 (KEY_AGAIN) -> qcode:Q_KEY_CODE_AGAIN (again) */

ERROR: line over 90 characters
#202: FILE: ui/input-keymap-usb-to-qcode.c:126:
+  [0x7a] = Q_KEY_CODE_UNDO, /* usb:122 -> linux:131 (KEY_UNDO) -> qcode:Q_KEY_CODE_UNDO (undo) */

ERROR: line over 90 characters
#203: FILE: ui/input-keymap-usb-to-qcode.c:127:
+  [0x7b] = Q_KEY_CODE_CUT, /* usb:123 -> linux:137 (KEY_CUT) -> qcode:Q_KEY_CODE_CUT (cut) */

ERROR: line over 90 characters
#204: FILE: ui/input-keymap-usb-to-qcode.c:128:
+  [0x7c] = Q_KEY_CODE_COPY, /* usb:124 -> linux:133 (KEY_COPY) -> qcode:Q_KEY_CODE_COPY (copy) */

ERROR: line over 90 characters
#205: FILE: ui/input-keymap-usb-to-qcode.c:129:
+  [0x7d] = Q_KEY_CODE_PASTE, /* usb:125 -> linux:135 (KEY_PASTE) -> qcode:Q_KEY_CODE_PASTE (paste) */

ERROR: line over 90 characters
#206: FILE: ui/input-keymap-usb-to-qcode.c:130:
+  [0x7e] = Q_KEY_CODE_FIND, /* usb:126 -> linux:136 (KEY_FIND) -> qcode:Q_KEY_CODE_FIND (find) */

ERROR: line over 90 characters
#207: FILE: ui/input-keymap-usb-to-qcode.c:131:
+  [0x7f] = Q_KEY_CODE_AUDIOMUTE, /* usb:127 -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */

ERROR: line over 90 characters
#208: FILE: ui/input-keymap-usb-to-qcode.c:132:
+  [0x80] = Q_KEY_CODE_VOLUMEUP, /* usb:128 -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */

ERROR: line over 90 characters
#209: FILE: ui/input-keymap-usb-to-qcode.c:133:
+  [0x81] = Q_KEY_CODE_VOLUMEDOWN, /* usb:129 -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */

ERROR: line over 90 characters
#210: FILE: ui/input-keymap-usb-to-qcode.c:134:
+  [0x85] = Q_KEY_CODE_KP_COMMA, /* usb:133 -> linux:121 (KEY_KPCOMMA) -> qcode:Q_KEY_CODE_KP_COMMA (kp_comma) */

WARNING: line over 80 characters
#211: FILE: ui/input-keymap-usb-to-qcode.c:135:
+  [0x87] = Q_KEY_CODE_RO, /* usb:135 -> linux:89 (KEY_RO) -> qcode:Q_KEY_CODE_RO (ro) */

ERROR: line over 90 characters
#212: FILE: ui/input-keymap-usb-to-qcode.c:136:
+  [0x88] = Q_KEY_CODE_UNMAPPED, /* usb:136 -> linux:93 (KEY_KATAKANAHIRAGANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#213: FILE: ui/input-keymap-usb-to-qcode.c:137:
+  [0x89] = Q_KEY_CODE_YEN, /* usb:137 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */

ERROR: line over 90 characters
#214: FILE: ui/input-keymap-usb-to-qcode.c:138:
+  [0x8a] = Q_KEY_CODE_HENKAN, /* usb:138 -> linux:92 (KEY_HENKAN) -> qcode:Q_KEY_CODE_HENKAN (henkan) */

ERROR: line over 90 characters
#215: FILE: ui/input-keymap-usb-to-qcode.c:139:
+  [0x8b] = Q_KEY_CODE_UNMAPPED, /* usb:139 -> linux:94 (KEY_MUHENKAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#216: FILE: ui/input-keymap-usb-to-qcode.c:140:
+  [0x8c] = Q_KEY_CODE_UNMAPPED, /* usb:140 -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#217: FILE: ui/input-keymap-usb-to-qcode.c:141:
+  [0x90] = Q_KEY_CODE_UNMAPPED, /* usb:144 -> linux:122 (KEY_HANGEUL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#218: FILE: ui/input-keymap-usb-to-qcode.c:142:
+  [0x91] = Q_KEY_CODE_UNMAPPED, /* usb:145 -> linux:123 (KEY_HANJA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#219: FILE: ui/input-keymap-usb-to-qcode.c:143:
+  [0x92] = Q_KEY_CODE_UNMAPPED, /* usb:146 -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#220: FILE: ui/input-keymap-usb-to-qcode.c:144:
+  [0x93] = Q_KEY_CODE_HIRAGANA, /* usb:147 -> linux:91 (KEY_HIRAGANA) -> qcode:Q_KEY_CODE_HIRAGANA (hiragana) */

ERROR: line over 90 characters
#221: FILE: ui/input-keymap-usb-to-qcode.c:145:
+  [0x94] = Q_KEY_CODE_UNMAPPED, /* usb:148 -> linux:85 (KEY_ZENKAKUHANKAKU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#222: FILE: ui/input-keymap-usb-to-qcode.c:146:
+  [0xb6] = Q_KEY_CODE_UNMAPPED, /* usb:182 -> linux:179 (KEY_KPLEFTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#223: FILE: ui/input-keymap-usb-to-qcode.c:147:
+  [0xb7] = Q_KEY_CODE_UNMAPPED, /* usb:183 -> linux:180 (KEY_KPRIGHTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#224: FILE: ui/input-keymap-usb-to-qcode.c:148:
+  [0xe0] = Q_KEY_CODE_CTRL, /* usb:224 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */

ERROR: line over 90 characters
#225: FILE: ui/input-keymap-usb-to-qcode.c:149:
+  [0xe1] = Q_KEY_CODE_SHIFT, /* usb:225 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */

ERROR: line over 90 characters
#226: FILE: ui/input-keymap-usb-to-qcode.c:150:
+  [0xe2] = Q_KEY_CODE_ALT, /* usb:226 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */

ERROR: line over 90 characters
#227: FILE: ui/input-keymap-usb-to-qcode.c:151:
+  [0xe3] = Q_KEY_CODE_META_L, /* usb:227 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */

ERROR: line over 90 characters
#228: FILE: ui/input-keymap-usb-to-qcode.c:152:
+  [0xe4] = Q_KEY_CODE_CTRL_R, /* usb:228 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */

ERROR: line over 90 characters
#229: FILE: ui/input-keymap-usb-to-qcode.c:153:
+  [0xe5] = Q_KEY_CODE_SHIFT_R, /* usb:229 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */

ERROR: line over 90 characters
#230: FILE: ui/input-keymap-usb-to-qcode.c:154:
+  [0xe6] = Q_KEY_CODE_ALT_R, /* usb:230 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */

ERROR: line over 90 characters
#231: FILE: ui/input-keymap-usb-to-qcode.c:155:
+  [0xe7] = Q_KEY_CODE_META_R, /* usb:231 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */

ERROR: line over 90 characters
#232: FILE: ui/input-keymap-usb-to-qcode.c:156:
+  [0xe8] = Q_KEY_CODE_AUDIOPLAY, /* usb:232 -> linux:164 (KEY_PLAYPAUSE) -> qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) */

ERROR: line over 90 characters
#233: FILE: ui/input-keymap-usb-to-qcode.c:157:
+  [0xe9] = Q_KEY_CODE_AUDIOSTOP, /* usb:233 -> linux:166 (KEY_STOPCD) -> qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) */

ERROR: line over 90 characters
#234: FILE: ui/input-keymap-usb-to-qcode.c:158:
+  [0xea] = Q_KEY_CODE_AUDIOPREV, /* usb:234 -> linux:165 (KEY_PREVIOUSSONG) -> qcode:Q_KEY_CODE_AUDIOPREV (audioprev) */

ERROR: line over 90 characters
#235: FILE: ui/input-keymap-usb-to-qcode.c:159:
+  [0xeb] = Q_KEY_CODE_AUDIONEXT, /* usb:235 -> linux:163 (KEY_NEXTSONG) -> qcode:Q_KEY_CODE_AUDIONEXT (audionext) */

ERROR: line over 90 characters
#236: FILE: ui/input-keymap-usb-to-qcode.c:160:
+  [0xec] = Q_KEY_CODE_UNMAPPED, /* usb:236 -> linux:161 (KEY_EJECTCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#237: FILE: ui/input-keymap-usb-to-qcode.c:161:
+  [0xed] = Q_KEY_CODE_VOLUMEUP, /* usb:237 -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */

ERROR: line over 90 characters
#238: FILE: ui/input-keymap-usb-to-qcode.c:162:
+  [0xee] = Q_KEY_CODE_VOLUMEDOWN, /* usb:238 -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */

ERROR: line over 90 characters
#239: FILE: ui/input-keymap-usb-to-qcode.c:163:
+  [0xef] = Q_KEY_CODE_AUDIOMUTE, /* usb:239 -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */

ERROR: line over 90 characters
#240: FILE: ui/input-keymap-usb-to-qcode.c:164:
+  [0xf0] = Q_KEY_CODE_UNMAPPED, /* usb:240 -> linux:150 (KEY_WWW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#241: FILE: ui/input-keymap-usb-to-qcode.c:165:
+  [0xf1] = Q_KEY_CODE_AC_BACK, /* usb:241 -> linux:158 (KEY_BACK) -> qcode:Q_KEY_CODE_AC_BACK (ac_back) */

ERROR: line over 90 characters
#242: FILE: ui/input-keymap-usb-to-qcode.c:166:
+  [0xf2] = Q_KEY_CODE_AC_FORWARD, /* usb:242 -> linux:159 (KEY_FORWARD) -> qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) */

ERROR: line over 90 characters
#243: FILE: ui/input-keymap-usb-to-qcode.c:167:
+  [0xf3] = Q_KEY_CODE_STOP, /* usb:243 -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */

ERROR: line over 90 characters
#244: FILE: ui/input-keymap-usb-to-qcode.c:168:
+  [0xf4] = Q_KEY_CODE_FIND, /* usb:244 -> linux:136 (KEY_FIND) -> qcode:Q_KEY_CODE_FIND (find) */

ERROR: line over 90 characters
#245: FILE: ui/input-keymap-usb-to-qcode.c:169:
+  [0xf5] = Q_KEY_CODE_UNMAPPED, /* usb:245 -> linux:177 (KEY_SCROLLUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#246: FILE: ui/input-keymap-usb-to-qcode.c:170:
+  [0xf6] = Q_KEY_CODE_UNMAPPED, /* usb:246 -> linux:178 (KEY_SCROLLDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#247: FILE: ui/input-keymap-usb-to-qcode.c:171:
+  [0xf7] = Q_KEY_CODE_UNMAPPED, /* usb:247 -> linux:176 (KEY_EDIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#248: FILE: ui/input-keymap-usb-to-qcode.c:172:
+  [0xf8] = Q_KEY_CODE_SLEEP, /* usb:248 -> linux:142 (KEY_SLEEP) -> qcode:Q_KEY_CODE_SLEEP (sleep) */

ERROR: line over 90 characters
#249: FILE: ui/input-keymap-usb-to-qcode.c:173:
+  [0xf9] = Q_KEY_CODE_UNMAPPED, /* usb:249 -> linux:152 (KEY_SCREENLOCK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#250: FILE: ui/input-keymap-usb-to-qcode.c:174:
+  [0xfa] = Q_KEY_CODE_AC_REFRESH, /* usb:250 -> linux:173 (KEY_REFRESH) -> qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) */

ERROR: line over 90 characters
#251: FILE: ui/input-keymap-usb-to-qcode.c:175:
+  [0xfb] = Q_KEY_CODE_CALCULATOR, /* usb:251 -> linux:140 (KEY_CALC) -> qcode:Q_KEY_CODE_CALCULATOR (calculator) */

ERROR: line over 90 characters
#253: FILE: ui/input-keymap-usb-to-qcode.c:177:
+const guint qemu_input_map_usb_to_qcode_len = sizeof(qemu_input_map_usb_to_qcode)/sizeof(qemu_input_map_usb_to_qcode[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#253: FILE: ui/input-keymap-usb-to-qcode.c:177:
+const guint qemu_input_map_usb_to_qcode_len = sizeof(qemu_input_map_usb_to_qcode)/sizeof(qemu_input_map_usb_to_qcode[0]);
                                                                                  ^

total: 124 errors, 48 warnings, 235 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 11/12: ui: convert GTK and SDL1 frontends to keycodemapdb...
ERROR: line over 90 characters
#423: FILE: ui/input-keymap-atset1-to-qcode.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#425: FILE: ui/input-keymap-atset1-to-qcode.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_atset1_to_qcode code-map keymaps.csv atset1 qcode

ERROR: line over 90 characters
#428: FILE: ui/input-keymap-atset1-to-qcode.c:8:
+  [0x1] = Q_KEY_CODE_ESC, /* atset1:1 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */

WARNING: line over 80 characters
#429: FILE: ui/input-keymap-atset1-to-qcode.c:9:
+  [0x2] = Q_KEY_CODE_1, /* atset1:2 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */

WARNING: line over 80 characters
#430: FILE: ui/input-keymap-atset1-to-qcode.c:10:
+  [0x3] = Q_KEY_CODE_2, /* atset1:3 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */

WARNING: line over 80 characters
#431: FILE: ui/input-keymap-atset1-to-qcode.c:11:
+  [0x4] = Q_KEY_CODE_3, /* atset1:4 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */

WARNING: line over 80 characters
#432: FILE: ui/input-keymap-atset1-to-qcode.c:12:
+  [0x5] = Q_KEY_CODE_4, /* atset1:5 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */

WARNING: line over 80 characters
#433: FILE: ui/input-keymap-atset1-to-qcode.c:13:
+  [0x6] = Q_KEY_CODE_5, /* atset1:6 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */

WARNING: line over 80 characters
#434: FILE: ui/input-keymap-atset1-to-qcode.c:14:
+  [0x7] = Q_KEY_CODE_6, /* atset1:7 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */

WARNING: line over 80 characters
#435: FILE: ui/input-keymap-atset1-to-qcode.c:15:
+  [0x8] = Q_KEY_CODE_7, /* atset1:8 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */

WARNING: line over 80 characters
#436: FILE: ui/input-keymap-atset1-to-qcode.c:16:
+  [0x9] = Q_KEY_CODE_8, /* atset1:9 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */

WARNING: line over 80 characters
#437: FILE: ui/input-keymap-atset1-to-qcode.c:17:
+  [0xa] = Q_KEY_CODE_9, /* atset1:10 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */

WARNING: line over 80 characters
#438: FILE: ui/input-keymap-atset1-to-qcode.c:18:
+  [0xb] = Q_KEY_CODE_0, /* atset1:11 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */

ERROR: line over 90 characters
#439: FILE: ui/input-keymap-atset1-to-qcode.c:19:
+  [0xc] = Q_KEY_CODE_MINUS, /* atset1:12 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */

ERROR: line over 90 characters
#440: FILE: ui/input-keymap-atset1-to-qcode.c:20:
+  [0xd] = Q_KEY_CODE_EQUAL, /* atset1:13 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */

ERROR: line over 90 characters
#441: FILE: ui/input-keymap-atset1-to-qcode.c:21:
+  [0xe] = Q_KEY_CODE_BACKSPACE, /* atset1:14 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */

ERROR: line over 90 characters
#442: FILE: ui/input-keymap-atset1-to-qcode.c:22:
+  [0xf] = Q_KEY_CODE_TAB, /* atset1:15 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */

WARNING: line over 80 characters
#443: FILE: ui/input-keymap-atset1-to-qcode.c:23:
+  [0x10] = Q_KEY_CODE_Q, /* atset1:16 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */

WARNING: line over 80 characters
#444: FILE: ui/input-keymap-atset1-to-qcode.c:24:
+  [0x11] = Q_KEY_CODE_W, /* atset1:17 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */

WARNING: line over 80 characters
#445: FILE: ui/input-keymap-atset1-to-qcode.c:25:
+  [0x12] = Q_KEY_CODE_E, /* atset1:18 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */

WARNING: line over 80 characters
#446: FILE: ui/input-keymap-atset1-to-qcode.c:26:
+  [0x13] = Q_KEY_CODE_R, /* atset1:19 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */

WARNING: line over 80 characters
#447: FILE: ui/input-keymap-atset1-to-qcode.c:27:
+  [0x14] = Q_KEY_CODE_T, /* atset1:20 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */

WARNING: line over 80 characters
#448: FILE: ui/input-keymap-atset1-to-qcode.c:28:
+  [0x15] = Q_KEY_CODE_Y, /* atset1:21 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */

WARNING: line over 80 characters
#449: FILE: ui/input-keymap-atset1-to-qcode.c:29:
+  [0x16] = Q_KEY_CODE_U, /* atset1:22 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */

WARNING: line over 80 characters
#450: FILE: ui/input-keymap-atset1-to-qcode.c:30:
+  [0x17] = Q_KEY_CODE_I, /* atset1:23 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */

WARNING: line over 80 characters
#451: FILE: ui/input-keymap-atset1-to-qcode.c:31:
+  [0x18] = Q_KEY_CODE_O, /* atset1:24 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */

WARNING: line over 80 characters
#452: FILE: ui/input-keymap-atset1-to-qcode.c:32:
+  [0x19] = Q_KEY_CODE_P, /* atset1:25 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */

ERROR: line over 90 characters
#453: FILE: ui/input-keymap-atset1-to-qcode.c:33:
+  [0x1a] = Q_KEY_CODE_BRACKET_LEFT, /* atset1:26 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */

ERROR: line over 90 characters
#454: FILE: ui/input-keymap-atset1-to-qcode.c:34:
+  [0x1b] = Q_KEY_CODE_BRACKET_RIGHT, /* atset1:27 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */

ERROR: line over 90 characters
#455: FILE: ui/input-keymap-atset1-to-qcode.c:35:
+  [0x1c] = Q_KEY_CODE_RET, /* atset1:28 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */

ERROR: line over 90 characters
#456: FILE: ui/input-keymap-atset1-to-qcode.c:36:
+  [0x1d] = Q_KEY_CODE_CTRL, /* atset1:29 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */

WARNING: line over 80 characters
#457: FILE: ui/input-keymap-atset1-to-qcode.c:37:
+  [0x1e] = Q_KEY_CODE_A, /* atset1:30 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */

WARNING: line over 80 characters
#458: FILE: ui/input-keymap-atset1-to-qcode.c:38:
+  [0x1f] = Q_KEY_CODE_S, /* atset1:31 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */

WARNING: line over 80 characters
#459: FILE: ui/input-keymap-atset1-to-qcode.c:39:
+  [0x20] = Q_KEY_CODE_D, /* atset1:32 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */

WARNING: line over 80 characters
#460: FILE: ui/input-keymap-atset1-to-qcode.c:40:
+  [0x21] = Q_KEY_CODE_F, /* atset1:33 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */

WARNING: line over 80 characters
#461: FILE: ui/input-keymap-atset1-to-qcode.c:41:
+  [0x22] = Q_KEY_CODE_G, /* atset1:34 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */

WARNING: line over 80 characters
#462: FILE: ui/input-keymap-atset1-to-qcode.c:42:
+  [0x23] = Q_KEY_CODE_H, /* atset1:35 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */

WARNING: line over 80 characters
#463: FILE: ui/input-keymap-atset1-to-qcode.c:43:
+  [0x24] = Q_KEY_CODE_J, /* atset1:36 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */

WARNING: line over 80 characters
#464: FILE: ui/input-keymap-atset1-to-qcode.c:44:
+  [0x25] = Q_KEY_CODE_K, /* atset1:37 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */

WARNING: line over 80 characters
#465: FILE: ui/input-keymap-atset1-to-qcode.c:45:
+  [0x26] = Q_KEY_CODE_L, /* atset1:38 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */

ERROR: line over 90 characters
#466: FILE: ui/input-keymap-atset1-to-qcode.c:46:
+  [0x27] = Q_KEY_CODE_SEMICOLON, /* atset1:39 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */

ERROR: line over 90 characters
#467: FILE: ui/input-keymap-atset1-to-qcode.c:47:
+  [0x28] = Q_KEY_CODE_APOSTROPHE, /* atset1:40 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */

ERROR: line over 90 characters
#468: FILE: ui/input-keymap-atset1-to-qcode.c:48:
+  [0x29] = Q_KEY_CODE_GRAVE_ACCENT, /* atset1:41 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */

ERROR: line over 90 characters
#469: FILE: ui/input-keymap-atset1-to-qcode.c:49:
+  [0x2a] = Q_KEY_CODE_SHIFT, /* atset1:42 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */

ERROR: line over 90 characters
#470: FILE: ui/input-keymap-atset1-to-qcode.c:50:
+  [0x2b] = Q_KEY_CODE_BACKSLASH, /* atset1:43 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

WARNING: line over 80 characters
#471: FILE: ui/input-keymap-atset1-to-qcode.c:51:
+  [0x2c] = Q_KEY_CODE_Z, /* atset1:44 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */

WARNING: line over 80 characters
#472: FILE: ui/input-keymap-atset1-to-qcode.c:52:
+  [0x2d] = Q_KEY_CODE_X, /* atset1:45 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */

WARNING: line over 80 characters
#473: FILE: ui/input-keymap-atset1-to-qcode.c:53:
+  [0x2e] = Q_KEY_CODE_C, /* atset1:46 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */

WARNING: line over 80 characters
#474: FILE: ui/input-keymap-atset1-to-qcode.c:54:
+  [0x2f] = Q_KEY_CODE_V, /* atset1:47 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */

WARNING: line over 80 characters
#475: FILE: ui/input-keymap-atset1-to-qcode.c:55:
+  [0x30] = Q_KEY_CODE_B, /* atset1:48 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */

WARNING: line over 80 characters
#476: FILE: ui/input-keymap-atset1-to-qcode.c:56:
+  [0x31] = Q_KEY_CODE_N, /* atset1:49 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */

WARNING: line over 80 characters
#477: FILE: ui/input-keymap-atset1-to-qcode.c:57:
+  [0x32] = Q_KEY_CODE_M, /* atset1:50 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */

ERROR: line over 90 characters
#478: FILE: ui/input-keymap-atset1-to-qcode.c:58:
+  [0x33] = Q_KEY_CODE_COMMA, /* atset1:51 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */

ERROR: line over 90 characters
#479: FILE: ui/input-keymap-atset1-to-qcode.c:59:
+  [0x34] = Q_KEY_CODE_DOT, /* atset1:52 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */

ERROR: line over 90 characters
#480: FILE: ui/input-keymap-atset1-to-qcode.c:60:
+  [0x35] = Q_KEY_CODE_SLASH, /* atset1:53 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */

ERROR: line over 90 characters
#481: FILE: ui/input-keymap-atset1-to-qcode.c:61:
+  [0x36] = Q_KEY_CODE_SHIFT_R, /* atset1:54 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */

ERROR: line over 90 characters
#482: FILE: ui/input-keymap-atset1-to-qcode.c:62:
+  [0x37] = Q_KEY_CODE_KP_MULTIPLY, /* atset1:55 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */

ERROR: line over 90 characters
#483: FILE: ui/input-keymap-atset1-to-qcode.c:63:
+  [0x38] = Q_KEY_CODE_ALT, /* atset1:56 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */

ERROR: line over 90 characters
#484: FILE: ui/input-keymap-atset1-to-qcode.c:64:
+  [0x39] = Q_KEY_CODE_SPC, /* atset1:57 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */

ERROR: line over 90 characters
#485: FILE: ui/input-keymap-atset1-to-qcode.c:65:
+  [0x3a] = Q_KEY_CODE_CAPS_LOCK, /* atset1:58 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */

WARNING: line over 80 characters
#486: FILE: ui/input-keymap-atset1-to-qcode.c:66:
+  [0x3b] = Q_KEY_CODE_F1, /* atset1:59 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */

WARNING: line over 80 characters
#487: FILE: ui/input-keymap-atset1-to-qcode.c:67:
+  [0x3c] = Q_KEY_CODE_F2, /* atset1:60 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */

WARNING: line over 80 characters
#488: FILE: ui/input-keymap-atset1-to-qcode.c:68:
+  [0x3d] = Q_KEY_CODE_F3, /* atset1:61 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */

WARNING: line over 80 characters
#489: FILE: ui/input-keymap-atset1-to-qcode.c:69:
+  [0x3e] = Q_KEY_CODE_F4, /* atset1:62 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */

WARNING: line over 80 characters
#490: FILE: ui/input-keymap-atset1-to-qcode.c:70:
+  [0x3f] = Q_KEY_CODE_F5, /* atset1:63 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */

WARNING: line over 80 characters
#491: FILE: ui/input-keymap-atset1-to-qcode.c:71:
+  [0x40] = Q_KEY_CODE_F6, /* atset1:64 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */

WARNING: line over 80 characters
#492: FILE: ui/input-keymap-atset1-to-qcode.c:72:
+  [0x41] = Q_KEY_CODE_F7, /* atset1:65 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */

WARNING: line over 80 characters
#493: FILE: ui/input-keymap-atset1-to-qcode.c:73:
+  [0x42] = Q_KEY_CODE_F8, /* atset1:66 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */

WARNING: line over 80 characters
#494: FILE: ui/input-keymap-atset1-to-qcode.c:74:
+  [0x43] = Q_KEY_CODE_F9, /* atset1:67 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */

ERROR: line over 90 characters
#495: FILE: ui/input-keymap-atset1-to-qcode.c:75:
+  [0x44] = Q_KEY_CODE_F10, /* atset1:68 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */

ERROR: line over 90 characters
#496: FILE: ui/input-keymap-atset1-to-qcode.c:76:
+  [0x45] = Q_KEY_CODE_NUM_LOCK, /* atset1:69 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */

ERROR: line over 90 characters
#497: FILE: ui/input-keymap-atset1-to-qcode.c:77:
+  [0x46] = Q_KEY_CODE_SCROLL_LOCK, /* atset1:70 -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */

ERROR: line over 90 characters
#498: FILE: ui/input-keymap-atset1-to-qcode.c:78:
+  [0x47] = Q_KEY_CODE_KP_7, /* atset1:71 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */

ERROR: line over 90 characters
#499: FILE: ui/input-keymap-atset1-to-qcode.c:79:
+  [0x48] = Q_KEY_CODE_KP_8, /* atset1:72 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */

ERROR: line over 90 characters
#500: FILE: ui/input-keymap-atset1-to-qcode.c:80:
+  [0x49] = Q_KEY_CODE_KP_9, /* atset1:73 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */

ERROR: line over 90 characters
#501: FILE: ui/input-keymap-atset1-to-qcode.c:81:
+  [0x4a] = Q_KEY_CODE_KP_SUBTRACT, /* atset1:74 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */

ERROR: line over 90 characters
#502: FILE: ui/input-keymap-atset1-to-qcode.c:82:
+  [0x4b] = Q_KEY_CODE_KP_4, /* atset1:75 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */

ERROR: line over 90 characters
#503: FILE: ui/input-keymap-atset1-to-qcode.c:83:
+  [0x4c] = Q_KEY_CODE_KP_5, /* atset1:76 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */

ERROR: line over 90 characters
#504: FILE: ui/input-keymap-atset1-to-qcode.c:84:
+  [0x4d] = Q_KEY_CODE_KP_6, /* atset1:77 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */

ERROR: line over 90 characters
#505: FILE: ui/input-keymap-atset1-to-qcode.c:85:
+  [0x4e] = Q_KEY_CODE_KP_ADD, /* atset1:78 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */

ERROR: line over 90 characters
#506: FILE: ui/input-keymap-atset1-to-qcode.c:86:
+  [0x4f] = Q_KEY_CODE_KP_1, /* atset1:79 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */

ERROR: line over 90 characters
#507: FILE: ui/input-keymap-atset1-to-qcode.c:87:
+  [0x50] = Q_KEY_CODE_KP_2, /* atset1:80 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */

ERROR: line over 90 characters
#508: FILE: ui/input-keymap-atset1-to-qcode.c:88:
+  [0x51] = Q_KEY_CODE_KP_3, /* atset1:81 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */

ERROR: line over 90 characters
#509: FILE: ui/input-keymap-atset1-to-qcode.c:89:
+  [0x52] = Q_KEY_CODE_KP_0, /* atset1:82 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */

ERROR: line over 90 characters
#510: FILE: ui/input-keymap-atset1-to-qcode.c:90:
+  [0x53] = Q_KEY_CODE_KP_DECIMAL, /* atset1:83 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */

ERROR: line over 90 characters
#511: FILE: ui/input-keymap-atset1-to-qcode.c:91:
+  [0x54] = Q_KEY_CODE_SYSRQ, /* atset1:84 -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */

ERROR: line over 90 characters
#512: FILE: ui/input-keymap-atset1-to-qcode.c:92:
+  [0x55] = Q_KEY_CODE_UNMAPPED, /* atset1:85 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#513: FILE: ui/input-keymap-atset1-to-qcode.c:93:
+  [0x56] = Q_KEY_CODE_LESS, /* atset1:86 -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */

ERROR: line over 90 characters
#514: FILE: ui/input-keymap-atset1-to-qcode.c:94:
+  [0x57] = Q_KEY_CODE_F11, /* atset1:87 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */

ERROR: line over 90 characters
#515: FILE: ui/input-keymap-atset1-to-qcode.c:95:
+  [0x58] = Q_KEY_CODE_F12, /* atset1:88 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */

ERROR: line over 90 characters
#516: FILE: ui/input-keymap-atset1-to-qcode.c:96:
+  [0x59] = Q_KEY_CODE_KP_EQUALS, /* atset1:89 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */

ERROR: line over 90 characters
#517: FILE: ui/input-keymap-atset1-to-qcode.c:97:
+  [0x5a] = Q_KEY_CODE_UNMAPPED, /* atset1:90 -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#518: FILE: ui/input-keymap-atset1-to-qcode.c:98:
+  [0x5b] = Q_KEY_CODE_LF, /* atset1:91 -> linux:101 (KEY_LINEFEED) -> qcode:Q_KEY_CODE_LF (lf) */

ERROR: line over 90 characters
#519: FILE: ui/input-keymap-atset1-to-qcode.c:99:
+  [0x5c] = Q_KEY_CODE_UNMAPPED, /* atset1:92 -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#520: FILE: ui/input-keymap-atset1-to-qcode.c:100:
+  [0x5d] = Q_KEY_CODE_UNMAPPED, /* atset1:93 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#521: FILE: ui/input-keymap-atset1-to-qcode.c:101:
+  [0x5e] = Q_KEY_CODE_UNMAPPED, /* atset1:94 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#522: FILE: ui/input-keymap-atset1-to-qcode.c:102:
+  [0x5f] = Q_KEY_CODE_UNMAPPED, /* atset1:95 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#523: FILE: ui/input-keymap-atset1-to-qcode.c:103:
+  [0x63] = Q_KEY_CODE_UNMAPPED, /* atset1:99 -> linux:169 (KEY_PHONE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#524: FILE: ui/input-keymap-atset1-to-qcode.c:104:
+  [0x64] = Q_KEY_CODE_OPEN, /* atset1:100 -> linux:134 (KEY_OPEN) -> qcode:Q_KEY_CODE_OPEN (open) */

ERROR: line over 90 characters
#525: FILE: ui/input-keymap-atset1-to-qcode.c:105:
+  [0x65] = Q_KEY_CODE_PASTE, /* atset1:101 -> linux:135 (KEY_PASTE) -> qcode:Q_KEY_CODE_PASTE (paste) */

ERROR: line over 90 characters
#526: FILE: ui/input-keymap-atset1-to-qcode.c:106:
+  [0x66] = Q_KEY_CODE_UNMAPPED, /* atset1:102 -> linux:141 (KEY_SETUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#527: FILE: ui/input-keymap-atset1-to-qcode.c:107:
+  [0x67] = Q_KEY_CODE_UNMAPPED, /* atset1:103 -> linux:144 (KEY_FILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#528: FILE: ui/input-keymap-atset1-to-qcode.c:108:
+  [0x68] = Q_KEY_CODE_UNMAPPED, /* atset1:104 -> linux:145 (KEY_SENDFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#529: FILE: ui/input-keymap-atset1-to-qcode.c:109:
+  [0x69] = Q_KEY_CODE_UNMAPPED, /* atset1:105 -> linux:146 (KEY_DELETEFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#530: FILE: ui/input-keymap-atset1-to-qcode.c:110:
+  [0x6a] = Q_KEY_CODE_UNMAPPED, /* atset1:106 -> linux:151 (KEY_MSDOS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#531: FILE: ui/input-keymap-atset1-to-qcode.c:111:
+  [0x6b] = Q_KEY_CODE_UNMAPPED, /* atset1:107 -> linux:153 (KEY_DIRECTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#532: FILE: ui/input-keymap-atset1-to-qcode.c:112:
+  [0x6c] = Q_KEY_CODE_UNMAPPED, /* atset1:108 -> linux:161 (KEY_EJECTCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#533: FILE: ui/input-keymap-atset1-to-qcode.c:113:
+  [0x6d] = Q_KEY_CODE_UNMAPPED, /* atset1:109 -> linux:193 (KEY_F23) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#534: FILE: ui/input-keymap-atset1-to-qcode.c:114:
+  [0x6f] = Q_KEY_CODE_UNMAPPED, /* atset1:111 -> linux:194 (KEY_F24) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#535: FILE: ui/input-keymap-atset1-to-qcode.c:115:
+  [0x70] = Q_KEY_CODE_UNMAPPED, /* atset1:112 -> linux:170 (KEY_ISO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#536: FILE: ui/input-keymap-atset1-to-qcode.c:116:
+  [0x71] = Q_KEY_CODE_UNMAPPED, /* atset1:113 -> linux:174 (KEY_EXIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#537: FILE: ui/input-keymap-atset1-to-qcode.c:117:
+  [0x72] = Q_KEY_CODE_UNMAPPED, /* atset1:114 -> linux:175 (KEY_MOVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#538: FILE: ui/input-keymap-atset1-to-qcode.c:118:
+  [0x73] = Q_KEY_CODE_RO, /* atset1:115 -> linux:89 (KEY_RO) -> qcode:Q_KEY_CODE_RO (ro) */

ERROR: line over 90 characters
#539: FILE: ui/input-keymap-atset1-to-qcode.c:119:
+  [0x74] = Q_KEY_CODE_UNMAPPED, /* atset1:116 -> linux:191 (KEY_F21) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#540: FILE: ui/input-keymap-atset1-to-qcode.c:120:
+  [0x75] = Q_KEY_CODE_UNMAPPED, /* atset1:117 -> linux:177 (KEY_SCROLLUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#541: FILE: ui/input-keymap-atset1-to-qcode.c:121:
+  [0x76] = Q_KEY_CODE_UNMAPPED, /* atset1:118 -> linux:85 (KEY_ZENKAKUHANKAKU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#542: FILE: ui/input-keymap-atset1-to-qcode.c:122:
+  [0x77] = Q_KEY_CODE_HIRAGANA, /* atset1:119 -> linux:91 (KEY_HIRAGANA) -> qcode:Q_KEY_CODE_HIRAGANA (hiragana) */

ERROR: line over 90 characters
#543: FILE: ui/input-keymap-atset1-to-qcode.c:123:
+  [0x78] = Q_KEY_CODE_UNMAPPED, /* atset1:120 -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#544: FILE: ui/input-keymap-atset1-to-qcode.c:124:
+  [0x79] = Q_KEY_CODE_HENKAN, /* atset1:121 -> linux:92 (KEY_HENKAN) -> qcode:Q_KEY_CODE_HENKAN (henkan) */

ERROR: line over 90 characters
#545: FILE: ui/input-keymap-atset1-to-qcode.c:125:
+  [0x7b] = Q_KEY_CODE_UNMAPPED, /* atset1:123 -> linux:94 (KEY_MUHENKAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#546: FILE: ui/input-keymap-atset1-to-qcode.c:126:
+  [0x7d] = Q_KEY_CODE_YEN, /* atset1:125 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */

ERROR: line over 90 characters
#547: FILE: ui/input-keymap-atset1-to-qcode.c:127:
+  [0x7e] = Q_KEY_CODE_KP_COMMA, /* atset1:126 -> linux:121 (KEY_KPCOMMA) -> qcode:Q_KEY_CODE_KP_COMMA (kp_comma) */

ERROR: line over 90 characters
#548: FILE: ui/input-keymap-atset1-to-qcode.c:128:
+  [0xe001] = Q_KEY_CODE_UNMAPPED, /* atset1:57345 -> linux:171 (KEY_CONFIG) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#549: FILE: ui/input-keymap-atset1-to-qcode.c:129:
+  [0xe002] = Q_KEY_CODE_UNMAPPED, /* atset1:57346 -> linux:150 (KEY_WWW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#550: FILE: ui/input-keymap-atset1-to-qcode.c:130:
+  [0xe003] = Q_KEY_CODE_UNMAPPED, /* atset1:57347 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#551: FILE: ui/input-keymap-atset1-to-qcode.c:131:
+  [0xe004] = Q_KEY_CODE_UNMAPPED, /* atset1:57348 -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#552: FILE: ui/input-keymap-atset1-to-qcode.c:132:
+  [0xe005] = Q_KEY_CODE_AGAIN, /* atset1:57349 -> linux:129 (KEY_AGAIN) -> qcode:Q_KEY_CODE_AGAIN (again) */

ERROR: line over 90 characters
#553: FILE: ui/input-keymap-atset1-to-qcode.c:133:
+  [0xe006] = Q_KEY_CODE_PROPS, /* atset1:57350 -> linux:130 (KEY_PROPS) -> qcode:Q_KEY_CODE_PROPS (props) */

ERROR: line over 90 characters
#554: FILE: ui/input-keymap-atset1-to-qcode.c:134:
+  [0xe007] = Q_KEY_CODE_UNDO, /* atset1:57351 -> linux:131 (KEY_UNDO) -> qcode:Q_KEY_CODE_UNDO (undo) */

ERROR: line over 90 characters
#555: FILE: ui/input-keymap-atset1-to-qcode.c:135:
+  [0xe008] = Q_KEY_CODE_UNMAPPED, /* atset1:57352 -> linux:176 (KEY_EDIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#556: FILE: ui/input-keymap-atset1-to-qcode.c:136:
+  [0xe009] = Q_KEY_CODE_UNMAPPED, /* atset1:57353 -> linux:181 (KEY_NEW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#557: FILE: ui/input-keymap-atset1-to-qcode.c:137:
+  [0xe00a] = Q_KEY_CODE_UNMAPPED, /* atset1:57354 -> linux:182 (KEY_REDO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#558: FILE: ui/input-keymap-atset1-to-qcode.c:138:
+  [0xe00b] = Q_KEY_CODE_UNMAPPED, /* atset1:57355 -> linux:120 (KEY_SCALE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#559: FILE: ui/input-keymap-atset1-to-qcode.c:139:
+  [0xe00c] = Q_KEY_CODE_FRONT, /* atset1:57356 -> linux:132 (KEY_FRONT) -> qcode:Q_KEY_CODE_FRONT (front) */

ERROR: line over 90 characters
#560: FILE: ui/input-keymap-atset1-to-qcode.c:140:
+  [0xe00d] = Q_KEY_CODE_UNMAPPED, /* atset1:57357 -> linux:123 (KEY_HANJA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#561: FILE: ui/input-keymap-atset1-to-qcode.c:141:
+  [0xe00e] = Q_KEY_CODE_UNMAPPED, /* atset1:57358 -> linux:233 (KEY_FORWARDMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#562: FILE: ui/input-keymap-atset1-to-qcode.c:142:
+  [0xe00f] = Q_KEY_CODE_UNMAPPED, /* atset1:57359 -> linux:178 (KEY_SCROLLDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#563: FILE: ui/input-keymap-atset1-to-qcode.c:143:
+  [0xe010] = Q_KEY_CODE_AUDIOPREV, /* atset1:57360 -> linux:165 (KEY_PREVIOUSSONG) -> qcode:Q_KEY_CODE_AUDIOPREV (audioprev) */

ERROR: line over 90 characters
#564: FILE: ui/input-keymap-atset1-to-qcode.c:144:
+  [0xe012] = Q_KEY_CODE_UNMAPPED, /* atset1:57362 -> linux:152 (KEY_SCREENLOCK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#565: FILE: ui/input-keymap-atset1-to-qcode.c:145:
+  [0xe013] = Q_KEY_CODE_UNMAPPED, /* atset1:57363 -> linux:147 (KEY_XFER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#566: FILE: ui/input-keymap-atset1-to-qcode.c:146:
+  [0xe014] = Q_KEY_CODE_UNMAPPED, /* atset1:57364 -> linux:222 (KEY_ALTERASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#567: FILE: ui/input-keymap-atset1-to-qcode.c:147:
+  [0xe015] = Q_KEY_CODE_UNMAPPED, /* atset1:57365 -> linux:195 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#568: FILE: ui/input-keymap-atset1-to-qcode.c:148:
+  [0xe016] = Q_KEY_CODE_UNMAPPED, /* atset1:57366 -> linux:196 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#569: FILE: ui/input-keymap-atset1-to-qcode.c:149:
+  [0xe017] = Q_KEY_CODE_UNMAPPED, /* atset1:57367 -> linux:149 (KEY_PROG2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#570: FILE: ui/input-keymap-atset1-to-qcode.c:150:
+  [0xe018] = Q_KEY_CODE_UNMAPPED, /* atset1:57368 -> linux:168 (KEY_REWIND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#571: FILE: ui/input-keymap-atset1-to-qcode.c:151:
+  [0xe019] = Q_KEY_CODE_AUDIONEXT, /* atset1:57369 -> linux:163 (KEY_NEXTSONG) -> qcode:Q_KEY_CODE_AUDIONEXT (audionext) */

ERROR: line over 90 characters
#572: FILE: ui/input-keymap-atset1-to-qcode.c:152:
+  [0xe01a] = Q_KEY_CODE_UNMAPPED, /* atset1:57370 -> linux:197 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#573: FILE: ui/input-keymap-atset1-to-qcode.c:153:
+  [0xe01b] = Q_KEY_CODE_UNMAPPED, /* atset1:57371 -> linux:198 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#574: FILE: ui/input-keymap-atset1-to-qcode.c:154:
+  [0xe01c] = Q_KEY_CODE_KP_ENTER, /* atset1:57372 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */

ERROR: line over 90 characters
#575: FILE: ui/input-keymap-atset1-to-qcode.c:155:
+  [0xe01d] = Q_KEY_CODE_CTRL_R, /* atset1:57373 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */

ERROR: line over 90 characters
#576: FILE: ui/input-keymap-atset1-to-qcode.c:156:
+  [0xe01e] = Q_KEY_CODE_MENU, /* atset1:57374 -> linux:139 (KEY_MENU) -> qcode:Q_KEY_CODE_MENU (menu) */

ERROR: line over 90 characters
#577: FILE: ui/input-keymap-atset1-to-qcode.c:157:
+  [0xe01f] = Q_KEY_CODE_UNMAPPED, /* atset1:57375 -> linux:148 (KEY_PROG1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#578: FILE: ui/input-keymap-atset1-to-qcode.c:158:
+  [0xe020] = Q_KEY_CODE_AUDIOMUTE, /* atset1:57376 -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */

ERROR: line over 90 characters
#579: FILE: ui/input-keymap-atset1-to-qcode.c:159:
+  [0xe021] = Q_KEY_CODE_CALCULATOR, /* atset1:57377 -> linux:140 (KEY_CALC) -> qcode:Q_KEY_CODE_CALCULATOR (calculator) */

ERROR: line over 90 characters
#580: FILE: ui/input-keymap-atset1-to-qcode.c:160:
+  [0xe022] = Q_KEY_CODE_AUDIOPLAY, /* atset1:57378 -> linux:164 (KEY_PLAYPAUSE) -> qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) */

ERROR: line over 90 characters
#581: FILE: ui/input-keymap-atset1-to-qcode.c:161:
+  [0xe023] = Q_KEY_CODE_UNMAPPED, /* atset1:57379 -> linux:160 (KEY_CLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#582: FILE: ui/input-keymap-atset1-to-qcode.c:162:
+  [0xe024] = Q_KEY_CODE_AUDIOSTOP, /* atset1:57380 -> linux:166 (KEY_STOPCD) -> qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) */

ERROR: line over 90 characters
#583: FILE: ui/input-keymap-atset1-to-qcode.c:163:
+  [0xe025] = Q_KEY_CODE_UNMAPPED, /* atset1:57381 -> linux:205 (KEY_SUSPEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#584: FILE: ui/input-keymap-atset1-to-qcode.c:164:
+  [0xe026] = Q_KEY_CODE_UNMAPPED, /* atset1:57382 -> linux:154 (KEY_CYCLEWINDOWS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#585: FILE: ui/input-keymap-atset1-to-qcode.c:165:
+  [0xe027] = Q_KEY_CODE_UNMAPPED, /* atset1:57383 -> linux:199 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#586: FILE: ui/input-keymap-atset1-to-qcode.c:166:
+  [0xe028] = Q_KEY_CODE_UNMAPPED, /* atset1:57384 -> linux:200 (KEY_PLAYCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#587: FILE: ui/input-keymap-atset1-to-qcode.c:167:
+  [0xe029] = Q_KEY_CODE_UNMAPPED, /* atset1:57385 -> linux:201 (KEY_PAUSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#588: FILE: ui/input-keymap-atset1-to-qcode.c:168:
+  [0xe02b] = Q_KEY_CODE_UNMAPPED, /* atset1:57387 -> linux:202 (KEY_PROG3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#589: FILE: ui/input-keymap-atset1-to-qcode.c:169:
+  [0xe02c] = Q_KEY_CODE_UNMAPPED, /* atset1:57388 -> linux:203 (KEY_PROG4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#590: FILE: ui/input-keymap-atset1-to-qcode.c:170:
+  [0xe02d] = Q_KEY_CODE_UNMAPPED, /* atset1:57389 -> linux:204 (KEY_DASHBOARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#591: FILE: ui/input-keymap-atset1-to-qcode.c:171:
+  [0xe02e] = Q_KEY_CODE_VOLUMEDOWN, /* atset1:57390 -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */

ERROR: line over 90 characters
#592: FILE: ui/input-keymap-atset1-to-qcode.c:172:
+  [0xe02f] = Q_KEY_CODE_UNMAPPED, /* atset1:57391 -> linux:206 (KEY_CLOSE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#593: FILE: ui/input-keymap-atset1-to-qcode.c:173:
+  [0xe030] = Q_KEY_CODE_VOLUMEUP, /* atset1:57392 -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */

ERROR: line over 90 characters
#594: FILE: ui/input-keymap-atset1-to-qcode.c:174:
+  [0xe031] = Q_KEY_CODE_UNMAPPED, /* atset1:57393 -> linux:167 (KEY_RECORD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#595: FILE: ui/input-keymap-atset1-to-qcode.c:175:
+  [0xe032] = Q_KEY_CODE_AC_HOME, /* atset1:57394 -> linux:172 (KEY_HOMEPAGE) -> qcode:Q_KEY_CODE_AC_HOME (ac_home) */

ERROR: line over 90 characters
#596: FILE: ui/input-keymap-atset1-to-qcode.c:176:
+  [0xe033] = Q_KEY_CODE_UNMAPPED, /* atset1:57395 -> linux:207 (KEY_PLAY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#597: FILE: ui/input-keymap-atset1-to-qcode.c:177:
+  [0xe034] = Q_KEY_CODE_UNMAPPED, /* atset1:57396 -> linux:208 (KEY_FASTFORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#598: FILE: ui/input-keymap-atset1-to-qcode.c:178:
+  [0xe035] = Q_KEY_CODE_KP_DIVIDE, /* atset1:57397 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */

ERROR: line over 90 characters
#599: FILE: ui/input-keymap-atset1-to-qcode.c:179:
+  [0xe036] = Q_KEY_CODE_UNMAPPED, /* atset1:57398 -> linux:209 (KEY_BASSBOOST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#600: FILE: ui/input-keymap-atset1-to-qcode.c:180:
+  [0xe038] = Q_KEY_CODE_ALT_R, /* atset1:57400 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */

ERROR: line over 90 characters
#601: FILE: ui/input-keymap-atset1-to-qcode.c:181:
+  [0xe039] = Q_KEY_CODE_UNMAPPED, /* atset1:57401 -> linux:210 (KEY_PRINT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#602: FILE: ui/input-keymap-atset1-to-qcode.c:182:
+  [0xe03a] = Q_KEY_CODE_UNMAPPED, /* atset1:57402 -> linux:211 (KEY_HP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#603: FILE: ui/input-keymap-atset1-to-qcode.c:183:
+  [0xe03b] = Q_KEY_CODE_UNMAPPED, /* atset1:57403 -> linux:212 (KEY_CAMERA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#604: FILE: ui/input-keymap-atset1-to-qcode.c:184:
+  [0xe03c] = Q_KEY_CODE_CUT, /* atset1:57404 -> linux:137 (KEY_CUT) -> qcode:Q_KEY_CODE_CUT (cut) */

ERROR: line over 90 characters
#605: FILE: ui/input-keymap-atset1-to-qcode.c:185:
+  [0xe03d] = Q_KEY_CODE_UNMAPPED, /* atset1:57405 -> linux:213 (KEY_SOUND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#606: FILE: ui/input-keymap-atset1-to-qcode.c:186:
+  [0xe03e] = Q_KEY_CODE_UNMAPPED, /* atset1:57406 -> linux:214 (KEY_QUESTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#607: FILE: ui/input-keymap-atset1-to-qcode.c:187:
+  [0xe03f] = Q_KEY_CODE_UNMAPPED, /* atset1:57407 -> linux:215 (KEY_EMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#608: FILE: ui/input-keymap-atset1-to-qcode.c:188:
+  [0xe040] = Q_KEY_CODE_UNMAPPED, /* atset1:57408 -> linux:216 (KEY_CHAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#609: FILE: ui/input-keymap-atset1-to-qcode.c:189:
+  [0xe041] = Q_KEY_CODE_FIND, /* atset1:57409 -> linux:136 (KEY_FIND) -> qcode:Q_KEY_CODE_FIND (find) */

ERROR: line over 90 characters
#610: FILE: ui/input-keymap-atset1-to-qcode.c:190:
+  [0xe042] = Q_KEY_CODE_UNMAPPED, /* atset1:57410 -> linux:218 (KEY_CONNECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#611: FILE: ui/input-keymap-atset1-to-qcode.c:191:
+  [0xe043] = Q_KEY_CODE_UNMAPPED, /* atset1:57411 -> linux:219 (KEY_FINANCE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#612: FILE: ui/input-keymap-atset1-to-qcode.c:192:
+  [0xe044] = Q_KEY_CODE_UNMAPPED, /* atset1:57412 -> linux:220 (KEY_SPORT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#613: FILE: ui/input-keymap-atset1-to-qcode.c:193:
+  [0xe045] = Q_KEY_CODE_UNMAPPED, /* atset1:57413 -> linux:221 (KEY_SHOP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#614: FILE: ui/input-keymap-atset1-to-qcode.c:194:
+  [0xe046] = Q_KEY_CODE_PAUSE, /* atset1:57414 -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */

ERROR: line over 90 characters
#615: FILE: ui/input-keymap-atset1-to-qcode.c:195:
+  [0xe047] = Q_KEY_CODE_HOME, /* atset1:57415 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */

ERROR: line over 90 characters
#616: FILE: ui/input-keymap-atset1-to-qcode.c:196:
+  [0xe048] = Q_KEY_CODE_UP, /* atset1:57416 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */

ERROR: line over 90 characters
#617: FILE: ui/input-keymap-atset1-to-qcode.c:197:
+  [0xe049] = Q_KEY_CODE_PGUP, /* atset1:57417 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */

ERROR: line over 90 characters
#618: FILE: ui/input-keymap-atset1-to-qcode.c:198:
+  [0xe04a] = Q_KEY_CODE_UNMAPPED, /* atset1:57418 -> linux:223 (KEY_CANCEL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#619: FILE: ui/input-keymap-atset1-to-qcode.c:199:
+  [0xe04b] = Q_KEY_CODE_LEFT, /* atset1:57419 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */

ERROR: line over 90 characters
#620: FILE: ui/input-keymap-atset1-to-qcode.c:200:
+  [0xe04c] = Q_KEY_CODE_UNMAPPED, /* atset1:57420 -> linux:224 (KEY_BRIGHTNESSDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#621: FILE: ui/input-keymap-atset1-to-qcode.c:201:
+  [0xe04d] = Q_KEY_CODE_RIGHT, /* atset1:57421 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */

ERROR: line over 90 characters
#622: FILE: ui/input-keymap-atset1-to-qcode.c:202:
+  [0xe04e] = Q_KEY_CODE_UNMAPPED, /* atset1:57422 -> linux:118 (KEY_KPPLUSMINUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#623: FILE: ui/input-keymap-atset1-to-qcode.c:203:
+  [0xe04f] = Q_KEY_CODE_END, /* atset1:57423 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */

ERROR: line over 90 characters
#624: FILE: ui/input-keymap-atset1-to-qcode.c:204:
+  [0xe050] = Q_KEY_CODE_DOWN, /* atset1:57424 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */

ERROR: line over 90 characters
#625: FILE: ui/input-keymap-atset1-to-qcode.c:205:
+  [0xe051] = Q_KEY_CODE_PGDN, /* atset1:57425 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */

ERROR: line over 90 characters
#626: FILE: ui/input-keymap-atset1-to-qcode.c:206:
+  [0xe052] = Q_KEY_CODE_INSERT, /* atset1:57426 -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */

ERROR: line over 90 characters
#627: FILE: ui/input-keymap-atset1-to-qcode.c:207:
+  [0xe053] = Q_KEY_CODE_DELETE, /* atset1:57427 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */

ERROR: line over 90 characters
#628: FILE: ui/input-keymap-atset1-to-qcode.c:208:
+  [0xe054] = Q_KEY_CODE_UNMAPPED, /* atset1:57428 -> linux:225 (KEY_BRIGHTNESSUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#629: FILE: ui/input-keymap-atset1-to-qcode.c:209:
+  [0xe055] = Q_KEY_CODE_UNMAPPED, /* atset1:57429 -> linux:234 (KEY_SAVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#630: FILE: ui/input-keymap-atset1-to-qcode.c:210:
+  [0xe056] = Q_KEY_CODE_UNMAPPED, /* atset1:57430 -> linux:227 (KEY_SWITCHVIDEOMODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#631: FILE: ui/input-keymap-atset1-to-qcode.c:211:
+  [0xe057] = Q_KEY_CODE_UNMAPPED, /* atset1:57431 -> linux:228 (KEY_KBDILLUMTOGGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#632: FILE: ui/input-keymap-atset1-to-qcode.c:212:
+  [0xe058] = Q_KEY_CODE_UNMAPPED, /* atset1:57432 -> linux:229 (KEY_KBDILLUMDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#633: FILE: ui/input-keymap-atset1-to-qcode.c:213:
+  [0xe059] = Q_KEY_CODE_UNMAPPED, /* atset1:57433 -> linux:230 (KEY_KBDILLUMUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#634: FILE: ui/input-keymap-atset1-to-qcode.c:214:
+  [0xe05a] = Q_KEY_CODE_UNMAPPED, /* atset1:57434 -> linux:231 (KEY_SEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#635: FILE: ui/input-keymap-atset1-to-qcode.c:215:
+  [0xe05b] = Q_KEY_CODE_META_L, /* atset1:57435 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */

ERROR: line over 90 characters
#636: FILE: ui/input-keymap-atset1-to-qcode.c:216:
+  [0xe05c] = Q_KEY_CODE_META_R, /* atset1:57436 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */

ERROR: line over 90 characters
#637: FILE: ui/input-keymap-atset1-to-qcode.c:217:
+  [0xe05d] = Q_KEY_CODE_COMPOSE, /* atset1:57437 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */

ERROR: line over 90 characters
#638: FILE: ui/input-keymap-atset1-to-qcode.c:218:
+  [0xe05e] = Q_KEY_CODE_POWER, /* atset1:57438 -> linux:116 (KEY_POWER) -> qcode:Q_KEY_CODE_POWER (power) */

ERROR: line over 90 characters
#639: FILE: ui/input-keymap-atset1-to-qcode.c:219:
+  [0xe05f] = Q_KEY_CODE_SLEEP, /* atset1:57439 -> linux:142 (KEY_SLEEP) -> qcode:Q_KEY_CODE_SLEEP (sleep) */

ERROR: line over 90 characters
#640: FILE: ui/input-keymap-atset1-to-qcode.c:220:
+  [0xe063] = Q_KEY_CODE_WAKE, /* atset1:57443 -> linux:143 (KEY_WAKEUP) -> qcode:Q_KEY_CODE_WAKE (wake) */

ERROR: line over 90 characters
#641: FILE: ui/input-keymap-atset1-to-qcode.c:221:
+  [0xe064] = Q_KEY_CODE_UNMAPPED, /* atset1:57444 -> linux:232 (KEY_REPLY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#642: FILE: ui/input-keymap-atset1-to-qcode.c:222:
+  [0xe065] = Q_KEY_CODE_UNMAPPED, /* atset1:57445 -> linux:217 (KEY_SEARCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#643: FILE: ui/input-keymap-atset1-to-qcode.c:223:
+  [0xe066] = Q_KEY_CODE_AC_BOOKMARKS, /* atset1:57446 -> linux:156 (KEY_BOOKMARKS) -> qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) */

ERROR: line over 90 characters
#644: FILE: ui/input-keymap-atset1-to-qcode.c:224:
+  [0xe067] = Q_KEY_CODE_AC_REFRESH, /* atset1:57447 -> linux:173 (KEY_REFRESH) -> qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) */

ERROR: line over 90 characters
#645: FILE: ui/input-keymap-atset1-to-qcode.c:225:
+  [0xe068] = Q_KEY_CODE_STOP, /* atset1:57448 -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */

ERROR: line over 90 characters
#646: FILE: ui/input-keymap-atset1-to-qcode.c:226:
+  [0xe069] = Q_KEY_CODE_AC_FORWARD, /* atset1:57449 -> linux:159 (KEY_FORWARD) -> qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) */

ERROR: line over 90 characters
#647: FILE: ui/input-keymap-atset1-to-qcode.c:227:
+  [0xe06a] = Q_KEY_CODE_AC_BACK, /* atset1:57450 -> linux:158 (KEY_BACK) -> qcode:Q_KEY_CODE_AC_BACK (ac_back) */

ERROR: line over 90 characters
#648: FILE: ui/input-keymap-atset1-to-qcode.c:228:
+  [0xe06b] = Q_KEY_CODE_COMPUTER, /* atset1:57451 -> linux:157 (KEY_COMPUTER) -> qcode:Q_KEY_CODE_COMPUTER (computer) */

ERROR: line over 90 characters
#649: FILE: ui/input-keymap-atset1-to-qcode.c:229:
+  [0xe06c] = Q_KEY_CODE_MAIL, /* atset1:57452 -> linux:155 (KEY_MAIL) -> qcode:Q_KEY_CODE_MAIL (mail) */

ERROR: line over 90 characters
#650: FILE: ui/input-keymap-atset1-to-qcode.c:230:
+  [0xe06d] = Q_KEY_CODE_MEDIASELECT, /* atset1:57453 -> linux:226 (KEY_MEDIA) -> qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) */

ERROR: line over 90 characters
#651: FILE: ui/input-keymap-atset1-to-qcode.c:231:
+  [0xe06f] = Q_KEY_CODE_UNMAPPED, /* atset1:57455 -> linux:112 (KEY_MACRO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#652: FILE: ui/input-keymap-atset1-to-qcode.c:232:
+  [0xe070] = Q_KEY_CODE_UNMAPPED, /* atset1:57456 -> linux:235 (KEY_DOCUMENTS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#653: FILE: ui/input-keymap-atset1-to-qcode.c:233:
+  [0xe071] = Q_KEY_CODE_UNMAPPED, /* atset1:57457 -> linux:236 (KEY_BATTERY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#654: FILE: ui/input-keymap-atset1-to-qcode.c:234:
+  [0xe072] = Q_KEY_CODE_UNMAPPED, /* atset1:57458 -> linux:237 (KEY_BLUETOOTH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#655: FILE: ui/input-keymap-atset1-to-qcode.c:235:
+  [0xe073] = Q_KEY_CODE_UNMAPPED, /* atset1:57459 -> linux:238 (KEY_WLAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#656: FILE: ui/input-keymap-atset1-to-qcode.c:236:
+  [0xe074] = Q_KEY_CODE_UNMAPPED, /* atset1:57460 -> linux:239 (KEY_UWB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#657: FILE: ui/input-keymap-atset1-to-qcode.c:237:
+  [0xe075] = Q_KEY_CODE_HELP, /* atset1:57461 -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */

ERROR: line over 90 characters
#658: FILE: ui/input-keymap-atset1-to-qcode.c:238:
+  [0xe076] = Q_KEY_CODE_UNMAPPED, /* atset1:57462 -> linux:179 (KEY_KPLEFTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#659: FILE: ui/input-keymap-atset1-to-qcode.c:239:
+  [0xe077] = Q_KEY_CODE_UNMAPPED, /* atset1:57463 -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#660: FILE: ui/input-keymap-atset1-to-qcode.c:240:
+  [0xe078] = Q_KEY_CODE_COPY, /* atset1:57464 -> linux:133 (KEY_COPY) -> qcode:Q_KEY_CODE_COPY (copy) */

ERROR: line over 90 characters
#661: FILE: ui/input-keymap-atset1-to-qcode.c:241:
+  [0xe079] = Q_KEY_CODE_UNMAPPED, /* atset1:57465 -> linux:192 (KEY_F22) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#662: FILE: ui/input-keymap-atset1-to-qcode.c:242:
+  [0xe07b] = Q_KEY_CODE_UNMAPPED, /* atset1:57467 -> linux:180 (KEY_KPRIGHTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#663: FILE: ui/input-keymap-atset1-to-qcode.c:243:
+  [0xe07d] = Q_KEY_CODE_UNMAPPED, /* atset1:57469 -> linux:162 (KEY_EJECTCLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#665: FILE: ui/input-keymap-atset1-to-qcode.c:245:
+const guint qemu_input_map_atset1_to_qcode_len = sizeof(qemu_input_map_atset1_to_qcode)/sizeof(qemu_input_map_atset1_to_qcode[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#665: FILE: ui/input-keymap-atset1-to-qcode.c:245:
+const guint qemu_input_map_atset1_to_qcode_len = sizeof(qemu_input_map_atset1_to_qcode)/sizeof(qemu_input_map_atset1_to_qcode[0]);
                                                                                        ^

ERROR: line over 90 characters
#674: FILE: ui/input-keymap-win32-to-qcode.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#676: FILE: ui/input-keymap-win32-to-qcode.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_win32_to_qcode code-map keymaps.csv win32 qcode

ERROR: line over 90 characters
#679: FILE: ui/input-keymap-win32-to-qcode.c:8:
+  [0x1] = Q_KEY_CODE_UNMAPPED, /* win32:1 (VK_LBUTTON) -> linux:256 (BTN_0) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#680: FILE: ui/input-keymap-win32-to-qcode.c:9:
+  [0x2] = Q_KEY_CODE_UNMAPPED, /* win32:2 (VK_RBUTTON) -> linux:257 (BTN_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#681: FILE: ui/input-keymap-win32-to-qcode.c:10:
+  [0x4] = Q_KEY_CODE_UNMAPPED, /* win32:4 (VK_MBUTTON) -> linux:258 (BTN_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#682: FILE: ui/input-keymap-win32-to-qcode.c:11:
+  [0x5] = Q_KEY_CODE_UNMAPPED, /* win32:5 (VK_XBUTTON1) -> linux:259 (BTN_3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#683: FILE: ui/input-keymap-win32-to-qcode.c:12:
+  [0x6] = Q_KEY_CODE_UNMAPPED, /* win32:6 (VK_XBUTTON2) -> linux:260 (BTN_4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#684: FILE: ui/input-keymap-win32-to-qcode.c:13:
+  [0x8] = Q_KEY_CODE_BACKSPACE, /* win32:8 (VK_BACK) -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */

ERROR: line over 90 characters
#685: FILE: ui/input-keymap-win32-to-qcode.c:14:
+  [0x9] = Q_KEY_CODE_TAB, /* win32:9 (VK_TAB) -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */

ERROR: line over 90 characters
#686: FILE: ui/input-keymap-win32-to-qcode.c:15:
+  [0xd] = Q_KEY_CODE_RET, /* win32:13 (VK_RETURN) -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */

ERROR: line over 90 characters
#687: FILE: ui/input-keymap-win32-to-qcode.c:16:
+  [0x10] = Q_KEY_CODE_SHIFT, /* win32:16 (VK_LSHIFT) -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */

ERROR: line over 90 characters
#688: FILE: ui/input-keymap-win32-to-qcode.c:17:
+  [0x11] = Q_KEY_CODE_CTRL, /* win32:17 (VK_CONTROL) -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */

ERROR: line over 90 characters
#689: FILE: ui/input-keymap-win32-to-qcode.c:18:
+  [0x12] = Q_KEY_CODE_ALT, /* win32:18 (VK_MENU) -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */

ERROR: line over 90 characters
#690: FILE: ui/input-keymap-win32-to-qcode.c:19:
+  [0x13] = Q_KEY_CODE_PAUSE, /* win32:19 (VK_PAUSE) -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */

ERROR: line over 90 characters
#691: FILE: ui/input-keymap-win32-to-qcode.c:20:
+  [0x14] = Q_KEY_CODE_CAPS_LOCK, /* win32:20 (VK_CAPITAL) -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */

ERROR: line over 90 characters
#692: FILE: ui/input-keymap-win32-to-qcode.c:21:
+  [0x15] = Q_KEY_CODE_UNMAPPED, /* win32:21 (VK_HANGEUL) -> linux:122 (KEY_HANGEUL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#693: FILE: ui/input-keymap-win32-to-qcode.c:22:
+  [0x19] = Q_KEY_CODE_UNMAPPED, /* win32:25 (VK_HANJA) -> linux:123 (KEY_HANJA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#694: FILE: ui/input-keymap-win32-to-qcode.c:23:
+  [0x1b] = Q_KEY_CODE_ESC, /* win32:27 (VK_ESCAPE) -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */

ERROR: line over 90 characters
#695: FILE: ui/input-keymap-win32-to-qcode.c:24:
+  [0x20] = Q_KEY_CODE_SPC, /* win32:32 (VK_SPACE) -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */

ERROR: line over 90 characters
#696: FILE: ui/input-keymap-win32-to-qcode.c:25:
+  [0x21] = Q_KEY_CODE_PGUP, /* win32:33 (VK_PRIOR) -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */

ERROR: line over 90 characters
#697: FILE: ui/input-keymap-win32-to-qcode.c:26:
+  [0x22] = Q_KEY_CODE_PGDN, /* win32:34 (VK_NEXT) -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */

ERROR: line over 90 characters
#698: FILE: ui/input-keymap-win32-to-qcode.c:27:
+  [0x23] = Q_KEY_CODE_END, /* win32:35 (VK_END) -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */

ERROR: line over 90 characters
#699: FILE: ui/input-keymap-win32-to-qcode.c:28:
+  [0x24] = Q_KEY_CODE_HOME, /* win32:36 (VK_HOME) -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */

ERROR: line over 90 characters
#700: FILE: ui/input-keymap-win32-to-qcode.c:29:
+  [0x25] = Q_KEY_CODE_LEFT, /* win32:37 (VK_LEFT) -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */

ERROR: line over 90 characters
#701: FILE: ui/input-keymap-win32-to-qcode.c:30:
+  [0x26] = Q_KEY_CODE_UP, /* win32:38 (VK_UP) -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */

ERROR: line over 90 characters
#702: FILE: ui/input-keymap-win32-to-qcode.c:31:
+  [0x27] = Q_KEY_CODE_RIGHT, /* win32:39 (VK_RIGHT) -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */

ERROR: line over 90 characters
#703: FILE: ui/input-keymap-win32-to-qcode.c:32:
+  [0x28] = Q_KEY_CODE_DOWN, /* win32:40 (VK_DOWN) -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */

ERROR: line over 90 characters
#704: FILE: ui/input-keymap-win32-to-qcode.c:33:
+  [0x29] = Q_KEY_CODE_UNMAPPED, /* win32:41 (VK_SELECT) -> linux:353 (KEY_SELECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#705: FILE: ui/input-keymap-win32-to-qcode.c:34:
+  [0x2a] = Q_KEY_CODE_UNMAPPED, /* win32:42 (VK_PRINT) -> linux:210 (KEY_PRINT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#706: FILE: ui/input-keymap-win32-to-qcode.c:35:
+  [0x2c] = Q_KEY_CODE_SYSRQ, /* win32:44 (VK_SNAPSHOT) -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */

ERROR: line over 90 characters
#707: FILE: ui/input-keymap-win32-to-qcode.c:36:
+  [0x2d] = Q_KEY_CODE_INSERT, /* win32:45 (VK_INSERT) -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */

ERROR: line over 90 characters
#708: FILE: ui/input-keymap-win32-to-qcode.c:37:
+  [0x2e] = Q_KEY_CODE_DELETE, /* win32:46 (VK_DELETE) -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */

ERROR: line over 90 characters
#709: FILE: ui/input-keymap-win32-to-qcode.c:38:
+  [0x2f] = Q_KEY_CODE_HELP, /* win32:47 (VK_HELP) -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */

ERROR: line over 90 characters
#710: FILE: ui/input-keymap-win32-to-qcode.c:39:
+  [0x30] = Q_KEY_CODE_0, /* win32:48 (VK_0) -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */

ERROR: line over 90 characters
#711: FILE: ui/input-keymap-win32-to-qcode.c:40:
+  [0x31] = Q_KEY_CODE_1, /* win32:49 (VK_1) -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */

ERROR: line over 90 characters
#712: FILE: ui/input-keymap-win32-to-qcode.c:41:
+  [0x32] = Q_KEY_CODE_2, /* win32:50 (VK_2) -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */

ERROR: line over 90 characters
#713: FILE: ui/input-keymap-win32-to-qcode.c:42:
+  [0x33] = Q_KEY_CODE_3, /* win32:51 (VK_3) -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */

ERROR: line over 90 characters
#714: FILE: ui/input-keymap-win32-to-qcode.c:43:
+  [0x34] = Q_KEY_CODE_4, /* win32:52 (VK_4) -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */

ERROR: line over 90 characters
#715: FILE: ui/input-keymap-win32-to-qcode.c:44:
+  [0x35] = Q_KEY_CODE_5, /* win32:53 (VK_5) -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */

ERROR: line over 90 characters
#716: FILE: ui/input-keymap-win32-to-qcode.c:45:
+  [0x36] = Q_KEY_CODE_6, /* win32:54 (VK_6) -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */

ERROR: line over 90 characters
#717: FILE: ui/input-keymap-win32-to-qcode.c:46:
+  [0x37] = Q_KEY_CODE_7, /* win32:55 (VK_7) -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */

ERROR: line over 90 characters
#718: FILE: ui/input-keymap-win32-to-qcode.c:47:
+  [0x38] = Q_KEY_CODE_8, /* win32:56 (VK_8) -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */

ERROR: line over 90 characters
#719: FILE: ui/input-keymap-win32-to-qcode.c:48:
+  [0x39] = Q_KEY_CODE_9, /* win32:57 (VK_9) -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */

ERROR: line over 90 characters
#720: FILE: ui/input-keymap-win32-to-qcode.c:49:
+  [0x41] = Q_KEY_CODE_A, /* win32:65 (VK_A) -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */

ERROR: line over 90 characters
#721: FILE: ui/input-keymap-win32-to-qcode.c:50:
+  [0x42] = Q_KEY_CODE_B, /* win32:66 (VK_B) -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */

ERROR: line over 90 characters
#722: FILE: ui/input-keymap-win32-to-qcode.c:51:
+  [0x43] = Q_KEY_CODE_C, /* win32:67 (VK_C) -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */

ERROR: line over 90 characters
#723: FILE: ui/input-keymap-win32-to-qcode.c:52:
+  [0x44] = Q_KEY_CODE_D, /* win32:68 (VK_D) -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */

ERROR: line over 90 characters
#724: FILE: ui/input-keymap-win32-to-qcode.c:53:
+  [0x45] = Q_KEY_CODE_E, /* win32:69 (VK_E) -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */

ERROR: line over 90 characters
#725: FILE: ui/input-keymap-win32-to-qcode.c:54:
+  [0x46] = Q_KEY_CODE_F, /* win32:70 (VK_F) -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */

ERROR: line over 90 characters
#726: FILE: ui/input-keymap-win32-to-qcode.c:55:
+  [0x47] = Q_KEY_CODE_G, /* win32:71 (VK_G) -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */

ERROR: line over 90 characters
#727: FILE: ui/input-keymap-win32-to-qcode.c:56:
+  [0x48] = Q_KEY_CODE_H, /* win32:72 (VK_H) -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */

ERROR: line over 90 characters
#728: FILE: ui/input-keymap-win32-to-qcode.c:57:
+  [0x49] = Q_KEY_CODE_I, /* win32:73 (VK_I) -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */

ERROR: line over 90 characters
#729: FILE: ui/input-keymap-win32-to-qcode.c:58:
+  [0x4a] = Q_KEY_CODE_J, /* win32:74 (VK_J) -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */

ERROR: line over 90 characters
#730: FILE: ui/input-keymap-win32-to-qcode.c:59:
+  [0x4b] = Q_KEY_CODE_K, /* win32:75 (VK_K) -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */

ERROR: line over 90 characters
#731: FILE: ui/input-keymap-win32-to-qcode.c:60:
+  [0x4c] = Q_KEY_CODE_L, /* win32:76 (VK_L) -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */

ERROR: line over 90 characters
#732: FILE: ui/input-keymap-win32-to-qcode.c:61:
+  [0x4d] = Q_KEY_CODE_M, /* win32:77 (VK_M) -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */

ERROR: line over 90 characters
#733: FILE: ui/input-keymap-win32-to-qcode.c:62:
+  [0x4e] = Q_KEY_CODE_N, /* win32:78 (VK_N) -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */

ERROR: line over 90 characters
#734: FILE: ui/input-keymap-win32-to-qcode.c:63:
+  [0x4f] = Q_KEY_CODE_O, /* win32:79 (VK_O) -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */

ERROR: line over 90 characters
#735: FILE: ui/input-keymap-win32-to-qcode.c:64:
+  [0x50] = Q_KEY_CODE_P, /* win32:80 (VK_P) -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */

ERROR: line over 90 characters
#736: FILE: ui/input-keymap-win32-to-qcode.c:65:
+  [0x51] = Q_KEY_CODE_Q, /* win32:81 (VK_Q) -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */

ERROR: line over 90 characters
#737: FILE: ui/input-keymap-win32-to-qcode.c:66:
+  [0x52] = Q_KEY_CODE_R, /* win32:82 (VK_R) -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */

ERROR: line over 90 characters
#738: FILE: ui/input-keymap-win32-to-qcode.c:67:
+  [0x53] = Q_KEY_CODE_S, /* win32:83 (VK_S) -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */

ERROR: line over 90 characters
#739: FILE: ui/input-keymap-win32-to-qcode.c:68:
+  [0x54] = Q_KEY_CODE_T, /* win32:84 (VK_T) -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */

ERROR: line over 90 characters
#740: FILE: ui/input-keymap-win32-to-qcode.c:69:
+  [0x55] = Q_KEY_CODE_U, /* win32:85 (VK_U) -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */

ERROR: line over 90 characters
#741: FILE: ui/input-keymap-win32-to-qcode.c:70:
+  [0x56] = Q_KEY_CODE_V, /* win32:86 (VK_V) -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */

ERROR: line over 90 characters
#742: FILE: ui/input-keymap-win32-to-qcode.c:71:
+  [0x57] = Q_KEY_CODE_W, /* win32:87 (VK_W) -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */

ERROR: line over 90 characters
#743: FILE: ui/input-keymap-win32-to-qcode.c:72:
+  [0x58] = Q_KEY_CODE_X, /* win32:88 (VK_X) -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */

ERROR: line over 90 characters
#744: FILE: ui/input-keymap-win32-to-qcode.c:73:
+  [0x59] = Q_KEY_CODE_Y, /* win32:89 (VK_Y) -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */

ERROR: line over 90 characters
#745: FILE: ui/input-keymap-win32-to-qcode.c:74:
+  [0x5a] = Q_KEY_CODE_Z, /* win32:90 (VK_Z) -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */

ERROR: line over 90 characters
#746: FILE: ui/input-keymap-win32-to-qcode.c:75:
+  [0x5b] = Q_KEY_CODE_META_L, /* win32:91 (VK_LWIN) -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */

ERROR: line over 90 characters
#747: FILE: ui/input-keymap-win32-to-qcode.c:76:
+  [0x5c] = Q_KEY_CODE_META_R, /* win32:92 (VK_RWIN) -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */

ERROR: line over 90 characters
#748: FILE: ui/input-keymap-win32-to-qcode.c:77:
+  [0x5d] = Q_KEY_CODE_COMPOSE, /* win32:93 (VK_APPS) -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */

ERROR: line over 90 characters
#749: FILE: ui/input-keymap-win32-to-qcode.c:78:
+  [0x5f] = Q_KEY_CODE_SLEEP, /* win32:95 (VK_SLEEP) -> linux:142 (KEY_SLEEP) -> qcode:Q_KEY_CODE_SLEEP (sleep) */

ERROR: line over 90 characters
#750: FILE: ui/input-keymap-win32-to-qcode.c:79:
+  [0x60] = Q_KEY_CODE_KP_0, /* win32:96 (VK_NUMPAD0) -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */

ERROR: line over 90 characters
#751: FILE: ui/input-keymap-win32-to-qcode.c:80:
+  [0x61] = Q_KEY_CODE_KP_1, /* win32:97 (VK_NUMPAD1) -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */

ERROR: line over 90 characters
#752: FILE: ui/input-keymap-win32-to-qcode.c:81:
+  [0x62] = Q_KEY_CODE_KP_2, /* win32:98 (VK_NUMPAD2) -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */

ERROR: line over 90 characters
#753: FILE: ui/input-keymap-win32-to-qcode.c:82:
+  [0x63] = Q_KEY_CODE_KP_3, /* win32:99 (VK_NUMPAD3) -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */

ERROR: line over 90 characters
#754: FILE: ui/input-keymap-win32-to-qcode.c:83:
+  [0x64] = Q_KEY_CODE_KP_4, /* win32:100 (VK_NUMPAD4) -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */

ERROR: line over 90 characters
#755: FILE: ui/input-keymap-win32-to-qcode.c:84:
+  [0x65] = Q_KEY_CODE_KP_5, /* win32:101 (VK_NUMPAD5) -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */

ERROR: line over 90 characters
#756: FILE: ui/input-keymap-win32-to-qcode.c:85:
+  [0x66] = Q_KEY_CODE_KP_6, /* win32:102 (VK_NUMPAD6) -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */

ERROR: line over 90 characters
#757: FILE: ui/input-keymap-win32-to-qcode.c:86:
+  [0x67] = Q_KEY_CODE_KP_7, /* win32:103 (VK_NUMPAD7) -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */

ERROR: line over 90 characters
#758: FILE: ui/input-keymap-win32-to-qcode.c:87:
+  [0x68] = Q_KEY_CODE_KP_8, /* win32:104 (VK_NUMPAD8) -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */

ERROR: line over 90 characters
#759: FILE: ui/input-keymap-win32-to-qcode.c:88:
+  [0x69] = Q_KEY_CODE_KP_9, /* win32:105 (VK_NUMPAD9) -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */

ERROR: line over 90 characters
#760: FILE: ui/input-keymap-win32-to-qcode.c:89:
+  [0x6a] = Q_KEY_CODE_KP_MULTIPLY, /* win32:106 (VK_MULTIPLY) -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */

ERROR: line over 90 characters
#761: FILE: ui/input-keymap-win32-to-qcode.c:90:
+  [0x6b] = Q_KEY_CODE_KP_ADD, /* win32:107 (VK_ADD) -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */

ERROR: line over 90 characters
#762: FILE: ui/input-keymap-win32-to-qcode.c:91:
+  [0x6c] = Q_KEY_CODE_KP_COMMA, /* win32:108 (VK_SEPARATOR??) -> linux:121 (KEY_KPCOMMA) -> qcode:Q_KEY_CODE_KP_COMMA (kp_comma) */

ERROR: line over 90 characters
#763: FILE: ui/input-keymap-win32-to-qcode.c:92:
+  [0x6d] = Q_KEY_CODE_KP_SUBTRACT, /* win32:109 (VK_SUBTRACT) -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */

ERROR: line over 90 characters
#764: FILE: ui/input-keymap-win32-to-qcode.c:93:
+  [0x6e] = Q_KEY_CODE_KP_DECIMAL, /* win32:110 (VK_DECIMAL) -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */

ERROR: line over 90 characters
#765: FILE: ui/input-keymap-win32-to-qcode.c:94:
+  [0x6f] = Q_KEY_CODE_KP_DIVIDE, /* win32:111 (VK_DIVIDE) -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */

ERROR: line over 90 characters
#766: FILE: ui/input-keymap-win32-to-qcode.c:95:
+  [0x70] = Q_KEY_CODE_F1, /* win32:112 (VK_F1) -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */

ERROR: line over 90 characters
#767: FILE: ui/input-keymap-win32-to-qcode.c:96:
+  [0x71] = Q_KEY_CODE_F2, /* win32:113 (VK_F2) -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */

ERROR: line over 90 characters
#768: FILE: ui/input-keymap-win32-to-qcode.c:97:
+  [0x72] = Q_KEY_CODE_F3, /* win32:114 (VK_F3) -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */

ERROR: line over 90 characters
#769: FILE: ui/input-keymap-win32-to-qcode.c:98:
+  [0x73] = Q_KEY_CODE_F4, /* win32:115 (VK_F4) -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */

ERROR: line over 90 characters
#770: FILE: ui/input-keymap-win32-to-qcode.c:99:
+  [0x74] = Q_KEY_CODE_F5, /* win32:116 (VK_F5) -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */

ERROR: line over 90 characters
#771: FILE: ui/input-keymap-win32-to-qcode.c:100:
+  [0x75] = Q_KEY_CODE_F6, /* win32:117 (VK_F6) -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */

ERROR: line over 90 characters
#772: FILE: ui/input-keymap-win32-to-qcode.c:101:
+  [0x76] = Q_KEY_CODE_F7, /* win32:118 (VK_F7) -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */

ERROR: line over 90 characters
#773: FILE: ui/input-keymap-win32-to-qcode.c:102:
+  [0x77] = Q_KEY_CODE_F8, /* win32:119 (VK_F8) -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */

ERROR: line over 90 characters
#774: FILE: ui/input-keymap-win32-to-qcode.c:103:
+  [0x78] = Q_KEY_CODE_F9, /* win32:120 (VK_F9) -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */

ERROR: line over 90 characters
#775: FILE: ui/input-keymap-win32-to-qcode.c:104:
+  [0x79] = Q_KEY_CODE_F10, /* win32:121 (VK_F10) -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */

ERROR: line over 90 characters
#776: FILE: ui/input-keymap-win32-to-qcode.c:105:
+  [0x7a] = Q_KEY_CODE_F11, /* win32:122 (VK_F11) -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */

ERROR: line over 90 characters
#777: FILE: ui/input-keymap-win32-to-qcode.c:106:
+  [0x7b] = Q_KEY_CODE_F12, /* win32:123 (VK_F12) -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */

ERROR: line over 90 characters
#778: FILE: ui/input-keymap-win32-to-qcode.c:107:
+  [0x7c] = Q_KEY_CODE_UNMAPPED, /* win32:124 (VK_F13) -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#779: FILE: ui/input-keymap-win32-to-qcode.c:108:
+  [0x7d] = Q_KEY_CODE_UNMAPPED, /* win32:125 (VK_F14) -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#780: FILE: ui/input-keymap-win32-to-qcode.c:109:
+  [0x7e] = Q_KEY_CODE_UNMAPPED, /* win32:126 (VK_F15) -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#781: FILE: ui/input-keymap-win32-to-qcode.c:110:
+  [0x7f] = Q_KEY_CODE_UNMAPPED, /* win32:127 (VK_F16) -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#782: FILE: ui/input-keymap-win32-to-qcode.c:111:
+  [0x80] = Q_KEY_CODE_UNMAPPED, /* win32:128 (VK_F17) -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#783: FILE: ui/input-keymap-win32-to-qcode.c:112:
+  [0x81] = Q_KEY_CODE_UNMAPPED, /* win32:129 (VK_F18) -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#784: FILE: ui/input-keymap-win32-to-qcode.c:113:
+  [0x82] = Q_KEY_CODE_UNMAPPED, /* win32:130 (VK_F19) -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#785: FILE: ui/input-keymap-win32-to-qcode.c:114:
+  [0x83] = Q_KEY_CODE_UNMAPPED, /* win32:131 (VK_F20) -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#786: FILE: ui/input-keymap-win32-to-qcode.c:115:
+  [0x84] = Q_KEY_CODE_UNMAPPED, /* win32:132 (VK_F21) -> linux:191 (KEY_F21) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#787: FILE: ui/input-keymap-win32-to-qcode.c:116:
+  [0x85] = Q_KEY_CODE_UNMAPPED, /* win32:133 (VK_F22) -> linux:192 (KEY_F22) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#788: FILE: ui/input-keymap-win32-to-qcode.c:117:
+  [0x86] = Q_KEY_CODE_UNMAPPED, /* win32:134 (VK_F23) -> linux:193 (KEY_F23) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#789: FILE: ui/input-keymap-win32-to-qcode.c:118:
+  [0x87] = Q_KEY_CODE_UNMAPPED, /* win32:135 (VK_F24) -> linux:194 (KEY_F24) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#790: FILE: ui/input-keymap-win32-to-qcode.c:119:
+  [0x90] = Q_KEY_CODE_NUM_LOCK, /* win32:144 (VK_NUMLOCK) -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */

ERROR: line over 90 characters
#791: FILE: ui/input-keymap-win32-to-qcode.c:120:
+  [0x91] = Q_KEY_CODE_SCROLL_LOCK, /* win32:145 (VK_SCROLL) -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */

ERROR: line over 90 characters
#792: FILE: ui/input-keymap-win32-to-qcode.c:121:
+  [0xa0] = Q_KEY_CODE_SHIFT, /* win32:160 (VK_LSHIFT) -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */

ERROR: line over 90 characters
#793: FILE: ui/input-keymap-win32-to-qcode.c:122:
+  [0xa1] = Q_KEY_CODE_SHIFT_R, /* win32:161 (VK_RSHIFT) -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */

ERROR: line over 90 characters
#794: FILE: ui/input-keymap-win32-to-qcode.c:123:
+  [0xa2] = Q_KEY_CODE_CTRL, /* win32:162 (VK_CONTROL) -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */

ERROR: line over 90 characters
#795: FILE: ui/input-keymap-win32-to-qcode.c:124:
+  [0xa3] = Q_KEY_CODE_CTRL_R, /* win32:163 (VK_RCONTROL) -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */

ERROR: line over 90 characters
#796: FILE: ui/input-keymap-win32-to-qcode.c:125:
+  [0xa4] = Q_KEY_CODE_ALT, /* win32:164 (VK_MENU) -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */

ERROR: line over 90 characters
#797: FILE: ui/input-keymap-win32-to-qcode.c:126:
+  [0xa5] = Q_KEY_CODE_ALT_R, /* win32:165 (VK_RMENU) -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */

ERROR: line over 90 characters
#798: FILE: ui/input-keymap-win32-to-qcode.c:127:
+  [0xa6] = Q_KEY_CODE_AC_BACK, /* win32:166 (VK_BROWSER_BACK) -> linux:158 (KEY_BACK) -> qcode:Q_KEY_CODE_AC_BACK (ac_back) */

ERROR: line over 90 characters
#799: FILE: ui/input-keymap-win32-to-qcode.c:128:
+  [0xa7] = Q_KEY_CODE_AC_FORWARD, /* win32:167 (VK_BROWSER_FORWARD) -> linux:159 (KEY_FORWARD) -> qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) */

ERROR: line over 90 characters
#800: FILE: ui/input-keymap-win32-to-qcode.c:129:
+  [0xa8] = Q_KEY_CODE_AC_REFRESH, /* win32:168 (VK_BROWSER_REFRESH) -> linux:173 (KEY_REFRESH) -> qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) */

ERROR: line over 90 characters
#801: FILE: ui/input-keymap-win32-to-qcode.c:130:
+  [0xa9] = Q_KEY_CODE_STOP, /* win32:169 (VK_BROWSER_STOP) -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */

ERROR: line over 90 characters
#802: FILE: ui/input-keymap-win32-to-qcode.c:131:
+  [0xaa] = Q_KEY_CODE_UNMAPPED, /* win32:170 (VK_BROWSER_SEARCH) -> linux:217 (KEY_SEARCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#803: FILE: ui/input-keymap-win32-to-qcode.c:132:
+  [0xab] = Q_KEY_CODE_UNMAPPED, /* win32:171 (VK_BROWSER_FAVOURITES) -> linux:364 (KEY_FAVORITES) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#804: FILE: ui/input-keymap-win32-to-qcode.c:133:
+  [0xac] = Q_KEY_CODE_AC_HOME, /* win32:172 (VK_BROWSER_HOME) -> linux:172 (KEY_HOMEPAGE) -> qcode:Q_KEY_CODE_AC_HOME (ac_home) */

ERROR: line over 90 characters
#805: FILE: ui/input-keymap-win32-to-qcode.c:134:
+  [0xad] = Q_KEY_CODE_AUDIOMUTE, /* win32:173 (VK_VOLUME_MUTE) -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */

ERROR: line over 90 characters
#806: FILE: ui/input-keymap-win32-to-qcode.c:135:
+  [0xae] = Q_KEY_CODE_VOLUMEDOWN, /* win32:174 (VK_VOLUME_DOWN) -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */

ERROR: line over 90 characters
#807: FILE: ui/input-keymap-win32-to-qcode.c:136:
+  [0xaf] = Q_KEY_CODE_VOLUMEUP, /* win32:175 (VK_VOLUME_UP) -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */

ERROR: line over 90 characters
#808: FILE: ui/input-keymap-win32-to-qcode.c:137:
+  [0xb0] = Q_KEY_CODE_AUDIONEXT, /* win32:176 (VK_MEDIA_NEXT_TRACK) -> linux:163 (KEY_NEXTSONG) -> qcode:Q_KEY_CODE_AUDIONEXT (audionext) */

ERROR: line over 90 characters
#809: FILE: ui/input-keymap-win32-to-qcode.c:138:
+  [0xb1] = Q_KEY_CODE_AUDIOPREV, /* win32:177 (VK_MEDIA_PREV_TRACK) -> linux:165 (KEY_PREVIOUSSONG) -> qcode:Q_KEY_CODE_AUDIOPREV (audioprev) */

ERROR: line over 90 characters
#810: FILE: ui/input-keymap-win32-to-qcode.c:139:
+  [0xb2] = Q_KEY_CODE_AUDIOSTOP, /* win32:178 (VK_MEDIA_STOP) -> linux:166 (KEY_STOPCD) -> qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) */

ERROR: line over 90 characters
#811: FILE: ui/input-keymap-win32-to-qcode.c:140:
+  [0xb3] = Q_KEY_CODE_AUDIOPLAY, /* win32:179 (VK_MEDIA_PLAY_PAUSE) -> linux:164 (KEY_PLAYPAUSE) -> qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) */

ERROR: line over 90 characters
#812: FILE: ui/input-keymap-win32-to-qcode.c:141:
+  [0xb4] = Q_KEY_CODE_UNMAPPED, /* win32:180 (VK_LAUNCH_MAIL) -> linux:215 (KEY_EMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#813: FILE: ui/input-keymap-win32-to-qcode.c:142:
+  [0xba] = Q_KEY_CODE_SEMICOLON, /* win32:186 (VK_OEM_1) -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */

ERROR: line over 90 characters
#814: FILE: ui/input-keymap-win32-to-qcode.c:143:
+  [0xbb] = Q_KEY_CODE_EQUAL, /* win32:187 (VK_OEM_PLUS) -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */

ERROR: line over 90 characters
#815: FILE: ui/input-keymap-win32-to-qcode.c:144:
+  [0xbc] = Q_KEY_CODE_COMMA, /* win32:188 (VK_OEM_COMMA) -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */

ERROR: line over 90 characters
#816: FILE: ui/input-keymap-win32-to-qcode.c:145:
+  [0xbd] = Q_KEY_CODE_MINUS, /* win32:189 (VK_OEM_MINUS) -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */

ERROR: line over 90 characters
#817: FILE: ui/input-keymap-win32-to-qcode.c:146:
+  [0xbe] = Q_KEY_CODE_DOT, /* win32:190 (VK_OEM_PERIOD) -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */

ERROR: line over 90 characters
#818: FILE: ui/input-keymap-win32-to-qcode.c:147:
+  [0xbf] = Q_KEY_CODE_SLASH, /* win32:191 (VK_OEM_2) -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */

ERROR: line over 90 characters
#819: FILE: ui/input-keymap-win32-to-qcode.c:148:
+  [0xc0] = Q_KEY_CODE_GRAVE_ACCENT, /* win32:192 (VK_OEM_3) -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */

ERROR: line over 90 characters
#820: FILE: ui/input-keymap-win32-to-qcode.c:149:
+  [0xdb] = Q_KEY_CODE_BRACKET_LEFT, /* win32:219 (VK_OEM_4) -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */

ERROR: line over 90 characters
#821: FILE: ui/input-keymap-win32-to-qcode.c:150:
+  [0xdc] = Q_KEY_CODE_BACKSLASH, /* win32:220 (VK_OEM_5) -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

ERROR: line over 90 characters
#822: FILE: ui/input-keymap-win32-to-qcode.c:151:
+  [0xdd] = Q_KEY_CODE_BRACKET_RIGHT, /* win32:221 (VK_OEM_6) -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */

ERROR: line over 90 characters
#823: FILE: ui/input-keymap-win32-to-qcode.c:152:
+  [0xde] = Q_KEY_CODE_APOSTROPHE, /* win32:222 (VK_OEM_7) -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */

ERROR: line over 90 characters
#824: FILE: ui/input-keymap-win32-to-qcode.c:153:
+  [0xe1] = Q_KEY_CODE_LESS, /* win32:225 (VK_OEM_102) -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */

ERROR: line over 90 characters
#825: FILE: ui/input-keymap-win32-to-qcode.c:154:
+  [0xfa] = Q_KEY_CODE_UNMAPPED, /* win32:250 (VK_PLAY) -> linux:207 (KEY_PLAY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#826: FILE: ui/input-keymap-win32-to-qcode.c:155:
+  [0xfb] = Q_KEY_CODE_UNMAPPED, /* win32:251 (VK_ZOOM) -> linux:372 (KEY_ZOOM) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#828: FILE: ui/input-keymap-win32-to-qcode.c:157:
+const guint qemu_input_map_win32_to_qcode_len = sizeof(qemu_input_map_win32_to_qcode)/sizeof(qemu_input_map_win32_to_qcode[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#828: FILE: ui/input-keymap-win32-to-qcode.c:157:
+const guint qemu_input_map_win32_to_qcode_len = sizeof(qemu_input_map_win32_to_qcode)/sizeof(qemu_input_map_win32_to_qcode[0]);
                                                                                      ^

ERROR: line over 90 characters
#837: FILE: ui/input-keymap-x11-to-qcode.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#839: FILE: ui/input-keymap-x11-to-qcode.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_x11_to_qcode code-map keymaps.csv x11 qcode

ERROR: line over 90 characters
#842: FILE: ui/input-keymap-x11-to-qcode.c:8:
+  [0x20] = Q_KEY_CODE_SPC, /* x11:32 (XK_space) -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */

ERROR: line over 90 characters
#843: FILE: ui/input-keymap-x11-to-qcode.c:9:
+  [0x21] = Q_KEY_CODE_1, /* x11:33 (XK_exclam) -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */

ERROR: line over 90 characters
#844: FILE: ui/input-keymap-x11-to-qcode.c:10:
+  [0x22] = Q_KEY_CODE_APOSTROPHE, /* x11:34 (XK_quotedbl) -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */

ERROR: line over 90 characters
#845: FILE: ui/input-keymap-x11-to-qcode.c:11:
+  [0x23] = Q_KEY_CODE_3, /* x11:35 (XK_numbersign) -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */

ERROR: line over 90 characters
#846: FILE: ui/input-keymap-x11-to-qcode.c:12:
+  [0x24] = Q_KEY_CODE_4, /* x11:36 (XK_dollar) -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */

ERROR: line over 90 characters
#847: FILE: ui/input-keymap-x11-to-qcode.c:13:
+  [0x25] = Q_KEY_CODE_5, /* x11:37 (XK_percent) -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */

ERROR: line over 90 characters
#848: FILE: ui/input-keymap-x11-to-qcode.c:14:
+  [0x26] = Q_KEY_CODE_7, /* x11:38 (XK_ampersand) -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */

ERROR: line over 90 characters
#849: FILE: ui/input-keymap-x11-to-qcode.c:15:
+  [0x27] = Q_KEY_CODE_APOSTROPHE, /* x11:39 (XK_quotedbl) -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */

ERROR: line over 90 characters
#850: FILE: ui/input-keymap-x11-to-qcode.c:16:
+  [0x28] = Q_KEY_CODE_9, /* x11:40 (XK_parenleft) -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */

ERROR: line over 90 characters
#851: FILE: ui/input-keymap-x11-to-qcode.c:17:
+  [0x29] = Q_KEY_CODE_0, /* x11:41 (XK_parenright) -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */

ERROR: line over 90 characters
#852: FILE: ui/input-keymap-x11-to-qcode.c:18:
+  [0x2a] = Q_KEY_CODE_8, /* x11:42 (XK_asterisk) -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */

ERROR: line over 90 characters
#853: FILE: ui/input-keymap-x11-to-qcode.c:19:
+  [0x2b] = Q_KEY_CODE_EQUAL, /* x11:43 (XK_plus) -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */

ERROR: line over 90 characters
#854: FILE: ui/input-keymap-x11-to-qcode.c:20:
+  [0x2c] = Q_KEY_CODE_COMMA, /* x11:44 (XK_less) -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */

ERROR: line over 90 characters
#855: FILE: ui/input-keymap-x11-to-qcode.c:21:
+  [0x2d] = Q_KEY_CODE_MINUS, /* x11:45 (XK_underscore) -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */

ERROR: line over 90 characters
#856: FILE: ui/input-keymap-x11-to-qcode.c:22:
+  [0x2e] = Q_KEY_CODE_DOT, /* x11:46 (XK_greater) -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */

ERROR: line over 90 characters
#857: FILE: ui/input-keymap-x11-to-qcode.c:23:
+  [0x2f] = Q_KEY_CODE_SLASH, /* x11:47 (XK_question) -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */

ERROR: line over 90 characters
#858: FILE: ui/input-keymap-x11-to-qcode.c:24:
+  [0x30] = Q_KEY_CODE_0, /* x11:48 (XK_parenright) -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */

ERROR: line over 90 characters
#859: FILE: ui/input-keymap-x11-to-qcode.c:25:
+  [0x31] = Q_KEY_CODE_1, /* x11:49 (XK_exclam) -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */

WARNING: line over 80 characters
#860: FILE: ui/input-keymap-x11-to-qcode.c:26:
+  [0x32] = Q_KEY_CODE_2, /* x11:50 (XK_at) -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */

ERROR: line over 90 characters
#861: FILE: ui/input-keymap-x11-to-qcode.c:27:
+  [0x33] = Q_KEY_CODE_3, /* x11:51 (XK_numbersign) -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */

ERROR: line over 90 characters
#862: FILE: ui/input-keymap-x11-to-qcode.c:28:
+  [0x34] = Q_KEY_CODE_4, /* x11:52 (XK_dollar) -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */

ERROR: line over 90 characters
#863: FILE: ui/input-keymap-x11-to-qcode.c:29:
+  [0x35] = Q_KEY_CODE_5, /* x11:53 (XK_percent) -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */

ERROR: line over 90 characters
#864: FILE: ui/input-keymap-x11-to-qcode.c:30:
+  [0x36] = Q_KEY_CODE_6, /* x11:54 (XK_asciicircum) -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */

ERROR: line over 90 characters
#865: FILE: ui/input-keymap-x11-to-qcode.c:31:
+  [0x37] = Q_KEY_CODE_7, /* x11:55 (XK_ampersand) -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */

ERROR: line over 90 characters
#866: FILE: ui/input-keymap-x11-to-qcode.c:32:
+  [0x38] = Q_KEY_CODE_8, /* x11:56 (XK_asterisk) -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */

ERROR: line over 90 characters
#867: FILE: ui/input-keymap-x11-to-qcode.c:33:
+  [0x39] = Q_KEY_CODE_9, /* x11:57 (XK_parenleft) -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */

ERROR: line over 90 characters
#868: FILE: ui/input-keymap-x11-to-qcode.c:34:
+  [0x3a] = Q_KEY_CODE_SEMICOLON, /* x11:58 (XK_colon) -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */

ERROR: line over 90 characters
#869: FILE: ui/input-keymap-x11-to-qcode.c:35:
+  [0x3b] = Q_KEY_CODE_SEMICOLON, /* x11:59 (XK_colon) -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */

ERROR: line over 90 characters
#870: FILE: ui/input-keymap-x11-to-qcode.c:36:
+  [0x3c] = Q_KEY_CODE_COMMA, /* x11:60 (XK_less) -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */

ERROR: line over 90 characters
#871: FILE: ui/input-keymap-x11-to-qcode.c:37:
+  [0x3d] = Q_KEY_CODE_EQUAL, /* x11:61 (XK_plus) -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */

ERROR: line over 90 characters
#872: FILE: ui/input-keymap-x11-to-qcode.c:38:
+  [0x3e] = Q_KEY_CODE_DOT, /* x11:62 (XK_greater) -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */

ERROR: line over 90 characters
#873: FILE: ui/input-keymap-x11-to-qcode.c:39:
+  [0x3f] = Q_KEY_CODE_SLASH, /* x11:63 (XK_question) -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */

WARNING: line over 80 characters
#874: FILE: ui/input-keymap-x11-to-qcode.c:40:
+  [0x40] = Q_KEY_CODE_2, /* x11:64 (XK_at) -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */

WARNING: line over 80 characters
#875: FILE: ui/input-keymap-x11-to-qcode.c:41:
+  [0x41] = Q_KEY_CODE_A, /* x11:65 (XK_a) -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */

WARNING: line over 80 characters
#876: FILE: ui/input-keymap-x11-to-qcode.c:42:
+  [0x42] = Q_KEY_CODE_B, /* x11:66 (XK_b) -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */

WARNING: line over 80 characters
#877: FILE: ui/input-keymap-x11-to-qcode.c:43:
+  [0x43] = Q_KEY_CODE_C, /* x11:67 (XK_c) -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */

WARNING: line over 80 characters
#878: FILE: ui/input-keymap-x11-to-qcode.c:44:
+  [0x44] = Q_KEY_CODE_D, /* x11:68 (XK_d) -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */

WARNING: line over 80 characters
#879: FILE: ui/input-keymap-x11-to-qcode.c:45:
+  [0x45] = Q_KEY_CODE_E, /* x11:69 (XK_e) -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */

WARNING: line over 80 characters
#880: FILE: ui/input-keymap-x11-to-qcode.c:46:
+  [0x46] = Q_KEY_CODE_F, /* x11:70 (XK_f) -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */

WARNING: line over 80 characters
#881: FILE: ui/input-keymap-x11-to-qcode.c:47:
+  [0x47] = Q_KEY_CODE_G, /* x11:71 (XK_g) -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */

WARNING: line over 80 characters
#882: FILE: ui/input-keymap-x11-to-qcode.c:48:
+  [0x48] = Q_KEY_CODE_H, /* x11:72 (XK_h) -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */

WARNING: line over 80 characters
#883: FILE: ui/input-keymap-x11-to-qcode.c:49:
+  [0x49] = Q_KEY_CODE_I, /* x11:73 (XK_i) -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */

WARNING: line over 80 characters
#884: FILE: ui/input-keymap-x11-to-qcode.c:50:
+  [0x4a] = Q_KEY_CODE_J, /* x11:74 (XK_j) -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */

WARNING: line over 80 characters
#885: FILE: ui/input-keymap-x11-to-qcode.c:51:
+  [0x4b] = Q_KEY_CODE_K, /* x11:75 (XK_k) -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */

WARNING: line over 80 characters
#886: FILE: ui/input-keymap-x11-to-qcode.c:52:
+  [0x4c] = Q_KEY_CODE_L, /* x11:76 (XK_l) -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */

WARNING: line over 80 characters
#887: FILE: ui/input-keymap-x11-to-qcode.c:53:
+  [0x4d] = Q_KEY_CODE_M, /* x11:77 (XK_m) -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */

WARNING: line over 80 characters
#888: FILE: ui/input-keymap-x11-to-qcode.c:54:
+  [0x4e] = Q_KEY_CODE_N, /* x11:78 (XK_n) -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */

WARNING: line over 80 characters
#889: FILE: ui/input-keymap-x11-to-qcode.c:55:
+  [0x4f] = Q_KEY_CODE_O, /* x11:79 (XK_o) -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */

WARNING: line over 80 characters
#890: FILE: ui/input-keymap-x11-to-qcode.c:56:
+  [0x50] = Q_KEY_CODE_P, /* x11:80 (XK_p) -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */

WARNING: line over 80 characters
#891: FILE: ui/input-keymap-x11-to-qcode.c:57:
+  [0x51] = Q_KEY_CODE_Q, /* x11:81 (XK_q) -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */

WARNING: line over 80 characters
#892: FILE: ui/input-keymap-x11-to-qcode.c:58:
+  [0x52] = Q_KEY_CODE_R, /* x11:82 (XK_r) -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */

WARNING: line over 80 characters
#893: FILE: ui/input-keymap-x11-to-qcode.c:59:
+  [0x53] = Q_KEY_CODE_S, /* x11:83 (XK_s) -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */

WARNING: line over 80 characters
#894: FILE: ui/input-keymap-x11-to-qcode.c:60:
+  [0x54] = Q_KEY_CODE_T, /* x11:84 (XK_t) -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */

WARNING: line over 80 characters
#895: FILE: ui/input-keymap-x11-to-qcode.c:61:
+  [0x55] = Q_KEY_CODE_U, /* x11:85 (XK_u) -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */

WARNING: line over 80 characters
#896: FILE: ui/input-keymap-x11-to-qcode.c:62:
+  [0x56] = Q_KEY_CODE_V, /* x11:86 (XK_v) -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */

WARNING: line over 80 characters
#897: FILE: ui/input-keymap-x11-to-qcode.c:63:
+  [0x57] = Q_KEY_CODE_W, /* x11:87 (XK_w) -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */

WARNING: line over 80 characters
#898: FILE: ui/input-keymap-x11-to-qcode.c:64:
+  [0x58] = Q_KEY_CODE_X, /* x11:88 (XK_x) -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */

WARNING: line over 80 characters
#899: FILE: ui/input-keymap-x11-to-qcode.c:65:
+  [0x59] = Q_KEY_CODE_Y, /* x11:89 (XK_y) -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */

WARNING: line over 80 characters
#900: FILE: ui/input-keymap-x11-to-qcode.c:66:
+  [0x5a] = Q_KEY_CODE_Z, /* x11:90 (XK_z) -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */

ERROR: line over 90 characters
#901: FILE: ui/input-keymap-x11-to-qcode.c:67:
+  [0x5b] = Q_KEY_CODE_BRACKET_LEFT, /* x11:91 (XK_braceleft) -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */

ERROR: line over 90 characters
#902: FILE: ui/input-keymap-x11-to-qcode.c:68:
+  [0x5c] = Q_KEY_CODE_BACKSLASH, /* x11:92 (XK_bar) -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

ERROR: line over 90 characters
#903: FILE: ui/input-keymap-x11-to-qcode.c:69:
+  [0x5d] = Q_KEY_CODE_BRACKET_RIGHT, /* x11:93 (XK_braceright) -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */

ERROR: line over 90 characters
#904: FILE: ui/input-keymap-x11-to-qcode.c:70:
+  [0x5e] = Q_KEY_CODE_6, /* x11:94 (XK_asciicircum) -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */

ERROR: line over 90 characters
#905: FILE: ui/input-keymap-x11-to-qcode.c:71:
+  [0x5f] = Q_KEY_CODE_MINUS, /* x11:95 (XK_underscore) -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */

ERROR: line over 90 characters
#906: FILE: ui/input-keymap-x11-to-qcode.c:72:
+  [0x60] = Q_KEY_CODE_GRAVE_ACCENT, /* x11:96 (XK_asciitilde) -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */

WARNING: line over 80 characters
#907: FILE: ui/input-keymap-x11-to-qcode.c:73:
+  [0x61] = Q_KEY_CODE_A, /* x11:97 (XK_a) -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */

WARNING: line over 80 characters
#908: FILE: ui/input-keymap-x11-to-qcode.c:74:
+  [0x62] = Q_KEY_CODE_B, /* x11:98 (XK_b) -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */

WARNING: line over 80 characters
#909: FILE: ui/input-keymap-x11-to-qcode.c:75:
+  [0x63] = Q_KEY_CODE_C, /* x11:99 (XK_c) -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */

ERROR: line over 90 characters
#910: FILE: ui/input-keymap-x11-to-qcode.c:76:
+  [0x64] = Q_KEY_CODE_D, /* x11:100 (XK_d) -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */

ERROR: line over 90 characters
#911: FILE: ui/input-keymap-x11-to-qcode.c:77:
+  [0x65] = Q_KEY_CODE_E, /* x11:101 (XK_e) -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */

ERROR: line over 90 characters
#912: FILE: ui/input-keymap-x11-to-qcode.c:78:
+  [0x66] = Q_KEY_CODE_F, /* x11:102 (XK_f) -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */

ERROR: line over 90 characters
#913: FILE: ui/input-keymap-x11-to-qcode.c:79:
+  [0x67] = Q_KEY_CODE_G, /* x11:103 (XK_g) -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */

ERROR: line over 90 characters
#914: FILE: ui/input-keymap-x11-to-qcode.c:80:
+  [0x68] = Q_KEY_CODE_H, /* x11:104 (XK_h) -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */

ERROR: line over 90 characters
#915: FILE: ui/input-keymap-x11-to-qcode.c:81:
+  [0x69] = Q_KEY_CODE_I, /* x11:105 (XK_i) -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */

ERROR: line over 90 characters
#916: FILE: ui/input-keymap-x11-to-qcode.c:82:
+  [0x6a] = Q_KEY_CODE_J, /* x11:106 (XK_j) -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */

ERROR: line over 90 characters
#917: FILE: ui/input-keymap-x11-to-qcode.c:83:
+  [0x6b] = Q_KEY_CODE_K, /* x11:107 (XK_k) -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */

ERROR: line over 90 characters
#918: FILE: ui/input-keymap-x11-to-qcode.c:84:
+  [0x6c] = Q_KEY_CODE_L, /* x11:108 (XK_l) -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */

ERROR: line over 90 characters
#919: FILE: ui/input-keymap-x11-to-qcode.c:85:
+  [0x6d] = Q_KEY_CODE_M, /* x11:109 (XK_m) -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */

ERROR: line over 90 characters
#920: FILE: ui/input-keymap-x11-to-qcode.c:86:
+  [0x6e] = Q_KEY_CODE_N, /* x11:110 (XK_n) -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */

ERROR: line over 90 characters
#921: FILE: ui/input-keymap-x11-to-qcode.c:87:
+  [0x6f] = Q_KEY_CODE_O, /* x11:111 (XK_o) -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */

ERROR: line over 90 characters
#922: FILE: ui/input-keymap-x11-to-qcode.c:88:
+  [0x70] = Q_KEY_CODE_P, /* x11:112 (XK_p) -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */

ERROR: line over 90 characters
#923: FILE: ui/input-keymap-x11-to-qcode.c:89:
+  [0x71] = Q_KEY_CODE_Q, /* x11:113 (XK_q) -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */

ERROR: line over 90 characters
#924: FILE: ui/input-keymap-x11-to-qcode.c:90:
+  [0x72] = Q_KEY_CODE_R, /* x11:114 (XK_r) -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */

ERROR: line over 90 characters
#925: FILE: ui/input-keymap-x11-to-qcode.c:91:
+  [0x73] = Q_KEY_CODE_S, /* x11:115 (XK_s) -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */

ERROR: line over 90 characters
#926: FILE: ui/input-keymap-x11-to-qcode.c:92:
+  [0x74] = Q_KEY_CODE_T, /* x11:116 (XK_t) -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */

ERROR: line over 90 characters
#927: FILE: ui/input-keymap-x11-to-qcode.c:93:
+  [0x75] = Q_KEY_CODE_U, /* x11:117 (XK_u) -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */

ERROR: line over 90 characters
#928: FILE: ui/input-keymap-x11-to-qcode.c:94:
+  [0x76] = Q_KEY_CODE_V, /* x11:118 (XK_v) -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */

ERROR: line over 90 characters
#929: FILE: ui/input-keymap-x11-to-qcode.c:95:
+  [0x77] = Q_KEY_CODE_W, /* x11:119 (XK_w) -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */

ERROR: line over 90 characters
#930: FILE: ui/input-keymap-x11-to-qcode.c:96:
+  [0x78] = Q_KEY_CODE_X, /* x11:120 (XK_x) -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */

ERROR: line over 90 characters
#931: FILE: ui/input-keymap-x11-to-qcode.c:97:
+  [0x79] = Q_KEY_CODE_Y, /* x11:121 (XK_y) -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */

ERROR: line over 90 characters
#932: FILE: ui/input-keymap-x11-to-qcode.c:98:
+  [0x7a] = Q_KEY_CODE_Z, /* x11:122 (XK_z) -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */

ERROR: line over 90 characters
#933: FILE: ui/input-keymap-x11-to-qcode.c:99:
+  [0x7b] = Q_KEY_CODE_BRACKET_LEFT, /* x11:123 (XK_braceleft) -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */

ERROR: line over 90 characters
#934: FILE: ui/input-keymap-x11-to-qcode.c:100:
+  [0x7c] = Q_KEY_CODE_BACKSLASH, /* x11:124 (XK_bar) -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

ERROR: line over 90 characters
#935: FILE: ui/input-keymap-x11-to-qcode.c:101:
+  [0x7d] = Q_KEY_CODE_BRACKET_RIGHT, /* x11:125 (XK_braceright) -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */

ERROR: line over 90 characters
#936: FILE: ui/input-keymap-x11-to-qcode.c:102:
+  [0x7e] = Q_KEY_CODE_GRAVE_ACCENT, /* x11:126 (XK_asciitilde) -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */

ERROR: line over 90 characters
#937: FILE: ui/input-keymap-x11-to-qcode.c:103:
+  [0xd7] = Q_KEY_CODE_KP_MULTIPLY, /* x11:215 (XK_multiply) -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */

ERROR: line over 90 characters
#938: FILE: ui/input-keymap-x11-to-qcode.c:104:
+  [0xff08] = Q_KEY_CODE_BACKSPACE, /* x11:65288 (XK_BackSpace) -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */

ERROR: line over 90 characters
#939: FILE: ui/input-keymap-x11-to-qcode.c:105:
+  [0xff09] = Q_KEY_CODE_TAB, /* x11:65289 (XK_Tab) -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */

ERROR: line over 90 characters
#940: FILE: ui/input-keymap-x11-to-qcode.c:106:
+  [0xff0d] = Q_KEY_CODE_RET, /* x11:65293 (XK_Return) -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */

ERROR: line over 90 characters
#941: FILE: ui/input-keymap-x11-to-qcode.c:107:
+  [0xff13] = Q_KEY_CODE_PAUSE, /* x11:65299 (XK_Pause) -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */

ERROR: line over 90 characters
#942: FILE: ui/input-keymap-x11-to-qcode.c:108:
+  [0xff14] = Q_KEY_CODE_SCROLL_LOCK, /* x11:65300 (XK_Scroll_Lock) -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */

ERROR: line over 90 characters
#943: FILE: ui/input-keymap-x11-to-qcode.c:109:
+  [0xff15] = Q_KEY_CODE_SYSRQ, /* x11:65301 (XK_Sys_Req) -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */

ERROR: line over 90 characters
#944: FILE: ui/input-keymap-x11-to-qcode.c:110:
+  [0xff1b] = Q_KEY_CODE_ESC, /* x11:65307 (XK_Escape) -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */

ERROR: line over 90 characters
#945: FILE: ui/input-keymap-x11-to-qcode.c:111:
+  [0xff50] = Q_KEY_CODE_HOME, /* x11:65360 (XK_Home) -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */

ERROR: line over 90 characters
#946: FILE: ui/input-keymap-x11-to-qcode.c:112:
+  [0xff51] = Q_KEY_CODE_LEFT, /* x11:65361 (XK_Left) -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */

ERROR: line over 90 characters
#947: FILE: ui/input-keymap-x11-to-qcode.c:113:
+  [0xff52] = Q_KEY_CODE_UP, /* x11:65362 (XK_Up) -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */

ERROR: line over 90 characters
#948: FILE: ui/input-keymap-x11-to-qcode.c:114:
+  [0xff53] = Q_KEY_CODE_RIGHT, /* x11:65363 (XK_Right) -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */

ERROR: line over 90 characters
#949: FILE: ui/input-keymap-x11-to-qcode.c:115:
+  [0xff54] = Q_KEY_CODE_DOWN, /* x11:65364 (XK_Down) -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */

ERROR: line over 90 characters
#950: FILE: ui/input-keymap-x11-to-qcode.c:116:
+  [0xff55] = Q_KEY_CODE_PGUP, /* x11:65365 (XK_Page_Up) -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */

ERROR: line over 90 characters
#951: FILE: ui/input-keymap-x11-to-qcode.c:117:
+  [0xff56] = Q_KEY_CODE_PGDN, /* x11:65366 (XK_Page_Down) -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */

ERROR: line over 90 characters
#952: FILE: ui/input-keymap-x11-to-qcode.c:118:
+  [0xff57] = Q_KEY_CODE_END, /* x11:65367 (XK_End) -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */

ERROR: line over 90 characters
#953: FILE: ui/input-keymap-x11-to-qcode.c:119:
+  [0xff60] = Q_KEY_CODE_UNMAPPED, /* x11:65376 (XK_Select) -> linux:353 (KEY_SELECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#954: FILE: ui/input-keymap-x11-to-qcode.c:120:
+  [0xff63] = Q_KEY_CODE_INSERT, /* x11:65379 (XK_Insert) -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */

ERROR: line over 90 characters
#955: FILE: ui/input-keymap-x11-to-qcode.c:121:
+  [0xff6a] = Q_KEY_CODE_HELP, /* x11:65386 (XK_Help) -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */

ERROR: line over 90 characters
#956: FILE: ui/input-keymap-x11-to-qcode.c:122:
+  [0xff7f] = Q_KEY_CODE_NUM_LOCK, /* x11:65407 (XK_Num_Lock) -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */

ERROR: line over 90 characters
#957: FILE: ui/input-keymap-x11-to-qcode.c:123:
+  [0xff8d] = Q_KEY_CODE_KP_ENTER, /* x11:65421 (XK_KP_Enter) -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */

ERROR: line over 90 characters
#958: FILE: ui/input-keymap-x11-to-qcode.c:124:
+  [0xffab] = Q_KEY_CODE_KP_ADD, /* x11:65451 (XK_KP_Add) -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */

ERROR: line over 90 characters
#959: FILE: ui/input-keymap-x11-to-qcode.c:125:
+  [0xffac] = Q_KEY_CODE_UNMAPPED, /* x11:65452 (XK_KP_Separator) -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#960: FILE: ui/input-keymap-x11-to-qcode.c:126:
+  [0xffad] = Q_KEY_CODE_KP_SUBTRACT, /* x11:65453 (XK_KP_Subtract) -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */

ERROR: line over 90 characters
#961: FILE: ui/input-keymap-x11-to-qcode.c:127:
+  [0xffae] = Q_KEY_CODE_KP_DECIMAL, /* x11:65454 (XK_KP_Decimal) -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */

ERROR: line over 90 characters
#962: FILE: ui/input-keymap-x11-to-qcode.c:128:
+  [0xffaf] = Q_KEY_CODE_KP_DIVIDE, /* x11:65455 (XK_KP_Divide) -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */

ERROR: line over 90 characters
#963: FILE: ui/input-keymap-x11-to-qcode.c:129:
+  [0xffb0] = Q_KEY_CODE_KP_0, /* x11:65456 (XK_KP_0) -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */

ERROR: line over 90 characters
#964: FILE: ui/input-keymap-x11-to-qcode.c:130:
+  [0xffb1] = Q_KEY_CODE_KP_1, /* x11:65457 (XK_KP_1) -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */

ERROR: line over 90 characters
#965: FILE: ui/input-keymap-x11-to-qcode.c:131:
+  [0xffb2] = Q_KEY_CODE_KP_2, /* x11:65458 (XK_KP_2) -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */

ERROR: line over 90 characters
#966: FILE: ui/input-keymap-x11-to-qcode.c:132:
+  [0xffb3] = Q_KEY_CODE_KP_3, /* x11:65459 (XK_KP_3) -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */

ERROR: line over 90 characters
#967: FILE: ui/input-keymap-x11-to-qcode.c:133:
+  [0xffb4] = Q_KEY_CODE_KP_4, /* x11:65460 (XK_KP_4) -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */

ERROR: line over 90 characters
#968: FILE: ui/input-keymap-x11-to-qcode.c:134:
+  [0xffb5] = Q_KEY_CODE_KP_5, /* x11:65461 (XK_KP_5) -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */

ERROR: line over 90 characters
#969: FILE: ui/input-keymap-x11-to-qcode.c:135:
+  [0xffb6] = Q_KEY_CODE_KP_6, /* x11:65462 (XK_KP_6) -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */

ERROR: line over 90 characters
#970: FILE: ui/input-keymap-x11-to-qcode.c:136:
+  [0xffb7] = Q_KEY_CODE_KP_7, /* x11:65463 (XK_KP_7) -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */

ERROR: line over 90 characters
#971: FILE: ui/input-keymap-x11-to-qcode.c:137:
+  [0xffb8] = Q_KEY_CODE_KP_8, /* x11:65464 (XK_KP_8) -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */

ERROR: line over 90 characters
#972: FILE: ui/input-keymap-x11-to-qcode.c:138:
+  [0xffb9] = Q_KEY_CODE_KP_9, /* x11:65465 (XK_KP_9) -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */

ERROR: line over 90 characters
#973: FILE: ui/input-keymap-x11-to-qcode.c:139:
+  [0xffbd] = Q_KEY_CODE_KP_EQUALS, /* x11:65469 (XK_KP_Equal) -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */

ERROR: line over 90 characters
#974: FILE: ui/input-keymap-x11-to-qcode.c:140:
+  [0xffbe] = Q_KEY_CODE_F1, /* x11:65470 (XK_F1) -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */

ERROR: line over 90 characters
#975: FILE: ui/input-keymap-x11-to-qcode.c:141:
+  [0xffbf] = Q_KEY_CODE_F2, /* x11:65471 (XK_F2) -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */

ERROR: line over 90 characters
#976: FILE: ui/input-keymap-x11-to-qcode.c:142:
+  [0xffc0] = Q_KEY_CODE_F3, /* x11:65472 (XK_F3) -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */

ERROR: line over 90 characters
#977: FILE: ui/input-keymap-x11-to-qcode.c:143:
+  [0xffc1] = Q_KEY_CODE_F4, /* x11:65473 (XK_F4) -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */

ERROR: line over 90 characters
#978: FILE: ui/input-keymap-x11-to-qcode.c:144:
+  [0xffc2] = Q_KEY_CODE_F5, /* x11:65474 (XK_F5) -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */

ERROR: line over 90 characters
#979: FILE: ui/input-keymap-x11-to-qcode.c:145:
+  [0xffc3] = Q_KEY_CODE_F6, /* x11:65475 (XK_F6) -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */

ERROR: line over 90 characters
#980: FILE: ui/input-keymap-x11-to-qcode.c:146:
+  [0xffc4] = Q_KEY_CODE_F7, /* x11:65476 (XK_F7) -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */

ERROR: line over 90 characters
#981: FILE: ui/input-keymap-x11-to-qcode.c:147:
+  [0xffc5] = Q_KEY_CODE_F8, /* x11:65477 (XK_F8) -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */

ERROR: line over 90 characters
#982: FILE: ui/input-keymap-x11-to-qcode.c:148:
+  [0xffc6] = Q_KEY_CODE_F9, /* x11:65478 (XK_F9) -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */

ERROR: line over 90 characters
#983: FILE: ui/input-keymap-x11-to-qcode.c:149:
+  [0xffc7] = Q_KEY_CODE_F10, /* x11:65479 (XK_F10) -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */

ERROR: line over 90 characters
#984: FILE: ui/input-keymap-x11-to-qcode.c:150:
+  [0xffc8] = Q_KEY_CODE_F11, /* x11:65480 (XK_F11) -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */

ERROR: line over 90 characters
#985: FILE: ui/input-keymap-x11-to-qcode.c:151:
+  [0xffc9] = Q_KEY_CODE_F12, /* x11:65481 (XK_F12) -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */

ERROR: line over 90 characters
#986: FILE: ui/input-keymap-x11-to-qcode.c:152:
+  [0xffe1] = Q_KEY_CODE_SHIFT, /* x11:65505 (XK_Shift_L) -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */

ERROR: line over 90 characters
#987: FILE: ui/input-keymap-x11-to-qcode.c:153:
+  [0xffe2] = Q_KEY_CODE_SHIFT_R, /* x11:65506 (XK_Shift_R) -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */

ERROR: line over 90 characters
#988: FILE: ui/input-keymap-x11-to-qcode.c:154:
+  [0xffe3] = Q_KEY_CODE_CTRL, /* x11:65507 (XK_Control_L) -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */

ERROR: line over 90 characters
#989: FILE: ui/input-keymap-x11-to-qcode.c:155:
+  [0xffe4] = Q_KEY_CODE_CTRL_R, /* x11:65508 (XK_Control_R) -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */

ERROR: line over 90 characters
#990: FILE: ui/input-keymap-x11-to-qcode.c:156:
+  [0xffe5] = Q_KEY_CODE_CAPS_LOCK, /* x11:65509 (XK_Caps_Lock) -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */

ERROR: line over 90 characters
#991: FILE: ui/input-keymap-x11-to-qcode.c:157:
+  [0xffe7] = Q_KEY_CODE_META_L, /* x11:65511 (XK_Meta_L) -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */

ERROR: line over 90 characters
#992: FILE: ui/input-keymap-x11-to-qcode.c:158:
+  [0xffe8] = Q_KEY_CODE_META_R, /* x11:65512 (XK_Meta_R) -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */

ERROR: line over 90 characters
#993: FILE: ui/input-keymap-x11-to-qcode.c:159:
+  [0xffe9] = Q_KEY_CODE_ALT, /* x11:65513 (XK_Alt_L) -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */

ERROR: line over 90 characters
#994: FILE: ui/input-keymap-x11-to-qcode.c:160:
+  [0xffea] = Q_KEY_CODE_ALT_R, /* x11:65514 (XK_Alt_R) -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */

ERROR: line over 90 characters
#995: FILE: ui/input-keymap-x11-to-qcode.c:161:
+  [0xffff] = Q_KEY_CODE_DELETE, /* x11:65535 (XK_Delete) -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */

ERROR: line over 90 characters
#997: FILE: ui/input-keymap-x11-to-qcode.c:163:
+const guint qemu_input_map_x11_to_qcode_len = sizeof(qemu_input_map_x11_to_qcode)/sizeof(qemu_input_map_x11_to_qcode[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#997: FILE: ui/input-keymap-x11-to-qcode.c:163:
+const guint qemu_input_map_x11_to_qcode_len = sizeof(qemu_input_map_x11_to_qcode)/sizeof(qemu_input_map_x11_to_qcode[0]);
                                                                                  ^

ERROR: line over 90 characters
#1006: FILE: ui/input-keymap-xorgevdev-to-qcode.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#1008: FILE: ui/input-keymap-xorgevdev-to-qcode.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_xorgevdev_to_qcode code-map keymaps.csv xorgevdev qcode

ERROR: line over 90 characters
#1011: FILE: ui/input-keymap-xorgevdev-to-qcode.c:8:
+  [0x8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:8 -> linux:0 (KEY_RESERVED) -> qcode:Q_KEY_CODE_UNMAPPED (unmapped) */

ERROR: line over 90 characters
#1012: FILE: ui/input-keymap-xorgevdev-to-qcode.c:9:
+  [0x9] = Q_KEY_CODE_ESC, /* xorgevdev:9 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */

WARNING: line over 80 characters
#1013: FILE: ui/input-keymap-xorgevdev-to-qcode.c:10:
+  [0xa] = Q_KEY_CODE_1, /* xorgevdev:10 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */

WARNING: line over 80 characters
#1014: FILE: ui/input-keymap-xorgevdev-to-qcode.c:11:
+  [0xb] = Q_KEY_CODE_2, /* xorgevdev:11 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */

WARNING: line over 80 characters
#1015: FILE: ui/input-keymap-xorgevdev-to-qcode.c:12:
+  [0xc] = Q_KEY_CODE_3, /* xorgevdev:12 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */

WARNING: line over 80 characters
#1016: FILE: ui/input-keymap-xorgevdev-to-qcode.c:13:
+  [0xd] = Q_KEY_CODE_4, /* xorgevdev:13 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */

WARNING: line over 80 characters
#1017: FILE: ui/input-keymap-xorgevdev-to-qcode.c:14:
+  [0xe] = Q_KEY_CODE_5, /* xorgevdev:14 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */

WARNING: line over 80 characters
#1018: FILE: ui/input-keymap-xorgevdev-to-qcode.c:15:
+  [0xf] = Q_KEY_CODE_6, /* xorgevdev:15 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */

WARNING: line over 80 characters
#1019: FILE: ui/input-keymap-xorgevdev-to-qcode.c:16:
+  [0x10] = Q_KEY_CODE_7, /* xorgevdev:16 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */

WARNING: line over 80 characters
#1020: FILE: ui/input-keymap-xorgevdev-to-qcode.c:17:
+  [0x11] = Q_KEY_CODE_8, /* xorgevdev:17 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */

WARNING: line over 80 characters
#1021: FILE: ui/input-keymap-xorgevdev-to-qcode.c:18:
+  [0x12] = Q_KEY_CODE_9, /* xorgevdev:18 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */

WARNING: line over 80 characters
#1022: FILE: ui/input-keymap-xorgevdev-to-qcode.c:19:
+  [0x13] = Q_KEY_CODE_0, /* xorgevdev:19 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */

ERROR: line over 90 characters
#1023: FILE: ui/input-keymap-xorgevdev-to-qcode.c:20:
+  [0x14] = Q_KEY_CODE_MINUS, /* xorgevdev:20 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */

ERROR: line over 90 characters
#1024: FILE: ui/input-keymap-xorgevdev-to-qcode.c:21:
+  [0x15] = Q_KEY_CODE_EQUAL, /* xorgevdev:21 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */

ERROR: line over 90 characters
#1025: FILE: ui/input-keymap-xorgevdev-to-qcode.c:22:
+  [0x16] = Q_KEY_CODE_BACKSPACE, /* xorgevdev:22 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */

ERROR: line over 90 characters
#1026: FILE: ui/input-keymap-xorgevdev-to-qcode.c:23:
+  [0x17] = Q_KEY_CODE_TAB, /* xorgevdev:23 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */

WARNING: line over 80 characters
#1027: FILE: ui/input-keymap-xorgevdev-to-qcode.c:24:
+  [0x18] = Q_KEY_CODE_Q, /* xorgevdev:24 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */

WARNING: line over 80 characters
#1028: FILE: ui/input-keymap-xorgevdev-to-qcode.c:25:
+  [0x19] = Q_KEY_CODE_W, /* xorgevdev:25 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */

WARNING: line over 80 characters
#1029: FILE: ui/input-keymap-xorgevdev-to-qcode.c:26:
+  [0x1a] = Q_KEY_CODE_E, /* xorgevdev:26 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */

WARNING: line over 80 characters
#1030: FILE: ui/input-keymap-xorgevdev-to-qcode.c:27:
+  [0x1b] = Q_KEY_CODE_R, /* xorgevdev:27 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */

WARNING: line over 80 characters
#1031: FILE: ui/input-keymap-xorgevdev-to-qcode.c:28:
+  [0x1c] = Q_KEY_CODE_T, /* xorgevdev:28 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */

WARNING: line over 80 characters
#1032: FILE: ui/input-keymap-xorgevdev-to-qcode.c:29:
+  [0x1d] = Q_KEY_CODE_Y, /* xorgevdev:29 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */

WARNING: line over 80 characters
#1033: FILE: ui/input-keymap-xorgevdev-to-qcode.c:30:
+  [0x1e] = Q_KEY_CODE_U, /* xorgevdev:30 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */

WARNING: line over 80 characters
#1034: FILE: ui/input-keymap-xorgevdev-to-qcode.c:31:
+  [0x1f] = Q_KEY_CODE_I, /* xorgevdev:31 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */

WARNING: line over 80 characters
#1035: FILE: ui/input-keymap-xorgevdev-to-qcode.c:32:
+  [0x20] = Q_KEY_CODE_O, /* xorgevdev:32 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */

WARNING: line over 80 characters
#1036: FILE: ui/input-keymap-xorgevdev-to-qcode.c:33:
+  [0x21] = Q_KEY_CODE_P, /* xorgevdev:33 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */

ERROR: line over 90 characters
#1037: FILE: ui/input-keymap-xorgevdev-to-qcode.c:34:
+  [0x22] = Q_KEY_CODE_BRACKET_LEFT, /* xorgevdev:34 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */

ERROR: line over 90 characters
#1038: FILE: ui/input-keymap-xorgevdev-to-qcode.c:35:
+  [0x23] = Q_KEY_CODE_BRACKET_RIGHT, /* xorgevdev:35 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */

ERROR: line over 90 characters
#1039: FILE: ui/input-keymap-xorgevdev-to-qcode.c:36:
+  [0x24] = Q_KEY_CODE_RET, /* xorgevdev:36 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */

ERROR: line over 90 characters
#1040: FILE: ui/input-keymap-xorgevdev-to-qcode.c:37:
+  [0x25] = Q_KEY_CODE_CTRL, /* xorgevdev:37 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */

WARNING: line over 80 characters
#1041: FILE: ui/input-keymap-xorgevdev-to-qcode.c:38:
+  [0x26] = Q_KEY_CODE_A, /* xorgevdev:38 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */

WARNING: line over 80 characters
#1042: FILE: ui/input-keymap-xorgevdev-to-qcode.c:39:
+  [0x27] = Q_KEY_CODE_S, /* xorgevdev:39 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */

WARNING: line over 80 characters
#1043: FILE: ui/input-keymap-xorgevdev-to-qcode.c:40:
+  [0x28] = Q_KEY_CODE_D, /* xorgevdev:40 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */

WARNING: line over 80 characters
#1044: FILE: ui/input-keymap-xorgevdev-to-qcode.c:41:
+  [0x29] = Q_KEY_CODE_F, /* xorgevdev:41 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */

WARNING: line over 80 characters
#1045: FILE: ui/input-keymap-xorgevdev-to-qcode.c:42:
+  [0x2a] = Q_KEY_CODE_G, /* xorgevdev:42 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */

WARNING: line over 80 characters
#1046: FILE: ui/input-keymap-xorgevdev-to-qcode.c:43:
+  [0x2b] = Q_KEY_CODE_H, /* xorgevdev:43 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */

WARNING: line over 80 characters
#1047: FILE: ui/input-keymap-xorgevdev-to-qcode.c:44:
+  [0x2c] = Q_KEY_CODE_J, /* xorgevdev:44 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */

WARNING: line over 80 characters
#1048: FILE: ui/input-keymap-xorgevdev-to-qcode.c:45:
+  [0x2d] = Q_KEY_CODE_K, /* xorgevdev:45 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */

WARNING: line over 80 characters
#1049: FILE: ui/input-keymap-xorgevdev-to-qcode.c:46:
+  [0x2e] = Q_KEY_CODE_L, /* xorgevdev:46 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */

ERROR: line over 90 characters
#1050: FILE: ui/input-keymap-xorgevdev-to-qcode.c:47:
+  [0x2f] = Q_KEY_CODE_SEMICOLON, /* xorgevdev:47 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */

ERROR: line over 90 characters
#1051: FILE: ui/input-keymap-xorgevdev-to-qcode.c:48:
+  [0x30] = Q_KEY_CODE_APOSTROPHE, /* xorgevdev:48 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */

ERROR: line over 90 characters
#1052: FILE: ui/input-keymap-xorgevdev-to-qcode.c:49:
+  [0x31] = Q_KEY_CODE_GRAVE_ACCENT, /* xorgevdev:49 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */

ERROR: line over 90 characters
#1053: FILE: ui/input-keymap-xorgevdev-to-qcode.c:50:
+  [0x32] = Q_KEY_CODE_SHIFT, /* xorgevdev:50 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */

ERROR: line over 90 characters
#1054: FILE: ui/input-keymap-xorgevdev-to-qcode.c:51:
+  [0x33] = Q_KEY_CODE_BACKSLASH, /* xorgevdev:51 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

WARNING: line over 80 characters
#1055: FILE: ui/input-keymap-xorgevdev-to-qcode.c:52:
+  [0x34] = Q_KEY_CODE_Z, /* xorgevdev:52 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */

WARNING: line over 80 characters
#1056: FILE: ui/input-keymap-xorgevdev-to-qcode.c:53:
+  [0x35] = Q_KEY_CODE_X, /* xorgevdev:53 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */

WARNING: line over 80 characters
#1057: FILE: ui/input-keymap-xorgevdev-to-qcode.c:54:
+  [0x36] = Q_KEY_CODE_C, /* xorgevdev:54 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */

WARNING: line over 80 characters
#1058: FILE: ui/input-keymap-xorgevdev-to-qcode.c:55:
+  [0x37] = Q_KEY_CODE_V, /* xorgevdev:55 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */

WARNING: line over 80 characters
#1059: FILE: ui/input-keymap-xorgevdev-to-qcode.c:56:
+  [0x38] = Q_KEY_CODE_B, /* xorgevdev:56 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */

WARNING: line over 80 characters
#1060: FILE: ui/input-keymap-xorgevdev-to-qcode.c:57:
+  [0x39] = Q_KEY_CODE_N, /* xorgevdev:57 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */

WARNING: line over 80 characters
#1061: FILE: ui/input-keymap-xorgevdev-to-qcode.c:58:
+  [0x3a] = Q_KEY_CODE_M, /* xorgevdev:58 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */

ERROR: line over 90 characters
#1062: FILE: ui/input-keymap-xorgevdev-to-qcode.c:59:
+  [0x3b] = Q_KEY_CODE_COMMA, /* xorgevdev:59 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */

ERROR: line over 90 characters
#1063: FILE: ui/input-keymap-xorgevdev-to-qcode.c:60:
+  [0x3c] = Q_KEY_CODE_DOT, /* xorgevdev:60 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */

ERROR: line over 90 characters
#1064: FILE: ui/input-keymap-xorgevdev-to-qcode.c:61:
+  [0x3d] = Q_KEY_CODE_SLASH, /* xorgevdev:61 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */

ERROR: line over 90 characters
#1065: FILE: ui/input-keymap-xorgevdev-to-qcode.c:62:
+  [0x3e] = Q_KEY_CODE_SHIFT_R, /* xorgevdev:62 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */

ERROR: line over 90 characters
#1066: FILE: ui/input-keymap-xorgevdev-to-qcode.c:63:
+  [0x3f] = Q_KEY_CODE_KP_MULTIPLY, /* xorgevdev:63 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */

ERROR: line over 90 characters
#1067: FILE: ui/input-keymap-xorgevdev-to-qcode.c:64:
+  [0x40] = Q_KEY_CODE_ALT, /* xorgevdev:64 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */

ERROR: line over 90 characters
#1068: FILE: ui/input-keymap-xorgevdev-to-qcode.c:65:
+  [0x41] = Q_KEY_CODE_SPC, /* xorgevdev:65 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */

ERROR: line over 90 characters
#1069: FILE: ui/input-keymap-xorgevdev-to-qcode.c:66:
+  [0x42] = Q_KEY_CODE_CAPS_LOCK, /* xorgevdev:66 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */

ERROR: line over 90 characters
#1070: FILE: ui/input-keymap-xorgevdev-to-qcode.c:67:
+  [0x43] = Q_KEY_CODE_F1, /* xorgevdev:67 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */

ERROR: line over 90 characters
#1071: FILE: ui/input-keymap-xorgevdev-to-qcode.c:68:
+  [0x44] = Q_KEY_CODE_F2, /* xorgevdev:68 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */

ERROR: line over 90 characters
#1072: FILE: ui/input-keymap-xorgevdev-to-qcode.c:69:
+  [0x45] = Q_KEY_CODE_F3, /* xorgevdev:69 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */

ERROR: line over 90 characters
#1073: FILE: ui/input-keymap-xorgevdev-to-qcode.c:70:
+  [0x46] = Q_KEY_CODE_F4, /* xorgevdev:70 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */

ERROR: line over 90 characters
#1074: FILE: ui/input-keymap-xorgevdev-to-qcode.c:71:
+  [0x47] = Q_KEY_CODE_F5, /* xorgevdev:71 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */

ERROR: line over 90 characters
#1075: FILE: ui/input-keymap-xorgevdev-to-qcode.c:72:
+  [0x48] = Q_KEY_CODE_F6, /* xorgevdev:72 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */

ERROR: line over 90 characters
#1076: FILE: ui/input-keymap-xorgevdev-to-qcode.c:73:
+  [0x49] = Q_KEY_CODE_F7, /* xorgevdev:73 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */

ERROR: line over 90 characters
#1077: FILE: ui/input-keymap-xorgevdev-to-qcode.c:74:
+  [0x4a] = Q_KEY_CODE_F8, /* xorgevdev:74 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */

ERROR: line over 90 characters
#1078: FILE: ui/input-keymap-xorgevdev-to-qcode.c:75:
+  [0x4b] = Q_KEY_CODE_F9, /* xorgevdev:75 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */

ERROR: line over 90 characters
#1079: FILE: ui/input-keymap-xorgevdev-to-qcode.c:76:
+  [0x4c] = Q_KEY_CODE_F10, /* xorgevdev:76 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */

ERROR: line over 90 characters
#1080: FILE: ui/input-keymap-xorgevdev-to-qcode.c:77:
+  [0x4d] = Q_KEY_CODE_NUM_LOCK, /* xorgevdev:77 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */

ERROR: line over 90 characters
#1081: FILE: ui/input-keymap-xorgevdev-to-qcode.c:78:
+  [0x4e] = Q_KEY_CODE_SCROLL_LOCK, /* xorgevdev:78 -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */

ERROR: line over 90 characters
#1082: FILE: ui/input-keymap-xorgevdev-to-qcode.c:79:
+  [0x4f] = Q_KEY_CODE_KP_7, /* xorgevdev:79 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */

ERROR: line over 90 characters
#1083: FILE: ui/input-keymap-xorgevdev-to-qcode.c:80:
+  [0x50] = Q_KEY_CODE_KP_8, /* xorgevdev:80 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */

ERROR: line over 90 characters
#1084: FILE: ui/input-keymap-xorgevdev-to-qcode.c:81:
+  [0x51] = Q_KEY_CODE_KP_9, /* xorgevdev:81 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */

ERROR: line over 90 characters
#1085: FILE: ui/input-keymap-xorgevdev-to-qcode.c:82:
+  [0x52] = Q_KEY_CODE_KP_SUBTRACT, /* xorgevdev:82 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */

ERROR: line over 90 characters
#1086: FILE: ui/input-keymap-xorgevdev-to-qcode.c:83:
+  [0x53] = Q_KEY_CODE_KP_4, /* xorgevdev:83 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */

ERROR: line over 90 characters
#1087: FILE: ui/input-keymap-xorgevdev-to-qcode.c:84:
+  [0x54] = Q_KEY_CODE_KP_5, /* xorgevdev:84 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */

ERROR: line over 90 characters
#1088: FILE: ui/input-keymap-xorgevdev-to-qcode.c:85:
+  [0x55] = Q_KEY_CODE_KP_6, /* xorgevdev:85 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */

ERROR: line over 90 characters
#1089: FILE: ui/input-keymap-xorgevdev-to-qcode.c:86:
+  [0x56] = Q_KEY_CODE_KP_ADD, /* xorgevdev:86 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */

ERROR: line over 90 characters
#1090: FILE: ui/input-keymap-xorgevdev-to-qcode.c:87:
+  [0x57] = Q_KEY_CODE_KP_1, /* xorgevdev:87 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */

ERROR: line over 90 characters
#1091: FILE: ui/input-keymap-xorgevdev-to-qcode.c:88:
+  [0x58] = Q_KEY_CODE_KP_2, /* xorgevdev:88 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */

ERROR: line over 90 characters
#1092: FILE: ui/input-keymap-xorgevdev-to-qcode.c:89:
+  [0x59] = Q_KEY_CODE_KP_3, /* xorgevdev:89 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */

ERROR: line over 90 characters
#1093: FILE: ui/input-keymap-xorgevdev-to-qcode.c:90:
+  [0x5a] = Q_KEY_CODE_KP_0, /* xorgevdev:90 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */

ERROR: line over 90 characters
#1094: FILE: ui/input-keymap-xorgevdev-to-qcode.c:91:
+  [0x5b] = Q_KEY_CODE_KP_DECIMAL, /* xorgevdev:91 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */

ERROR: line over 90 characters
#1095: FILE: ui/input-keymap-xorgevdev-to-qcode.c:92:
+  [0x5c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:92 -> linux:84 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1096: FILE: ui/input-keymap-xorgevdev-to-qcode.c:93:
+  [0x5d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:93 -> linux:85 (KEY_ZENKAKUHANKAKU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1097: FILE: ui/input-keymap-xorgevdev-to-qcode.c:94:
+  [0x5e] = Q_KEY_CODE_LESS, /* xorgevdev:94 -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */

ERROR: line over 90 characters
#1098: FILE: ui/input-keymap-xorgevdev-to-qcode.c:95:
+  [0x5f] = Q_KEY_CODE_F11, /* xorgevdev:95 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */

ERROR: line over 90 characters
#1099: FILE: ui/input-keymap-xorgevdev-to-qcode.c:96:
+  [0x60] = Q_KEY_CODE_F12, /* xorgevdev:96 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */

ERROR: line over 90 characters
#1100: FILE: ui/input-keymap-xorgevdev-to-qcode.c:97:
+  [0x61] = Q_KEY_CODE_RO, /* xorgevdev:97 -> linux:89 (KEY_RO) -> qcode:Q_KEY_CODE_RO (ro) */

ERROR: line over 90 characters
#1101: FILE: ui/input-keymap-xorgevdev-to-qcode.c:98:
+  [0x62] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:98 -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1102: FILE: ui/input-keymap-xorgevdev-to-qcode.c:99:
+  [0x63] = Q_KEY_CODE_HIRAGANA, /* xorgevdev:99 -> linux:91 (KEY_HIRAGANA) -> qcode:Q_KEY_CODE_HIRAGANA (hiragana) */

ERROR: line over 90 characters
#1103: FILE: ui/input-keymap-xorgevdev-to-qcode.c:100:
+  [0x64] = Q_KEY_CODE_HENKAN, /* xorgevdev:100 -> linux:92 (KEY_HENKAN) -> qcode:Q_KEY_CODE_HENKAN (henkan) */

ERROR: line over 90 characters
#1104: FILE: ui/input-keymap-xorgevdev-to-qcode.c:101:
+  [0x65] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:101 -> linux:93 (KEY_KATAKANAHIRAGANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1105: FILE: ui/input-keymap-xorgevdev-to-qcode.c:102:
+  [0x66] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:102 -> linux:94 (KEY_MUHENKAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1106: FILE: ui/input-keymap-xorgevdev-to-qcode.c:103:
+  [0x67] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:103 -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1107: FILE: ui/input-keymap-xorgevdev-to-qcode.c:104:
+  [0x68] = Q_KEY_CODE_KP_ENTER, /* xorgevdev:104 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */

ERROR: line over 90 characters
#1108: FILE: ui/input-keymap-xorgevdev-to-qcode.c:105:
+  [0x69] = Q_KEY_CODE_CTRL_R, /* xorgevdev:105 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */

ERROR: line over 90 characters
#1109: FILE: ui/input-keymap-xorgevdev-to-qcode.c:106:
+  [0x6a] = Q_KEY_CODE_KP_DIVIDE, /* xorgevdev:106 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */

ERROR: line over 90 characters
#1110: FILE: ui/input-keymap-xorgevdev-to-qcode.c:107:
+  [0x6b] = Q_KEY_CODE_SYSRQ, /* xorgevdev:107 -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */

ERROR: line over 90 characters
#1111: FILE: ui/input-keymap-xorgevdev-to-qcode.c:108:
+  [0x6c] = Q_KEY_CODE_ALT_R, /* xorgevdev:108 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */

ERROR: line over 90 characters
#1112: FILE: ui/input-keymap-xorgevdev-to-qcode.c:109:
+  [0x6d] = Q_KEY_CODE_LF, /* xorgevdev:109 -> linux:101 (KEY_LINEFEED) -> qcode:Q_KEY_CODE_LF (lf) */

ERROR: line over 90 characters
#1113: FILE: ui/input-keymap-xorgevdev-to-qcode.c:110:
+  [0x6e] = Q_KEY_CODE_HOME, /* xorgevdev:110 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */

ERROR: line over 90 characters
#1114: FILE: ui/input-keymap-xorgevdev-to-qcode.c:111:
+  [0x6f] = Q_KEY_CODE_UP, /* xorgevdev:111 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */

ERROR: line over 90 characters
#1115: FILE: ui/input-keymap-xorgevdev-to-qcode.c:112:
+  [0x70] = Q_KEY_CODE_PGUP, /* xorgevdev:112 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */

ERROR: line over 90 characters
#1116: FILE: ui/input-keymap-xorgevdev-to-qcode.c:113:
+  [0x71] = Q_KEY_CODE_LEFT, /* xorgevdev:113 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */

ERROR: line over 90 characters
#1117: FILE: ui/input-keymap-xorgevdev-to-qcode.c:114:
+  [0x72] = Q_KEY_CODE_RIGHT, /* xorgevdev:114 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */

ERROR: line over 90 characters
#1118: FILE: ui/input-keymap-xorgevdev-to-qcode.c:115:
+  [0x73] = Q_KEY_CODE_END, /* xorgevdev:115 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */

ERROR: line over 90 characters
#1119: FILE: ui/input-keymap-xorgevdev-to-qcode.c:116:
+  [0x74] = Q_KEY_CODE_DOWN, /* xorgevdev:116 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */

ERROR: line over 90 characters
#1120: FILE: ui/input-keymap-xorgevdev-to-qcode.c:117:
+  [0x75] = Q_KEY_CODE_PGDN, /* xorgevdev:117 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */

ERROR: line over 90 characters
#1121: FILE: ui/input-keymap-xorgevdev-to-qcode.c:118:
+  [0x76] = Q_KEY_CODE_INSERT, /* xorgevdev:118 -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */

ERROR: line over 90 characters
#1122: FILE: ui/input-keymap-xorgevdev-to-qcode.c:119:
+  [0x77] = Q_KEY_CODE_DELETE, /* xorgevdev:119 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */

ERROR: line over 90 characters
#1123: FILE: ui/input-keymap-xorgevdev-to-qcode.c:120:
+  [0x78] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:120 -> linux:112 (KEY_MACRO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1124: FILE: ui/input-keymap-xorgevdev-to-qcode.c:121:
+  [0x79] = Q_KEY_CODE_AUDIOMUTE, /* xorgevdev:121 -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */

ERROR: line over 90 characters
#1125: FILE: ui/input-keymap-xorgevdev-to-qcode.c:122:
+  [0x7a] = Q_KEY_CODE_VOLUMEDOWN, /* xorgevdev:122 -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */

ERROR: line over 90 characters
#1126: FILE: ui/input-keymap-xorgevdev-to-qcode.c:123:
+  [0x7b] = Q_KEY_CODE_VOLUMEUP, /* xorgevdev:123 -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */

ERROR: line over 90 characters
#1127: FILE: ui/input-keymap-xorgevdev-to-qcode.c:124:
+  [0x7c] = Q_KEY_CODE_POWER, /* xorgevdev:124 -> linux:116 (KEY_POWER) -> qcode:Q_KEY_CODE_POWER (power) */

ERROR: line over 90 characters
#1128: FILE: ui/input-keymap-xorgevdev-to-qcode.c:125:
+  [0x7d] = Q_KEY_CODE_KP_EQUALS, /* xorgevdev:125 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */

ERROR: line over 90 characters
#1129: FILE: ui/input-keymap-xorgevdev-to-qcode.c:126:
+  [0x7e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:126 -> linux:118 (KEY_KPPLUSMINUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1130: FILE: ui/input-keymap-xorgevdev-to-qcode.c:127:
+  [0x7f] = Q_KEY_CODE_PAUSE, /* xorgevdev:127 -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */

ERROR: line over 90 characters
#1131: FILE: ui/input-keymap-xorgevdev-to-qcode.c:128:
+  [0x80] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:128 -> linux:120 (KEY_SCALE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1132: FILE: ui/input-keymap-xorgevdev-to-qcode.c:129:
+  [0x81] = Q_KEY_CODE_KP_COMMA, /* xorgevdev:129 -> linux:121 (KEY_KPCOMMA) -> qcode:Q_KEY_CODE_KP_COMMA (kp_comma) */

ERROR: line over 90 characters
#1133: FILE: ui/input-keymap-xorgevdev-to-qcode.c:130:
+  [0x82] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:130 -> linux:122 (KEY_HANGEUL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1134: FILE: ui/input-keymap-xorgevdev-to-qcode.c:131:
+  [0x83] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:131 -> linux:123 (KEY_HANJA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1135: FILE: ui/input-keymap-xorgevdev-to-qcode.c:132:
+  [0x84] = Q_KEY_CODE_YEN, /* xorgevdev:132 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */

ERROR: line over 90 characters
#1136: FILE: ui/input-keymap-xorgevdev-to-qcode.c:133:
+  [0x85] = Q_KEY_CODE_META_L, /* xorgevdev:133 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */

ERROR: line over 90 characters
#1137: FILE: ui/input-keymap-xorgevdev-to-qcode.c:134:
+  [0x86] = Q_KEY_CODE_META_R, /* xorgevdev:134 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */

ERROR: line over 90 characters
#1138: FILE: ui/input-keymap-xorgevdev-to-qcode.c:135:
+  [0x87] = Q_KEY_CODE_COMPOSE, /* xorgevdev:135 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */

ERROR: line over 90 characters
#1139: FILE: ui/input-keymap-xorgevdev-to-qcode.c:136:
+  [0x88] = Q_KEY_CODE_STOP, /* xorgevdev:136 -> linux:128 (KEY_STOP) -> qcode:Q_KEY_CODE_STOP (stop) */

ERROR: line over 90 characters
#1140: FILE: ui/input-keymap-xorgevdev-to-qcode.c:137:
+  [0x89] = Q_KEY_CODE_AGAIN, /* xorgevdev:137 -> linux:129 (KEY_AGAIN) -> qcode:Q_KEY_CODE_AGAIN (again) */

ERROR: line over 90 characters
#1141: FILE: ui/input-keymap-xorgevdev-to-qcode.c:138:
+  [0x8a] = Q_KEY_CODE_PROPS, /* xorgevdev:138 -> linux:130 (KEY_PROPS) -> qcode:Q_KEY_CODE_PROPS (props) */

ERROR: line over 90 characters
#1142: FILE: ui/input-keymap-xorgevdev-to-qcode.c:139:
+  [0x8b] = Q_KEY_CODE_UNDO, /* xorgevdev:139 -> linux:131 (KEY_UNDO) -> qcode:Q_KEY_CODE_UNDO (undo) */

ERROR: line over 90 characters
#1143: FILE: ui/input-keymap-xorgevdev-to-qcode.c:140:
+  [0x8c] = Q_KEY_CODE_FRONT, /* xorgevdev:140 -> linux:132 (KEY_FRONT) -> qcode:Q_KEY_CODE_FRONT (front) */

ERROR: line over 90 characters
#1144: FILE: ui/input-keymap-xorgevdev-to-qcode.c:141:
+  [0x8d] = Q_KEY_CODE_COPY, /* xorgevdev:141 -> linux:133 (KEY_COPY) -> qcode:Q_KEY_CODE_COPY (copy) */

ERROR: line over 90 characters
#1145: FILE: ui/input-keymap-xorgevdev-to-qcode.c:142:
+  [0x8e] = Q_KEY_CODE_OPEN, /* xorgevdev:142 -> linux:134 (KEY_OPEN) -> qcode:Q_KEY_CODE_OPEN (open) */

ERROR: line over 90 characters
#1146: FILE: ui/input-keymap-xorgevdev-to-qcode.c:143:
+  [0x8f] = Q_KEY_CODE_PASTE, /* xorgevdev:143 -> linux:135 (KEY_PASTE) -> qcode:Q_KEY_CODE_PASTE (paste) */

ERROR: line over 90 characters
#1147: FILE: ui/input-keymap-xorgevdev-to-qcode.c:144:
+  [0x90] = Q_KEY_CODE_FIND, /* xorgevdev:144 -> linux:136 (KEY_FIND) -> qcode:Q_KEY_CODE_FIND (find) */

ERROR: line over 90 characters
#1148: FILE: ui/input-keymap-xorgevdev-to-qcode.c:145:
+  [0x91] = Q_KEY_CODE_CUT, /* xorgevdev:145 -> linux:137 (KEY_CUT) -> qcode:Q_KEY_CODE_CUT (cut) */

ERROR: line over 90 characters
#1149: FILE: ui/input-keymap-xorgevdev-to-qcode.c:146:
+  [0x92] = Q_KEY_CODE_HELP, /* xorgevdev:146 -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */

ERROR: line over 90 characters
#1150: FILE: ui/input-keymap-xorgevdev-to-qcode.c:147:
+  [0x93] = Q_KEY_CODE_MENU, /* xorgevdev:147 -> linux:139 (KEY_MENU) -> qcode:Q_KEY_CODE_MENU (menu) */

ERROR: line over 90 characters
#1151: FILE: ui/input-keymap-xorgevdev-to-qcode.c:148:
+  [0x94] = Q_KEY_CODE_CALCULATOR, /* xorgevdev:148 -> linux:140 (KEY_CALC) -> qcode:Q_KEY_CODE_CALCULATOR (calculator) */

ERROR: line over 90 characters
#1152: FILE: ui/input-keymap-xorgevdev-to-qcode.c:149:
+  [0x95] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:149 -> linux:141 (KEY_SETUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1153: FILE: ui/input-keymap-xorgevdev-to-qcode.c:150:
+  [0x96] = Q_KEY_CODE_SLEEP, /* xorgevdev:150 -> linux:142 (KEY_SLEEP) -> qcode:Q_KEY_CODE_SLEEP (sleep) */

ERROR: line over 90 characters
#1154: FILE: ui/input-keymap-xorgevdev-to-qcode.c:151:
+  [0x97] = Q_KEY_CODE_WAKE, /* xorgevdev:151 -> linux:143 (KEY_WAKEUP) -> qcode:Q_KEY_CODE_WAKE (wake) */

ERROR: line over 90 characters
#1155: FILE: ui/input-keymap-xorgevdev-to-qcode.c:152:
+  [0x98] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:152 -> linux:144 (KEY_FILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1156: FILE: ui/input-keymap-xorgevdev-to-qcode.c:153:
+  [0x99] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:153 -> linux:145 (KEY_SENDFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1157: FILE: ui/input-keymap-xorgevdev-to-qcode.c:154:
+  [0x9a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:154 -> linux:146 (KEY_DELETEFILE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1158: FILE: ui/input-keymap-xorgevdev-to-qcode.c:155:
+  [0x9b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:155 -> linux:147 (KEY_XFER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1159: FILE: ui/input-keymap-xorgevdev-to-qcode.c:156:
+  [0x9c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:156 -> linux:148 (KEY_PROG1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1160: FILE: ui/input-keymap-xorgevdev-to-qcode.c:157:
+  [0x9d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:157 -> linux:149 (KEY_PROG2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1161: FILE: ui/input-keymap-xorgevdev-to-qcode.c:158:
+  [0x9e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:158 -> linux:150 (KEY_WWW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1162: FILE: ui/input-keymap-xorgevdev-to-qcode.c:159:
+  [0x9f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:159 -> linux:151 (KEY_MSDOS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1163: FILE: ui/input-keymap-xorgevdev-to-qcode.c:160:
+  [0xa0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:160 -> linux:152 (KEY_SCREENLOCK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1164: FILE: ui/input-keymap-xorgevdev-to-qcode.c:161:
+  [0xa1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:161 -> linux:153 (KEY_DIRECTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1165: FILE: ui/input-keymap-xorgevdev-to-qcode.c:162:
+  [0xa2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:162 -> linux:154 (KEY_CYCLEWINDOWS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1166: FILE: ui/input-keymap-xorgevdev-to-qcode.c:163:
+  [0xa3] = Q_KEY_CODE_MAIL, /* xorgevdev:163 -> linux:155 (KEY_MAIL) -> qcode:Q_KEY_CODE_MAIL (mail) */

ERROR: line over 90 characters
#1167: FILE: ui/input-keymap-xorgevdev-to-qcode.c:164:
+  [0xa4] = Q_KEY_CODE_AC_BOOKMARKS, /* xorgevdev:164 -> linux:156 (KEY_BOOKMARKS) -> qcode:Q_KEY_CODE_AC_BOOKMARKS (ac_bookmarks) */

ERROR: line over 90 characters
#1168: FILE: ui/input-keymap-xorgevdev-to-qcode.c:165:
+  [0xa5] = Q_KEY_CODE_COMPUTER, /* xorgevdev:165 -> linux:157 (KEY_COMPUTER) -> qcode:Q_KEY_CODE_COMPUTER (computer) */

ERROR: line over 90 characters
#1169: FILE: ui/input-keymap-xorgevdev-to-qcode.c:166:
+  [0xa6] = Q_KEY_CODE_AC_BACK, /* xorgevdev:166 -> linux:158 (KEY_BACK) -> qcode:Q_KEY_CODE_AC_BACK (ac_back) */

ERROR: line over 90 characters
#1170: FILE: ui/input-keymap-xorgevdev-to-qcode.c:167:
+  [0xa7] = Q_KEY_CODE_AC_FORWARD, /* xorgevdev:167 -> linux:159 (KEY_FORWARD) -> qcode:Q_KEY_CODE_AC_FORWARD (ac_forward) */

ERROR: line over 90 characters
#1171: FILE: ui/input-keymap-xorgevdev-to-qcode.c:168:
+  [0xa8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:168 -> linux:160 (KEY_CLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1172: FILE: ui/input-keymap-xorgevdev-to-qcode.c:169:
+  [0xa9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:169 -> linux:161 (KEY_EJECTCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1173: FILE: ui/input-keymap-xorgevdev-to-qcode.c:170:
+  [0xaa] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:170 -> linux:162 (KEY_EJECTCLOSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1174: FILE: ui/input-keymap-xorgevdev-to-qcode.c:171:
+  [0xab] = Q_KEY_CODE_AUDIONEXT, /* xorgevdev:171 -> linux:163 (KEY_NEXTSONG) -> qcode:Q_KEY_CODE_AUDIONEXT (audionext) */

ERROR: line over 90 characters
#1175: FILE: ui/input-keymap-xorgevdev-to-qcode.c:172:
+  [0xac] = Q_KEY_CODE_AUDIOPLAY, /* xorgevdev:172 -> linux:164 (KEY_PLAYPAUSE) -> qcode:Q_KEY_CODE_AUDIOPLAY (audioplay) */

ERROR: line over 90 characters
#1176: FILE: ui/input-keymap-xorgevdev-to-qcode.c:173:
+  [0xad] = Q_KEY_CODE_AUDIOPREV, /* xorgevdev:173 -> linux:165 (KEY_PREVIOUSSONG) -> qcode:Q_KEY_CODE_AUDIOPREV (audioprev) */

ERROR: line over 90 characters
#1177: FILE: ui/input-keymap-xorgevdev-to-qcode.c:174:
+  [0xae] = Q_KEY_CODE_AUDIOSTOP, /* xorgevdev:174 -> linux:166 (KEY_STOPCD) -> qcode:Q_KEY_CODE_AUDIOSTOP (audiostop) */

ERROR: line over 90 characters
#1178: FILE: ui/input-keymap-xorgevdev-to-qcode.c:175:
+  [0xaf] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:175 -> linux:167 (KEY_RECORD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1179: FILE: ui/input-keymap-xorgevdev-to-qcode.c:176:
+  [0xb0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:176 -> linux:168 (KEY_REWIND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1180: FILE: ui/input-keymap-xorgevdev-to-qcode.c:177:
+  [0xb1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:177 -> linux:169 (KEY_PHONE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1181: FILE: ui/input-keymap-xorgevdev-to-qcode.c:178:
+  [0xb2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:178 -> linux:170 (KEY_ISO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1182: FILE: ui/input-keymap-xorgevdev-to-qcode.c:179:
+  [0xb3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:179 -> linux:171 (KEY_CONFIG) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1183: FILE: ui/input-keymap-xorgevdev-to-qcode.c:180:
+  [0xb4] = Q_KEY_CODE_AC_HOME, /* xorgevdev:180 -> linux:172 (KEY_HOMEPAGE) -> qcode:Q_KEY_CODE_AC_HOME (ac_home) */

ERROR: line over 90 characters
#1184: FILE: ui/input-keymap-xorgevdev-to-qcode.c:181:
+  [0xb5] = Q_KEY_CODE_AC_REFRESH, /* xorgevdev:181 -> linux:173 (KEY_REFRESH) -> qcode:Q_KEY_CODE_AC_REFRESH (ac_refresh) */

ERROR: line over 90 characters
#1185: FILE: ui/input-keymap-xorgevdev-to-qcode.c:182:
+  [0xb6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:182 -> linux:174 (KEY_EXIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1186: FILE: ui/input-keymap-xorgevdev-to-qcode.c:183:
+  [0xb7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:183 -> linux:175 (KEY_MOVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1187: FILE: ui/input-keymap-xorgevdev-to-qcode.c:184:
+  [0xb8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:184 -> linux:176 (KEY_EDIT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1188: FILE: ui/input-keymap-xorgevdev-to-qcode.c:185:
+  [0xb9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:185 -> linux:177 (KEY_SCROLLUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1189: FILE: ui/input-keymap-xorgevdev-to-qcode.c:186:
+  [0xba] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:186 -> linux:178 (KEY_SCROLLDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1190: FILE: ui/input-keymap-xorgevdev-to-qcode.c:187:
+  [0xbb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:187 -> linux:179 (KEY_KPLEFTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1191: FILE: ui/input-keymap-xorgevdev-to-qcode.c:188:
+  [0xbc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:188 -> linux:180 (KEY_KPRIGHTPAREN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1192: FILE: ui/input-keymap-xorgevdev-to-qcode.c:189:
+  [0xbd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:189 -> linux:181 (KEY_NEW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1193: FILE: ui/input-keymap-xorgevdev-to-qcode.c:190:
+  [0xbe] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:190 -> linux:182 (KEY_REDO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1194: FILE: ui/input-keymap-xorgevdev-to-qcode.c:191:
+  [0xbf] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:191 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1195: FILE: ui/input-keymap-xorgevdev-to-qcode.c:192:
+  [0xc0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:192 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1196: FILE: ui/input-keymap-xorgevdev-to-qcode.c:193:
+  [0xc1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:193 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1197: FILE: ui/input-keymap-xorgevdev-to-qcode.c:194:
+  [0xc2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:194 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1198: FILE: ui/input-keymap-xorgevdev-to-qcode.c:195:
+  [0xc3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:195 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1199: FILE: ui/input-keymap-xorgevdev-to-qcode.c:196:
+  [0xc4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:196 -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1200: FILE: ui/input-keymap-xorgevdev-to-qcode.c:197:
+  [0xc5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:197 -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1201: FILE: ui/input-keymap-xorgevdev-to-qcode.c:198:
+  [0xc6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:198 -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1202: FILE: ui/input-keymap-xorgevdev-to-qcode.c:199:
+  [0xc7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:199 -> linux:191 (KEY_F21) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1203: FILE: ui/input-keymap-xorgevdev-to-qcode.c:200:
+  [0xc8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:200 -> linux:192 (KEY_F22) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1204: FILE: ui/input-keymap-xorgevdev-to-qcode.c:201:
+  [0xc9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:201 -> linux:193 (KEY_F23) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1205: FILE: ui/input-keymap-xorgevdev-to-qcode.c:202:
+  [0xca] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:202 -> linux:194 (KEY_F24) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1206: FILE: ui/input-keymap-xorgevdev-to-qcode.c:203:
+  [0xcb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:203 -> linux:195 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1207: FILE: ui/input-keymap-xorgevdev-to-qcode.c:204:
+  [0xcc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:204 -> linux:196 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1208: FILE: ui/input-keymap-xorgevdev-to-qcode.c:205:
+  [0xcd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:205 -> linux:197 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1209: FILE: ui/input-keymap-xorgevdev-to-qcode.c:206:
+  [0xce] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:206 -> linux:198 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1210: FILE: ui/input-keymap-xorgevdev-to-qcode.c:207:
+  [0xcf] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:207 -> linux:199 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1211: FILE: ui/input-keymap-xorgevdev-to-qcode.c:208:
+  [0xd0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:208 -> linux:200 (KEY_PLAYCD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1212: FILE: ui/input-keymap-xorgevdev-to-qcode.c:209:
+  [0xd1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:209 -> linux:201 (KEY_PAUSECD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1213: FILE: ui/input-keymap-xorgevdev-to-qcode.c:210:
+  [0xd2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:210 -> linux:202 (KEY_PROG3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1214: FILE: ui/input-keymap-xorgevdev-to-qcode.c:211:
+  [0xd3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:211 -> linux:203 (KEY_PROG4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1215: FILE: ui/input-keymap-xorgevdev-to-qcode.c:212:
+  [0xd4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:212 -> linux:204 (KEY_DASHBOARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1216: FILE: ui/input-keymap-xorgevdev-to-qcode.c:213:
+  [0xd5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:213 -> linux:205 (KEY_SUSPEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1217: FILE: ui/input-keymap-xorgevdev-to-qcode.c:214:
+  [0xd6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:214 -> linux:206 (KEY_CLOSE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1218: FILE: ui/input-keymap-xorgevdev-to-qcode.c:215:
+  [0xd7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:215 -> linux:207 (KEY_PLAY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1219: FILE: ui/input-keymap-xorgevdev-to-qcode.c:216:
+  [0xd8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:216 -> linux:208 (KEY_FASTFORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1220: FILE: ui/input-keymap-xorgevdev-to-qcode.c:217:
+  [0xd9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:217 -> linux:209 (KEY_BASSBOOST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1221: FILE: ui/input-keymap-xorgevdev-to-qcode.c:218:
+  [0xda] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:218 -> linux:210 (KEY_PRINT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1222: FILE: ui/input-keymap-xorgevdev-to-qcode.c:219:
+  [0xdb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:219 -> linux:211 (KEY_HP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1223: FILE: ui/input-keymap-xorgevdev-to-qcode.c:220:
+  [0xdc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:220 -> linux:212 (KEY_CAMERA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1224: FILE: ui/input-keymap-xorgevdev-to-qcode.c:221:
+  [0xdd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:221 -> linux:213 (KEY_SOUND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1225: FILE: ui/input-keymap-xorgevdev-to-qcode.c:222:
+  [0xde] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:222 -> linux:214 (KEY_QUESTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1226: FILE: ui/input-keymap-xorgevdev-to-qcode.c:223:
+  [0xdf] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:223 -> linux:215 (KEY_EMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1227: FILE: ui/input-keymap-xorgevdev-to-qcode.c:224:
+  [0xe0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:224 -> linux:216 (KEY_CHAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1228: FILE: ui/input-keymap-xorgevdev-to-qcode.c:225:
+  [0xe1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:225 -> linux:217 (KEY_SEARCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1229: FILE: ui/input-keymap-xorgevdev-to-qcode.c:226:
+  [0xe2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:226 -> linux:218 (KEY_CONNECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1230: FILE: ui/input-keymap-xorgevdev-to-qcode.c:227:
+  [0xe3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:227 -> linux:219 (KEY_FINANCE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1231: FILE: ui/input-keymap-xorgevdev-to-qcode.c:228:
+  [0xe4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:228 -> linux:220 (KEY_SPORT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1232: FILE: ui/input-keymap-xorgevdev-to-qcode.c:229:
+  [0xe5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:229 -> linux:221 (KEY_SHOP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1233: FILE: ui/input-keymap-xorgevdev-to-qcode.c:230:
+  [0xe6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:230 -> linux:222 (KEY_ALTERASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1234: FILE: ui/input-keymap-xorgevdev-to-qcode.c:231:
+  [0xe7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:231 -> linux:223 (KEY_CANCEL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1235: FILE: ui/input-keymap-xorgevdev-to-qcode.c:232:
+  [0xe8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:232 -> linux:224 (KEY_BRIGHTNESSDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1236: FILE: ui/input-keymap-xorgevdev-to-qcode.c:233:
+  [0xe9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:233 -> linux:225 (KEY_BRIGHTNESSUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1237: FILE: ui/input-keymap-xorgevdev-to-qcode.c:234:
+  [0xea] = Q_KEY_CODE_MEDIASELECT, /* xorgevdev:234 -> linux:226 (KEY_MEDIA) -> qcode:Q_KEY_CODE_MEDIASELECT (mediaselect) */

ERROR: line over 90 characters
#1238: FILE: ui/input-keymap-xorgevdev-to-qcode.c:235:
+  [0xeb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:235 -> linux:227 (KEY_SWITCHVIDEOMODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1239: FILE: ui/input-keymap-xorgevdev-to-qcode.c:236:
+  [0xec] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:236 -> linux:228 (KEY_KBDILLUMTOGGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1240: FILE: ui/input-keymap-xorgevdev-to-qcode.c:237:
+  [0xed] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:237 -> linux:229 (KEY_KBDILLUMDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1241: FILE: ui/input-keymap-xorgevdev-to-qcode.c:238:
+  [0xee] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:238 -> linux:230 (KEY_KBDILLUMUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1242: FILE: ui/input-keymap-xorgevdev-to-qcode.c:239:
+  [0xef] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:239 -> linux:231 (KEY_SEND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1243: FILE: ui/input-keymap-xorgevdev-to-qcode.c:240:
+  [0xf0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:240 -> linux:232 (KEY_REPLY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1244: FILE: ui/input-keymap-xorgevdev-to-qcode.c:241:
+  [0xf1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:241 -> linux:233 (KEY_FORWARDMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1245: FILE: ui/input-keymap-xorgevdev-to-qcode.c:242:
+  [0xf2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:242 -> linux:234 (KEY_SAVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1246: FILE: ui/input-keymap-xorgevdev-to-qcode.c:243:
+  [0xf3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:243 -> linux:235 (KEY_DOCUMENTS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1247: FILE: ui/input-keymap-xorgevdev-to-qcode.c:244:
+  [0xf4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:244 -> linux:236 (KEY_BATTERY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1248: FILE: ui/input-keymap-xorgevdev-to-qcode.c:245:
+  [0xf5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:245 -> linux:237 (KEY_BLUETOOTH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1249: FILE: ui/input-keymap-xorgevdev-to-qcode.c:246:
+  [0xf6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:246 -> linux:238 (KEY_WLAN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1250: FILE: ui/input-keymap-xorgevdev-to-qcode.c:247:
+  [0xf7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:247 -> linux:239 (KEY_UWB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1251: FILE: ui/input-keymap-xorgevdev-to-qcode.c:248:
+  [0xf8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:248 -> linux:240 (KEY_UNKNOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1252: FILE: ui/input-keymap-xorgevdev-to-qcode.c:249:
+  [0xf9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:249 -> linux:241 (KEY_VIDEO_NEXT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1253: FILE: ui/input-keymap-xorgevdev-to-qcode.c:250:
+  [0xfa] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:250 -> linux:242 (KEY_VIDEO_PREV) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1254: FILE: ui/input-keymap-xorgevdev-to-qcode.c:251:
+  [0xfb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:251 -> linux:243 (KEY_BRIGHTNESS_CYCLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1255: FILE: ui/input-keymap-xorgevdev-to-qcode.c:252:
+  [0xfc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:252 -> linux:244 (KEY_BRIGHTNESS_ZERO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1256: FILE: ui/input-keymap-xorgevdev-to-qcode.c:253:
+  [0xfd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:253 -> linux:245 (KEY_DISPLAY_OFF) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1257: FILE: ui/input-keymap-xorgevdev-to-qcode.c:254:
+  [0xfe] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:254 -> linux:246 (KEY_WIMAX) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1258: FILE: ui/input-keymap-xorgevdev-to-qcode.c:255:
+  [0xff] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:255 -> linux:247 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1259: FILE: ui/input-keymap-xorgevdev-to-qcode.c:256:
+  [0x100] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:256 -> linux:248 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1260: FILE: ui/input-keymap-xorgevdev-to-qcode.c:257:
+  [0x101] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:257 -> linux:249 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1261: FILE: ui/input-keymap-xorgevdev-to-qcode.c:258:
+  [0x102] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:258 -> linux:250 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1262: FILE: ui/input-keymap-xorgevdev-to-qcode.c:259:
+  [0x103] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:259 -> linux:251 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1263: FILE: ui/input-keymap-xorgevdev-to-qcode.c:260:
+  [0x104] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:260 -> linux:252 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1264: FILE: ui/input-keymap-xorgevdev-to-qcode.c:261:
+  [0x105] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:261 -> linux:253 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1265: FILE: ui/input-keymap-xorgevdev-to-qcode.c:262:
+  [0x106] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:262 -> linux:254 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1266: FILE: ui/input-keymap-xorgevdev-to-qcode.c:263:
+  [0x107] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:263 -> linux:255 (unnamed) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1267: FILE: ui/input-keymap-xorgevdev-to-qcode.c:264:
+  [0x108] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:264 -> linux:256 (BTN_0) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1268: FILE: ui/input-keymap-xorgevdev-to-qcode.c:265:
+  [0x109] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:265 -> linux:257 (BTN_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1269: FILE: ui/input-keymap-xorgevdev-to-qcode.c:266:
+  [0x10a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:266 -> linux:258 (BTN_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1270: FILE: ui/input-keymap-xorgevdev-to-qcode.c:267:
+  [0x10b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:267 -> linux:259 (BTN_3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1271: FILE: ui/input-keymap-xorgevdev-to-qcode.c:268:
+  [0x10c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:268 -> linux:260 (BTN_4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1272: FILE: ui/input-keymap-xorgevdev-to-qcode.c:269:
+  [0x10d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:269 -> linux:261 (BTN_5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1273: FILE: ui/input-keymap-xorgevdev-to-qcode.c:270:
+  [0x10e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:270 -> linux:262 (BTN_6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1274: FILE: ui/input-keymap-xorgevdev-to-qcode.c:271:
+  [0x10f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:271 -> linux:263 (BTN_7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1275: FILE: ui/input-keymap-xorgevdev-to-qcode.c:272:
+  [0x110] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:272 -> linux:264 (BTN_8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1276: FILE: ui/input-keymap-xorgevdev-to-qcode.c:273:
+  [0x111] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:273 -> linux:265 (BTN_9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1277: FILE: ui/input-keymap-xorgevdev-to-qcode.c:274:
+  [0x118] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:280 -> linux:272 (BTN_LEFT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1278: FILE: ui/input-keymap-xorgevdev-to-qcode.c:275:
+  [0x119] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:281 -> linux:273 (BTN_RIGHT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1279: FILE: ui/input-keymap-xorgevdev-to-qcode.c:276:
+  [0x11a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:282 -> linux:274 (BTN_MIDDLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1280: FILE: ui/input-keymap-xorgevdev-to-qcode.c:277:
+  [0x11b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:283 -> linux:275 (BTN_SIDE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1281: FILE: ui/input-keymap-xorgevdev-to-qcode.c:278:
+  [0x11c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:284 -> linux:276 (BTN_EXTRA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1282: FILE: ui/input-keymap-xorgevdev-to-qcode.c:279:
+  [0x11d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:285 -> linux:277 (BTN_FORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1283: FILE: ui/input-keymap-xorgevdev-to-qcode.c:280:
+  [0x11e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:286 -> linux:278 (BTN_BACK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1284: FILE: ui/input-keymap-xorgevdev-to-qcode.c:281:
+  [0x11f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:287 -> linux:279 (BTN_TASK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1285: FILE: ui/input-keymap-xorgevdev-to-qcode.c:282:
+  [0x128] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:296 -> linux:288 (BTN_TRIGGER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1286: FILE: ui/input-keymap-xorgevdev-to-qcode.c:283:
+  [0x129] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:297 -> linux:289 (BTN_THUMB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1287: FILE: ui/input-keymap-xorgevdev-to-qcode.c:284:
+  [0x12a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:298 -> linux:290 (BTN_THUMB2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1288: FILE: ui/input-keymap-xorgevdev-to-qcode.c:285:
+  [0x12b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:299 -> linux:291 (BTN_TOP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1289: FILE: ui/input-keymap-xorgevdev-to-qcode.c:286:
+  [0x12c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:300 -> linux:292 (BTN_TOP2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1290: FILE: ui/input-keymap-xorgevdev-to-qcode.c:287:
+  [0x12d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:301 -> linux:293 (BTN_PINKIE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1291: FILE: ui/input-keymap-xorgevdev-to-qcode.c:288:
+  [0x12e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:302 -> linux:294 (BTN_BASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1292: FILE: ui/input-keymap-xorgevdev-to-qcode.c:289:
+  [0x12f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:303 -> linux:295 (BTN_BASE2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1293: FILE: ui/input-keymap-xorgevdev-to-qcode.c:290:
+  [0x130] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:304 -> linux:296 (BTN_BASE3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1294: FILE: ui/input-keymap-xorgevdev-to-qcode.c:291:
+  [0x131] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:305 -> linux:297 (BTN_BASE4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1295: FILE: ui/input-keymap-xorgevdev-to-qcode.c:292:
+  [0x132] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:306 -> linux:298 (BTN_BASE5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1296: FILE: ui/input-keymap-xorgevdev-to-qcode.c:293:
+  [0x133] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:307 -> linux:299 (BTN_BASE6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1297: FILE: ui/input-keymap-xorgevdev-to-qcode.c:294:
+  [0x137] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:311 -> linux:303 (BTN_DEAD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1298: FILE: ui/input-keymap-xorgevdev-to-qcode.c:295:
+  [0x138] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:312 -> linux:304 (BTN_A) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1299: FILE: ui/input-keymap-xorgevdev-to-qcode.c:296:
+  [0x139] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:313 -> linux:305 (BTN_B) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1300: FILE: ui/input-keymap-xorgevdev-to-qcode.c:297:
+  [0x13a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:314 -> linux:306 (BTN_C) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1301: FILE: ui/input-keymap-xorgevdev-to-qcode.c:298:
+  [0x13b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:315 -> linux:307 (BTN_X) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1302: FILE: ui/input-keymap-xorgevdev-to-qcode.c:299:
+  [0x13c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:316 -> linux:308 (BTN_Y) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1303: FILE: ui/input-keymap-xorgevdev-to-qcode.c:300:
+  [0x13d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:317 -> linux:309 (BTN_Z) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1304: FILE: ui/input-keymap-xorgevdev-to-qcode.c:301:
+  [0x13e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:318 -> linux:310 (BTN_TL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1305: FILE: ui/input-keymap-xorgevdev-to-qcode.c:302:
+  [0x13f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:319 -> linux:311 (BTN_TR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1306: FILE: ui/input-keymap-xorgevdev-to-qcode.c:303:
+  [0x140] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:320 -> linux:312 (BTN_TL2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1307: FILE: ui/input-keymap-xorgevdev-to-qcode.c:304:
+  [0x141] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:321 -> linux:313 (BTN_TR2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1308: FILE: ui/input-keymap-xorgevdev-to-qcode.c:305:
+  [0x142] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:322 -> linux:314 (BTN_SELECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1309: FILE: ui/input-keymap-xorgevdev-to-qcode.c:306:
+  [0x143] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:323 -> linux:315 (BTN_START) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1310: FILE: ui/input-keymap-xorgevdev-to-qcode.c:307:
+  [0x144] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:324 -> linux:316 (BTN_MODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1311: FILE: ui/input-keymap-xorgevdev-to-qcode.c:308:
+  [0x145] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:325 -> linux:317 (BTN_THUMBL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1312: FILE: ui/input-keymap-xorgevdev-to-qcode.c:309:
+  [0x146] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:326 -> linux:318 (BTN_THUMBR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1313: FILE: ui/input-keymap-xorgevdev-to-qcode.c:310:
+  [0x148] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:328 -> linux:320 (BTN_TOOL_PEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1314: FILE: ui/input-keymap-xorgevdev-to-qcode.c:311:
+  [0x149] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:329 -> linux:321 (BTN_TOOL_RUBBER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1315: FILE: ui/input-keymap-xorgevdev-to-qcode.c:312:
+  [0x14a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:330 -> linux:322 (BTN_TOOL_BRUSH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1316: FILE: ui/input-keymap-xorgevdev-to-qcode.c:313:
+  [0x14b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:331 -> linux:323 (BTN_TOOL_PENCIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1317: FILE: ui/input-keymap-xorgevdev-to-qcode.c:314:
+  [0x14c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:332 -> linux:324 (BTN_TOOL_AIRBRUSH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1318: FILE: ui/input-keymap-xorgevdev-to-qcode.c:315:
+  [0x14d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:333 -> linux:325 (BTN_TOOL_FINGER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1319: FILE: ui/input-keymap-xorgevdev-to-qcode.c:316:
+  [0x14e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:334 -> linux:326 (BTN_TOOL_MOUSE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1320: FILE: ui/input-keymap-xorgevdev-to-qcode.c:317:
+  [0x14f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:335 -> linux:327 (BTN_TOOL_LENS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1321: FILE: ui/input-keymap-xorgevdev-to-qcode.c:318:
+  [0x152] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:338 -> linux:330 (BTN_TOUCH) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1322: FILE: ui/input-keymap-xorgevdev-to-qcode.c:319:
+  [0x153] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:339 -> linux:331 (BTN_STYLUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1323: FILE: ui/input-keymap-xorgevdev-to-qcode.c:320:
+  [0x154] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:340 -> linux:332 (BTN_STYLUS2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1324: FILE: ui/input-keymap-xorgevdev-to-qcode.c:321:
+  [0x155] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:341 -> linux:333 (BTN_TOOL_DOUBLETAP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1325: FILE: ui/input-keymap-xorgevdev-to-qcode.c:322:
+  [0x156] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:342 -> linux:334 (BTN_TOOL_TRIPLETAP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1326: FILE: ui/input-keymap-xorgevdev-to-qcode.c:323:
+  [0x157] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:343 -> linux:335 (BTN_TOOL_QUADTAP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1327: FILE: ui/input-keymap-xorgevdev-to-qcode.c:324:
+  [0x158] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:344 -> linux:336 (BTN_GEAR_DOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1328: FILE: ui/input-keymap-xorgevdev-to-qcode.c:325:
+  [0x159] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:345 -> linux:337 (BTN_GEAR_UP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1329: FILE: ui/input-keymap-xorgevdev-to-qcode.c:326:
+  [0x168] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:360 -> linux:352 (KEY_OK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1330: FILE: ui/input-keymap-xorgevdev-to-qcode.c:327:
+  [0x169] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:361 -> linux:353 (KEY_SELECT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1331: FILE: ui/input-keymap-xorgevdev-to-qcode.c:328:
+  [0x16a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:362 -> linux:354 (KEY_GOTO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1332: FILE: ui/input-keymap-xorgevdev-to-qcode.c:329:
+  [0x16b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:363 -> linux:355 (KEY_CLEAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1333: FILE: ui/input-keymap-xorgevdev-to-qcode.c:330:
+  [0x16c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:364 -> linux:356 (KEY_POWER2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1334: FILE: ui/input-keymap-xorgevdev-to-qcode.c:331:
+  [0x16d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:365 -> linux:357 (KEY_OPTION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1335: FILE: ui/input-keymap-xorgevdev-to-qcode.c:332:
+  [0x16e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:366 -> linux:358 (KEY_INFO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1336: FILE: ui/input-keymap-xorgevdev-to-qcode.c:333:
+  [0x16f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:367 -> linux:359 (KEY_TIME) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1337: FILE: ui/input-keymap-xorgevdev-to-qcode.c:334:
+  [0x170] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:368 -> linux:360 (KEY_VENDOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1338: FILE: ui/input-keymap-xorgevdev-to-qcode.c:335:
+  [0x171] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:369 -> linux:361 (KEY_ARCHIVE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1339: FILE: ui/input-keymap-xorgevdev-to-qcode.c:336:
+  [0x172] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:370 -> linux:362 (KEY_PROGRAM) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1340: FILE: ui/input-keymap-xorgevdev-to-qcode.c:337:
+  [0x173] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:371 -> linux:363 (KEY_CHANNEL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1341: FILE: ui/input-keymap-xorgevdev-to-qcode.c:338:
+  [0x174] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:372 -> linux:364 (KEY_FAVORITES) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1342: FILE: ui/input-keymap-xorgevdev-to-qcode.c:339:
+  [0x175] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:373 -> linux:365 (KEY_EPG) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1343: FILE: ui/input-keymap-xorgevdev-to-qcode.c:340:
+  [0x176] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:374 -> linux:366 (KEY_PVR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1344: FILE: ui/input-keymap-xorgevdev-to-qcode.c:341:
+  [0x177] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:375 -> linux:367 (KEY_MHP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1345: FILE: ui/input-keymap-xorgevdev-to-qcode.c:342:
+  [0x178] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:376 -> linux:368 (KEY_LANGUAGE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1346: FILE: ui/input-keymap-xorgevdev-to-qcode.c:343:
+  [0x179] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:377 -> linux:369 (KEY_TITLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1347: FILE: ui/input-keymap-xorgevdev-to-qcode.c:344:
+  [0x17a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:378 -> linux:370 (KEY_SUBTITLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1348: FILE: ui/input-keymap-xorgevdev-to-qcode.c:345:
+  [0x17b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:379 -> linux:371 (KEY_ANGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1349: FILE: ui/input-keymap-xorgevdev-to-qcode.c:346:
+  [0x17c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:380 -> linux:372 (KEY_ZOOM) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1350: FILE: ui/input-keymap-xorgevdev-to-qcode.c:347:
+  [0x17d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:381 -> linux:373 (KEY_MODE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1351: FILE: ui/input-keymap-xorgevdev-to-qcode.c:348:
+  [0x17e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:382 -> linux:374 (KEY_KEYBOARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1352: FILE: ui/input-keymap-xorgevdev-to-qcode.c:349:
+  [0x17f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:383 -> linux:375 (KEY_SCREEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1353: FILE: ui/input-keymap-xorgevdev-to-qcode.c:350:
+  [0x180] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:384 -> linux:376 (KEY_PC) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1354: FILE: ui/input-keymap-xorgevdev-to-qcode.c:351:
+  [0x181] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:385 -> linux:377 (KEY_TV) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1355: FILE: ui/input-keymap-xorgevdev-to-qcode.c:352:
+  [0x182] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:386 -> linux:378 (KEY_TV2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1356: FILE: ui/input-keymap-xorgevdev-to-qcode.c:353:
+  [0x183] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:387 -> linux:379 (KEY_VCR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1357: FILE: ui/input-keymap-xorgevdev-to-qcode.c:354:
+  [0x184] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:388 -> linux:380 (KEY_VCR2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1358: FILE: ui/input-keymap-xorgevdev-to-qcode.c:355:
+  [0x185] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:389 -> linux:381 (KEY_SAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1359: FILE: ui/input-keymap-xorgevdev-to-qcode.c:356:
+  [0x186] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:390 -> linux:382 (KEY_SAT2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1360: FILE: ui/input-keymap-xorgevdev-to-qcode.c:357:
+  [0x187] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:391 -> linux:383 (KEY_CD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1361: FILE: ui/input-keymap-xorgevdev-to-qcode.c:358:
+  [0x188] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:392 -> linux:384 (KEY_TAPE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1362: FILE: ui/input-keymap-xorgevdev-to-qcode.c:359:
+  [0x189] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:393 -> linux:385 (KEY_RADIO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1363: FILE: ui/input-keymap-xorgevdev-to-qcode.c:360:
+  [0x18a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:394 -> linux:386 (KEY_TUNER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1364: FILE: ui/input-keymap-xorgevdev-to-qcode.c:361:
+  [0x18b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:395 -> linux:387 (KEY_PLAYER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1365: FILE: ui/input-keymap-xorgevdev-to-qcode.c:362:
+  [0x18c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:396 -> linux:388 (KEY_TEXT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1366: FILE: ui/input-keymap-xorgevdev-to-qcode.c:363:
+  [0x18d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:397 -> linux:389 (KEY_DVD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1367: FILE: ui/input-keymap-xorgevdev-to-qcode.c:364:
+  [0x18e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:398 -> linux:390 (KEY_AUX) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1368: FILE: ui/input-keymap-xorgevdev-to-qcode.c:365:
+  [0x18f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:399 -> linux:391 (KEY_MP3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1369: FILE: ui/input-keymap-xorgevdev-to-qcode.c:366:
+  [0x190] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:400 -> linux:392 (KEY_AUDIO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1370: FILE: ui/input-keymap-xorgevdev-to-qcode.c:367:
+  [0x191] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:401 -> linux:393 (KEY_VIDEO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1371: FILE: ui/input-keymap-xorgevdev-to-qcode.c:368:
+  [0x192] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:402 -> linux:394 (KEY_DIRECTORY) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1372: FILE: ui/input-keymap-xorgevdev-to-qcode.c:369:
+  [0x193] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:403 -> linux:395 (KEY_LIST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1373: FILE: ui/input-keymap-xorgevdev-to-qcode.c:370:
+  [0x194] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:404 -> linux:396 (KEY_MEMO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1374: FILE: ui/input-keymap-xorgevdev-to-qcode.c:371:
+  [0x195] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:405 -> linux:397 (KEY_CALENDAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1375: FILE: ui/input-keymap-xorgevdev-to-qcode.c:372:
+  [0x196] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:406 -> linux:398 (KEY_RED) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1376: FILE: ui/input-keymap-xorgevdev-to-qcode.c:373:
+  [0x197] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:407 -> linux:399 (KEY_GREEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1377: FILE: ui/input-keymap-xorgevdev-to-qcode.c:374:
+  [0x198] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:408 -> linux:400 (KEY_YELLOW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1378: FILE: ui/input-keymap-xorgevdev-to-qcode.c:375:
+  [0x199] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:409 -> linux:401 (KEY_BLUE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1379: FILE: ui/input-keymap-xorgevdev-to-qcode.c:376:
+  [0x19a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:410 -> linux:402 (KEY_CHANNELUP) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1380: FILE: ui/input-keymap-xorgevdev-to-qcode.c:377:
+  [0x19b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:411 -> linux:403 (KEY_CHANNELDOWN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1381: FILE: ui/input-keymap-xorgevdev-to-qcode.c:378:
+  [0x19c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:412 -> linux:404 (KEY_FIRST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1382: FILE: ui/input-keymap-xorgevdev-to-qcode.c:379:
+  [0x19d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:413 -> linux:405 (KEY_LAST) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1383: FILE: ui/input-keymap-xorgevdev-to-qcode.c:380:
+  [0x19e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:414 -> linux:406 (KEY_AB) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1384: FILE: ui/input-keymap-xorgevdev-to-qcode.c:381:
+  [0x19f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:415 -> linux:407 (KEY_NEXT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1385: FILE: ui/input-keymap-xorgevdev-to-qcode.c:382:
+  [0x1a0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:416 -> linux:408 (KEY_RESTART) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1386: FILE: ui/input-keymap-xorgevdev-to-qcode.c:383:
+  [0x1a1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:417 -> linux:409 (KEY_SLOW) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1387: FILE: ui/input-keymap-xorgevdev-to-qcode.c:384:
+  [0x1a2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:418 -> linux:410 (KEY_SHUFFLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1388: FILE: ui/input-keymap-xorgevdev-to-qcode.c:385:
+  [0x1a3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:419 -> linux:411 (KEY_BREAK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1389: FILE: ui/input-keymap-xorgevdev-to-qcode.c:386:
+  [0x1a4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:420 -> linux:412 (KEY_PREVIOUS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1390: FILE: ui/input-keymap-xorgevdev-to-qcode.c:387:
+  [0x1a5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:421 -> linux:413 (KEY_DIGITS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1391: FILE: ui/input-keymap-xorgevdev-to-qcode.c:388:
+  [0x1a6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:422 -> linux:414 (KEY_TEEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1392: FILE: ui/input-keymap-xorgevdev-to-qcode.c:389:
+  [0x1a7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:423 -> linux:415 (KEY_TWEN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1393: FILE: ui/input-keymap-xorgevdev-to-qcode.c:390:
+  [0x1a8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:424 -> linux:416 (KEY_VIDEOPHONE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1394: FILE: ui/input-keymap-xorgevdev-to-qcode.c:391:
+  [0x1a9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:425 -> linux:417 (KEY_GAMES) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1395: FILE: ui/input-keymap-xorgevdev-to-qcode.c:392:
+  [0x1aa] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:426 -> linux:418 (KEY_ZOOMIN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1396: FILE: ui/input-keymap-xorgevdev-to-qcode.c:393:
+  [0x1ab] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:427 -> linux:419 (KEY_ZOOMOUT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1397: FILE: ui/input-keymap-xorgevdev-to-qcode.c:394:
+  [0x1ac] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:428 -> linux:420 (KEY_ZOOMRESET) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1398: FILE: ui/input-keymap-xorgevdev-to-qcode.c:395:
+  [0x1ad] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:429 -> linux:421 (KEY_WORDPROCESSOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1399: FILE: ui/input-keymap-xorgevdev-to-qcode.c:396:
+  [0x1ae] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:430 -> linux:422 (KEY_EDITOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1400: FILE: ui/input-keymap-xorgevdev-to-qcode.c:397:
+  [0x1af] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:431 -> linux:423 (KEY_SPREADSHEET) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1401: FILE: ui/input-keymap-xorgevdev-to-qcode.c:398:
+  [0x1b0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:432 -> linux:424 (KEY_GRAPHICSEDITOR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1402: FILE: ui/input-keymap-xorgevdev-to-qcode.c:399:
+  [0x1b1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:433 -> linux:425 (KEY_PRESENTATION) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1403: FILE: ui/input-keymap-xorgevdev-to-qcode.c:400:
+  [0x1b2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:434 -> linux:426 (KEY_DATABASE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1404: FILE: ui/input-keymap-xorgevdev-to-qcode.c:401:
+  [0x1b3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:435 -> linux:427 (KEY_NEWS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1405: FILE: ui/input-keymap-xorgevdev-to-qcode.c:402:
+  [0x1b4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:436 -> linux:428 (KEY_VOICEMAIL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1406: FILE: ui/input-keymap-xorgevdev-to-qcode.c:403:
+  [0x1b5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:437 -> linux:429 (KEY_ADDRESSBOOK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1407: FILE: ui/input-keymap-xorgevdev-to-qcode.c:404:
+  [0x1b6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:438 -> linux:430 (KEY_MESSENGER) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1408: FILE: ui/input-keymap-xorgevdev-to-qcode.c:405:
+  [0x1b7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:439 -> linux:431 (KEY_DISPLAYTOGGLE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1409: FILE: ui/input-keymap-xorgevdev-to-qcode.c:406:
+  [0x1b8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:440 -> linux:432 (KEY_SPELLCHECK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1410: FILE: ui/input-keymap-xorgevdev-to-qcode.c:407:
+  [0x1b9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:441 -> linux:433 (KEY_LOGOFF) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1411: FILE: ui/input-keymap-xorgevdev-to-qcode.c:408:
+  [0x1ba] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:442 -> linux:434 (KEY_DOLLAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1412: FILE: ui/input-keymap-xorgevdev-to-qcode.c:409:
+  [0x1bb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:443 -> linux:435 (KEY_EURO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1413: FILE: ui/input-keymap-xorgevdev-to-qcode.c:410:
+  [0x1bc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:444 -> linux:436 (KEY_FRAMEBACK) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1414: FILE: ui/input-keymap-xorgevdev-to-qcode.c:411:
+  [0x1bd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:445 -> linux:437 (KEY_FRAMEFORWARD) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1415: FILE: ui/input-keymap-xorgevdev-to-qcode.c:412:
+  [0x1be] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:446 -> linux:438 (KEY_CONTEXT_MENU) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1416: FILE: ui/input-keymap-xorgevdev-to-qcode.c:413:
+  [0x1bf] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:447 -> linux:439 (KEY_MEDIA_REPEAT) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1417: FILE: ui/input-keymap-xorgevdev-to-qcode.c:414:
+  [0x1c8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:456 -> linux:448 (KEY_DEL_EOL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1418: FILE: ui/input-keymap-xorgevdev-to-qcode.c:415:
+  [0x1c9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:457 -> linux:449 (KEY_DEL_EOS) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1419: FILE: ui/input-keymap-xorgevdev-to-qcode.c:416:
+  [0x1ca] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:458 -> linux:450 (KEY_INS_LINE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1420: FILE: ui/input-keymap-xorgevdev-to-qcode.c:417:
+  [0x1cb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:459 -> linux:451 (KEY_DEL_LINE) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1421: FILE: ui/input-keymap-xorgevdev-to-qcode.c:418:
+  [0x1d8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:472 -> linux:464 (KEY_FN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1422: FILE: ui/input-keymap-xorgevdev-to-qcode.c:419:
+  [0x1d9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:473 -> linux:465 (KEY_FN_ESC) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1423: FILE: ui/input-keymap-xorgevdev-to-qcode.c:420:
+  [0x1da] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:474 -> linux:466 (KEY_FN_F1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1424: FILE: ui/input-keymap-xorgevdev-to-qcode.c:421:
+  [0x1db] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:475 -> linux:467 (KEY_FN_F2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1425: FILE: ui/input-keymap-xorgevdev-to-qcode.c:422:
+  [0x1dc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:476 -> linux:468 (KEY_FN_F3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1426: FILE: ui/input-keymap-xorgevdev-to-qcode.c:423:
+  [0x1dd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:477 -> linux:469 (KEY_FN_F4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1427: FILE: ui/input-keymap-xorgevdev-to-qcode.c:424:
+  [0x1de] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:478 -> linux:470 (KEY_FN_F5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1428: FILE: ui/input-keymap-xorgevdev-to-qcode.c:425:
+  [0x1df] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:479 -> linux:471 (KEY_FN_F6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1429: FILE: ui/input-keymap-xorgevdev-to-qcode.c:426:
+  [0x1e0] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:480 -> linux:472 (KEY_FN_F7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1430: FILE: ui/input-keymap-xorgevdev-to-qcode.c:427:
+  [0x1e1] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:481 -> linux:473 (KEY_FN_F8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1431: FILE: ui/input-keymap-xorgevdev-to-qcode.c:428:
+  [0x1e2] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:482 -> linux:474 (KEY_FN_F9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1432: FILE: ui/input-keymap-xorgevdev-to-qcode.c:429:
+  [0x1e3] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:483 -> linux:475 (KEY_FN_F10) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1433: FILE: ui/input-keymap-xorgevdev-to-qcode.c:430:
+  [0x1e4] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:484 -> linux:476 (KEY_FN_F11) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1434: FILE: ui/input-keymap-xorgevdev-to-qcode.c:431:
+  [0x1e5] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:485 -> linux:477 (KEY_FN_F12) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1435: FILE: ui/input-keymap-xorgevdev-to-qcode.c:432:
+  [0x1e6] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:486 -> linux:478 (KEY_FN_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1436: FILE: ui/input-keymap-xorgevdev-to-qcode.c:433:
+  [0x1e7] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:487 -> linux:479 (KEY_FN_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1437: FILE: ui/input-keymap-xorgevdev-to-qcode.c:434:
+  [0x1e8] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:488 -> linux:480 (KEY_FN_D) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1438: FILE: ui/input-keymap-xorgevdev-to-qcode.c:435:
+  [0x1e9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:489 -> linux:481 (KEY_FN_E) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1439: FILE: ui/input-keymap-xorgevdev-to-qcode.c:436:
+  [0x1ea] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:490 -> linux:482 (KEY_FN_F) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1440: FILE: ui/input-keymap-xorgevdev-to-qcode.c:437:
+  [0x1eb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:491 -> linux:483 (KEY_FN_S) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1441: FILE: ui/input-keymap-xorgevdev-to-qcode.c:438:
+  [0x1ec] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:492 -> linux:484 (KEY_FN_B) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1442: FILE: ui/input-keymap-xorgevdev-to-qcode.c:439:
+  [0x1f9] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:505 -> linux:497 (KEY_BRL_DOT1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1443: FILE: ui/input-keymap-xorgevdev-to-qcode.c:440:
+  [0x1fa] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:506 -> linux:498 (KEY_BRL_DOT2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1444: FILE: ui/input-keymap-xorgevdev-to-qcode.c:441:
+  [0x1fb] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:507 -> linux:499 (KEY_BRL_DOT3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1445: FILE: ui/input-keymap-xorgevdev-to-qcode.c:442:
+  [0x1fc] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:508 -> linux:500 (KEY_BRL_DOT4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1446: FILE: ui/input-keymap-xorgevdev-to-qcode.c:443:
+  [0x1fd] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:509 -> linux:501 (KEY_BRL_DOT5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1447: FILE: ui/input-keymap-xorgevdev-to-qcode.c:444:
+  [0x1fe] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:510 -> linux:502 (KEY_BRL_DOT6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1448: FILE: ui/input-keymap-xorgevdev-to-qcode.c:445:
+  [0x1ff] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:511 -> linux:503 (KEY_BRL_DOT7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1449: FILE: ui/input-keymap-xorgevdev-to-qcode.c:446:
+  [0x200] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:512 -> linux:504 (KEY_BRL_DOT8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1450: FILE: ui/input-keymap-xorgevdev-to-qcode.c:447:
+  [0x201] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:513 -> linux:505 (KEY_BRL_DOT9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1451: FILE: ui/input-keymap-xorgevdev-to-qcode.c:448:
+  [0x202] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:514 -> linux:506 (KEY_BRL_DOT10) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1452: FILE: ui/input-keymap-xorgevdev-to-qcode.c:449:
+  [0x208] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:520 -> linux:512 (KEY_NUMERIC_0) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1453: FILE: ui/input-keymap-xorgevdev-to-qcode.c:450:
+  [0x209] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:521 -> linux:513 (KEY_NUMERIC_1) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1454: FILE: ui/input-keymap-xorgevdev-to-qcode.c:451:
+  [0x20a] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:522 -> linux:514 (KEY_NUMERIC_2) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1455: FILE: ui/input-keymap-xorgevdev-to-qcode.c:452:
+  [0x20b] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:523 -> linux:515 (KEY_NUMERIC_3) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1456: FILE: ui/input-keymap-xorgevdev-to-qcode.c:453:
+  [0x20c] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:524 -> linux:516 (KEY_NUMERIC_4) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1457: FILE: ui/input-keymap-xorgevdev-to-qcode.c:454:
+  [0x20d] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:525 -> linux:517 (KEY_NUMERIC_5) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1458: FILE: ui/input-keymap-xorgevdev-to-qcode.c:455:
+  [0x20e] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:526 -> linux:518 (KEY_NUMERIC_6) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1459: FILE: ui/input-keymap-xorgevdev-to-qcode.c:456:
+  [0x20f] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:527 -> linux:519 (KEY_NUMERIC_7) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1460: FILE: ui/input-keymap-xorgevdev-to-qcode.c:457:
+  [0x210] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:528 -> linux:520 (KEY_NUMERIC_8) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1461: FILE: ui/input-keymap-xorgevdev-to-qcode.c:458:
+  [0x211] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:529 -> linux:521 (KEY_NUMERIC_9) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1462: FILE: ui/input-keymap-xorgevdev-to-qcode.c:459:
+  [0x212] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:530 -> linux:522 (KEY_NUMERIC_STAR) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1463: FILE: ui/input-keymap-xorgevdev-to-qcode.c:460:
+  [0x213] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:531 -> linux:523 (KEY_NUMERIC_POUND) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1464: FILE: ui/input-keymap-xorgevdev-to-qcode.c:461:
+  [0x214] = Q_KEY_CODE_UNMAPPED, /* xorgevdev:532 -> linux:524 (KEY_RFKILL) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1466: FILE: ui/input-keymap-xorgevdev-to-qcode.c:463:
+const guint qemu_input_map_xorgevdev_to_qcode_len = sizeof(qemu_input_map_xorgevdev_to_qcode)/sizeof(qemu_input_map_xorgevdev_to_qcode[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#1466: FILE: ui/input-keymap-xorgevdev-to-qcode.c:463:
+const guint qemu_input_map_xorgevdev_to_qcode_len = sizeof(qemu_input_map_xorgevdev_to_qcode)/sizeof(qemu_input_map_xorgevdev_to_qcode[0]);
                                                                                              ^

ERROR: line over 90 characters
#1475: FILE: ui/input-keymap-xorgkbd-to-qcode.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#1477: FILE: ui/input-keymap-xorgkbd-to-qcode.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_xorgkbd_to_qcode code-map keymaps.csv xorgkbd qcode

ERROR: line over 90 characters
#1480: FILE: ui/input-keymap-xorgkbd-to-qcode.c:8:
+  [0x9] = Q_KEY_CODE_ESC, /* xorgkbd:9 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */

WARNING: line over 80 characters
#1481: FILE: ui/input-keymap-xorgkbd-to-qcode.c:9:
+  [0xa] = Q_KEY_CODE_1, /* xorgkbd:10 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */

WARNING: line over 80 characters
#1482: FILE: ui/input-keymap-xorgkbd-to-qcode.c:10:
+  [0xb] = Q_KEY_CODE_2, /* xorgkbd:11 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */

WARNING: line over 80 characters
#1483: FILE: ui/input-keymap-xorgkbd-to-qcode.c:11:
+  [0xc] = Q_KEY_CODE_3, /* xorgkbd:12 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */

WARNING: line over 80 characters
#1484: FILE: ui/input-keymap-xorgkbd-to-qcode.c:12:
+  [0xd] = Q_KEY_CODE_4, /* xorgkbd:13 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */

WARNING: line over 80 characters
#1485: FILE: ui/input-keymap-xorgkbd-to-qcode.c:13:
+  [0xe] = Q_KEY_CODE_5, /* xorgkbd:14 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */

WARNING: line over 80 characters
#1486: FILE: ui/input-keymap-xorgkbd-to-qcode.c:14:
+  [0xf] = Q_KEY_CODE_6, /* xorgkbd:15 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */

WARNING: line over 80 characters
#1487: FILE: ui/input-keymap-xorgkbd-to-qcode.c:15:
+  [0x10] = Q_KEY_CODE_7, /* xorgkbd:16 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */

WARNING: line over 80 characters
#1488: FILE: ui/input-keymap-xorgkbd-to-qcode.c:16:
+  [0x11] = Q_KEY_CODE_8, /* xorgkbd:17 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */

WARNING: line over 80 characters
#1489: FILE: ui/input-keymap-xorgkbd-to-qcode.c:17:
+  [0x12] = Q_KEY_CODE_9, /* xorgkbd:18 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */

WARNING: line over 80 characters
#1490: FILE: ui/input-keymap-xorgkbd-to-qcode.c:18:
+  [0x13] = Q_KEY_CODE_0, /* xorgkbd:19 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */

ERROR: line over 90 characters
#1491: FILE: ui/input-keymap-xorgkbd-to-qcode.c:19:
+  [0x14] = Q_KEY_CODE_MINUS, /* xorgkbd:20 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */

ERROR: line over 90 characters
#1492: FILE: ui/input-keymap-xorgkbd-to-qcode.c:20:
+  [0x15] = Q_KEY_CODE_EQUAL, /* xorgkbd:21 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */

ERROR: line over 90 characters
#1493: FILE: ui/input-keymap-xorgkbd-to-qcode.c:21:
+  [0x16] = Q_KEY_CODE_BACKSPACE, /* xorgkbd:22 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */

ERROR: line over 90 characters
#1494: FILE: ui/input-keymap-xorgkbd-to-qcode.c:22:
+  [0x17] = Q_KEY_CODE_TAB, /* xorgkbd:23 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */

WARNING: line over 80 characters
#1495: FILE: ui/input-keymap-xorgkbd-to-qcode.c:23:
+  [0x18] = Q_KEY_CODE_Q, /* xorgkbd:24 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */

WARNING: line over 80 characters
#1496: FILE: ui/input-keymap-xorgkbd-to-qcode.c:24:
+  [0x19] = Q_KEY_CODE_W, /* xorgkbd:25 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */

WARNING: line over 80 characters
#1497: FILE: ui/input-keymap-xorgkbd-to-qcode.c:25:
+  [0x1a] = Q_KEY_CODE_E, /* xorgkbd:26 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */

WARNING: line over 80 characters
#1498: FILE: ui/input-keymap-xorgkbd-to-qcode.c:26:
+  [0x1b] = Q_KEY_CODE_R, /* xorgkbd:27 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */

WARNING: line over 80 characters
#1499: FILE: ui/input-keymap-xorgkbd-to-qcode.c:27:
+  [0x1c] = Q_KEY_CODE_T, /* xorgkbd:28 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */

WARNING: line over 80 characters
#1500: FILE: ui/input-keymap-xorgkbd-to-qcode.c:28:
+  [0x1d] = Q_KEY_CODE_Y, /* xorgkbd:29 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */

WARNING: line over 80 characters
#1501: FILE: ui/input-keymap-xorgkbd-to-qcode.c:29:
+  [0x1e] = Q_KEY_CODE_U, /* xorgkbd:30 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */

WARNING: line over 80 characters
#1502: FILE: ui/input-keymap-xorgkbd-to-qcode.c:30:
+  [0x1f] = Q_KEY_CODE_I, /* xorgkbd:31 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */

WARNING: line over 80 characters
#1503: FILE: ui/input-keymap-xorgkbd-to-qcode.c:31:
+  [0x20] = Q_KEY_CODE_O, /* xorgkbd:32 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */

WARNING: line over 80 characters
#1504: FILE: ui/input-keymap-xorgkbd-to-qcode.c:32:
+  [0x21] = Q_KEY_CODE_P, /* xorgkbd:33 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */

ERROR: line over 90 characters
#1505: FILE: ui/input-keymap-xorgkbd-to-qcode.c:33:
+  [0x22] = Q_KEY_CODE_BRACKET_LEFT, /* xorgkbd:34 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */

ERROR: line over 90 characters
#1506: FILE: ui/input-keymap-xorgkbd-to-qcode.c:34:
+  [0x23] = Q_KEY_CODE_BRACKET_RIGHT, /* xorgkbd:35 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */

ERROR: line over 90 characters
#1507: FILE: ui/input-keymap-xorgkbd-to-qcode.c:35:
+  [0x24] = Q_KEY_CODE_RET, /* xorgkbd:36 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */

ERROR: line over 90 characters
#1508: FILE: ui/input-keymap-xorgkbd-to-qcode.c:36:
+  [0x25] = Q_KEY_CODE_CTRL, /* xorgkbd:37 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */

WARNING: line over 80 characters
#1509: FILE: ui/input-keymap-xorgkbd-to-qcode.c:37:
+  [0x26] = Q_KEY_CODE_A, /* xorgkbd:38 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */

WARNING: line over 80 characters
#1510: FILE: ui/input-keymap-xorgkbd-to-qcode.c:38:
+  [0x27] = Q_KEY_CODE_S, /* xorgkbd:39 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */

WARNING: line over 80 characters
#1511: FILE: ui/input-keymap-xorgkbd-to-qcode.c:39:
+  [0x28] = Q_KEY_CODE_D, /* xorgkbd:40 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */

WARNING: line over 80 characters
#1512: FILE: ui/input-keymap-xorgkbd-to-qcode.c:40:
+  [0x29] = Q_KEY_CODE_F, /* xorgkbd:41 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */

WARNING: line over 80 characters
#1513: FILE: ui/input-keymap-xorgkbd-to-qcode.c:41:
+  [0x2a] = Q_KEY_CODE_G, /* xorgkbd:42 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */

WARNING: line over 80 characters
#1514: FILE: ui/input-keymap-xorgkbd-to-qcode.c:42:
+  [0x2b] = Q_KEY_CODE_H, /* xorgkbd:43 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */

WARNING: line over 80 characters
#1515: FILE: ui/input-keymap-xorgkbd-to-qcode.c:43:
+  [0x2c] = Q_KEY_CODE_J, /* xorgkbd:44 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */

WARNING: line over 80 characters
#1516: FILE: ui/input-keymap-xorgkbd-to-qcode.c:44:
+  [0x2d] = Q_KEY_CODE_K, /* xorgkbd:45 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */

WARNING: line over 80 characters
#1517: FILE: ui/input-keymap-xorgkbd-to-qcode.c:45:
+  [0x2e] = Q_KEY_CODE_L, /* xorgkbd:46 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */

ERROR: line over 90 characters
#1518: FILE: ui/input-keymap-xorgkbd-to-qcode.c:46:
+  [0x2f] = Q_KEY_CODE_SEMICOLON, /* xorgkbd:47 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */

ERROR: line over 90 characters
#1519: FILE: ui/input-keymap-xorgkbd-to-qcode.c:47:
+  [0x30] = Q_KEY_CODE_APOSTROPHE, /* xorgkbd:48 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */

ERROR: line over 90 characters
#1520: FILE: ui/input-keymap-xorgkbd-to-qcode.c:48:
+  [0x31] = Q_KEY_CODE_GRAVE_ACCENT, /* xorgkbd:49 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */

ERROR: line over 90 characters
#1521: FILE: ui/input-keymap-xorgkbd-to-qcode.c:49:
+  [0x32] = Q_KEY_CODE_SHIFT, /* xorgkbd:50 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */

ERROR: line over 90 characters
#1522: FILE: ui/input-keymap-xorgkbd-to-qcode.c:50:
+  [0x33] = Q_KEY_CODE_BACKSLASH, /* xorgkbd:51 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

WARNING: line over 80 characters
#1523: FILE: ui/input-keymap-xorgkbd-to-qcode.c:51:
+  [0x34] = Q_KEY_CODE_Z, /* xorgkbd:52 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */

WARNING: line over 80 characters
#1524: FILE: ui/input-keymap-xorgkbd-to-qcode.c:52:
+  [0x35] = Q_KEY_CODE_X, /* xorgkbd:53 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */

WARNING: line over 80 characters
#1525: FILE: ui/input-keymap-xorgkbd-to-qcode.c:53:
+  [0x36] = Q_KEY_CODE_C, /* xorgkbd:54 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */

WARNING: line over 80 characters
#1526: FILE: ui/input-keymap-xorgkbd-to-qcode.c:54:
+  [0x37] = Q_KEY_CODE_V, /* xorgkbd:55 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */

WARNING: line over 80 characters
#1527: FILE: ui/input-keymap-xorgkbd-to-qcode.c:55:
+  [0x38] = Q_KEY_CODE_B, /* xorgkbd:56 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */

WARNING: line over 80 characters
#1528: FILE: ui/input-keymap-xorgkbd-to-qcode.c:56:
+  [0x39] = Q_KEY_CODE_N, /* xorgkbd:57 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */

WARNING: line over 80 characters
#1529: FILE: ui/input-keymap-xorgkbd-to-qcode.c:57:
+  [0x3a] = Q_KEY_CODE_M, /* xorgkbd:58 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */

ERROR: line over 90 characters
#1530: FILE: ui/input-keymap-xorgkbd-to-qcode.c:58:
+  [0x3b] = Q_KEY_CODE_COMMA, /* xorgkbd:59 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */

ERROR: line over 90 characters
#1531: FILE: ui/input-keymap-xorgkbd-to-qcode.c:59:
+  [0x3c] = Q_KEY_CODE_DOT, /* xorgkbd:60 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */

ERROR: line over 90 characters
#1532: FILE: ui/input-keymap-xorgkbd-to-qcode.c:60:
+  [0x3d] = Q_KEY_CODE_SLASH, /* xorgkbd:61 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */

ERROR: line over 90 characters
#1533: FILE: ui/input-keymap-xorgkbd-to-qcode.c:61:
+  [0x3e] = Q_KEY_CODE_SHIFT_R, /* xorgkbd:62 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */

ERROR: line over 90 characters
#1534: FILE: ui/input-keymap-xorgkbd-to-qcode.c:62:
+  [0x3f] = Q_KEY_CODE_KP_MULTIPLY, /* xorgkbd:63 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */

ERROR: line over 90 characters
#1535: FILE: ui/input-keymap-xorgkbd-to-qcode.c:63:
+  [0x40] = Q_KEY_CODE_ALT, /* xorgkbd:64 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */

ERROR: line over 90 characters
#1536: FILE: ui/input-keymap-xorgkbd-to-qcode.c:64:
+  [0x41] = Q_KEY_CODE_SPC, /* xorgkbd:65 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */

ERROR: line over 90 characters
#1537: FILE: ui/input-keymap-xorgkbd-to-qcode.c:65:
+  [0x42] = Q_KEY_CODE_CAPS_LOCK, /* xorgkbd:66 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */

ERROR: line over 90 characters
#1538: FILE: ui/input-keymap-xorgkbd-to-qcode.c:66:
+  [0x43] = Q_KEY_CODE_F1, /* xorgkbd:67 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */

ERROR: line over 90 characters
#1539: FILE: ui/input-keymap-xorgkbd-to-qcode.c:67:
+  [0x44] = Q_KEY_CODE_F2, /* xorgkbd:68 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */

ERROR: line over 90 characters
#1540: FILE: ui/input-keymap-xorgkbd-to-qcode.c:68:
+  [0x45] = Q_KEY_CODE_F3, /* xorgkbd:69 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */

ERROR: line over 90 characters
#1541: FILE: ui/input-keymap-xorgkbd-to-qcode.c:69:
+  [0x46] = Q_KEY_CODE_F4, /* xorgkbd:70 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */

ERROR: line over 90 characters
#1542: FILE: ui/input-keymap-xorgkbd-to-qcode.c:70:
+  [0x47] = Q_KEY_CODE_F5, /* xorgkbd:71 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */

ERROR: line over 90 characters
#1543: FILE: ui/input-keymap-xorgkbd-to-qcode.c:71:
+  [0x48] = Q_KEY_CODE_F6, /* xorgkbd:72 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */

ERROR: line over 90 characters
#1544: FILE: ui/input-keymap-xorgkbd-to-qcode.c:72:
+  [0x49] = Q_KEY_CODE_F7, /* xorgkbd:73 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */

ERROR: line over 90 characters
#1545: FILE: ui/input-keymap-xorgkbd-to-qcode.c:73:
+  [0x4a] = Q_KEY_CODE_F8, /* xorgkbd:74 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */

ERROR: line over 90 characters
#1546: FILE: ui/input-keymap-xorgkbd-to-qcode.c:74:
+  [0x4b] = Q_KEY_CODE_F9, /* xorgkbd:75 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */

ERROR: line over 90 characters
#1547: FILE: ui/input-keymap-xorgkbd-to-qcode.c:75:
+  [0x4c] = Q_KEY_CODE_F10, /* xorgkbd:76 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */

ERROR: line over 90 characters
#1548: FILE: ui/input-keymap-xorgkbd-to-qcode.c:76:
+  [0x4d] = Q_KEY_CODE_NUM_LOCK, /* xorgkbd:77 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */

ERROR: line over 90 characters
#1549: FILE: ui/input-keymap-xorgkbd-to-qcode.c:77:
+  [0x4e] = Q_KEY_CODE_SCROLL_LOCK, /* xorgkbd:78 -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */

ERROR: line over 90 characters
#1550: FILE: ui/input-keymap-xorgkbd-to-qcode.c:78:
+  [0x4f] = Q_KEY_CODE_KP_7, /* xorgkbd:79 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */

ERROR: line over 90 characters
#1551: FILE: ui/input-keymap-xorgkbd-to-qcode.c:79:
+  [0x50] = Q_KEY_CODE_KP_8, /* xorgkbd:80 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */

ERROR: line over 90 characters
#1552: FILE: ui/input-keymap-xorgkbd-to-qcode.c:80:
+  [0x51] = Q_KEY_CODE_KP_9, /* xorgkbd:81 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */

ERROR: line over 90 characters
#1553: FILE: ui/input-keymap-xorgkbd-to-qcode.c:81:
+  [0x52] = Q_KEY_CODE_KP_SUBTRACT, /* xorgkbd:82 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */

ERROR: line over 90 characters
#1554: FILE: ui/input-keymap-xorgkbd-to-qcode.c:82:
+  [0x53] = Q_KEY_CODE_KP_4, /* xorgkbd:83 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */

ERROR: line over 90 characters
#1555: FILE: ui/input-keymap-xorgkbd-to-qcode.c:83:
+  [0x54] = Q_KEY_CODE_KP_5, /* xorgkbd:84 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */

ERROR: line over 90 characters
#1556: FILE: ui/input-keymap-xorgkbd-to-qcode.c:84:
+  [0x55] = Q_KEY_CODE_KP_6, /* xorgkbd:85 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */

ERROR: line over 90 characters
#1557: FILE: ui/input-keymap-xorgkbd-to-qcode.c:85:
+  [0x56] = Q_KEY_CODE_KP_ADD, /* xorgkbd:86 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */

ERROR: line over 90 characters
#1558: FILE: ui/input-keymap-xorgkbd-to-qcode.c:86:
+  [0x57] = Q_KEY_CODE_KP_1, /* xorgkbd:87 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */

ERROR: line over 90 characters
#1559: FILE: ui/input-keymap-xorgkbd-to-qcode.c:87:
+  [0x58] = Q_KEY_CODE_KP_2, /* xorgkbd:88 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */

ERROR: line over 90 characters
#1560: FILE: ui/input-keymap-xorgkbd-to-qcode.c:88:
+  [0x59] = Q_KEY_CODE_KP_3, /* xorgkbd:89 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */

ERROR: line over 90 characters
#1561: FILE: ui/input-keymap-xorgkbd-to-qcode.c:89:
+  [0x5a] = Q_KEY_CODE_KP_0, /* xorgkbd:90 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */

ERROR: line over 90 characters
#1562: FILE: ui/input-keymap-xorgkbd-to-qcode.c:90:
+  [0x5b] = Q_KEY_CODE_KP_DECIMAL, /* xorgkbd:91 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */

ERROR: line over 90 characters
#1563: FILE: ui/input-keymap-xorgkbd-to-qcode.c:91:
+  [0x5e] = Q_KEY_CODE_LESS, /* xorgkbd:94 -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */

ERROR: line over 90 characters
#1564: FILE: ui/input-keymap-xorgkbd-to-qcode.c:92:
+  [0x5f] = Q_KEY_CODE_F11, /* xorgkbd:95 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */

ERROR: line over 90 characters
#1565: FILE: ui/input-keymap-xorgkbd-to-qcode.c:93:
+  [0x60] = Q_KEY_CODE_F12, /* xorgkbd:96 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */

ERROR: line over 90 characters
#1566: FILE: ui/input-keymap-xorgkbd-to-qcode.c:94:
+  [0x61] = Q_KEY_CODE_HOME, /* xorgkbd:97 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */

ERROR: line over 90 characters
#1567: FILE: ui/input-keymap-xorgkbd-to-qcode.c:95:
+  [0x62] = Q_KEY_CODE_UP, /* xorgkbd:98 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */

ERROR: line over 90 characters
#1568: FILE: ui/input-keymap-xorgkbd-to-qcode.c:96:
+  [0x63] = Q_KEY_CODE_PGUP, /* xorgkbd:99 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */

ERROR: line over 90 characters
#1569: FILE: ui/input-keymap-xorgkbd-to-qcode.c:97:
+  [0x64] = Q_KEY_CODE_LEFT, /* xorgkbd:100 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */

ERROR: line over 90 characters
#1570: FILE: ui/input-keymap-xorgkbd-to-qcode.c:98:
+  [0x66] = Q_KEY_CODE_RIGHT, /* xorgkbd:102 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */

ERROR: line over 90 characters
#1571: FILE: ui/input-keymap-xorgkbd-to-qcode.c:99:
+  [0x67] = Q_KEY_CODE_END, /* xorgkbd:103 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */

ERROR: line over 90 characters
#1572: FILE: ui/input-keymap-xorgkbd-to-qcode.c:100:
+  [0x68] = Q_KEY_CODE_DOWN, /* xorgkbd:104 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */

ERROR: line over 90 characters
#1573: FILE: ui/input-keymap-xorgkbd-to-qcode.c:101:
+  [0x69] = Q_KEY_CODE_PGDN, /* xorgkbd:105 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */

ERROR: line over 90 characters
#1574: FILE: ui/input-keymap-xorgkbd-to-qcode.c:102:
+  [0x6a] = Q_KEY_CODE_INSERT, /* xorgkbd:106 -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */

ERROR: line over 90 characters
#1575: FILE: ui/input-keymap-xorgkbd-to-qcode.c:103:
+  [0x6b] = Q_KEY_CODE_DELETE, /* xorgkbd:107 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */

ERROR: line over 90 characters
#1576: FILE: ui/input-keymap-xorgkbd-to-qcode.c:104:
+  [0x6c] = Q_KEY_CODE_KP_ENTER, /* xorgkbd:108 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */

ERROR: line over 90 characters
#1577: FILE: ui/input-keymap-xorgkbd-to-qcode.c:105:
+  [0x6d] = Q_KEY_CODE_CTRL_R, /* xorgkbd:109 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */

ERROR: line over 90 characters
#1578: FILE: ui/input-keymap-xorgkbd-to-qcode.c:106:
+  [0x6e] = Q_KEY_CODE_PAUSE, /* xorgkbd:110 -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */

ERROR: line over 90 characters
#1579: FILE: ui/input-keymap-xorgkbd-to-qcode.c:107:
+  [0x6f] = Q_KEY_CODE_SYSRQ, /* xorgkbd:111 -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */

ERROR: line over 90 characters
#1580: FILE: ui/input-keymap-xorgkbd-to-qcode.c:108:
+  [0x70] = Q_KEY_CODE_KP_DIVIDE, /* xorgkbd:112 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */

ERROR: line over 90 characters
#1581: FILE: ui/input-keymap-xorgkbd-to-qcode.c:109:
+  [0x71] = Q_KEY_CODE_ALT_R, /* xorgkbd:113 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */

ERROR: line over 90 characters
#1582: FILE: ui/input-keymap-xorgkbd-to-qcode.c:110:
+  [0x73] = Q_KEY_CODE_META_L, /* xorgkbd:115 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */

ERROR: line over 90 characters
#1583: FILE: ui/input-keymap-xorgkbd-to-qcode.c:111:
+  [0x74] = Q_KEY_CODE_META_R, /* xorgkbd:116 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */

ERROR: line over 90 characters
#1584: FILE: ui/input-keymap-xorgkbd-to-qcode.c:112:
+  [0x75] = Q_KEY_CODE_COMPOSE, /* xorgkbd:117 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */

ERROR: line over 90 characters
#1585: FILE: ui/input-keymap-xorgkbd-to-qcode.c:113:
+  [0x76] = Q_KEY_CODE_UNMAPPED, /* xorgkbd:118 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1586: FILE: ui/input-keymap-xorgkbd-to-qcode.c:114:
+  [0x77] = Q_KEY_CODE_UNMAPPED, /* xorgkbd:119 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1587: FILE: ui/input-keymap-xorgkbd-to-qcode.c:115:
+  [0x78] = Q_KEY_CODE_UNMAPPED, /* xorgkbd:120 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1588: FILE: ui/input-keymap-xorgkbd-to-qcode.c:116:
+  [0x79] = Q_KEY_CODE_UNMAPPED, /* xorgkbd:121 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1589: FILE: ui/input-keymap-xorgkbd-to-qcode.c:117:
+  [0x7a] = Q_KEY_CODE_UNMAPPED, /* xorgkbd:122 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1590: FILE: ui/input-keymap-xorgkbd-to-qcode.c:118:
+  [0x7e] = Q_KEY_CODE_KP_EQUALS, /* xorgkbd:126 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */

ERROR: line over 90 characters
#1591: FILE: ui/input-keymap-xorgkbd-to-qcode.c:119:
+  [0x85] = Q_KEY_CODE_YEN, /* xorgkbd:133 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */

ERROR: line over 90 characters
#1592: FILE: ui/input-keymap-xorgkbd-to-qcode.c:120:
+  [0xd0] = Q_KEY_CODE_UNMAPPED, /* xorgkbd:208 -> linux:93 (KEY_KATAKANAHIRAGANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1594: FILE: ui/input-keymap-xorgkbd-to-qcode.c:122:
+const guint qemu_input_map_xorgkbd_to_qcode_len = sizeof(qemu_input_map_xorgkbd_to_qcode)/sizeof(qemu_input_map_xorgkbd_to_qcode[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#1594: FILE: ui/input-keymap-xorgkbd-to-qcode.c:122:
+const guint qemu_input_map_xorgkbd_to_qcode_len = sizeof(qemu_input_map_xorgkbd_to_qcode)/sizeof(qemu_input_map_xorgkbd_to_qcode[0]);
                                                                                          ^

ERROR: line over 90 characters
#1603: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#1605: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_xorgxquartz_to_qcode code-map keymaps.csv xorgxquartz qcode

WARNING: line over 80 characters
#1608: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:8:
+  [0x8] = Q_KEY_CODE_A, /* xorgxquartz:8 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */

WARNING: line over 80 characters
#1609: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:9:
+  [0x9] = Q_KEY_CODE_S, /* xorgxquartz:9 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */

WARNING: line over 80 characters
#1610: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:10:
+  [0xa] = Q_KEY_CODE_D, /* xorgxquartz:10 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */

WARNING: line over 80 characters
#1611: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:11:
+  [0xb] = Q_KEY_CODE_F, /* xorgxquartz:11 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */

WARNING: line over 80 characters
#1612: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:12:
+  [0xc] = Q_KEY_CODE_H, /* xorgxquartz:12 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */

WARNING: line over 80 characters
#1613: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:13:
+  [0xd] = Q_KEY_CODE_G, /* xorgxquartz:13 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */

WARNING: line over 80 characters
#1614: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:14:
+  [0xe] = Q_KEY_CODE_Z, /* xorgxquartz:14 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */

WARNING: line over 80 characters
#1615: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:15:
+  [0xf] = Q_KEY_CODE_X, /* xorgxquartz:15 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */

ERROR: line over 90 characters
#1616: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:16:
+  [0x10] = Q_KEY_CODE_C, /* xorgxquartz:16 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */

ERROR: line over 90 characters
#1617: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:17:
+  [0x11] = Q_KEY_CODE_V, /* xorgxquartz:17 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */

ERROR: line over 90 characters
#1618: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:18:
+  [0x12] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:18 -> linux:170 (KEY_ISO) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1619: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:19:
+  [0x13] = Q_KEY_CODE_B, /* xorgxquartz:19 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */

ERROR: line over 90 characters
#1620: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:20:
+  [0x14] = Q_KEY_CODE_Q, /* xorgxquartz:20 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */

ERROR: line over 90 characters
#1621: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:21:
+  [0x15] = Q_KEY_CODE_W, /* xorgxquartz:21 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */

ERROR: line over 90 characters
#1622: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:22:
+  [0x16] = Q_KEY_CODE_E, /* xorgxquartz:22 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */

ERROR: line over 90 characters
#1623: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:23:
+  [0x17] = Q_KEY_CODE_R, /* xorgxquartz:23 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */

ERROR: line over 90 characters
#1624: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:24:
+  [0x18] = Q_KEY_CODE_Y, /* xorgxquartz:24 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */

ERROR: line over 90 characters
#1625: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:25:
+  [0x19] = Q_KEY_CODE_T, /* xorgxquartz:25 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */

WARNING: line over 80 characters
#1626: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:26:
+  [0x1a] = Q_KEY_CODE_1, /* xorgxquartz:26 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */

WARNING: line over 80 characters
#1627: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:27:
+  [0x1b] = Q_KEY_CODE_2, /* xorgxquartz:27 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */

WARNING: line over 80 characters
#1628: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:28:
+  [0x1c] = Q_KEY_CODE_3, /* xorgxquartz:28 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */

WARNING: line over 80 characters
#1629: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:29:
+  [0x1d] = Q_KEY_CODE_4, /* xorgxquartz:29 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */

WARNING: line over 80 characters
#1630: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:30:
+  [0x1e] = Q_KEY_CODE_6, /* xorgxquartz:30 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */

WARNING: line over 80 characters
#1631: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:31:
+  [0x1f] = Q_KEY_CODE_5, /* xorgxquartz:31 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */

ERROR: line over 90 characters
#1632: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:32:
+  [0x20] = Q_KEY_CODE_EQUAL, /* xorgxquartz:32 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */

ERROR: line over 90 characters
#1633: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:33:
+  [0x21] = Q_KEY_CODE_9, /* xorgxquartz:33 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */

WARNING: line over 80 characters
#1634: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:34:
+  [0x22] = Q_KEY_CODE_7, /* xorgxquartz:34 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */

ERROR: line over 90 characters
#1635: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:35:
+  [0x23] = Q_KEY_CODE_MINUS, /* xorgxquartz:35 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */

WARNING: line over 80 characters
#1636: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:36:
+  [0x24] = Q_KEY_CODE_8, /* xorgxquartz:36 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */

ERROR: line over 90 characters
#1637: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:37:
+  [0x25] = Q_KEY_CODE_0, /* xorgxquartz:37 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */

ERROR: line over 90 characters
#1638: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:38:
+  [0x26] = Q_KEY_CODE_BRACKET_RIGHT, /* xorgxquartz:38 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */

ERROR: line over 90 characters
#1639: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:39:
+  [0x27] = Q_KEY_CODE_O, /* xorgxquartz:39 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */

ERROR: line over 90 characters
#1640: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:40:
+  [0x28] = Q_KEY_CODE_U, /* xorgxquartz:40 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */

ERROR: line over 90 characters
#1641: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:41:
+  [0x29] = Q_KEY_CODE_BRACKET_LEFT, /* xorgxquartz:41 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */

ERROR: line over 90 characters
#1642: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:42:
+  [0x2a] = Q_KEY_CODE_I, /* xorgxquartz:42 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */

ERROR: line over 90 characters
#1643: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:43:
+  [0x2b] = Q_KEY_CODE_P, /* xorgxquartz:43 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */

ERROR: line over 90 characters
#1644: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:44:
+  [0x2c] = Q_KEY_CODE_RET, /* xorgxquartz:44 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */

ERROR: line over 90 characters
#1645: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:45:
+  [0x2d] = Q_KEY_CODE_L, /* xorgxquartz:45 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */

ERROR: line over 90 characters
#1646: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:46:
+  [0x2e] = Q_KEY_CODE_J, /* xorgxquartz:46 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */

ERROR: line over 90 characters
#1647: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:47:
+  [0x2f] = Q_KEY_CODE_APOSTROPHE, /* xorgxquartz:47 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */

ERROR: line over 90 characters
#1648: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:48:
+  [0x30] = Q_KEY_CODE_K, /* xorgxquartz:48 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */

ERROR: line over 90 characters
#1649: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:49:
+  [0x31] = Q_KEY_CODE_SEMICOLON, /* xorgxquartz:49 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */

ERROR: line over 90 characters
#1650: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:50:
+  [0x32] = Q_KEY_CODE_BACKSLASH, /* xorgxquartz:50 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

ERROR: line over 90 characters
#1651: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:51:
+  [0x33] = Q_KEY_CODE_COMMA, /* xorgxquartz:51 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */

ERROR: line over 90 characters
#1652: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:52:
+  [0x34] = Q_KEY_CODE_SLASH, /* xorgxquartz:52 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */

ERROR: line over 90 characters
#1653: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:53:
+  [0x35] = Q_KEY_CODE_N, /* xorgxquartz:53 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */

ERROR: line over 90 characters
#1654: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:54:
+  [0x36] = Q_KEY_CODE_M, /* xorgxquartz:54 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */

ERROR: line over 90 characters
#1655: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:55:
+  [0x37] = Q_KEY_CODE_DOT, /* xorgxquartz:55 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */

ERROR: line over 90 characters
#1656: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:56:
+  [0x38] = Q_KEY_CODE_TAB, /* xorgxquartz:56 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */

ERROR: line over 90 characters
#1657: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:57:
+  [0x39] = Q_KEY_CODE_SPC, /* xorgxquartz:57 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */

ERROR: line over 90 characters
#1658: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:58:
+  [0x3a] = Q_KEY_CODE_GRAVE_ACCENT, /* xorgxquartz:58 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */

ERROR: line over 90 characters
#1659: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:59:
+  [0x3b] = Q_KEY_CODE_BACKSPACE, /* xorgxquartz:59 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */

ERROR: line over 90 characters
#1660: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:60:
+  [0x3d] = Q_KEY_CODE_ESC, /* xorgxquartz:61 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */

ERROR: line over 90 characters
#1661: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:61:
+  [0x3e] = Q_KEY_CODE_META_R, /* xorgxquartz:62 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */

ERROR: line over 90 characters
#1662: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:62:
+  [0x3f] = Q_KEY_CODE_META_L, /* xorgxquartz:63 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */

ERROR: line over 90 characters
#1663: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:63:
+  [0x40] = Q_KEY_CODE_SHIFT, /* xorgxquartz:64 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */

ERROR: line over 90 characters
#1664: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:64:
+  [0x41] = Q_KEY_CODE_CAPS_LOCK, /* xorgxquartz:65 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */

ERROR: line over 90 characters
#1665: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:65:
+  [0x42] = Q_KEY_CODE_ALT, /* xorgxquartz:66 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */

ERROR: line over 90 characters
#1666: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:66:
+  [0x43] = Q_KEY_CODE_CTRL, /* xorgxquartz:67 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */

ERROR: line over 90 characters
#1667: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:67:
+  [0x44] = Q_KEY_CODE_SHIFT_R, /* xorgxquartz:68 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */

ERROR: line over 90 characters
#1668: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:68:
+  [0x45] = Q_KEY_CODE_ALT_R, /* xorgxquartz:69 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */

ERROR: line over 90 characters
#1669: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:69:
+  [0x46] = Q_KEY_CODE_CTRL_R, /* xorgxquartz:70 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */

ERROR: line over 90 characters
#1670: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:70:
+  [0x47] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:71 -> linux:464 (KEY_FN) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1671: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:71:
+  [0x48] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:72 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1672: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:72:
+  [0x49] = Q_KEY_CODE_KP_DECIMAL, /* xorgxquartz:73 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */

ERROR: line over 90 characters
#1673: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:73:
+  [0x4b] = Q_KEY_CODE_KP_MULTIPLY, /* xorgxquartz:75 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */

ERROR: line over 90 characters
#1674: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:74:
+  [0x4d] = Q_KEY_CODE_KP_ADD, /* xorgxquartz:77 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */

ERROR: line over 90 characters
#1675: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:75:
+  [0x4f] = Q_KEY_CODE_NUM_LOCK, /* xorgxquartz:79 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */

ERROR: line over 90 characters
#1676: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:76:
+  [0x50] = Q_KEY_CODE_VOLUMEUP, /* xorgxquartz:80 -> linux:115 (KEY_VOLUMEUP) -> qcode:Q_KEY_CODE_VOLUMEUP (volumeup) */

ERROR: line over 90 characters
#1677: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:77:
+  [0x51] = Q_KEY_CODE_VOLUMEDOWN, /* xorgxquartz:81 -> linux:114 (KEY_VOLUMEDOWN) -> qcode:Q_KEY_CODE_VOLUMEDOWN (volumedown) */

ERROR: line over 90 characters
#1678: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:78:
+  [0x52] = Q_KEY_CODE_AUDIOMUTE, /* xorgxquartz:82 -> linux:113 (KEY_MUTE) -> qcode:Q_KEY_CODE_AUDIOMUTE (audiomute) */

ERROR: line over 90 characters
#1679: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:79:
+  [0x53] = Q_KEY_CODE_KP_DIVIDE, /* xorgxquartz:83 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */

ERROR: line over 90 characters
#1680: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:80:
+  [0x54] = Q_KEY_CODE_KP_ENTER, /* xorgxquartz:84 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */

ERROR: line over 90 characters
#1681: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:81:
+  [0x56] = Q_KEY_CODE_KP_SUBTRACT, /* xorgxquartz:86 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */

ERROR: line over 90 characters
#1682: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:82:
+  [0x57] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:87 -> linux:188 (KEY_F18) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1683: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:83:
+  [0x58] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:88 -> linux:189 (KEY_F19) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1684: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:84:
+  [0x59] = Q_KEY_CODE_KP_EQUALS, /* xorgxquartz:89 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */

ERROR: line over 90 characters
#1685: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:85:
+  [0x5a] = Q_KEY_CODE_KP_0, /* xorgxquartz:90 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */

ERROR: line over 90 characters
#1686: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:86:
+  [0x5b] = Q_KEY_CODE_KP_1, /* xorgxquartz:91 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */

ERROR: line over 90 characters
#1687: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:87:
+  [0x5c] = Q_KEY_CODE_KP_2, /* xorgxquartz:92 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */

ERROR: line over 90 characters
#1688: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:88:
+  [0x5d] = Q_KEY_CODE_KP_3, /* xorgxquartz:93 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */

ERROR: line over 90 characters
#1689: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:89:
+  [0x5e] = Q_KEY_CODE_KP_4, /* xorgxquartz:94 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */

ERROR: line over 90 characters
#1690: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:90:
+  [0x5f] = Q_KEY_CODE_KP_5, /* xorgxquartz:95 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */

ERROR: line over 90 characters
#1691: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:91:
+  [0x60] = Q_KEY_CODE_KP_6, /* xorgxquartz:96 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */

ERROR: line over 90 characters
#1692: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:92:
+  [0x61] = Q_KEY_CODE_KP_7, /* xorgxquartz:97 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */

ERROR: line over 90 characters
#1693: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:93:
+  [0x62] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:98 -> linux:190 (KEY_F20) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1694: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:94:
+  [0x63] = Q_KEY_CODE_KP_8, /* xorgxquartz:99 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */

ERROR: line over 90 characters
#1695: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:95:
+  [0x64] = Q_KEY_CODE_KP_9, /* xorgxquartz:100 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */

ERROR: line over 90 characters
#1696: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:96:
+  [0x65] = Q_KEY_CODE_YEN, /* xorgxquartz:101 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */

ERROR: line over 90 characters
#1697: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:97:
+  [0x67] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:103 -> linux:95 (KEY_KPJPCOMMA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1698: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:98:
+  [0x68] = Q_KEY_CODE_F5, /* xorgxquartz:104 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */

ERROR: line over 90 characters
#1699: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:99:
+  [0x69] = Q_KEY_CODE_F6, /* xorgxquartz:105 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */

ERROR: line over 90 characters
#1700: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:100:
+  [0x6a] = Q_KEY_CODE_F7, /* xorgxquartz:106 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */

ERROR: line over 90 characters
#1701: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:101:
+  [0x6b] = Q_KEY_CODE_F3, /* xorgxquartz:107 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */

ERROR: line over 90 characters
#1702: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:102:
+  [0x6c] = Q_KEY_CODE_F8, /* xorgxquartz:108 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */

ERROR: line over 90 characters
#1703: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:103:
+  [0x6d] = Q_KEY_CODE_F9, /* xorgxquartz:109 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */

ERROR: line over 90 characters
#1704: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:104:
+  [0x6f] = Q_KEY_CODE_F11, /* xorgxquartz:111 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */

ERROR: line over 90 characters
#1705: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:105:
+  [0x70] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:112 -> linux:90 (KEY_KATAKANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1706: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:106:
+  [0x71] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:113 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1707: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:107:
+  [0x72] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:114 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1708: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:108:
+  [0x73] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:115 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1709: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:109:
+  [0x75] = Q_KEY_CODE_F10, /* xorgxquartz:117 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */

ERROR: line over 90 characters
#1710: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:110:
+  [0x76] = Q_KEY_CODE_COMPOSE, /* xorgxquartz:118 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */

ERROR: line over 90 characters
#1711: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:111:
+  [0x77] = Q_KEY_CODE_F12, /* xorgxquartz:119 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */

ERROR: line over 90 characters
#1712: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:112:
+  [0x79] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:121 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1713: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:113:
+  [0x7a] = Q_KEY_CODE_HELP, /* xorgxquartz:122 -> linux:138 (KEY_HELP) -> qcode:Q_KEY_CODE_HELP (help) */

ERROR: line over 90 characters
#1714: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:114:
+  [0x7b] = Q_KEY_CODE_HOME, /* xorgxquartz:123 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */

ERROR: line over 90 characters
#1715: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:115:
+  [0x7c] = Q_KEY_CODE_PGUP, /* xorgxquartz:124 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */

ERROR: line over 90 characters
#1716: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:116:
+  [0x7d] = Q_KEY_CODE_DELETE, /* xorgxquartz:125 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */

ERROR: line over 90 characters
#1717: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:117:
+  [0x7e] = Q_KEY_CODE_F4, /* xorgxquartz:126 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */

ERROR: line over 90 characters
#1718: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:118:
+  [0x7f] = Q_KEY_CODE_END, /* xorgxquartz:127 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */

ERROR: line over 90 characters
#1719: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:119:
+  [0x80] = Q_KEY_CODE_F2, /* xorgxquartz:128 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */

ERROR: line over 90 characters
#1720: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:120:
+  [0x81] = Q_KEY_CODE_PGDN, /* xorgxquartz:129 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */

ERROR: line over 90 characters
#1721: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:121:
+  [0x82] = Q_KEY_CODE_F1, /* xorgxquartz:130 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */

ERROR: line over 90 characters
#1722: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:122:
+  [0x83] = Q_KEY_CODE_LEFT, /* xorgxquartz:131 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */

ERROR: line over 90 characters
#1723: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:123:
+  [0x84] = Q_KEY_CODE_RIGHT, /* xorgxquartz:132 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */

ERROR: line over 90 characters
#1724: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:124:
+  [0x85] = Q_KEY_CODE_DOWN, /* xorgxquartz:133 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */

ERROR: line over 90 characters
#1725: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:125:
+  [0x86] = Q_KEY_CODE_UP, /* xorgxquartz:134 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */

ERROR: line over 90 characters
#1726: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:126:
+  [0x107] = Q_KEY_CODE_UNMAPPED, /* xorgxquartz:263 -> linux:0 (KEY_RESERVED) -> qcode:Q_KEY_CODE_UNMAPPED (unmapped) */

ERROR: line over 90 characters
#1728: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:128:
+const guint qemu_input_map_xorgxquartz_to_qcode_len = sizeof(qemu_input_map_xorgxquartz_to_qcode)/sizeof(qemu_input_map_xorgxquartz_to_qcode[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#1728: FILE: ui/input-keymap-xorgxquartz-to-qcode.c:128:
+const guint qemu_input_map_xorgxquartz_to_qcode_len = sizeof(qemu_input_map_xorgxquartz_to_qcode)/sizeof(qemu_input_map_xorgxquartz_to_qcode[0]);
                                                                                                  ^

ERROR: line over 90 characters
#1737: FILE: ui/input-keymap-xorgxwin-to-qcode.c:3:
+ * Database checksum sha256(f8aeff0c3430077a350e3d7ba2b335b381bd929ac4b193413730a402ff3f0097)

ERROR: line over 90 characters
#1739: FILE: ui/input-keymap-xorgxwin-to-qcode.c:5:
+ *   keymap-gen --lang=glib2 --varname=qemu_input_map_xorgxwin_to_qcode code-map keymaps.csv xorgxwin qcode

ERROR: line over 90 characters
#1742: FILE: ui/input-keymap-xorgxwin-to-qcode.c:8:
+  [0x9] = Q_KEY_CODE_ESC, /* xorgxwin:9 -> linux:1 (KEY_ESC) -> qcode:Q_KEY_CODE_ESC (esc) */

WARNING: line over 80 characters
#1743: FILE: ui/input-keymap-xorgxwin-to-qcode.c:9:
+  [0xa] = Q_KEY_CODE_1, /* xorgxwin:10 -> linux:2 (KEY_1) -> qcode:Q_KEY_CODE_1 (1) */

WARNING: line over 80 characters
#1744: FILE: ui/input-keymap-xorgxwin-to-qcode.c:10:
+  [0xb] = Q_KEY_CODE_2, /* xorgxwin:11 -> linux:3 (KEY_2) -> qcode:Q_KEY_CODE_2 (2) */

WARNING: line over 80 characters
#1745: FILE: ui/input-keymap-xorgxwin-to-qcode.c:11:
+  [0xc] = Q_KEY_CODE_3, /* xorgxwin:12 -> linux:4 (KEY_3) -> qcode:Q_KEY_CODE_3 (3) */

WARNING: line over 80 characters
#1746: FILE: ui/input-keymap-xorgxwin-to-qcode.c:12:
+  [0xd] = Q_KEY_CODE_4, /* xorgxwin:13 -> linux:5 (KEY_4) -> qcode:Q_KEY_CODE_4 (4) */

WARNING: line over 80 characters
#1747: FILE: ui/input-keymap-xorgxwin-to-qcode.c:13:
+  [0xe] = Q_KEY_CODE_5, /* xorgxwin:14 -> linux:6 (KEY_5) -> qcode:Q_KEY_CODE_5 (5) */

WARNING: line over 80 characters
#1748: FILE: ui/input-keymap-xorgxwin-to-qcode.c:14:
+  [0xf] = Q_KEY_CODE_6, /* xorgxwin:15 -> linux:7 (KEY_6) -> qcode:Q_KEY_CODE_6 (6) */

WARNING: line over 80 characters
#1749: FILE: ui/input-keymap-xorgxwin-to-qcode.c:15:
+  [0x10] = Q_KEY_CODE_7, /* xorgxwin:16 -> linux:8 (KEY_7) -> qcode:Q_KEY_CODE_7 (7) */

WARNING: line over 80 characters
#1750: FILE: ui/input-keymap-xorgxwin-to-qcode.c:16:
+  [0x11] = Q_KEY_CODE_8, /* xorgxwin:17 -> linux:9 (KEY_8) -> qcode:Q_KEY_CODE_8 (8) */

WARNING: line over 80 characters
#1751: FILE: ui/input-keymap-xorgxwin-to-qcode.c:17:
+  [0x12] = Q_KEY_CODE_9, /* xorgxwin:18 -> linux:10 (KEY_9) -> qcode:Q_KEY_CODE_9 (9) */

WARNING: line over 80 characters
#1752: FILE: ui/input-keymap-xorgxwin-to-qcode.c:18:
+  [0x13] = Q_KEY_CODE_0, /* xorgxwin:19 -> linux:11 (KEY_0) -> qcode:Q_KEY_CODE_0 (0) */

ERROR: line over 90 characters
#1753: FILE: ui/input-keymap-xorgxwin-to-qcode.c:19:
+  [0x14] = Q_KEY_CODE_MINUS, /* xorgxwin:20 -> linux:12 (KEY_MINUS) -> qcode:Q_KEY_CODE_MINUS (minus) */

ERROR: line over 90 characters
#1754: FILE: ui/input-keymap-xorgxwin-to-qcode.c:20:
+  [0x15] = Q_KEY_CODE_EQUAL, /* xorgxwin:21 -> linux:13 (KEY_EQUAL) -> qcode:Q_KEY_CODE_EQUAL (equal) */

ERROR: line over 90 characters
#1755: FILE: ui/input-keymap-xorgxwin-to-qcode.c:21:
+  [0x16] = Q_KEY_CODE_BACKSPACE, /* xorgxwin:22 -> linux:14 (KEY_BACKSPACE) -> qcode:Q_KEY_CODE_BACKSPACE (backspace) */

ERROR: line over 90 characters
#1756: FILE: ui/input-keymap-xorgxwin-to-qcode.c:22:
+  [0x17] = Q_KEY_CODE_TAB, /* xorgxwin:23 -> linux:15 (KEY_TAB) -> qcode:Q_KEY_CODE_TAB (tab) */

WARNING: line over 80 characters
#1757: FILE: ui/input-keymap-xorgxwin-to-qcode.c:23:
+  [0x18] = Q_KEY_CODE_Q, /* xorgxwin:24 -> linux:16 (KEY_Q) -> qcode:Q_KEY_CODE_Q (q) */

WARNING: line over 80 characters
#1758: FILE: ui/input-keymap-xorgxwin-to-qcode.c:24:
+  [0x19] = Q_KEY_CODE_W, /* xorgxwin:25 -> linux:17 (KEY_W) -> qcode:Q_KEY_CODE_W (w) */

WARNING: line over 80 characters
#1759: FILE: ui/input-keymap-xorgxwin-to-qcode.c:25:
+  [0x1a] = Q_KEY_CODE_E, /* xorgxwin:26 -> linux:18 (KEY_E) -> qcode:Q_KEY_CODE_E (e) */

WARNING: line over 80 characters
#1760: FILE: ui/input-keymap-xorgxwin-to-qcode.c:26:
+  [0x1b] = Q_KEY_CODE_R, /* xorgxwin:27 -> linux:19 (KEY_R) -> qcode:Q_KEY_CODE_R (r) */

WARNING: line over 80 characters
#1761: FILE: ui/input-keymap-xorgxwin-to-qcode.c:27:
+  [0x1c] = Q_KEY_CODE_T, /* xorgxwin:28 -> linux:20 (KEY_T) -> qcode:Q_KEY_CODE_T (t) */

WARNING: line over 80 characters
#1762: FILE: ui/input-keymap-xorgxwin-to-qcode.c:28:
+  [0x1d] = Q_KEY_CODE_Y, /* xorgxwin:29 -> linux:21 (KEY_Y) -> qcode:Q_KEY_CODE_Y (y) */

WARNING: line over 80 characters
#1763: FILE: ui/input-keymap-xorgxwin-to-qcode.c:29:
+  [0x1e] = Q_KEY_CODE_U, /* xorgxwin:30 -> linux:22 (KEY_U) -> qcode:Q_KEY_CODE_U (u) */

WARNING: line over 80 characters
#1764: FILE: ui/input-keymap-xorgxwin-to-qcode.c:30:
+  [0x1f] = Q_KEY_CODE_I, /* xorgxwin:31 -> linux:23 (KEY_I) -> qcode:Q_KEY_CODE_I (i) */

WARNING: line over 80 characters
#1765: FILE: ui/input-keymap-xorgxwin-to-qcode.c:31:
+  [0x20] = Q_KEY_CODE_O, /* xorgxwin:32 -> linux:24 (KEY_O) -> qcode:Q_KEY_CODE_O (o) */

WARNING: line over 80 characters
#1766: FILE: ui/input-keymap-xorgxwin-to-qcode.c:32:
+  [0x21] = Q_KEY_CODE_P, /* xorgxwin:33 -> linux:25 (KEY_P) -> qcode:Q_KEY_CODE_P (p) */

ERROR: line over 90 characters
#1767: FILE: ui/input-keymap-xorgxwin-to-qcode.c:33:
+  [0x22] = Q_KEY_CODE_BRACKET_LEFT, /* xorgxwin:34 -> linux:26 (KEY_LEFTBRACE) -> qcode:Q_KEY_CODE_BRACKET_LEFT (bracket_left) */

ERROR: line over 90 characters
#1768: FILE: ui/input-keymap-xorgxwin-to-qcode.c:34:
+  [0x23] = Q_KEY_CODE_BRACKET_RIGHT, /* xorgxwin:35 -> linux:27 (KEY_RIGHTBRACE) -> qcode:Q_KEY_CODE_BRACKET_RIGHT (bracket_right) */

ERROR: line over 90 characters
#1769: FILE: ui/input-keymap-xorgxwin-to-qcode.c:35:
+  [0x24] = Q_KEY_CODE_RET, /* xorgxwin:36 -> linux:28 (KEY_ENTER) -> qcode:Q_KEY_CODE_RET (ret) */

ERROR: line over 90 characters
#1770: FILE: ui/input-keymap-xorgxwin-to-qcode.c:36:
+  [0x25] = Q_KEY_CODE_CTRL, /* xorgxwin:37 -> linux:29 (KEY_LEFTCTRL) -> qcode:Q_KEY_CODE_CTRL (ctrl) */

WARNING: line over 80 characters
#1771: FILE: ui/input-keymap-xorgxwin-to-qcode.c:37:
+  [0x26] = Q_KEY_CODE_A, /* xorgxwin:38 -> linux:30 (KEY_A) -> qcode:Q_KEY_CODE_A (a) */

WARNING: line over 80 characters
#1772: FILE: ui/input-keymap-xorgxwin-to-qcode.c:38:
+  [0x27] = Q_KEY_CODE_S, /* xorgxwin:39 -> linux:31 (KEY_S) -> qcode:Q_KEY_CODE_S (s) */

WARNING: line over 80 characters
#1773: FILE: ui/input-keymap-xorgxwin-to-qcode.c:39:
+  [0x28] = Q_KEY_CODE_D, /* xorgxwin:40 -> linux:32 (KEY_D) -> qcode:Q_KEY_CODE_D (d) */

WARNING: line over 80 characters
#1774: FILE: ui/input-keymap-xorgxwin-to-qcode.c:40:
+  [0x29] = Q_KEY_CODE_F, /* xorgxwin:41 -> linux:33 (KEY_F) -> qcode:Q_KEY_CODE_F (f) */

WARNING: line over 80 characters
#1775: FILE: ui/input-keymap-xorgxwin-to-qcode.c:41:
+  [0x2a] = Q_KEY_CODE_G, /* xorgxwin:42 -> linux:34 (KEY_G) -> qcode:Q_KEY_CODE_G (g) */

WARNING: line over 80 characters
#1776: FILE: ui/input-keymap-xorgxwin-to-qcode.c:42:
+  [0x2b] = Q_KEY_CODE_H, /* xorgxwin:43 -> linux:35 (KEY_H) -> qcode:Q_KEY_CODE_H (h) */

WARNING: line over 80 characters
#1777: FILE: ui/input-keymap-xorgxwin-to-qcode.c:43:
+  [0x2c] = Q_KEY_CODE_J, /* xorgxwin:44 -> linux:36 (KEY_J) -> qcode:Q_KEY_CODE_J (j) */

WARNING: line over 80 characters
#1778: FILE: ui/input-keymap-xorgxwin-to-qcode.c:44:
+  [0x2d] = Q_KEY_CODE_K, /* xorgxwin:45 -> linux:37 (KEY_K) -> qcode:Q_KEY_CODE_K (k) */

WARNING: line over 80 characters
#1779: FILE: ui/input-keymap-xorgxwin-to-qcode.c:45:
+  [0x2e] = Q_KEY_CODE_L, /* xorgxwin:46 -> linux:38 (KEY_L) -> qcode:Q_KEY_CODE_L (l) */

ERROR: line over 90 characters
#1780: FILE: ui/input-keymap-xorgxwin-to-qcode.c:46:
+  [0x2f] = Q_KEY_CODE_SEMICOLON, /* xorgxwin:47 -> linux:39 (KEY_SEMICOLON) -> qcode:Q_KEY_CODE_SEMICOLON (semicolon) */

ERROR: line over 90 characters
#1781: FILE: ui/input-keymap-xorgxwin-to-qcode.c:47:
+  [0x30] = Q_KEY_CODE_APOSTROPHE, /* xorgxwin:48 -> linux:40 (KEY_APOSTROPHE) -> qcode:Q_KEY_CODE_APOSTROPHE (apostrophe) */

ERROR: line over 90 characters
#1782: FILE: ui/input-keymap-xorgxwin-to-qcode.c:48:
+  [0x31] = Q_KEY_CODE_GRAVE_ACCENT, /* xorgxwin:49 -> linux:41 (KEY_GRAVE) -> qcode:Q_KEY_CODE_GRAVE_ACCENT (grave_accent) */

ERROR: line over 90 characters
#1783: FILE: ui/input-keymap-xorgxwin-to-qcode.c:49:
+  [0x32] = Q_KEY_CODE_SHIFT, /* xorgxwin:50 -> linux:42 (KEY_LEFTSHIFT) -> qcode:Q_KEY_CODE_SHIFT (shift) */

ERROR: line over 90 characters
#1784: FILE: ui/input-keymap-xorgxwin-to-qcode.c:50:
+  [0x33] = Q_KEY_CODE_BACKSLASH, /* xorgxwin:51 -> linux:43 (KEY_BACKSLASH) -> qcode:Q_KEY_CODE_BACKSLASH (backslash) */

WARNING: line over 80 characters
#1785: FILE: ui/input-keymap-xorgxwin-to-qcode.c:51:
+  [0x34] = Q_KEY_CODE_Z, /* xorgxwin:52 -> linux:44 (KEY_Z) -> qcode:Q_KEY_CODE_Z (z) */

WARNING: line over 80 characters
#1786: FILE: ui/input-keymap-xorgxwin-to-qcode.c:52:
+  [0x35] = Q_KEY_CODE_X, /* xorgxwin:53 -> linux:45 (KEY_X) -> qcode:Q_KEY_CODE_X (x) */

WARNING: line over 80 characters
#1787: FILE: ui/input-keymap-xorgxwin-to-qcode.c:53:
+  [0x36] = Q_KEY_CODE_C, /* xorgxwin:54 -> linux:46 (KEY_C) -> qcode:Q_KEY_CODE_C (c) */

WARNING: line over 80 characters
#1788: FILE: ui/input-keymap-xorgxwin-to-qcode.c:54:
+  [0x37] = Q_KEY_CODE_V, /* xorgxwin:55 -> linux:47 (KEY_V) -> qcode:Q_KEY_CODE_V (v) */

WARNING: line over 80 characters
#1789: FILE: ui/input-keymap-xorgxwin-to-qcode.c:55:
+  [0x38] = Q_KEY_CODE_B, /* xorgxwin:56 -> linux:48 (KEY_B) -> qcode:Q_KEY_CODE_B (b) */

WARNING: line over 80 characters
#1790: FILE: ui/input-keymap-xorgxwin-to-qcode.c:56:
+  [0x39] = Q_KEY_CODE_N, /* xorgxwin:57 -> linux:49 (KEY_N) -> qcode:Q_KEY_CODE_N (n) */

WARNING: line over 80 characters
#1791: FILE: ui/input-keymap-xorgxwin-to-qcode.c:57:
+  [0x3a] = Q_KEY_CODE_M, /* xorgxwin:58 -> linux:50 (KEY_M) -> qcode:Q_KEY_CODE_M (m) */

ERROR: line over 90 characters
#1792: FILE: ui/input-keymap-xorgxwin-to-qcode.c:58:
+  [0x3b] = Q_KEY_CODE_COMMA, /* xorgxwin:59 -> linux:51 (KEY_COMMA) -> qcode:Q_KEY_CODE_COMMA (comma) */

ERROR: line over 90 characters
#1793: FILE: ui/input-keymap-xorgxwin-to-qcode.c:59:
+  [0x3c] = Q_KEY_CODE_DOT, /* xorgxwin:60 -> linux:52 (KEY_DOT) -> qcode:Q_KEY_CODE_DOT (dot) */

ERROR: line over 90 characters
#1794: FILE: ui/input-keymap-xorgxwin-to-qcode.c:60:
+  [0x3d] = Q_KEY_CODE_SLASH, /* xorgxwin:61 -> linux:53 (KEY_SLASH) -> qcode:Q_KEY_CODE_SLASH (slash) */

ERROR: line over 90 characters
#1795: FILE: ui/input-keymap-xorgxwin-to-qcode.c:61:
+  [0x3e] = Q_KEY_CODE_SHIFT_R, /* xorgxwin:62 -> linux:54 (KEY_RIGHTSHIFT) -> qcode:Q_KEY_CODE_SHIFT_R (shift_r) */

ERROR: line over 90 characters
#1796: FILE: ui/input-keymap-xorgxwin-to-qcode.c:62:
+  [0x3f] = Q_KEY_CODE_KP_MULTIPLY, /* xorgxwin:63 -> linux:55 (KEY_KPASTERISK) -> qcode:Q_KEY_CODE_KP_MULTIPLY (kp_multiply) */

ERROR: line over 90 characters
#1797: FILE: ui/input-keymap-xorgxwin-to-qcode.c:63:
+  [0x40] = Q_KEY_CODE_ALT, /* xorgxwin:64 -> linux:56 (KEY_LEFTALT) -> qcode:Q_KEY_CODE_ALT (alt) */

ERROR: line over 90 characters
#1798: FILE: ui/input-keymap-xorgxwin-to-qcode.c:64:
+  [0x41] = Q_KEY_CODE_SPC, /* xorgxwin:65 -> linux:57 (KEY_SPACE) -> qcode:Q_KEY_CODE_SPC (spc) */

ERROR: line over 90 characters
#1799: FILE: ui/input-keymap-xorgxwin-to-qcode.c:65:
+  [0x42] = Q_KEY_CODE_CAPS_LOCK, /* xorgxwin:66 -> linux:58 (KEY_CAPSLOCK) -> qcode:Q_KEY_CODE_CAPS_LOCK (caps_lock) */

ERROR: line over 90 characters
#1800: FILE: ui/input-keymap-xorgxwin-to-qcode.c:66:
+  [0x43] = Q_KEY_CODE_F1, /* xorgxwin:67 -> linux:59 (KEY_F1) -> qcode:Q_KEY_CODE_F1 (f1) */

ERROR: line over 90 characters
#1801: FILE: ui/input-keymap-xorgxwin-to-qcode.c:67:
+  [0x44] = Q_KEY_CODE_F2, /* xorgxwin:68 -> linux:60 (KEY_F2) -> qcode:Q_KEY_CODE_F2 (f2) */

ERROR: line over 90 characters
#1802: FILE: ui/input-keymap-xorgxwin-to-qcode.c:68:
+  [0x45] = Q_KEY_CODE_F3, /* xorgxwin:69 -> linux:61 (KEY_F3) -> qcode:Q_KEY_CODE_F3 (f3) */

ERROR: line over 90 characters
#1803: FILE: ui/input-keymap-xorgxwin-to-qcode.c:69:
+  [0x46] = Q_KEY_CODE_F4, /* xorgxwin:70 -> linux:62 (KEY_F4) -> qcode:Q_KEY_CODE_F4 (f4) */

ERROR: line over 90 characters
#1804: FILE: ui/input-keymap-xorgxwin-to-qcode.c:70:
+  [0x47] = Q_KEY_CODE_F5, /* xorgxwin:71 -> linux:63 (KEY_F5) -> qcode:Q_KEY_CODE_F5 (f5) */

ERROR: line over 90 characters
#1805: FILE: ui/input-keymap-xorgxwin-to-qcode.c:71:
+  [0x48] = Q_KEY_CODE_F6, /* xorgxwin:72 -> linux:64 (KEY_F6) -> qcode:Q_KEY_CODE_F6 (f6) */

ERROR: line over 90 characters
#1806: FILE: ui/input-keymap-xorgxwin-to-qcode.c:72:
+  [0x49] = Q_KEY_CODE_F7, /* xorgxwin:73 -> linux:65 (KEY_F7) -> qcode:Q_KEY_CODE_F7 (f7) */

ERROR: line over 90 characters
#1807: FILE: ui/input-keymap-xorgxwin-to-qcode.c:73:
+  [0x4a] = Q_KEY_CODE_F8, /* xorgxwin:74 -> linux:66 (KEY_F8) -> qcode:Q_KEY_CODE_F8 (f8) */

ERROR: line over 90 characters
#1808: FILE: ui/input-keymap-xorgxwin-to-qcode.c:74:
+  [0x4b] = Q_KEY_CODE_F9, /* xorgxwin:75 -> linux:67 (KEY_F9) -> qcode:Q_KEY_CODE_F9 (f9) */

ERROR: line over 90 characters
#1809: FILE: ui/input-keymap-xorgxwin-to-qcode.c:75:
+  [0x4c] = Q_KEY_CODE_F10, /* xorgxwin:76 -> linux:68 (KEY_F10) -> qcode:Q_KEY_CODE_F10 (f10) */

ERROR: line over 90 characters
#1810: FILE: ui/input-keymap-xorgxwin-to-qcode.c:76:
+  [0x4d] = Q_KEY_CODE_NUM_LOCK, /* xorgxwin:77 -> linux:69 (KEY_NUMLOCK) -> qcode:Q_KEY_CODE_NUM_LOCK (num_lock) */

ERROR: line over 90 characters
#1811: FILE: ui/input-keymap-xorgxwin-to-qcode.c:77:
+  [0x4e] = Q_KEY_CODE_SCROLL_LOCK, /* xorgxwin:78 -> linux:70 (KEY_SCROLLLOCK) -> qcode:Q_KEY_CODE_SCROLL_LOCK (scroll_lock) */

ERROR: line over 90 characters
#1812: FILE: ui/input-keymap-xorgxwin-to-qcode.c:78:
+  [0x4f] = Q_KEY_CODE_KP_7, /* xorgxwin:79 -> linux:71 (KEY_KP7) -> qcode:Q_KEY_CODE_KP_7 (kp_7) */

ERROR: line over 90 characters
#1813: FILE: ui/input-keymap-xorgxwin-to-qcode.c:79:
+  [0x50] = Q_KEY_CODE_KP_8, /* xorgxwin:80 -> linux:72 (KEY_KP8) -> qcode:Q_KEY_CODE_KP_8 (kp_8) */

ERROR: line over 90 characters
#1814: FILE: ui/input-keymap-xorgxwin-to-qcode.c:80:
+  [0x51] = Q_KEY_CODE_KP_9, /* xorgxwin:81 -> linux:73 (KEY_KP9) -> qcode:Q_KEY_CODE_KP_9 (kp_9) */

ERROR: line over 90 characters
#1815: FILE: ui/input-keymap-xorgxwin-to-qcode.c:81:
+  [0x52] = Q_KEY_CODE_KP_SUBTRACT, /* xorgxwin:82 -> linux:74 (KEY_KPMINUS) -> qcode:Q_KEY_CODE_KP_SUBTRACT (kp_subtract) */

ERROR: line over 90 characters
#1816: FILE: ui/input-keymap-xorgxwin-to-qcode.c:82:
+  [0x53] = Q_KEY_CODE_KP_4, /* xorgxwin:83 -> linux:75 (KEY_KP4) -> qcode:Q_KEY_CODE_KP_4 (kp_4) */

ERROR: line over 90 characters
#1817: FILE: ui/input-keymap-xorgxwin-to-qcode.c:83:
+  [0x54] = Q_KEY_CODE_KP_5, /* xorgxwin:84 -> linux:76 (KEY_KP5) -> qcode:Q_KEY_CODE_KP_5 (kp_5) */

ERROR: line over 90 characters
#1818: FILE: ui/input-keymap-xorgxwin-to-qcode.c:84:
+  [0x55] = Q_KEY_CODE_KP_6, /* xorgxwin:85 -> linux:77 (KEY_KP6) -> qcode:Q_KEY_CODE_KP_6 (kp_6) */

ERROR: line over 90 characters
#1819: FILE: ui/input-keymap-xorgxwin-to-qcode.c:85:
+  [0x56] = Q_KEY_CODE_KP_ADD, /* xorgxwin:86 -> linux:78 (KEY_KPPLUS) -> qcode:Q_KEY_CODE_KP_ADD (kp_add) */

ERROR: line over 90 characters
#1820: FILE: ui/input-keymap-xorgxwin-to-qcode.c:86:
+  [0x57] = Q_KEY_CODE_KP_1, /* xorgxwin:87 -> linux:79 (KEY_KP1) -> qcode:Q_KEY_CODE_KP_1 (kp_1) */

ERROR: line over 90 characters
#1821: FILE: ui/input-keymap-xorgxwin-to-qcode.c:87:
+  [0x58] = Q_KEY_CODE_KP_2, /* xorgxwin:88 -> linux:80 (KEY_KP2) -> qcode:Q_KEY_CODE_KP_2 (kp_2) */

ERROR: line over 90 characters
#1822: FILE: ui/input-keymap-xorgxwin-to-qcode.c:88:
+  [0x59] = Q_KEY_CODE_KP_3, /* xorgxwin:89 -> linux:81 (KEY_KP3) -> qcode:Q_KEY_CODE_KP_3 (kp_3) */

ERROR: line over 90 characters
#1823: FILE: ui/input-keymap-xorgxwin-to-qcode.c:89:
+  [0x5a] = Q_KEY_CODE_KP_0, /* xorgxwin:90 -> linux:82 (KEY_KP0) -> qcode:Q_KEY_CODE_KP_0 (kp_0) */

ERROR: line over 90 characters
#1824: FILE: ui/input-keymap-xorgxwin-to-qcode.c:90:
+  [0x5b] = Q_KEY_CODE_KP_DECIMAL, /* xorgxwin:91 -> linux:83 (KEY_KPDOT) -> qcode:Q_KEY_CODE_KP_DECIMAL (kp_decimal) */

ERROR: line over 90 characters
#1825: FILE: ui/input-keymap-xorgxwin-to-qcode.c:91:
+  [0x5e] = Q_KEY_CODE_LESS, /* xorgxwin:94 -> linux:86 (KEY_102ND) -> qcode:Q_KEY_CODE_LESS (less) */

ERROR: line over 90 characters
#1826: FILE: ui/input-keymap-xorgxwin-to-qcode.c:92:
+  [0x5f] = Q_KEY_CODE_F11, /* xorgxwin:95 -> linux:87 (KEY_F11) -> qcode:Q_KEY_CODE_F11 (f11) */

ERROR: line over 90 characters
#1827: FILE: ui/input-keymap-xorgxwin-to-qcode.c:93:
+  [0x60] = Q_KEY_CODE_F12, /* xorgxwin:96 -> linux:88 (KEY_F12) -> qcode:Q_KEY_CODE_F12 (f12) */

ERROR: line over 90 characters
#1828: FILE: ui/input-keymap-xorgxwin-to-qcode.c:94:
+  [0x61] = Q_KEY_CODE_HOME, /* xorgxwin:97 -> linux:102 (KEY_HOME) -> qcode:Q_KEY_CODE_HOME (home) */

ERROR: line over 90 characters
#1829: FILE: ui/input-keymap-xorgxwin-to-qcode.c:95:
+  [0x62] = Q_KEY_CODE_UP, /* xorgxwin:98 -> linux:103 (KEY_UP) -> qcode:Q_KEY_CODE_UP (up) */

ERROR: line over 90 characters
#1830: FILE: ui/input-keymap-xorgxwin-to-qcode.c:96:
+  [0x63] = Q_KEY_CODE_PGUP, /* xorgxwin:99 -> linux:104 (KEY_PAGEUP) -> qcode:Q_KEY_CODE_PGUP (pgup) */

ERROR: line over 90 characters
#1831: FILE: ui/input-keymap-xorgxwin-to-qcode.c:97:
+  [0x64] = Q_KEY_CODE_LEFT, /* xorgxwin:100 -> linux:105 (KEY_LEFT) -> qcode:Q_KEY_CODE_LEFT (left) */

ERROR: line over 90 characters
#1832: FILE: ui/input-keymap-xorgxwin-to-qcode.c:98:
+  [0x66] = Q_KEY_CODE_RIGHT, /* xorgxwin:102 -> linux:106 (KEY_RIGHT) -> qcode:Q_KEY_CODE_RIGHT (right) */

ERROR: line over 90 characters
#1833: FILE: ui/input-keymap-xorgxwin-to-qcode.c:99:
+  [0x67] = Q_KEY_CODE_END, /* xorgxwin:103 -> linux:107 (KEY_END) -> qcode:Q_KEY_CODE_END (end) */

ERROR: line over 90 characters
#1834: FILE: ui/input-keymap-xorgxwin-to-qcode.c:100:
+  [0x68] = Q_KEY_CODE_DOWN, /* xorgxwin:104 -> linux:108 (KEY_DOWN) -> qcode:Q_KEY_CODE_DOWN (down) */

ERROR: line over 90 characters
#1835: FILE: ui/input-keymap-xorgxwin-to-qcode.c:101:
+  [0x69] = Q_KEY_CODE_PGDN, /* xorgxwin:105 -> linux:109 (KEY_PAGEDOWN) -> qcode:Q_KEY_CODE_PGDN (pgdn) */

ERROR: line over 90 characters
#1836: FILE: ui/input-keymap-xorgxwin-to-qcode.c:102:
+  [0x6a] = Q_KEY_CODE_INSERT, /* xorgxwin:106 -> linux:110 (KEY_INSERT) -> qcode:Q_KEY_CODE_INSERT (insert) */

ERROR: line over 90 characters
#1837: FILE: ui/input-keymap-xorgxwin-to-qcode.c:103:
+  [0x6b] = Q_KEY_CODE_DELETE, /* xorgxwin:107 -> linux:111 (KEY_DELETE) -> qcode:Q_KEY_CODE_DELETE (delete) */

ERROR: line over 90 characters
#1838: FILE: ui/input-keymap-xorgxwin-to-qcode.c:104:
+  [0x6c] = Q_KEY_CODE_KP_ENTER, /* xorgxwin:108 -> linux:96 (KEY_KPENTER) -> qcode:Q_KEY_CODE_KP_ENTER (kp_enter) */

ERROR: line over 90 characters
#1839: FILE: ui/input-keymap-xorgxwin-to-qcode.c:105:
+  [0x6d] = Q_KEY_CODE_CTRL_R, /* xorgxwin:109 -> linux:97 (KEY_RIGHTCTRL) -> qcode:Q_KEY_CODE_CTRL_R (ctrl_r) */

ERROR: line over 90 characters
#1840: FILE: ui/input-keymap-xorgxwin-to-qcode.c:106:
+  [0x6e] = Q_KEY_CODE_PAUSE, /* xorgxwin:110 -> linux:119 (KEY_PAUSE) -> qcode:Q_KEY_CODE_PAUSE (pause) */

ERROR: line over 90 characters
#1841: FILE: ui/input-keymap-xorgxwin-to-qcode.c:107:
+  [0x6f] = Q_KEY_CODE_SYSRQ, /* xorgxwin:111 -> linux:99 (KEY_SYSRQ) -> qcode:Q_KEY_CODE_SYSRQ (sysrq) */

ERROR: line over 90 characters
#1842: FILE: ui/input-keymap-xorgxwin-to-qcode.c:108:
+  [0x70] = Q_KEY_CODE_KP_DIVIDE, /* xorgxwin:112 -> linux:98 (KEY_KPSLASH) -> qcode:Q_KEY_CODE_KP_DIVIDE (kp_divide) */

ERROR: line over 90 characters
#1843: FILE: ui/input-keymap-xorgxwin-to-qcode.c:109:
+  [0x71] = Q_KEY_CODE_ALT_R, /* xorgxwin:113 -> linux:100 (KEY_RIGHTALT) -> qcode:Q_KEY_CODE_ALT_R (alt_r) */

ERROR: line over 90 characters
#1844: FILE: ui/input-keymap-xorgxwin-to-qcode.c:110:
+  [0x73] = Q_KEY_CODE_META_L, /* xorgxwin:115 -> linux:125 (KEY_LEFTMETA) -> qcode:Q_KEY_CODE_META_L (meta_l) */

ERROR: line over 90 characters
#1845: FILE: ui/input-keymap-xorgxwin-to-qcode.c:111:
+  [0x74] = Q_KEY_CODE_META_R, /* xorgxwin:116 -> linux:126 (KEY_RIGHTMETA) -> qcode:Q_KEY_CODE_META_R (meta_r) */

ERROR: line over 90 characters
#1846: FILE: ui/input-keymap-xorgxwin-to-qcode.c:112:
+  [0x75] = Q_KEY_CODE_COMPOSE, /* xorgxwin:117 -> linux:127 (KEY_COMPOSE) -> qcode:Q_KEY_CODE_COMPOSE (compose) */

ERROR: line over 90 characters
#1847: FILE: ui/input-keymap-xorgxwin-to-qcode.c:113:
+  [0x76] = Q_KEY_CODE_UNMAPPED, /* xorgxwin:118 -> linux:183 (KEY_F13) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1848: FILE: ui/input-keymap-xorgxwin-to-qcode.c:114:
+  [0x77] = Q_KEY_CODE_UNMAPPED, /* xorgxwin:119 -> linux:184 (KEY_F14) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1849: FILE: ui/input-keymap-xorgxwin-to-qcode.c:115:
+  [0x78] = Q_KEY_CODE_UNMAPPED, /* xorgxwin:120 -> linux:185 (KEY_F15) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1850: FILE: ui/input-keymap-xorgxwin-to-qcode.c:116:
+  [0x79] = Q_KEY_CODE_UNMAPPED, /* xorgxwin:121 -> linux:186 (KEY_F16) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1851: FILE: ui/input-keymap-xorgxwin-to-qcode.c:117:
+  [0x7a] = Q_KEY_CODE_UNMAPPED, /* xorgxwin:122 -> linux:187 (KEY_F17) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1852: FILE: ui/input-keymap-xorgxwin-to-qcode.c:118:
+  [0x7e] = Q_KEY_CODE_KP_EQUALS, /* xorgxwin:126 -> linux:117 (KEY_KPEQUAL) -> qcode:Q_KEY_CODE_KP_EQUALS (kp_equals) */

ERROR: line over 90 characters
#1853: FILE: ui/input-keymap-xorgxwin-to-qcode.c:119:
+  [0x85] = Q_KEY_CODE_YEN, /* xorgxwin:133 -> linux:124 (KEY_YEN) -> qcode:Q_KEY_CODE_YEN (yen) */

ERROR: line over 90 characters
#1854: FILE: ui/input-keymap-xorgxwin-to-qcode.c:120:
+  [0xd0] = Q_KEY_CODE_UNMAPPED, /* xorgxwin:208 -> linux:93 (KEY_KATAKANAHIRAGANA) -> qcode:Q_KEY_CODE_UNMAPPED (unnamed) */

ERROR: line over 90 characters
#1856: FILE: ui/input-keymap-xorgxwin-to-qcode.c:122:
+const guint qemu_input_map_xorgxwin_to_qcode_len = sizeof(qemu_input_map_xorgxwin_to_qcode)/sizeof(qemu_input_map_xorgxwin_to_qcode[0]);

ERROR: spaces required around that '/' (ctx:VxV)
#1856: FILE: ui/input-keymap-xorgxwin-to-qcode.c:122:
+const guint qemu_input_map_xorgxwin_to_qcode_len = sizeof(qemu_input_map_xorgxwin_to_qcode)/sizeof(qemu_input_map_xorgxwin_to_qcode[0]);
                                                                                            ^

total: 1165 errors, 200 warnings, 2238 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 12/12: display: convert XenInput keyboard to keycodemapdb...
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (13 preceding siblings ...)
  2017-09-12 12:53 ` no-reply
@ 2017-09-12 12:55 ` no-reply
  2017-09-12 13:46 ` Gerd Hoffmann
  15 siblings, 0 replies; 34+ messages in thread
From: no-reply @ 2017-09-12 12:55 UTC (permalink / raw)
  To: berrange; +Cc: famz, qemu-devel, kraxel

Hi,

This series failed automatic build test. Please find the testing commands and
their output below. If you have docker installed, you can probably reproduce it
locally.

Subject: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
Message-id: 20170912123744.14730-1-berrange@redhat.com
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
# Let docker tests dump environment info
export SHOW_ENV=1
export J=8
time make docker-test-quick@centos6
time make docker-test-build@min-glib
time make docker-test-mingw@fedora
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
fae652ea62 display: convert XenInput keyboard to keycodemapdb
c8d95241f3 ui: convert GTK and SDL1 frontends to keycodemapdb
4175200b40 ui: convert the SDL2 frontend to keycodemapdb
d54c4f7d1b ui: convert cocoa frontend to keycodemapdb
60a4cdb7cc char: convert the escc device to keycodemapdb
df243503e5 input: convert the adb device to keycodemapdb
85343f342f input: convert ps2 device to keycodemapdb
00dbdc189b input: convert virtio-input-hid device to keycodemapdb
475272eb06 ui: don't export qemu_input_event_new_key
0d88a11efd ui: convert key events to QKeyCodes immediately
33c690e7a1 ui: convert common input code to keycodemapdb
1a87122cbb ui: add keycodemapdb repository as a GIT submodule

=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into '/var/tmp/patchew-tester-tmp-86s7dwy8/src/dtc'...
Submodule path 'dtc': checked out '558cd81bdd432769b59bff01240c44f82cfb1a9d'
  BUILD   centos6
make[1]: Entering directory '/var/tmp/patchew-tester-tmp-86s7dwy8/src'
  ARCHIVE qemu.tgz
  ARCHIVE dtc.tgz
  COPY    RUNNER
    RUN test-quick in qemu:centos6 
Packages installed:
SDL-devel-1.2.14-7.el6_7.1.x86_64
bison-2.4.1-5.el6.x86_64
bzip2-devel-1.0.5-7.el6_0.x86_64
ccache-3.1.6-2.el6.x86_64
csnappy-devel-0-6.20150729gitd7bc683.el6.x86_64
flex-2.5.35-9.el6.x86_64
gcc-4.4.7-18.el6.x86_64
git-1.7.1-8.el6.x86_64
glib2-devel-2.28.8-9.el6.x86_64
libepoxy-devel-1.2-3.el6.x86_64
libfdt-devel-1.4.0-1.el6.x86_64
librdmacm-devel-1.0.21-0.el6.x86_64
lzo-devel-2.03-3.1.el6_5.1.x86_64
make-3.81-23.el6.x86_64
mesa-libEGL-devel-11.0.7-4.el6.x86_64
mesa-libgbm-devel-11.0.7-4.el6.x86_64
package g++ is not installed
pixman-devel-0.32.8-1.el6.x86_64
spice-glib-devel-0.26-8.el6.x86_64
spice-server-devel-0.12.4-16.el6.x86_64
tar-1.23-15.el6_8.x86_64
vte-devel-0.25.1-9.el6.x86_64
xen-devel-4.6.3-15.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64

Environment variables:
PACKAGES=bison     bzip2-devel     ccache     csnappy-devel     flex     g++     gcc     git     glib2-devel     libepoxy-devel     libfdt-devel     librdmacm-devel     lzo-devel     make     mesa-libEGL-devel     mesa-libgbm-devel     pixman-devel     SDL-devel     spice-glib-devel     spice-server-devel     tar     vte-devel     xen-devel     zlib-devel
HOSTNAME=73f5b8f10f48
TERM=xterm
MAKEFLAGS= -j8
HISTSIZE=1000
J=8
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
MAIL=/var/spool/mail/root
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
LANG=en_US.UTF-8
TARGET_LIST=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
LOGNAME=root
LESSOPEN=||/usr/bin/lesspipe.sh %s
FEATURES= dtc
DEBUG=
G_BROKEN_FILENAMES=1
CCACHE_HASHDIR=
_=/usr/bin/env

Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/var/tmp/qemu-build/install
No C++ compiler available; disabling C++ specific optional code
Install prefix    /var/tmp/qemu-build/install
BIOS directory    /var/tmp/qemu-build/install/share/qemu
binary directory  /var/tmp/qemu-build/install/bin
library directory /var/tmp/qemu-build/install/lib
module directory  /var/tmp/qemu-build/install/lib/qemu
libexec directory /var/tmp/qemu-build/install/libexec
include directory /var/tmp/qemu-build/install/include
config directory  /var/tmp/qemu-build/install/etc
local state directory   /var/tmp/qemu-build/install/var
Manual directory  /var/tmp/qemu-build/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path       /tmp/qemu-test/src
C compiler        cc
Host C compiler   cc
C++ compiler      
Objective-C compiler cc
ARFLAGS           rv
CFLAGS            -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g 
QEMU_CFLAGS       -I/usr/include/pixman-1   -I$(SRC_PATH)/dtc/libfdt -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -DNCURSES_WIDECHAR   -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv  -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all  -I/usr/include/libpng12   -I/usr/include/libdrm     -I/usr/include/spice-server -I/usr/include/cacard -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/nss3 -I/usr/include/nspr4 -I/usr/include/spice-1   -I/usr/include/cacard -I/usr/include/nss3 -I/usr/include/nspr4  
LDFLAGS           -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g 
make              make
install           install
python            python -B
smbd              /usr/sbin/smbd
module support    no
host CPU          x86_64
host big endian   no
target list       x86_64-softmmu aarch64-softmmu
gprof enabled     no
sparse enabled    no
strip binaries    yes
profiler          no
static build      no
pixman            system
SDL support       yes (1.2.14)
GTK support       yes (2.24.23)
GTK GL support    no
VTE support       yes (0.25.1)
TLS priority      NORMAL
GNUTLS support    no
GNUTLS rnd        no
libgcrypt         no
libgcrypt kdf     no
nettle            no 
nettle kdf        no
libtasn1          no
curses support    yes
virgl support     no
curl support      no
mingw32 support   no
Audio drivers     oss
Block whitelist (rw) 
Block whitelist (ro) 
VirtFS support    no
VNC support       yes
VNC SASL support  no
VNC JPEG support  yes
VNC PNG support   yes
xen support       yes
xen ctrl version  40600
pv dom build      no
brlapi support    no
bluez  support    no
Documentation     no
PIE               yes
vde support       no
netmap support    no
Linux AIO support no
ATTR/XATTR support yes
Install blobs     yes
KVM support       yes
HAX support       no
TCG support       yes
TCG debug enabled no
TCG interpreter   no
RDMA support      yes
fdt support       yes
preadv support    yes
fdatasync         yes
madvise           yes
posix_madvise     yes
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends    log
spice support     yes (0.12.6/0.12.4)
rbd support       no
xfsctl support    no
smartcard support yes
libusb            no
usb net redir     no
OpenGL support    yes
OpenGL dmabufs    no
libiscsi support  no
libnfs support    no
build guest agent yes
QGA VSS support   no
QGA w32 disk info no
QGA MSI support   no
seccomp support   no
coroutine backend ucontext
coroutine pool    yes
debug stack usage no
crypto afalg      no
GlusterFS support no
gcov              gcov
gcov enabled      no
TPM support       yes
libssh2 support   no
TPM passthrough   yes
QOM debugging     yes
Live block migration yes
lzo support       yes
snappy support    no
bzip2 support     yes
NUMA host support no
tcmalloc support  no
jemalloc support  no
avx2 optimization no
replication support yes
VxHS block device no
mkdir -p dtc/libfdt
  GEN     x86_64-softmmu/config-devices.mak.tmp
mkdir -p dtc/tests
  GEN     aarch64-softmmu/config-devices.mak.tmp
  GEN     config-host.h
  GEN     qemu-options.def
  GEN     qapi-types.h
  GEN     qmp-commands.h
  GEN     qapi-visit.h
  GEN     qapi-event.h
  GEN     x86_64-softmmu/config-devices.mak
  GEN     qmp-marshal.c
  GEN     aarch64-softmmu/config-devices.mak
  GEN     qapi-types.c
  GEN     qapi-visit.c
  GEN     qapi-event.c
  GEN     qmp-introspect.h
  GEN     qmp-introspect.c
  GEN     trace/generated-tcg-tracers.h
  GEN     trace/generated-helpers-wrappers.h
  GEN     trace/generated-helpers.h
  GEN     trace/generated-helpers.c
  GEN     module_block.h
  GEN     tests/test-qapi-types.h
  GEN     tests/test-qapi-visit.h
  GEN     tests/test-qmp-commands.h
  GEN     tests/test-qapi-event.h
  GEN     tests/test-qmp-introspect.h
  GEN     trace-root.h
  GEN     util/trace.h
  GEN     crypto/trace.h
  GEN     io/trace.h
  GEN     migration/trace.h
  GEN     block/trace.h
  GEN     chardev/trace.h
  GEN     hw/block/trace.h
  GEN     hw/block/dataplane/trace.h
  GEN     hw/char/trace.h
  GEN     hw/intc/trace.h
  GEN     hw/net/trace.h
  GEN     hw/virtio/trace.h
  GEN     hw/audio/trace.h
  GEN     hw/misc/trace.h
  GEN     hw/usb/trace.h
  GEN     hw/scsi/trace.h
  GEN     hw/nvram/trace.h
  GEN     hw/display/trace.h
  GEN     hw/input/trace.h
  GEN     hw/timer/trace.h
  GEN     hw/dma/trace.h
  GEN     hw/sparc/trace.h
  GEN     hw/sd/trace.h
  GEN     hw/isa/trace.h
  GEN     hw/mem/trace.h
  GEN     hw/i386/trace.h
  GEN     hw/i386/xen/trace.h
  GEN     hw/9pfs/trace.h
  GEN     hw/ppc/trace.h
  GEN     hw/pci/trace.h
  GEN     hw/s390x/trace.h
  GEN     hw/vfio/trace.h
  GEN     hw/acpi/trace.h
  GEN     hw/arm/trace.h
  GEN     hw/alpha/trace.h
  GEN     hw/xen/trace.h
  GEN     ui/trace.h
  GEN     audio/trace.h
  GEN     net/trace.h
  GEN     target/arm/trace.h
  GEN     target/i386/trace.h
  GEN     target/mips/trace.h
  GEN     target/sparc/trace.h
  GEN     target/s390x/trace.h
  GEN     target/ppc/trace.h
  GEN     qom/trace.h
  GEN     linux-user/trace.h
  GEN     qapi/trace.h
  GEN     accel/tcg/trace.h
  GEN     accel/kvm/trace.h
  GEN     nbd/trace.h
  GEN     trace-root.c
  GEN     util/trace.c
  GEN     crypto/trace.c
  GEN     io/trace.c
  GEN     migration/trace.c
  GEN     block/trace.c
  GEN     chardev/trace.c
  GEN     hw/block/trace.c
  GEN     hw/block/dataplane/trace.c
  GEN     hw/char/trace.c
  GEN     hw/intc/trace.c
  GEN     hw/net/trace.c
  GEN     hw/virtio/trace.c
  GEN     hw/audio/trace.c
  GEN     hw/misc/trace.c
  GEN     hw/usb/trace.c
  GEN     hw/scsi/trace.c
  GEN     hw/nvram/trace.c
  GEN     hw/display/trace.c
  GEN     hw/input/trace.c
  GEN     hw/timer/trace.c
  GEN     hw/dma/trace.c
  GEN     hw/sparc/trace.c
  GEN     hw/sd/trace.c
  GEN     hw/isa/trace.c
  GEN     hw/mem/trace.c
  GEN     hw/i386/trace.c
  GEN     hw/i386/xen/trace.c
  GEN     hw/9pfs/trace.c
  GEN     hw/ppc/trace.c
  GEN     hw/pci/trace.c
  GEN     hw/s390x/trace.c
  GEN     hw/vfio/trace.c
  GEN     hw/acpi/trace.c
  GEN     hw/arm/trace.c
  GEN     hw/alpha/trace.c
  GEN     hw/xen/trace.c
  GEN     ui/trace.c
  GEN     audio/trace.c
  GEN     net/trace.c
  GEN     target/arm/trace.c
  GEN     target/i386/trace.c
  GEN     target/mips/trace.c
  GEN     target/sparc/trace.c
  GEN     target/s390x/trace.c
  GEN     target/ppc/trace.c
  GEN     qom/trace.c
  GEN     linux-user/trace.c
  GEN     qapi/trace.c
  GEN     accel/tcg/trace.c
  GEN     accel/kvm/trace.c
  GEN     nbd/trace.c
  GEN     config-all-devices.mak
	 DEP /tmp/qemu-test/src/dtc/tests/dumptrees.c
	 DEP /tmp/qemu-test/src/dtc/tests/trees.S
	 DEP /tmp/qemu-test/src/dtc/tests/testutils.c
	 DEP /tmp/qemu-test/src/dtc/tests/value-labels.c
	 DEP /tmp/qemu-test/src/dtc/tests/asm_tree_dump.c
	 DEP /tmp/qemu-test/src/dtc/tests/truncated_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/check_path.c
	 DEP /tmp/qemu-test/src/dtc/tests/overlay_bad_fixup.c
	 DEP /tmp/qemu-test/src/dtc/tests/subnode_iterate.c
	 DEP /tmp/qemu-test/src/dtc/tests/overlay.c
	 DEP /tmp/qemu-test/src/dtc/tests/property_iterate.c
	 DEP /tmp/qemu-test/src/dtc/tests/integer-expressions.c
	 DEP /tmp/qemu-test/src/dtc/tests/utilfdt_test.c
	 DEP /tmp/qemu-test/src/dtc/tests/path_offset_aliases.c
	 DEP /tmp/qemu-test/src/dtc/tests/add_subnode_with_nops.c
	 DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_unordered.c
	 DEP /tmp/qemu-test/src/dtc/tests/dtb_reverse.c
	 DEP /tmp/qemu-test/src/dtc/tests/dtbs_equal_ordered.c
	 DEP /tmp/qemu-test/src/dtc/tests/extra-terminating-null.c
	 DEP /tmp/qemu-test/src/dtc/tests/incbin.c
	 DEP /tmp/qemu-test/src/dtc/tests/boot-cpuid.c
	 DEP /tmp/qemu-test/src/dtc/tests/phandle_format.c
	 DEP /tmp/qemu-test/src/dtc/tests/path-references.c
	 DEP /tmp/qemu-test/src/dtc/tests/references.c
	 DEP /tmp/qemu-test/src/dtc/tests/string_escapes.c
	 DEP /tmp/qemu-test/src/dtc/tests/propname_escapes.c
	 DEP /tmp/qemu-test/src/dtc/tests/appendprop2.c
	 DEP /tmp/qemu-test/src/dtc/tests/appendprop1.c
	 DEP /tmp/qemu-test/src/dtc/tests/del_node.c
	 DEP /tmp/qemu-test/src/dtc/tests/del_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/setprop.c
	 DEP /tmp/qemu-test/src/dtc/tests/rw_tree1.c
	 DEP /tmp/qemu-test/src/dtc/tests/nopulate.c
	 DEP /tmp/qemu-test/src/dtc/tests/set_name.c
	 DEP /tmp/qemu-test/src/dtc/tests/open_pack.c
	 DEP /tmp/qemu-test/src/dtc/tests/mangle-layout.c
	 DEP /tmp/qemu-test/src/dtc/tests/sw_tree1.c
	 DEP /tmp/qemu-test/src/dtc/tests/move_and_save.c
	 DEP /tmp/qemu-test/src/dtc/tests/nop_node.c
	 DEP /tmp/qemu-test/src/dtc/tests/nop_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/setprop_inplace.c
	 DEP /tmp/qemu-test/src/dtc/tests/stringlist.c
	 DEP /tmp/qemu-test/src/dtc/tests/notfound.c
	 DEP /tmp/qemu-test/src/dtc/tests/addr_size_cells.c
	 DEP /tmp/qemu-test/src/dtc/tests/sized_cells.c
	 DEP /tmp/qemu-test/src/dtc/tests/char_literal.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_alias.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_compatible.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_check_compatible.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_phandle.c
	 DEP /tmp/qemu-test/src/dtc/tests/node_offset_by_prop_value.c
	 DEP /tmp/qemu-test/src/dtc/tests/parent_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/supernode_atdepth_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_path.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_phandle.c
	 DEP /tmp/qemu-test/src/dtc/tests/getprop.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_name.c
	 DEP /tmp/qemu-test/src/dtc/tests/path_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/subnode_offset.c
	 DEP /tmp/qemu-test/src/dtc/tests/find_property.c
	 DEP /tmp/qemu-test/src/dtc/tests/root_node.c
	 DEP /tmp/qemu-test/src/dtc/tests/get_mem_rsv.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_overlay.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_addresses.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_empty_tree.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_strerror.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_rw.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_sw.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_wip.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt_ro.c
	 DEP /tmp/qemu-test/src/dtc/libfdt/fdt.c
	 DEP /tmp/qemu-test/src/dtc/util.c
	 DEP /tmp/qemu-test/src/dtc/fdtget.c
	 DEP /tmp/qemu-test/src/dtc/fdtput.c
	 LEX convert-dtsv0-lexer.lex.c
	 DEP /tmp/qemu-test/src/dtc/fdtdump.c
	 DEP /tmp/qemu-test/src/dtc/srcpos.c
	 BISON dtc-parser.tab.c
	 LEX dtc-lexer.lex.c
	 DEP /tmp/qemu-test/src/dtc/treesource.c
	 DEP /tmp/qemu-test/src/dtc/livetree.c
	 DEP /tmp/qemu-test/src/dtc/fstree.c
	 DEP /tmp/qemu-test/src/dtc/flattree.c
	 DEP /tmp/qemu-test/src/dtc/dtc.c
	 DEP /tmp/qemu-test/src/dtc/data.c
	 DEP /tmp/qemu-test/src/dtc/checks.c
	 DEP convert-dtsv0-lexer.lex.c
	 DEP dtc-parser.tab.c
	 DEP dtc-lexer.lex.c
	CHK version_gen.h
	UPD version_gen.h
	 DEP /tmp/qemu-test/src/dtc/util.c
	 CC libfdt/fdt.o
	 CC libfdt/fdt_ro.o
	 CC libfdt/fdt_sw.o
	 CC libfdt/fdt_wip.o
	 CC libfdt/fdt_rw.o
	 CC libfdt/fdt_empty_tree.o
	 CC libfdt/fdt_addresses.o
	 CC libfdt/fdt_strerror.o
	 CC libfdt/fdt_overlay.o
	 AR libfdt/libfdt.a
ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
  CC      tests/qemu-iotests/socket_scm_helper.o
  GEN     qga/qapi-generated/qga-qapi-types.h
  GEN     qga/qapi-generated/qga-qapi-visit.h
  GEN     qga/qapi-generated/qga-qmp-commands.h
  GEN     qga/qapi-generated/qga-qapi-types.c
  GEN     qga/qapi-generated/qga-qmp-marshal.c
  GEN     qga/qapi-generated/qga-qapi-visit.c
  CC      qmp-introspect.o
  CC      qapi-types.o
  CC      qapi-visit.o
  CC      qapi-event.o
  CC      qapi/qapi-visit-core.o
  CC      qapi/qapi-dealloc-visitor.o
  CC      qapi/qobject-input-visitor.o
  CC      qapi/qobject-output-visitor.o
  CC      qapi/qmp-registry.o
  CC      qapi/qmp-dispatch.o
  CC      qapi/string-input-visitor.o
  CC      qapi/string-output-visitor.o
  CC      qapi/opts-visitor.o
  CC      qapi/qapi-clone-visitor.o
  CC      qapi/qmp-event.o
  CC      qapi/qapi-util.o
  CC      qobject/qnum.o
  CC      qobject/qstring.o
  CC      qobject/qdict.o
  CC      qobject/qlist.o
  CC      qobject/qnull.o
  CC      qobject/qbool.o
  CC      qobject/qlit.o
  CC      qobject/qjson.o
  CC      qobject/qobject.o
  CC      qobject/json-lexer.o
  CC      qobject/json-parser.o
  CC      qobject/json-streamer.o
  CC      trace/control.o
  CC      trace/qmp.o
  CC      util/osdep.o
  CC      util/cutils.o
  CC      util/unicode.o
  CC      util/bufferiszero.o
  CC      util/aiocb.o
  CC      util/lockcnt.o
  CC      util/qemu-timer-common.o
  CC      util/async.o
  CC      util/thread-pool.o
  CC      util/qemu-timer.o
  CC      util/main-loop.o
  CC      util/iohandler.o
  CC      util/aio-posix.o
  CC      util/compatfd.o
  CC      util/mmap-alloc.o
  CC      util/oslib-posix.o
  CC      util/event_notifier-posix.o
  CC      util/qemu-openpty.o
  CC      util/qemu-thread-posix.o
  CC      util/memfd.o
  CC      util/envlist.o
  CC      util/path.o
  CC      util/module.o
  CC      util/host-utils.o
  CC      util/bitmap.o
  CC      util/hbitmap.o
  CC      util/bitops.o
  CC      util/fifo8.o
  CC      util/acl.o
  CC      util/cacheinfo.o
  CC      util/error.o
  CC      util/qemu-error.o
  CC      util/id.o
  CC      util/iov.o
  CC      util/qemu-config.o
  CC      util/qemu-sockets.o
  CC      util/uri.o
  CC      util/notify.o
  CC      util/qemu-option.o
  CC      util/qemu-progress.o
  CC      util/keyval.o
  CC      util/hexdump.o
  CC      util/uuid.o
  CC      util/crc32c.o
  CC      util/throttle.o
  CC      util/getauxval.o
  CC      util/readline.o
  CC      util/rcu.o
  CC      util/qemu-coroutine.o
  CC      util/qemu-coroutine-lock.o
  CC      util/qemu-coroutine-io.o
  CC      util/qemu-coroutine-sleep.o
  CC      util/coroutine-ucontext.o
  CC      util/buffer.o
  CC      util/timed-average.o
  CC      util/log.o
  CC      util/qdist.o
  CC      util/base64.o
  CC      util/qht.o
  CC      util/range.o
  CC      util/stats64.o
  CC      util/systemd.o
  CC      trace-root.o
  CC      util/trace.o
  CC      crypto/trace.o
  CC      io/trace.o
  CC      migration/trace.o
  CC      block/trace.o
  CC      chardev/trace.o
  CC      hw/char/trace.o
  CC      hw/block/dataplane/trace.o
  CC      hw/intc/trace.o
  CC      hw/block/trace.o
  CC      hw/net/trace.o
  CC      hw/virtio/trace.o
  CC      hw/audio/trace.o
  CC      hw/misc/trace.o
  CC      hw/usb/trace.o
  CC      hw/scsi/trace.o
  CC      hw/nvram/trace.o
  CC      hw/display/trace.o
  CC      hw/input/trace.o
  CC      hw/timer/trace.o
  CC      hw/sparc/trace.o
  CC      hw/dma/trace.o
  CC      hw/sd/trace.o
  CC      hw/isa/trace.o
  CC      hw/mem/trace.o
  CC      hw/i386/trace.o
  CC      hw/i386/xen/trace.o
  CC      hw/9pfs/trace.o
  CC      hw/ppc/trace.o
  CC      hw/s390x/trace.o
  CC      hw/pci/trace.o
  CC      hw/arm/trace.o
  CC      hw/acpi/trace.o
  CC      hw/vfio/trace.o
  CC      hw/alpha/trace.o
  CC      hw/xen/trace.o
  CC      ui/trace.o
  CC      audio/trace.o
  CC      net/trace.o
  CC      target/arm/trace.o
  CC      target/i386/trace.o
  CC      target/mips/trace.o
  CC      target/sparc/trace.o
  CC      target/s390x/trace.o
  CC      target/ppc/trace.o
  CC      qom/trace.o
  CC      linux-user/trace.o
  CC      qapi/trace.o
  CC      accel/tcg/trace.o
  CC      accel/kvm/trace.o
  CC      nbd/trace.o
  CC      crypto/pbkdf-stub.o
  CC      stubs/arch-query-cpu-def.o
  CC      stubs/arch-query-cpu-model-expansion.o
  CC      stubs/arch-query-cpu-model-comparison.o
  CC      stubs/arch-query-cpu-model-baseline.o
  CC      stubs/bdrv-next-monitor-owned.o
  CC      stubs/blk-commit-all.o
  CC      stubs/blockdev-close-all-bdrv-states.o
  CC      stubs/cpu-get-clock.o
  CC      stubs/clock-warp.o
  CC      stubs/cpu-get-icount.o
  CC      stubs/dump.o
  CC      stubs/error-printf.o
  CC      stubs/fdset.o
  CC      stubs/gdbstub.o
  CC      stubs/get-vm-name.o
  CC      stubs/iothread.o
  CC      stubs/iothread-lock.o
  CC      stubs/is-daemonized.o
  CC      stubs/machine-init-done.o
  CC      stubs/migr-blocker.o
  CC      stubs/change-state-handler.o
  CC      stubs/notify-event.o
  CC      stubs/qtest.o
  CC      stubs/monitor.o
  CC      stubs/replay.o
  CC      stubs/runstate-check.o
  CC      stubs/set-fd-handler.o
  CC      stubs/slirp.o
  CC      stubs/sysbus.o
  CC      stubs/trace-control.o
  CC      stubs/uuid.o
  CC      stubs/vm-stop.o
  CC      stubs/vmstate.o
  CC      stubs/qmp_pc_dimm_device_list.o
  CC      stubs/target-monitor-defs.o
  CC      stubs/target-get-monitor-def.o
  CC      stubs/pc_madt_cpu_entry.o
  CC      stubs/vmgenid.o
  CC      stubs/xen-common.o
  CC      stubs/xen-hvm.o
  CC      stubs/pci-host-piix.o
  CC      contrib/ivshmem-client/ivshmem-client.o
  CC      contrib/ivshmem-client/main.o
  CC      contrib/ivshmem-server/ivshmem-server.o
  CC      contrib/ivshmem-server/main.o
  CC      qemu-nbd.o
  CC      block.o
  CC      blockjob.o
  CC      qemu-io-cmds.o
  CC      replication.o
  CC      block/raw-format.o
  CC      block/qcow.o
  CC      block/vdi.o
  CC      block/vmdk.o
  CC      block/cloop.o
  CC      block/bochs.o
  CC      block/vpc.o
  CC      block/vvfat.o
  CC      block/dmg.o
  CC      block/qcow2.o
  CC      block/qcow2-refcount.o
  CC      block/qcow2-cluster.o
  CC      block/qcow2-snapshot.o
  CC      block/qcow2-cache.o
  CC      block/qcow2-bitmap.o
  CC      block/qed.o
  CC      block/qed-l2-cache.o
  CC      block/qed-table.o
  CC      block/qed-cluster.o
  CC      block/qed-check.o
  CC      block/vhdx.o
  CC      block/vhdx-endian.o
  CC      block/vhdx-log.o
  CC      block/quorum.o
  CC      block/parallels.o
  CC      block/blkdebug.o
  CC      block/blkverify.o
  CC      block/blkreplay.o
  CC      block/block-backend.o
  CC      block/snapshot.o
  CC      block/qapi.o
  CC      block/file-posix.o
  CC      block/null.o
  CC      block/mirror.o
  CC      block/io.o
  CC      block/commit.o
  CC      block/throttle-groups.o
  CC      block/nbd.o
  CC      block/nbd-client.o
  CC      block/sheepdog.o
  CC      block/accounting.o
  CC      block/write-threshold.o
  CC      block/dirty-bitmap.o
  CC      block/backup.o
  CC      block/replication.o
  CC      block/throttle.o
  CC      block/crypto.o
  CC      nbd/server.o
  CC      nbd/client.o
  CC      nbd/common.o
  CC      block/dmg-bz2.o
  CC      crypto/init.o
  CC      crypto/hash.o
  CC      crypto/hash-glib.o
  CC      crypto/hmac.o
  CC      crypto/aes.o
  CC      crypto/hmac-glib.o
  CC      crypto/desrfb.o
  CC      crypto/tlscreds.o
  CC      crypto/cipher.o
  CC      crypto/tlscredsanon.o
  CC      crypto/tlscredsx509.o
  CC      crypto/tlssession.o
  CC      crypto/secret.o
  CC      crypto/random-platform.o
  CC      crypto/pbkdf.o
  CC      crypto/ivgen-essiv.o
  CC      crypto/ivgen.o
  CC      crypto/ivgen-plain.o
  CC      crypto/ivgen-plain64.o
  CC      crypto/afsplit.o
  CC      crypto/xts.o
  CC      crypto/block.o
  CC      crypto/block-qcow.o
  CC      crypto/block-luks.o
  CC      io/channel.o
  CC      io/channel-buffer.o
  CC      io/channel-command.o
  CC      io/channel-socket.o
  CC      io/channel-file.o
  CC      io/channel-watch.o
  CC      io/channel-tls.o
  CC      io/channel-websock.o
  CC      io/channel-util.o
  CC      io/dns-resolver.o
  CC      io/task.o
  CC      qom/object.o
  CC      qom/container.o
  CC      qom/qom-qobject.o
  CC      qom/object_interfaces.o
  GEN     qemu-img-cmds.h
  CC      qemu-io.o
  CC      qemu-bridge-helper.o
  CC      blockdev-nbd.o
  CC      bootdevice.o
  CC      iothread.o
  CC      qdev-monitor.o
  CC      device-hotplug.o
  CC      blockdev.o
  CC      os-posix.o
  CC      bt-vhci.o
  CC      bt-host.o
  CC      dma-helpers.o
  CC      vl.o
  CC      tpm.o
  CC      device_tree.o
  CC      qmp-marshal.o
  CC      hmp.o
  CC      qmp.o
  CC      cpus-common.o
  CC      audio/audio.o
  CC      audio/noaudio.o
  CC      audio/wavaudio.o
  CC      audio/mixeng.o
  CC      audio/sdlaudio.o
  CC      audio/ossaudio.o
  CC      audio/spiceaudio.o
  CC      audio/wavcapture.o
  CC      backends/rng-egd.o
  CC      backends/rng-random.o
  CC      backends/rng.o
  CC      backends/hostmem.o
  CC      backends/tpm.o
  CC      backends/hostmem-ram.o
  CC      backends/hostmem-file.o
  CC      backends/cryptodev.o
  CC      backends/cryptodev-builtin.o
  CC      block/stream.o
  CC      chardev/msmouse.o
  CC      chardev/wctablet.o
  CC      chardev/testdev.o
  CC      chardev/spice.o
  CC      disas/i386.o
  CC      disas/arm.o
  CC      fsdev/qemu-fsdev-dummy.o
  CC      fsdev/qemu-fsdev-opts.o
  CC      fsdev/qemu-fsdev-throttle.o
  CC      hw/acpi/core.o
  CC      hw/acpi/piix4.o
  CC      hw/acpi/pcihp.o
  CC      hw/acpi/ich9.o
  CC      hw/acpi/tco.o
  CC      hw/acpi/cpu_hotplug.o
  CC      hw/acpi/cpu.o
  CC      hw/acpi/memory_hotplug.o
  CC      hw/acpi/nvdimm.o
  CC      hw/acpi/vmgenid.o
  CC      hw/acpi/acpi_interface.o
  CC      hw/acpi/aml-build.o
  CC      hw/acpi/bios-linker-loader.o
  CC      hw/acpi/ipmi.o
  CC      hw/acpi/acpi-stub.o
  CC      hw/acpi/ipmi-stub.o
  CC      hw/audio/sb16.o
  CC      hw/audio/es1370.o
  CC      hw/audio/ac97.o
  CC      hw/audio/fmopl.o
  CC      hw/audio/adlib.o
  CC      hw/audio/gus.o
  CC      hw/audio/gusemu_hal.o
  CC      hw/audio/gusemu_mixer.o
  CC      hw/audio/cs4231a.o
  CC      hw/audio/intel-hda.o
  CC      hw/audio/hda-codec.o
  CC      hw/audio/pcspk.o
  CC      hw/audio/wm8750.o
  CC      hw/audio/pl041.o
  CC      hw/audio/lm4549.o
  CC      hw/audio/marvell_88w8618.o
  CC      hw/audio/soundhw.o
  CC      hw/block/block.o
  CC      hw/block/cdrom.o
  CC      hw/block/hd-geometry.o
  CC      hw/block/fdc.o
  CC      hw/block/m25p80.o
  CC      hw/block/nand.o
  CC      hw/block/pflash_cfi01.o
  CC      hw/block/pflash_cfi02.o
  CC      hw/block/xen_disk.o
  CC      hw/block/ecc.o
  CC      hw/block/onenand.o
  CC      hw/block/nvme.o
  CC      hw/bt/core.o
  CC      hw/bt/l2cap.o
  CC      hw/bt/sdp.o
  CC      hw/bt/hci.o
  CC      hw/bt/hid.o
  CC      hw/bt/hci-csr.o
  CC      hw/char/ipoctal232.o
  CC      hw/char/parallel.o
  CC      hw/char/pl011.o
  CC      hw/char/serial.o
  CC      hw/char/serial-isa.o
  CC      hw/char/serial-pci.o
  CC      hw/char/virtio-console.o
  CC      hw/char/xen_console.o
  CC      hw/char/cmsdk-apb-uart.o
  CC      hw/char/cadence_uart.o
  CC      hw/char/debugcon.o
  CC      hw/char/imx_serial.o
  CC      hw/core/qdev.o
  CC      hw/core/qdev-properties.o
  CC      hw/core/bus.o
  CC      hw/core/reset.o
  CC      hw/core/fw-path-provider.o
  CC      hw/core/irq.o
  CC      hw/core/hotplug.o
  CC      hw/core/nmi.o
  CC      hw/core/sysbus.o
  CC      hw/core/ptimer.o
  CC      hw/core/machine.o
  CC      hw/core/qdev-properties-system.o
  CC      hw/core/loader.o
  CC      hw/core/register.o
  CC      hw/core/or-irq.o
  CC      hw/core/platform-bus.o
  CC      hw/cpu/core.o
  CC      hw/display/ads7846.o
  CC      hw/display/cirrus_vga.o
  CC      hw/display/pl110.o
  CC      hw/display/ssd0303.o
  CC      hw/display/ssd0323.o
  CC      hw/display/xenfb.o
  CC      hw/display/vga-pci.o
  CC      hw/display/vga-isa.o
  CC      hw/display/vmware_vga.o
  CC      hw/display/blizzard.o
  CC      hw/display/exynos4210_fimd.o
  CC      hw/display/framebuffer.o
  CC      hw/display/tc6393xb.o
  CC      hw/display/qxl.o
  CC      hw/display/qxl-logger.o
  CC      hw/display/qxl-render.o
  CC      hw/dma/pl080.o
  CC      hw/dma/pl330.o
  CC      hw/dma/i8257.o
  CC      hw/dma/xlnx-zynq-devcfg.o
  CC      hw/gpio/max7310.o
  CC      hw/gpio/pl061.o
  CC      hw/gpio/zaurus.o
  CC      hw/gpio/gpio_key.o
  CC      hw/i2c/core.o
  CC      hw/i2c/smbus.o
  CC      hw/i2c/smbus_eeprom.o
  CC      hw/i2c/i2c-ddc.o
  CC      hw/i2c/versatile_i2c.o
  CC      hw/i2c/smbus_ich9.o
  CC      hw/i2c/pm_smbus.o
  CC      hw/i2c/bitbang_i2c.o
  CC      hw/i2c/exynos4210_i2c.o
  CC      hw/i2c/imx_i2c.o
  CC      hw/i2c/aspeed_i2c.o
  CC      hw/ide/core.o
  CC      hw/ide/atapi.o
  CC      hw/ide/qdev.o
  CC      hw/ide/pci.o
  CC      hw/ide/isa.o
  CC      hw/ide/piix.o
  CC      hw/ide/microdrive.o
  CC      hw/ide/ahci.o
  CC      hw/ide/ich.o
  CC      hw/input/hid.o
  CC      hw/input/lm832x.o
  CC      hw/input/pckbd.o
  CC      hw/input/pl050.o
  CC      hw/input/ps2.o
  CC      hw/input/stellaris_input.o
  CC      hw/input/vmmouse.o
  CC      hw/input/tsc2005.o
  CC      hw/input/virtio-input.o
  CC      hw/input/virtio-input-hid.o
  CC      hw/input/virtio-input-host.o
  CC      hw/intc/i8259_common.o
  CC      hw/intc/i8259.o
  CC      hw/intc/pl190.o
  CC      hw/intc/imx_avic.o
  CC      hw/intc/realview_gic.o
  CC      hw/intc/ioapic_common.o
  CC      hw/intc/arm_gic_common.o
  CC      hw/intc/arm_gic.o
  CC      hw/intc/arm_gicv2m.o
  CC      hw/intc/arm_gicv3_common.o
  CC      hw/intc/arm_gicv3.o
  CC      hw/intc/arm_gicv3_dist.o
  CC      hw/intc/arm_gicv3_redist.o
  CC      hw/intc/arm_gicv3_its_common.o
  CC      hw/intc/intc.o
  CC      hw/ipack/ipack.o
  CC      hw/ipack/tpci200.o
  CC      hw/ipmi/ipmi.o
  CC      hw/ipmi/ipmi_bmc_sim.o
  CC      hw/ipmi/ipmi_bmc_extern.o
  CC      hw/ipmi/isa_ipmi_kcs.o
  CC      hw/ipmi/isa_ipmi_bt.o
  CC      hw/isa/isa-bus.o
  CC      hw/isa/apm.o
  CC      hw/mem/pc-dimm.o
  CC      hw/mem/nvdimm.o
  CC      hw/misc/applesmc.o
  CC      hw/misc/max111x.o
  CC      hw/misc/tmp105.o
  CC      hw/misc/tmp421.o
  CC      hw/misc/debugexit.o
  CC      hw/misc/sga.o
  CC      hw/misc/pc-testdev.o
  CC      hw/misc/pci-testdev.o
  CC      hw/misc/edu.o
  CC      hw/misc/unimp.o
  CC      hw/misc/arm_l2x0.o
  CC      hw/misc/arm_integrator_debug.o
  CC      hw/misc/a9scu.o
  CC      hw/misc/arm11scu.o
  CC      hw/net/xen_nic.o
  CC      hw/net/ne2000.o
  CC      hw/net/eepro100.o
  CC      hw/net/pcnet-pci.o
  CC      hw/net/pcnet.o
  CC      hw/net/e1000.o
  CC      hw/net/e1000x_common.o
  CC      hw/net/net_tx_pkt.o
  CC      hw/net/net_rx_pkt.o
  CC      hw/net/e1000e.o
  CC      hw/net/e1000e_core.o
  CC      hw/net/rtl8139.o
  CC      hw/net/vmxnet3.o
  CC      hw/net/smc91c111.o
  CC      hw/net/lan9118.o
  CC      hw/net/ne2000-isa.o
  CC      hw/net/xgmac.o
  CC      hw/net/allwinner_emac.o
  CC      hw/net/imx_fec.o
  CC      hw/net/cadence_gem.o
  CC      hw/net/stellaris_enet.o
  CC      hw/net/rocker/rocker.o
  CC      hw/net/ftgmac100.o
  CC      hw/net/rocker/rocker_fp.o
  CC      hw/net/rocker/rocker_desc.o
  CC      hw/net/rocker/rocker_world.o
  CC      hw/net/rocker/rocker_of_dpa.o
  CC      hw/nvram/eeprom93xx.o
  CC      hw/nvram/fw_cfg.o
  CC      hw/nvram/chrp_nvram.o
  CC      hw/pci-bridge/pci_bridge_dev.o
  CC      hw/pci-bridge/pcie_pci_bridge.o
  CC      hw/pci-bridge/pcie_root_port.o
  CC      hw/pci-bridge/gen_pcie_root_port.o
  CC      hw/pci-bridge/pci_expander_bridge.o
  CC      hw/pci-bridge/xio3130_upstream.o
  CC      hw/pci-bridge/xio3130_downstream.o
  CC      hw/pci-bridge/ioh3420.o
  CC      hw/pci-bridge/i82801b11.o
  CC      hw/pci-host/pam.o
  CC      hw/pci-host/versatile.o
  CC      hw/pci-host/piix.o
  CC      hw/pci-host/q35.o
  CC      hw/pci-host/gpex.o
  CC      hw/pci/pci.o
  CC      hw/pci/pci_bridge.o
  CC      hw/pci/msix.o
  CC      hw/pci/msi.o
  CC      hw/pci/shpc.o
  CC      hw/pci/slotid_cap.o
  CC      hw/pci/pci_host.o
  CC      hw/pci/pcie_host.o
  CC      hw/pci/pcie.o
  CC      hw/pci/pcie_aer.o
  CC      hw/pci/pcie_port.o
  CC      hw/pci/pci-stub.o
  CC      hw/pcmcia/pcmcia.o
  CC      hw/scsi/scsi-disk.o
  CC      hw/scsi/scsi-generic.o
  CC      hw/scsi/scsi-bus.o
  CC      hw/scsi/lsi53c895a.o
  CC      hw/scsi/mptsas.o
  CC      hw/scsi/mptconfig.o
  CC      hw/scsi/mptendian.o
  CC      hw/scsi/megasas.o
  CC      hw/scsi/vmw_pvscsi.o
  CC      hw/scsi/esp.o
  CC      hw/scsi/esp-pci.o
  CC      hw/sd/pl181.o
  CC      hw/sd/ssi-sd.o
  CC      hw/sd/sd.o
  CC      hw/sd/core.o
  CC      hw/sd/sdhci.o
  CC      hw/smbios/smbios.o
  CC      hw/smbios/smbios_type_38.o
  CC      hw/smbios/smbios-stub.o
  CC      hw/smbios/smbios_type_38-stub.o
  CC      hw/ssi/pl022.o
  CC      hw/ssi/ssi.o
  CC      hw/ssi/xilinx_spips.o
  CC      hw/ssi/aspeed_smc.o
  CC      hw/ssi/stm32f2xx_spi.o
  CC      hw/timer/arm_timer.o
  CC      hw/timer/arm_mptimer.o
  CC      hw/timer/armv7m_systick.o
  CC      hw/timer/a9gtimer.o
  CC      hw/timer/cadence_ttc.o
  CC      hw/timer/ds1338.o
  CC      hw/timer/hpet.o
  CC      hw/timer/i8254_common.o
  CC      hw/timer/i8254.o
  CC      hw/timer/pl031.o
  CC      hw/timer/twl92230.o
  CC      hw/timer/imx_epit.o
  CC      hw/timer/imx_gpt.o
  CC      hw/timer/stm32f2xx_timer.o
  CC      hw/timer/aspeed_timer.o
  CC      hw/timer/cmsdk-apb-timer.o
  CC      hw/tpm/tpm_tis.o
  CC      hw/tpm/tpm_passthrough.o
  CC      hw/tpm/tpm_util.o
  CC      hw/usb/core.o
  CC      hw/usb/combined-packet.o
  CC      hw/usb/bus.o
  CC      hw/usb/libhw.o
  CC      hw/usb/desc.o
  CC      hw/usb/desc-msos.o
  CC      hw/usb/hcd-uhci.o
  CC      hw/usb/hcd-ohci.o
  CC      hw/usb/hcd-ehci.o
  CC      hw/usb/hcd-ehci-pci.o
  CC      hw/usb/hcd-ehci-sysbus.o
  CC      hw/usb/hcd-xhci.o
  CC      hw/usb/hcd-xhci-nec.o
  CC      hw/usb/hcd-musb.o
  CC      hw/usb/dev-hub.o
  CC      hw/usb/dev-hid.o
  CC      hw/usb/dev-wacom.o
  CC      hw/usb/dev-storage.o
  CC      hw/usb/dev-uas.o
  CC      hw/usb/dev-audio.o
  CC      hw/usb/dev-serial.o
  CC      hw/usb/dev-network.o
  CC      hw/usb/dev-bluetooth.o
  CC      hw/usb/dev-smartcard-reader.o
  CC      hw/usb/ccid-card-passthru.o
  CC      hw/usb/ccid-card-emulated.o
  CC      hw/usb/dev-mtp.o
  CC      hw/usb/host-stub.o
  CC      hw/virtio/virtio-rng.o
  CC      hw/virtio/virtio-pci.o
  CC      hw/virtio/virtio-bus.o
  CC      hw/virtio/virtio-mmio.o
  CC      hw/virtio/vhost-stub.o
  CC      hw/watchdog/watchdog.o
  CC      hw/watchdog/wdt_i6300esb.o
  CC      hw/watchdog/wdt_ib700.o
  CC      hw/watchdog/wdt_aspeed.o
  CC      hw/xen/xen_backend.o
  CC      hw/xen/xen_devconfig.o
  CC      hw/xen/xen_pvdev.o
  CC      hw/xen/xen-common.o
  CC      migration/migration.o
  CC      migration/socket.o
  CC      migration/fd.o
  CC      migration/exec.o
  CC      migration/channel.o
  CC      migration/tls.o
  CC      migration/colo-comm.o
  CC      migration/savevm.o
  CC      migration/colo.o
  CC      migration/colo-failover.o
  CC      migration/vmstate.o
  CC      migration/page_cache.o
  CC      migration/vmstate-types.o
  CC      migration/qemu-file.o
  CC      migration/global_state.o
  CC      migration/qemu-file-channel.o
  CC      migration/xbzrle.o
  CC      migration/postcopy-ram.o
  CC      migration/qjson.o
  CC      migration/rdma.o
  CC      migration/block.o
  CC      net/net.o
  CC      net/queue.o
  CC      net/checksum.o
  CC      net/util.o
  CC      net/hub.o
  CC      net/socket.o
  CC      net/dump.o
  CC      net/eth.o
  CC      net/l2tpv3.o
  CC      net/vhost-user.o
  CC      net/slirp.o
  CC      net/filter.o
  CC      net/filter-mirror.o
  CC      net/filter-buffer.o
  CC      net/colo.o
  CC      net/colo-compare.o
  CC      net/filter-rewriter.o
  CC      net/filter-replay.o
  CC      net/tap.o
  CC      net/tap-linux.o
  CC      qom/cpu.o
  CC      replay/replay.o
  CC      replay/replay-internal.o
  CC      replay/replay-events.o
  CC      replay/replay-time.o
/tmp/qemu-test/src/replay/replay-internal.c: In function ‘replay_put_array’:
/tmp/qemu-test/src/replay/replay-internal.c:65: warning: ignoring return value of ‘fwrite’, declared with attribute warn_unused_result
  CC      replay/replay-input.o
  CC      replay/replay-char.o
  CC      replay/replay-snapshot.o
  CC      replay/replay-audio.o
  CC      replay/replay-net.o
  CC      slirp/cksum.o
  CC      slirp/if.o
  CC      slirp/ip_icmp.o
  CC      slirp/ip6_icmp.o
  CC      slirp/ip6_input.o
  CC      slirp/ip_input.o
  CC      slirp/ip6_output.o
  CC      slirp/ip_output.o
  CC      slirp/dnssearch.o
  CC      slirp/dhcpv6.o
  CC      slirp/slirp.o
  CC      slirp/mbuf.o
  CC      slirp/misc.o
  CC      slirp/socket.o
  CC      slirp/tcp_input.o
  CC      slirp/tcp_output.o
  CC      slirp/sbuf.o
  CC      slirp/tcp_timer.o
  CC      slirp/tcp_subr.o
/tmp/qemu-test/src/slirp/tcp_input.c: In function ‘tcp_input’:
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_p’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_len’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_tos’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_id’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_off’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_ttl’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_sum’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_src.s_addr’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:219: warning: ‘save_ip.ip_dst.s_addr’ may be used uninitialized in this function
/tmp/qemu-test/src/slirp/tcp_input.c:220: warning: ‘save_ip6.ip_nh’ may be used uninitialized in this function
  CC      slirp/udp.o
  CC      slirp/udp6.o
  CC      slirp/bootp.o
  CC      slirp/tftp.o
  CC      slirp/arp_table.o
  CC      slirp/ndp_table.o
  CC      slirp/ncsi.o
  CC      ui/keymaps.o
  CC      ui/console.o
  CC      ui/cursor.o
  CC      ui/qemu-pixman.o
  CC      ui/input.o
  CC      ui/input-keymap.o
  CC      ui/input-legacy.o
  CC      ui/input-linux.o
  CC      ui/spice-core.o
  CC      ui/spice-input.o
  CC      ui/spice-display.o
/tmp/qemu-test/src/ui/input-keymap.c:17:42: error: ui/input-keymap-qcode-to-sun.c: No such file or directory
make: *** [ui/input-keymap.o] Error 1
make: *** Waiting for unfinished jobs....
Traceback (most recent call last):
  File "./tests/docker/docker.py", line 384, in <module>
    sys.exit(main())
  File "./tests/docker/docker.py", line 381, in main
    return args.cmdobj.run(args, argv)
  File "./tests/docker/docker.py", line 239, in run
    return Docker().run(argv, args.keep, quiet=args.quiet)
  File "./tests/docker/docker.py", line 207, in run
    quiet=quiet)
  File "./tests/docker/docker.py", line 125, in _do_check
    return subprocess.check_call(self._command + cmd, **kwargs)
  File "/usr/lib64/python2.7/subprocess.py", line 186, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['docker', 'run', '--label', 'com.qemu.instance.uuid=73784fd097b911e78e7b52540069c830', '-u', '0', '-t', '--rm', '--net=none', '-e', 'TARGET_LIST=', '-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=8', '-e', 'DEBUG=', '-e', 'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', '/var/tmp/patchew-tester-tmp-86s7dwy8/src/docker-src.2017-09-12-08.53.58.24575:/var/tmp/qemu:z,ro', '-v', '/root/.cache/qemu-docker-ccache:/var/tmp/ccache:z', 'qemu:centos6', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit status 2
make[1]: *** [tests/docker/Makefile.include:139: docker-run] Error 1
make[1]: Leaving directory '/var/tmp/patchew-tester-tmp-86s7dwy8/src'
make: *** [tests/docker/Makefile.include:168: docker-run-test-quick@centos6] Error 2

real	1m29.107s
user	0m5.235s
sys	0m1.708s
=== OUTPUT END ===

Test command exited with code: 2


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 03/12] ui: convert key events to QKeyCodes immediately
  2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 03/12] ui: convert key events to QKeyCodes immediately Daniel P. Berrange
@ 2017-09-12 13:31   ` Gerd Hoffmann
  0 siblings, 0 replies; 34+ messages in thread
From: Gerd Hoffmann @ 2017-09-12 13:31 UTC (permalink / raw)
  To: Daniel P. Berrange, qemu-devel

On Tue, 2017-09-12 at 13:37 +0100, Daniel P. Berrange wrote:
> Always use QKeyCode in the InputKeyEvent struct, by converting key
> numbers to QKeyCode at the time the event is created.
> 
> Signed-off-by: Daniel P. Berrange <berrange@redhat.com>

qmp_input_send_event() must be handled too as patches later in this
series depend on never seeing any KEY_VALUE_KIND_NUMBER key events.

cheers,
  Gerd

@@ -157,9 +157,16 @@ void qmp_input_send_event(bool has_device, const
char *device,
     }
 
     for (e = events; e != NULL; e = e->next) {
-        InputEvent *event = e->value;
+        InputEvent *evt = e->value;
 
-        qemu_input_event_send(con, event);
+        if (evt->type == INPUT_EVENT_KIND_KEY &&
+            evt->u.key.data->key->type == KEY_VALUE_KIND_NUMBER) {
+            KeyValue *key = evt->u.key.data->key;
+            QKeyCode code = qemu_input_key_number_to_qcode(key-
>u.qcode.data);
+            qemu_input_event_send_key_qcode(con, code, evt-
>u.key.data->down);
+        } else {
+            qemu_input_event_send(con, evt);
+        }
     }

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
                   ` (14 preceding siblings ...)
  2017-09-12 12:55 ` no-reply
@ 2017-09-12 13:46 ` Gerd Hoffmann
  2017-09-12 14:19   ` Daniel P. Berrange
  15 siblings, 1 reply; 34+ messages in thread
From: Gerd Hoffmann @ 2017-09-12 13:46 UTC (permalink / raw)
  To: Daniel P. Berrange, qemu-devel

  Hi,

> The keycodemapdb code is designed to be used as a git sub-module, it
> is
> not an external dependancy you need installed before use. In this
> version,
> however, the sub-module is not directly use. Instead all the
> generated
> files are checked into GIT. The downside to this is that we get an
> enourmous pile of errors from checkpatch.pl. The tool that generates
> the
> mapping files doesn't care about QEMU's coding style rules, because
> it is
> a general purpose tool intended for use by many different projects.
> 
> As such I'm not very happy about the idea of checking the generated
> files into
> GIT, and would prefer to go back to generating the files from the
> submodule
> on every build, as was done in v4.

The submodule approach has its share of issues too, just see how many
patch versions you've needed until patchew builds actually worked.  And
I guess lots of people have qemu build scripts which likewise need
adjustments.  Handling of release tarballs must be considered too.

I still think we should not require a checked out keycodemapdb
submodule.  But maybe it'll work better if we check in a copy of the
script and database instead of checking in the generated files.

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 05/12] input: convert virtio-input-hid device to keycodemapdb
  2017-09-12 12:47   ` Daniel P. Berrange
@ 2017-09-12 14:04     ` Gerd Hoffmann
  0 siblings, 0 replies; 34+ messages in thread
From: Gerd Hoffmann @ 2017-09-12 14:04 UTC (permalink / raw)
  To: Daniel P. Berrange, qemu-devel

  Hi,

> From what I can see the guest OS will read this bitmap when it first
> probes the virtio device, and never updates it.  If so, then is it
> actually a problem if we don't preserve the same map across save/
> restore/migrate ?

virtio-input config space size isn't fixed, instead it'll take up as
many bytes as actually needed.  So, when adding keys it can happen that
the bitmap needed grows, therefore the config space grows.  Not sure
whenever live migration trips over that, needs checking.

> If we added a key to the bitmap, we would potentially be sending
> a key to the guest that we hadn't previously declared support for.
> Either the guest OS will handle this normally, despite it not
> being in the declared bitmap, or it will silently drop the event.
> Neither behaviour seems problematic.

Yes, in theory the guest drivers should be robust enough.
We should check though whenever that is actually the case.

> If we did need to preserve ABI for this bitmap, then it seems we're
> going to create alot of work for ourselves, having to maintain
> many historical copies of the keycode maps tables, adding a new
> copy every time support for a new key is added in QEMU.

That's why I've suggested to not touch that for now, and once the dust
has settled and QKeyCode got all the keys still missing create a v2 of
the device, so we don't end up with many different versions.

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-12 13:46 ` Gerd Hoffmann
@ 2017-09-12 14:19   ` Daniel P. Berrange
  2017-09-12 14:24     ` Peter Maydell
  0 siblings, 1 reply; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 14:19 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel, Eric Blake

On Tue, Sep 12, 2017 at 03:46:34PM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> > The keycodemapdb code is designed to be used as a git sub-module, it
> > is
> > not an external dependancy you need installed before use. In this
> > version,
> > however, the sub-module is not directly use. Instead all the
> > generated
> > files are checked into GIT. The downside to this is that we get an
> > enourmous pile of errors from checkpatch.pl. The tool that generates
> > the
> > mapping files doesn't care about QEMU's coding style rules, because
> > it is
> > a general purpose tool intended for use by many different projects.
> > 
> > As such I'm not very happy about the idea of checking the generated
> > files into
> > GIT, and would prefer to go back to generating the files from the
> > submodule
> > on every build, as was done in v4.
> 
> The submodule approach has its share of issues too, just see how many
> patch versions you've needed until patchew builds actually worked.  And
> I guess lots of people have qemu build scripts which likewise need
> adjustments.  Handling of release tarballs must be considered too.
> 
> I still think we should not require a checked out keycodemapdb
> submodule.  But maybe it'll work better if we check in a copy of the
> script and database instead of checking in the generated files.

This feels like it all just defeats the point of submodules if you manually
copy stuff out of the submodule, or checkin generated files.

My POV is that we should a) never check generated files into GIT, and
we should use the submodule in such a way that it is indistinguish
from the content of the submodule being part of the main GIT repo.
IOW, when building from git always initialize the submodule, but
its content gets add to tar.gz dist, so people building from dist
don't rely on the submodule.

This is the way most projects deal with submodules - its been tricky
getting that working because QEMU has not used submodules in the
way other projects normally do, so there's no current framework in
the configure/makefiles todo the right thing. IMHO it is beneficial
to fix this so we can avoid pointless copying of files and/or storing
generated sources

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-12 14:19   ` Daniel P. Berrange
@ 2017-09-12 14:24     ` Peter Maydell
  2017-09-12 14:30       ` Daniel P. Berrange
  0 siblings, 1 reply; 34+ messages in thread
From: Peter Maydell @ 2017-09-12 14:24 UTC (permalink / raw)
  To: Daniel P. Berrange; +Cc: Gerd Hoffmann, QEMU Developers

On 12 September 2017 at 15:19, Daniel P. Berrange <berrange@redhat.com> wrote:
> My POV is that we should a) never check generated files into GIT, and
> we should use the submodule in such a way that it is indistinguish
> from the content of the submodule being part of the main GIT repo.

AFAICT this is impossible in that git submodules are broken
(checking out a different commit in the top level repo doesn't
check out the correct version of the submodule to go with it).
We put up with it for our current uses of submodules because
the submodule contents don't change very often...

I agree that checking generated files into git is a bad idea
if we can avoid it.

thanks
-- PMM

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-12 14:24     ` Peter Maydell
@ 2017-09-12 14:30       ` Daniel P. Berrange
  2017-09-14 11:55         ` Gerd Hoffmann
  0 siblings, 1 reply; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 14:30 UTC (permalink / raw)
  To: Peter Maydell; +Cc: Gerd Hoffmann, QEMU Developers

On Tue, Sep 12, 2017 at 03:24:22PM +0100, Peter Maydell wrote:
> On 12 September 2017 at 15:19, Daniel P. Berrange <berrange@redhat.com> wrote:
> > My POV is that we should a) never check generated files into GIT, and
> > we should use the submodule in such a way that it is indistinguish
> > from the content of the submodule being part of the main GIT repo.
> 
> AFAICT this is impossible in that git submodules are broken
> (checking out a different commit in the top level repo doesn't
> check out the correct version of the submodule to go with it).
> We put up with it for our current uses of submodules because
> the submodule contents don't change very often...

Yep, you need to have something in your build system which does
a checkout of the git submodule at the "right" time.

In autoconf world you can set things up so that 'autoreconf'
gets retriggered when submodule hash changes, but that doesn't
apply to qemu.

I tried to put some magic in configure in v4 but that was
flawed because I didn't take acount of people building
from dist.

I think a better approach is to have something in rules.mak
that ensures the submodule is checked out correctly (only
when building from GIT, not dist), and then have the rules
which generate the keymap files depend on this.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-12 14:30       ` Daniel P. Berrange
@ 2017-09-14 11:55         ` Gerd Hoffmann
  2017-09-14 11:58           ` Peter Maydell
  0 siblings, 1 reply; 34+ messages in thread
From: Gerd Hoffmann @ 2017-09-14 11:55 UTC (permalink / raw)
  To: Daniel P. Berrange, Peter Maydell; +Cc: QEMU Developers

  Hi,

> I think a better approach is to have something in rules.mak
> that ensures the submodule is checked out correctly (only
> when building from GIT, not dist), and then have the rules
> which generate the keymap files depend on this.

Care sending a patch doing that for dtc?

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-14 11:55         ` Gerd Hoffmann
@ 2017-09-14 11:58           ` Peter Maydell
  2017-09-14 12:40             ` Daniel P. Berrange
  0 siblings, 1 reply; 34+ messages in thread
From: Peter Maydell @ 2017-09-14 11:58 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Daniel P. Berrange, QEMU Developers

On 14 September 2017 at 12:55, Gerd Hoffmann <kraxel@redhat.com> wrote:
>   Hi,
>
>> I think a better approach is to have something in rules.mak
>> that ensures the submodule is checked out correctly (only
>> when building from GIT, not dist), and then have the rules
>> which generate the keymap files depend on this.
>
> Care sending a patch doing that for dtc?

It sounds awfully fiddly. Maybe it is the best we can do
given the mess that is git submodules, but is it really
the common approach?

thanks
-- PMM

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-14 11:58           ` Peter Maydell
@ 2017-09-14 12:40             ` Daniel P. Berrange
  2017-09-18 15:12               ` Gerd Hoffmann
  0 siblings, 1 reply; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-14 12:40 UTC (permalink / raw)
  To: Peter Maydell; +Cc: Gerd Hoffmann, QEMU Developers

On Thu, Sep 14, 2017 at 12:58:26PM +0100, Peter Maydell wrote:
> On 14 September 2017 at 12:55, Gerd Hoffmann <kraxel@redhat.com> wrote:
> >   Hi,
> >
> >> I think a better approach is to have something in rules.mak
> >> that ensures the submodule is checked out correctly (only
> >> when building from GIT, not dist), and then have the rules
> >> which generate the keymap files depend on this.
> >
> > Care sending a patch doing that for dtc?
> 
> It sounds awfully fiddly. Maybe it is the best we can do
> given the mess that is git submodules, but is it really
> the common approach?

I'll do a prototype so we can see something concrete working and
evaluate how pleasant (or not) it is

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-14 12:40             ` Daniel P. Berrange
@ 2017-09-18 15:12               ` Gerd Hoffmann
  2017-09-19 10:08                 ` Daniel P. Berrange
  0 siblings, 1 reply; 34+ messages in thread
From: Gerd Hoffmann @ 2017-09-18 15:12 UTC (permalink / raw)
  To: Daniel P. Berrange, Peter Maydell; +Cc: QEMU Developers

On Thu, 2017-09-14 at 13:40 +0100, Daniel P. Berrange wrote:
> On Thu, Sep 14, 2017 at 12:58:26PM +0100, Peter Maydell wrote:
> > On 14 September 2017 at 12:55, Gerd Hoffmann <kraxel@redhat.com>
> > wrote:
> > >   Hi,
> > > 
> > > > I think a better approach is to have something in rules.mak
> > > > that ensures the submodule is checked out correctly (only
> > > > when building from GIT, not dist), and then have the rules
> > > > which generate the keymap files depend on this.
> > > 
> > > Care sending a patch doing that for dtc?
> > 
> > It sounds awfully fiddly. Maybe it is the best we can do
> > given the mess that is git submodules, but is it really
> > the common approach?
> 
> I'll do a prototype so we can see something concrete working and
> evaluate how pleasant (or not) it is

Tried to brew something:

https://www.kraxel.org/cgit/qemu/log/?h=work/submodule

dtc was pretty simple due to the recursive make call.

Hooking the submodule update into a non-recursive make looks
complicated, especially because the submodule update might change the
timestamps and therefore the target set which needs a rebuild ...

So I did the keymaps build with a recursive make call too, which
doesn't look that pretty ...

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-18 15:12               ` Gerd Hoffmann
@ 2017-09-19 10:08                 ` Daniel P. Berrange
  2017-09-19 10:58                   ` Gerd Hoffmann
  0 siblings, 1 reply; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-19 10:08 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Peter Maydell, QEMU Developers

On Mon, Sep 18, 2017 at 05:12:55PM +0200, Gerd Hoffmann wrote:
> On Thu, 2017-09-14 at 13:40 +0100, Daniel P. Berrange wrote:
> > On Thu, Sep 14, 2017 at 12:58:26PM +0100, Peter Maydell wrote:
> > > On 14 September 2017 at 12:55, Gerd Hoffmann <kraxel@redhat.com>
> > > wrote:
> > > >   Hi,
> > > > 
> > > > > I think a better approach is to have something in rules.mak
> > > > > that ensures the submodule is checked out correctly (only
> > > > > when building from GIT, not dist), and then have the rules
> > > > > which generate the keymap files depend on this.
> > > > 
> > > > Care sending a patch doing that for dtc?
> > > 
> > > It sounds awfully fiddly. Maybe it is the best we can do
> > > given the mess that is git submodules, but is it really
> > > the common approach?
> > 
> > I'll do a prototype so we can see something concrete working and
> > evaluate how pleasant (or not) it is
> 
> Tried to brew something:
> 
> https://www.kraxel.org/cgit/qemu/log/?h=work/submodule
> 
> dtc was pretty simple due to the recursive make call.
> 
> Hooking the submodule update into a non-recursive make looks
> complicated, especially because the submodule update might change the
> timestamps and therefore the target set which needs a rebuild ...
> 
> So I did the keymaps build with a recursive make call too, which
> doesn't look that pretty ...

I don't think that's too ugly, but I wonder if there's some way to avoid
the recursive make call.

It feels like this is a similar scenario to 'config-host.mak' being
outdated. I don't entirely understand the logic yet, but we manage to
automatically re-run configure and rebuild config-host.make, when
configure changes, and that in turn affects which dependancies need
rebuild. I wonder if we can somehow integrate into that process, so
that configure is responsible for checking out the git submodules,
then make the re-running of configure trigger when .gitmodules
changes content.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-19 10:08                 ` Daniel P. Berrange
@ 2017-09-19 10:58                   ` Gerd Hoffmann
  2017-09-19 11:05                     ` Peter Maydell
  2017-09-19 11:20                     ` Daniel P. Berrange
  0 siblings, 2 replies; 34+ messages in thread
From: Gerd Hoffmann @ 2017-09-19 10:58 UTC (permalink / raw)
  To: Daniel P. Berrange; +Cc: Peter Maydell, QEMU Developers

  Hi,

> > So I did the keymaps build with a recursive make call too, which
> > doesn't look that pretty ...
> 
> I don't think that's too ugly, but I wonder if there's some way to
> avoid
> the recursive make call.
> 
> It feels like this is a similar scenario to 'config-host.mak' being
> outdated. I don't entirely understand the logic yet, but we manage to
> automatically re-run configure and rebuild config-host.make, when
> configure changes, and that in turn affects which dependancies need
> rebuild.

Can't spot anything special in the Makefile.  Maybe make is clever
enough to figure that a rule updates a include file and starts over
then.

> I wonder if we can somehow integrate into that process, so
> that configure is responsible for checking out the git submodules,
> then make the re-running of configure trigger when .gitmodules
> changes content.

.gitmodules only has the repo links, not the checkout hashes.  So it
wouldn't be touched on updates.

I can't see an easy way for make to figure a submodule has changed,
other than running "git submodule update".

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-19 10:58                   ` Gerd Hoffmann
@ 2017-09-19 11:05                     ` Peter Maydell
  2017-09-19 11:20                     ` Daniel P. Berrange
  1 sibling, 0 replies; 34+ messages in thread
From: Peter Maydell @ 2017-09-19 11:05 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Daniel P. Berrange, QEMU Developers

On 19 September 2017 at 11:58, Gerd Hoffmann <kraxel@redhat.com> wrote:

>> It feels like this is a similar scenario to 'config-host.mak' being
>> outdated. I don't entirely understand the logic yet, but we manage to
>> automatically re-run configure and rebuild config-host.make, when
>> configure changes, and that in turn affects which dependancies need
>> rebuild.
>
> Can't spot anything special in the Makefile.  Maybe make is clever
> enough to figure that a rule updates a include file and starts over
> then.

Yes, Make will notice if it has a dependency rule for a file
included via 'include foo' (or for the makefile itself). In
this case we 'include config-host.mak', and config-host.mak
has a rule which says it depends on configure (and on pc-bios ???)
which triggers a rerun of configure.

I also notice that we have a "TODO: this code can be removed
after QEMU 1.7" in the run-configure rune :-)

thanks
-- PMM

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-19 10:58                   ` Gerd Hoffmann
  2017-09-19 11:05                     ` Peter Maydell
@ 2017-09-19 11:20                     ` Daniel P. Berrange
  2017-09-19 11:55                       ` Daniel P. Berrange
  1 sibling, 1 reply; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-19 11:20 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Peter Maydell, QEMU Developers

On Tue, Sep 19, 2017 at 12:58:20PM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> > > So I did the keymaps build with a recursive make call too, which
> > > doesn't look that pretty ...
> > 
> > I don't think that's too ugly, but I wonder if there's some way to
> > avoid
> > the recursive make call.
> > 
> > It feels like this is a similar scenario to 'config-host.mak' being
> > outdated. I don't entirely understand the logic yet, but we manage to
> > automatically re-run configure and rebuild config-host.make, when
> > configure changes, and that in turn affects which dependancies need
> > rebuild.
> 
> Can't spot anything special in the Makefile.  Maybe make is clever
> enough to figure that a rule updates a include file and starts over
> then.
> 
> > I wonder if we can somehow integrate into that process, so
> > that configure is responsible for checking out the git submodules,
> > then make the re-running of configure trigger when .gitmodules
> > changes content.
> 
> .gitmodules only has the repo links, not the checkout hashes.  So it
> wouldn't be touched on updates.
> 
> I can't see an easy way for make to figure a submodule has changed,
> other than running "git submodule update".

So I think I figured out the trick libvirt/gnulib uses for this. It
runs an external script to check the submodule status. This runs
'git submodule' to get a list of expected hashes, and compares this
to a file .git-submodule-status that it previously created (might be
missing on fresh checkout). If the expected & stores hashes don't
match this script runs an error.

The Makefile checks the output of this script, and if it indicates
that an submodule update is required, it uses an ifeq() to add a
dependancy between "Makefile" and a phony target that re-runs
configure (which in turns updates the submodules). If no update was
required, then no dependancy from Makefile gets added, so build runs
normally.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-19 11:20                     ` Daniel P. Berrange
@ 2017-09-19 11:55                       ` Daniel P. Berrange
  2017-09-19 14:26                         ` Gerd Hoffmann
  0 siblings, 1 reply; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-19 11:55 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Peter Maydell, QEMU Developers

On Tue, Sep 19, 2017 at 12:20:55PM +0100, Daniel P. Berrange wrote:
> On Tue, Sep 19, 2017 at 12:58:20PM +0200, Gerd Hoffmann wrote:
> >   Hi,
> > 
> > > > So I did the keymaps build with a recursive make call too, which
> > > > doesn't look that pretty ...
> > > 
> > > I don't think that's too ugly, but I wonder if there's some way to
> > > avoid
> > > the recursive make call.
> > > 
> > > It feels like this is a similar scenario to 'config-host.mak' being
> > > outdated. I don't entirely understand the logic yet, but we manage to
> > > automatically re-run configure and rebuild config-host.make, when
> > > configure changes, and that in turn affects which dependancies need
> > > rebuild.
> > 
> > Can't spot anything special in the Makefile.  Maybe make is clever
> > enough to figure that a rule updates a include file and starts over
> > then.
> > 
> > > I wonder if we can somehow integrate into that process, so
> > > that configure is responsible for checking out the git submodules,
> > > then make the re-running of configure trigger when .gitmodules
> > > changes content.
> > 
> > .gitmodules only has the repo links, not the checkout hashes.  So it
> > wouldn't be touched on updates.
> > 
> > I can't see an easy way for make to figure a submodule has changed,
> > other than running "git submodule update".
> 
> So I think I figured out the trick libvirt/gnulib uses for this. It
> runs an external script to check the submodule status. This runs
> 'git submodule' to get a list of expected hashes, and compares this
> to a file .git-submodule-status that it previously created (might be
> missing on fresh checkout). If the expected & stores hashes don't
> match this script runs an error.
> 
> The Makefile checks the output of this script, and if it indicates
> that an submodule update is required, it uses an ifeq() to add a
> dependancy between "Makefile" and a phony target that re-runs
> configure (which in turns updates the submodules). If no update was
> required, then no dependancy from Makefile gets added, so build runs
> normally.

Here is an example of integrating this approach with QEMU that seems
like it should work:

diff --git a/.gitmodules b/.gitmodules
index 84c54cdc49..f3bbc01f82 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -34,3 +34,6 @@
 [submodule "roms/QemuMacDrivers"]
 	path = roms/QemuMacDrivers
 	url = git://git.qemu.org/QemuMacDrivers.git
+[submodule "ui/keycodemapdb"]
+	path = ui/keycodemapdb
+	url = https://gitlab.com/keycodemap/keycodemapdb.git
diff --git a/Makefile b/Makefile
index b53fc69a60..62f17d2db5 100644
--- a/Makefile
+++ b/Makefile
@@ -803,6 +803,25 @@ Makefile: $(GENERATED_FILES)
 endif
 endif
 
+ifeq (0,$(MAKELEVEL))
+  git_module_status := $(shell \
+      cd '$(SRC_PATH)'; \
+      test -d .git || test -f .git || { echo 0; exit; }; \
+      ./scripts/git-submodule-status.sh; \
+      echo $$?; \
+  )
+
+ifeq (1,$(git_module_status))
+Makefile: reconfig
+
+.PHONY: reconfig
+
+reconfig:
+	@echo "GIT submodules out of date, re-running configure"
+	./config.status
+endif
+endif
+
 .SECONDARY: $(TRACE_HEADERS) $(TRACE_HEADERS:%=%-timestamp) \
 	$(TRACE_SOURCES) $(TRACE_SOURCES:%=%-timestamp) \
 	$(TRACE_DTRACE) $(TRACE_DTRACE:%=%-timestamp)
diff --git a/configure b/configure
index 94db2d103e..eb29a95ff9 100755
--- a/configure
+++ b/configure
@@ -3583,6 +3583,15 @@ fi
 libs_softmmu="$libs_softmmu $fdt_libs"
 
 ##########################################
+# initialize keycodemapdb module
+
+if test -d "${source_path}/.git"
+then
+    git submodule update --init ui/keycodemapdb
+    git submodule status ui/keycodemapdb | awk '{print $1 " " $2}' > .git-submodule-status
+fi
+
+##########################################
 # opengl probe (for sdl2, gtk, milkymist-tmu2)
 
 if test "$opengl" != "no" ; then
diff --git a/scripts/git-submodule-status.sh b/scripts/git-submodule-status.sh
new file mode 100755
index 0000000000..1a28118ee6
--- /dev/null
+++ b/scripts/git-submodule-status.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+if ! test -f .git-submodule-status
+then
+   exit 1
+fi
+
+git submodule status ui/keycodemapdb | awk '{print $1 " " $2}' > .git-submodule-status.tmp
+
+diff .git-submodule-status .git-submodule-status.tmp >/dev/null
+
+ret=$?
+
+rm -f .git-submodule-status.tmp
+
+exit $ret
diff --git a/ui/keycodemapdb b/ui/keycodemapdb
new file mode 160000
index 0000000000..56ce5650d2
--- /dev/null
+++ b/ui/keycodemapdb
@@ -0,0 +1 @@
+Subproject commit 56ce5650d2c6ea216b4580df44b9a6dd3bc92c3b
-- 
2.13.5



Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-19 11:55                       ` Daniel P. Berrange
@ 2017-09-19 14:26                         ` Gerd Hoffmann
  2017-09-19 14:43                           ` Daniel P. Berrange
  0 siblings, 1 reply; 34+ messages in thread
From: Gerd Hoffmann @ 2017-09-19 14:26 UTC (permalink / raw)
  To: Daniel P. Berrange; +Cc: Peter Maydell, QEMU Developers

  Hi,

> > The Makefile checks the output of this script, and if it indicates
> > that an submodule update is required, it uses an ifeq() to add a
> > dependancy between "Makefile" and a phony target that re-runs
> > configure (which in turns updates the submodules). If no update was
> > required, then no dependancy from Makefile gets added, so build
> > runs
> > normally.

Neat trick.  I think re-running configure should not be needed though. 
Touching the Makefile should be enough to make make re-evaluating
things after updating submodules ...

cheers,
  Gerd

diff --git a/Makefile b/Makefile
index b53fc69a60..a9a0cea6d9 100644
--- a/Makefile
+++ b/Makefile
@@ -31,6 +31,27 @@ CONFIG_ALL=y
 -include config-all-devices.mak
 -include config-all-disas.mak
 
+ifeq (0,$(MAKELEVEL))
+  git_module_status := $(shell \
+    cd '$(SRC_PATH)'; \
+    test -d .git || { echo 0; exit; }; \
+    ./scripts/git-submodule.sh status; \
+    echo $$?; \
+  )
+
+ifeq (1,$(git_module_status))
+Makefile: git-submodule-update
+
+.PHONY: git-submodule-update
+
+git-submodule-update:
+	@echo "GIT submodules out of date, updating."
+	(cd $(SRC_PATH); ./scripts/git-submodule.sh update)
+	@touch Makefile
+endif
+endif
+
+
 config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios
 	@echo $@ is out-of-date, running configure
 	@# TODO: The next lines include code which supports a smooth
diff --git a/.gitignore b/.gitignore
index cf65316863..0c5fda2fdb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -111,6 +111,7 @@
 /docs/version.texi
 *.tps
 .stgit-*
+.git-submodule-status
 cscope.*
 tags
 TAGS
diff --git a/scripts/git-submodule.sh b/scripts/git-submodule.sh
new file mode 100755
index 0000000000..07d36c2b82
--- /dev/null
+++ b/scripts/git-submodule.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+# config
+modules="dtc"
+substat=".git-submodule-status"
+
+# drop modules not checked out
+modules="$(git submodule status $modules | awk '/^[^-]/ { print $2
}')"
+
+case "$1" in
+status)
+	test -f "$substat" || exit 1
+	git submodule status $modules > "${substat}.tmp"
+	trap "rm -f ${substat}.tmp" EXIT
+	diff "${substat}" "${substat}.tmp" >/dev/null
+	exit $?
+	;;
+update)
+	git submodule update $modules
+	git submodule status $modules > "${substat}"
+	;;
+esac

^ permalink raw reply related	[flat|nested] 34+ messages in thread

* Re: [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb
  2017-09-19 14:26                         ` Gerd Hoffmann
@ 2017-09-19 14:43                           ` Daniel P. Berrange
  0 siblings, 0 replies; 34+ messages in thread
From: Daniel P. Berrange @ 2017-09-19 14:43 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Peter Maydell, QEMU Developers

On Tue, Sep 19, 2017 at 04:26:22PM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> > > The Makefile checks the output of this script, and if it indicates
> > > that an submodule update is required, it uses an ifeq() to add a
> > > dependancy between "Makefile" and a phony target that re-runs
> > > configure (which in turns updates the submodules). If no update was
> > > required, then no dependancy from Makefile gets added, so build
> > > runs
> > > normally.
> 
> Neat trick.  I think re-running configure should not be needed though. 
> Touching the Makefile should be enough to make make re-evaluating
> things after updating submodules ...

Yeah, re-running configure would only be needed if one of the submodules
had code that needed to be run by configure (eg before we removed pixman
we could re-run pixman/configure).

Since we killed pixman though, we might as well stick with doing it
all in the Makefile and ignore configure.

> diff --git a/Makefile b/Makefile
> index b53fc69a60..a9a0cea6d9 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -31,6 +31,27 @@ CONFIG_ALL=y
>  -include config-all-devices.mak
>  -include config-all-disas.mak
>  
> +ifeq (0,$(MAKELEVEL))
> +  git_module_status := $(shell \
> +    cd '$(SRC_PATH)'; \
> +    test -d .git || { echo 0; exit; }; \
> +    ./scripts/git-submodule.sh status; \
> +    echo $$?; \
> +  )
> +
> +ifeq (1,$(git_module_status))
> +Makefile: git-submodule-update
> +
> +.PHONY: git-submodule-update
> +
> +git-submodule-update:
> +	@echo "GIT submodules out of date, updating."
> +	(cd $(SRC_PATH); ./scripts/git-submodule.sh update)
> +	@touch Makefile
> +endif
> +endif
> +
> +
>  config-host.mak: $(SRC_PATH)/configure $(SRC_PATH)/pc-bios
>  	@echo $@ is out-of-date, running configure
>  	@# TODO: The next lines include code which supports a smooth
> diff --git a/.gitignore b/.gitignore
> index cf65316863..0c5fda2fdb 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -111,6 +111,7 @@
>  /docs/version.texi
>  *.tps
>  .stgit-*
> +.git-submodule-status
>  cscope.*
>  tags
>  TAGS
> diff --git a/scripts/git-submodule.sh b/scripts/git-submodule.sh
> new file mode 100755
> index 0000000000..07d36c2b82
> --- /dev/null
> +++ b/scripts/git-submodule.sh
> @@ -0,0 +1,22 @@
> +#!/bin/bash
> +
> +# config
> +modules="dtc"
> +substat=".git-submodule-status"
> +
> +# drop modules not checked out
> +modules="$(git submodule status $modules | awk '/^[^-]/ { print $2
> }')"
> +
> +case "$1" in
> +status)
> +	test -f "$substat" || exit 1
> +	git submodule status $modules > "${substat}.tmp"
> +	trap "rm -f ${substat}.tmp" EXIT
> +	diff "${substat}" "${substat}.tmp" >/dev/null
> +	exit $?
> +	;;
> +update)
> +	git submodule update $modules
> +	git submodule status $modules > "${substat}"
> +	;;
> +esac

Yep, this looks reasonable. I'll incorporate this in my keycodemapdb
patch series & repost later this week.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2017-09-19 14:43 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 01/12] ui: add keycodemapdb repository as a GIT submodule Daniel P. Berrange
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 02/12] ui: convert common input code to keycodemapdb Daniel P. Berrange
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 03/12] ui: convert key events to QKeyCodes immediately Daniel P. Berrange
2017-09-12 13:31   ` Gerd Hoffmann
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 04/12] ui: don't export qemu_input_event_new_key Daniel P. Berrange
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 05/12] input: convert virtio-input-hid device to keycodemapdb Daniel P. Berrange
2017-09-12 12:47   ` Daniel P. Berrange
2017-09-12 14:04     ` Gerd Hoffmann
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 06/12] input: convert ps2 " Daniel P. Berrange
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 07/12] input: convert the adb " Daniel P. Berrange
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 08/12] char: convert the escc " Daniel P. Berrange
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 09/12] ui: convert cocoa frontend " Daniel P. Berrange
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 10/12] ui: convert the SDL2 " Daniel P. Berrange
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 11/12] ui: convert GTK and SDL1 frontends " Daniel P. Berrange
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 12/12] display: convert XenInput keyboard " Daniel P. Berrange
2017-09-12 12:52 ` [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb no-reply
2017-09-12 12:53 ` no-reply
2017-09-12 12:55 ` no-reply
2017-09-12 13:46 ` Gerd Hoffmann
2017-09-12 14:19   ` Daniel P. Berrange
2017-09-12 14:24     ` Peter Maydell
2017-09-12 14:30       ` Daniel P. Berrange
2017-09-14 11:55         ` Gerd Hoffmann
2017-09-14 11:58           ` Peter Maydell
2017-09-14 12:40             ` Daniel P. Berrange
2017-09-18 15:12               ` Gerd Hoffmann
2017-09-19 10:08                 ` Daniel P. Berrange
2017-09-19 10:58                   ` Gerd Hoffmann
2017-09-19 11:05                     ` Peter Maydell
2017-09-19 11:20                     ` Daniel P. Berrange
2017-09-19 11:55                       ` Daniel P. Berrange
2017-09-19 14:26                         ` Gerd Hoffmann
2017-09-19 14:43                           ` Daniel P. Berrange

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.