summaryrefslogtreecommitdiff
path: root/pkg/libevdev
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2016-12-11 16:04:20 -0800
committerMichael Forney <mforney@mforney.org>2016-12-13 23:10:30 -0800
commit293f5a93b77d92fd65db7f3d0df654f102e46cfb (patch)
tree6ecd1170e3dd793862dd852814dc1b4cd5e44260 /pkg/libevdev
parent9a506a6834df01a26795cea222b410f206efa9fa (diff)
Move to flat package hierarchy
Note to self: never try to move submodules again To migrate your existing submodules (more or less): set -x set -e mkdir .git/modules/pkg for old in */*/src ; do new="pkg/${old#*/}" if ! [ -f "$old/.git" ] || [ "${old%%/*}" = pkg ] ; then continue fi git -C ".git/modules/$old" config core.worktree "../../../../../$new" rmdir "$new" mv "$old" "$new" sed -e "s,$old,$new," "$new/.git" > "$new/.git.tmp" mv "$new/.git.tmp" "$new/.git" mkdir ".git/modules/${new%/src}" mv ".git/modules/$old" ".git/modules/$new" rm "${old%/src}"/*.ninja mv "${old%/src}"/*.tar.{gz,xz,bz2} "${new%/src}/" rmdir "${old%/src}" || true done sed -e 's,^\[submodule "[^/]*/,[submodule "pkg/,' .git/config > .git/config.tmp mv .git/config.tmp .git/config
Diffstat (limited to 'pkg/libevdev')
-rw-r--r--pkg/libevdev/config.h30
-rw-r--r--pkg/libevdev/gen.rc16
-rw-r--r--pkg/libevdev/patch/0001-Add-generated-event-names.h.patch1445
-rw-r--r--pkg/libevdev/rev1
m---------pkg/libevdev/src0
5 files changed, 1492 insertions, 0 deletions
diff --git a/pkg/libevdev/config.h b/pkg/libevdev/config.h
new file mode 100644
index 00000000..54528629
--- /dev/null
+++ b/pkg/libevdev/config.h
@@ -0,0 +1,30 @@
+#include <config-posix.h>
+
+#define HAVE_MEMORY_H 1
+#define LT_OBJDIR ".libs/"
+#define PACKAGE "libevdev"
+#define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=libevdev"
+#define PACKAGE_NAME "libevdev"
+#define PACKAGE_STRING "libevdev 1.5.5"
+#define PACKAGE_TARNAME "libevdev"
+#define PACKAGE_URL "http://freedesktop.org/wiki/Software/libevdev/"
+#define PACKAGE_VERSION "1.5.5"
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+#define VERSION "1.5.5"
+/* #undef _MINIX */
+/* #undef _POSIX_1_SOURCE */
+/* #undef _POSIX_SOURCE */
diff --git a/pkg/libevdev/gen.rc b/pkg/libevdev/gen.rc
new file mode 100644
index 00000000..c65456b9
--- /dev/null
+++ b/pkg/libevdev/gen.rc
@@ -0,0 +1,16 @@
+cflags\
+ -I include\
+ -I '$dir' \
+ -I '$srcdir'
+
+hdrs=libevdev/libevdev.h
+for(hdr in $hdrs) {
+ build '$outdir'/include/$hdr copy '$srcdir'/$hdr
+ file include/$hdr '$srcdir'/$hdr 644
+}
+phony headers '$outdir'/include/$hdrs
+
+lib libevdev.a libevdev/^(libevdev.c libevdev-names.c)
+file lib/libevdev.a '$outdir'/libevdev.a 644
+
+fetch git
diff --git a/pkg/libevdev/patch/0001-Add-generated-event-names.h.patch b/pkg/libevdev/patch/0001-Add-generated-event-names.h.patch
new file mode 100644
index 00000000..109ea0bb
--- /dev/null
+++ b/pkg/libevdev/patch/0001-Add-generated-event-names.h.patch
@@ -0,0 +1,1445 @@
+From 9da8997d2076c0fc8b948125039bfb3ec281d90d Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sun, 26 Jun 2016 23:53:20 -0700
+Subject: [PATCH] Add generated event-names.h
+
+This file was generated by the make-event-names.py script.
+---
+ libevdev/event-names.h | 1425 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 1425 insertions(+)
+ create mode 100644 libevdev/event-names.h
+
+diff --git a/libevdev/event-names.h b/libevdev/event-names.h
+new file mode 100644
+index 0000000..b9ede79
+--- /dev/null
++++ b/libevdev/event-names.h
+@@ -0,0 +1,1425 @@
++/* THIS FILE IS GENERATED, DO NOT EDIT */
++
++#ifndef EVENT_NAMES_H
++#define EVENT_NAMES_H
++
++static const char * const ev_map[EV_MAX + 1] = {
++ [EV_SYN] = "EV_SYN",
++ [EV_KEY] = "EV_KEY",
++ [EV_REL] = "EV_REL",
++ [EV_ABS] = "EV_ABS",
++ [EV_MSC] = "EV_MSC",
++ [EV_SW] = "EV_SW",
++ [EV_LED] = "EV_LED",
++ [EV_SND] = "EV_SND",
++ [EV_REP] = "EV_REP",
++ [EV_FF] = "EV_FF",
++ [EV_PWR] = "EV_PWR",
++ [EV_FF_STATUS] = "EV_FF_STATUS",
++ [EV_MAX] = "EV_MAX",
++};
++
++static const char * const rel_map[REL_MAX + 1] = {
++ [REL_X] = "REL_X",
++ [REL_Y] = "REL_Y",
++ [REL_Z] = "REL_Z",
++ [REL_RX] = "REL_RX",
++ [REL_RY] = "REL_RY",
++ [REL_RZ] = "REL_RZ",
++ [REL_HWHEEL] = "REL_HWHEEL",
++ [REL_DIAL] = "REL_DIAL",
++ [REL_WHEEL] = "REL_WHEEL",
++ [REL_MISC] = "REL_MISC",
++ [REL_MAX] = "REL_MAX",
++};
++
++static const char * const abs_map[ABS_MAX + 1] = {
++ [ABS_X] = "ABS_X",
++ [ABS_Y] = "ABS_Y",
++ [ABS_Z] = "ABS_Z",
++ [ABS_RX] = "ABS_RX",
++ [ABS_RY] = "ABS_RY",
++ [ABS_RZ] = "ABS_RZ",
++ [ABS_THROTTLE] = "ABS_THROTTLE",
++ [ABS_RUDDER] = "ABS_RUDDER",
++ [ABS_WHEEL] = "ABS_WHEEL",
++ [ABS_GAS] = "ABS_GAS",
++ [ABS_BRAKE] = "ABS_BRAKE",
++ [ABS_HAT0X] = "ABS_HAT0X",
++ [ABS_HAT0Y] = "ABS_HAT0Y",
++ [ABS_HAT1X] = "ABS_HAT1X",
++ [ABS_HAT1Y] = "ABS_HAT1Y",
++ [ABS_HAT2X] = "ABS_HAT2X",
++ [ABS_HAT2Y] = "ABS_HAT2Y",
++ [ABS_HAT3X] = "ABS_HAT3X",
++ [ABS_HAT3Y] = "ABS_HAT3Y",
++ [ABS_PRESSURE] = "ABS_PRESSURE",
++ [ABS_DISTANCE] = "ABS_DISTANCE",
++ [ABS_TILT_X] = "ABS_TILT_X",
++ [ABS_TILT_Y] = "ABS_TILT_Y",
++ [ABS_TOOL_WIDTH] = "ABS_TOOL_WIDTH",
++ [ABS_VOLUME] = "ABS_VOLUME",
++ [ABS_MISC] = "ABS_MISC",
++ [ABS_MT_SLOT] = "ABS_MT_SLOT",
++ [ABS_MT_TOUCH_MAJOR] = "ABS_MT_TOUCH_MAJOR",
++ [ABS_MT_TOUCH_MINOR] = "ABS_MT_TOUCH_MINOR",
++ [ABS_MT_WIDTH_MAJOR] = "ABS_MT_WIDTH_MAJOR",
++ [ABS_MT_WIDTH_MINOR] = "ABS_MT_WIDTH_MINOR",
++ [ABS_MT_ORIENTATION] = "ABS_MT_ORIENTATION",
++ [ABS_MT_POSITION_X] = "ABS_MT_POSITION_X",
++ [ABS_MT_POSITION_Y] = "ABS_MT_POSITION_Y",
++ [ABS_MT_TOOL_TYPE] = "ABS_MT_TOOL_TYPE",
++ [ABS_MT_BLOB_ID] = "ABS_MT_BLOB_ID",
++ [ABS_MT_TRACKING_ID] = "ABS_MT_TRACKING_ID",
++ [ABS_MT_PRESSURE] = "ABS_MT_PRESSURE",
++ [ABS_MT_DISTANCE] = "ABS_MT_DISTANCE",
++ [ABS_MT_TOOL_X] = "ABS_MT_TOOL_X",
++ [ABS_MT_TOOL_Y] = "ABS_MT_TOOL_Y",
++ [ABS_MAX] = "ABS_MAX",
++};
++
++static const char * const key_map[KEY_MAX + 1] = {
++ [KEY_RESERVED] = "KEY_RESERVED",
++ [KEY_ESC] = "KEY_ESC",
++ [KEY_1] = "KEY_1",
++ [KEY_2] = "KEY_2",
++ [KEY_3] = "KEY_3",
++ [KEY_4] = "KEY_4",
++ [KEY_5] = "KEY_5",
++ [KEY_6] = "KEY_6",
++ [KEY_7] = "KEY_7",
++ [KEY_8] = "KEY_8",
++ [KEY_9] = "KEY_9",
++ [KEY_0] = "KEY_0",
++ [KEY_MINUS] = "KEY_MINUS",
++ [KEY_EQUAL] = "KEY_EQUAL",
++ [KEY_BACKSPACE] = "KEY_BACKSPACE",
++ [KEY_TAB] = "KEY_TAB",
++ [KEY_Q] = "KEY_Q",
++ [KEY_W] = "KEY_W",
++ [KEY_E] = "KEY_E",
++ [KEY_R] = "KEY_R",
++ [KEY_T] = "KEY_T",
++ [KEY_Y] = "KEY_Y",
++ [KEY_U] = "KEY_U",
++ [KEY_I] = "KEY_I",
++ [KEY_O] = "KEY_O",
++ [KEY_P] = "KEY_P",
++ [KEY_LEFTBRACE] = "KEY_LEFTBRACE",
++ [KEY_RIGHTBRACE] = "KEY_RIGHTBRACE",
++ [KEY_ENTER] = "KEY_ENTER",
++ [KEY_LEFTCTRL] = "KEY_LEFTCTRL",
++ [KEY_A] = "KEY_A",
++ [KEY_S] = "KEY_S",
++ [KEY_D] = "KEY_D",
++ [KEY_F] = "KEY_F",
++ [KEY_G] = "KEY_G",
++ [KEY_H] = "KEY_H",
++ [KEY_J] = "KEY_J",
++ [KEY_K] = "KEY_K",
++ [KEY_L] = "KEY_L",
++ [KEY_SEMICOLON] = "KEY_SEMICOLON",
++ [KEY_APOSTROPHE] = "KEY_APOSTROPHE",
++ [KEY_GRAVE] = "KEY_GRAVE",
++ [KEY_LEFTSHIFT] = "KEY_LEFTSHIFT",
++ [KEY_BACKSLASH] = "KEY_BACKSLASH",
++ [KEY_Z] = "KEY_Z",
++ [KEY_X] = "KEY_X",
++ [KEY_C] = "KEY_C",
++ [KEY_V] = "KEY_V",
++ [KEY_B] = "KEY_B",
++ [KEY_N] = "KEY_N",
++ [KEY_M] = "KEY_M",
++ [KEY_COMMA] = "KEY_COMMA",
++ [KEY_DOT] = "KEY_DOT",
++ [KEY_SLASH] = "KEY_SLASH",
++ [KEY_RIGHTSHIFT] = "KEY_RIGHTSHIFT",
++ [KEY_KPASTERISK] = "KEY_KPASTERISK",
++ [KEY_LEFTALT] = "KEY_LEFTALT",
++ [KEY_SPACE] = "KEY_SPACE",
++ [KEY_CAPSLOCK] = "KEY_CAPSLOCK",
++ [KEY_F1] = "KEY_F1",
++ [KEY_F2] = "KEY_F2",
++ [KEY_F3] = "KEY_F3",
++ [KEY_F4] = "KEY_F4",
++ [KEY_F5] = "KEY_F5",
++ [KEY_F6] = "KEY_F6",
++ [KEY_F7] = "KEY_F7",
++ [KEY_F8] = "KEY_F8",
++ [KEY_F9] = "KEY_F9",
++ [KEY_F10] = "KEY_F10",
++ [KEY_NUMLOCK] = "KEY_NUMLOCK",
++ [KEY_SCROLLLOCK] = "KEY_SCROLLLOCK",
++ [KEY_KP7] = "KEY_KP7",
++ [KEY_KP8] = "KEY_KP8",
++ [KEY_KP9] = "KEY_KP9",
++ [KEY_KPMINUS] = "KEY_KPMINUS",
++ [KEY_KP4] = "KEY_KP4",
++ [KEY_KP5] = "KEY_KP5",
++ [KEY_KP6] = "KEY_KP6",
++ [KEY_KPPLUS] = "KEY_KPPLUS",
++ [KEY_KP1] = "KEY_KP1",
++ [KEY_KP2] = "KEY_KP2",
++ [KEY_KP3] = "KEY_KP3",
++ [KEY_KP0] = "KEY_KP0",
++ [KEY_KPDOT] = "KEY_KPDOT",
++ [KEY_ZENKAKUHANKAKU] = "KEY_ZENKAKUHANKAKU",
++ [KEY_102ND] = "KEY_102ND",
++ [KEY_F11] = "KEY_F11",
++ [KEY_F12] = "KEY_F12",
++ [KEY_RO] = "KEY_RO",
++ [KEY_KATAKANA] = "KEY_KATAKANA",
++ [KEY_HIRAGANA] = "KEY_HIRAGANA",
++ [KEY_HENKAN] = "KEY_HENKAN",
++ [KEY_KATAKANAHIRAGANA] = "KEY_KATAKANAHIRAGANA",
++ [KEY_MUHENKAN] = "KEY_MUHENKAN",
++ [KEY_KPJPCOMMA] = "KEY_KPJPCOMMA",
++ [KEY_KPENTER] = "KEY_KPENTER",
++ [KEY_RIGHTCTRL] = "KEY_RIGHTCTRL",
++ [KEY_KPSLASH] = "KEY_KPSLASH",
++ [KEY_SYSRQ] = "KEY_SYSRQ",
++ [KEY_RIGHTALT] = "KEY_RIGHTALT",
++ [KEY_LINEFEED] = "KEY_LINEFEED",
++ [KEY_HOME] = "KEY_HOME",
++ [KEY_UP] = "KEY_UP",
++ [KEY_PAGEUP] = "KEY_PAGEUP",
++ [KEY_LEFT] = "KEY_LEFT",
++ [KEY_RIGHT] = "KEY_RIGHT",
++ [KEY_END] = "KEY_END",
++ [KEY_DOWN] = "KEY_DOWN",
++ [KEY_PAGEDOWN] = "KEY_PAGEDOWN",
++ [KEY_INSERT] = "KEY_INSERT",
++ [KEY_DELETE] = "KEY_DELETE",
++ [KEY_MACRO] = "KEY_MACRO",
++ [KEY_MUTE] = "KEY_MUTE",
++ [KEY_VOLUMEDOWN] = "KEY_VOLUMEDOWN",
++ [KEY_VOLUMEUP] = "KEY_VOLUMEUP",
++ [KEY_POWER] = "KEY_POWER",
++ [KEY_KPEQUAL] = "KEY_KPEQUAL",
++ [KEY_KPPLUSMINUS] = "KEY_KPPLUSMINUS",
++ [KEY_PAUSE] = "KEY_PAUSE",
++ [KEY_SCALE] = "KEY_SCALE",
++ [KEY_KPCOMMA] = "KEY_KPCOMMA",
++ [KEY_HANGEUL] = "KEY_HANGEUL",
++ [KEY_HANJA] = "KEY_HANJA",
++ [KEY_YEN] = "KEY_YEN",
++ [KEY_LEFTMETA] = "KEY_LEFTMETA",
++ [KEY_RIGHTMETA] = "KEY_RIGHTMETA",
++ [KEY_COMPOSE] = "KEY_COMPOSE",
++ [KEY_STOP] = "KEY_STOP",
++ [KEY_AGAIN] = "KEY_AGAIN",
++ [KEY_PROPS] = "KEY_PROPS",
++ [KEY_UNDO] = "KEY_UNDO",
++ [KEY_FRONT] = "KEY_FRONT",
++ [KEY_COPY] = "KEY_COPY",
++ [KEY_OPEN] = "KEY_OPEN",
++ [KEY_PASTE] = "KEY_PASTE",
++ [KEY_FIND] = "KEY_FIND",
++ [KEY_CUT] = "KEY_CUT",
++ [KEY_HELP] = "KEY_HELP",
++ [KEY_MENU] = "KEY_MENU",
++ [KEY_CALC] = "KEY_CALC",
++ [KEY_SETUP] = "KEY_SETUP",
++ [KEY_SLEEP] = "KEY_SLEEP",
++ [KEY_WAKEUP] = "KEY_WAKEUP",
++ [KEY_FILE] = "KEY_FILE",
++ [KEY_SENDFILE] = "KEY_SENDFILE",
++ [KEY_DELETEFILE] = "KEY_DELETEFILE",
++ [KEY_XFER] = "KEY_XFER",
++ [KEY_PROG1] = "KEY_PROG1",
++ [KEY_PROG2] = "KEY_PROG2",
++ [KEY_WWW] = "KEY_WWW",
++ [KEY_MSDOS] = "KEY_MSDOS",
++ [KEY_COFFEE] = "KEY_COFFEE",
++ [KEY_ROTATE_DISPLAY] = "KEY_ROTATE_DISPLAY",
++ [KEY_CYCLEWINDOWS] = "KEY_CYCLEWINDOWS",
++ [KEY_MAIL] = "KEY_MAIL",
++ [KEY_BOOKMARKS] = "KEY_BOOKMARKS",
++ [KEY_COMPUTER] = "KEY_COMPUTER",
++ [KEY_BACK] = "KEY_BACK",
++ [KEY_FORWARD] = "KEY_FORWARD",
++ [KEY_CLOSECD] = "KEY_CLOSECD",
++ [KEY_EJECTCD] = "KEY_EJECTCD",
++ [KEY_EJECTCLOSECD] = "KEY_EJECTCLOSECD",
++ [KEY_NEXTSONG] = "KEY_NEXTSONG",
++ [KEY_PLAYPAUSE] = "KEY_PLAYPAUSE",
++ [KEY_PREVIOUSSONG] = "KEY_PREVIOUSSONG",
++ [KEY_STOPCD] = "KEY_STOPCD",
++ [KEY_RECORD] = "KEY_RECORD",
++ [KEY_REWIND] = "KEY_REWIND",
++ [KEY_PHONE] = "KEY_PHONE",
++ [KEY_ISO] = "KEY_ISO",
++ [KEY_CONFIG] = "KEY_CONFIG",
++ [KEY_HOMEPAGE] = "KEY_HOMEPAGE",
++ [KEY_REFRESH] = "KEY_REFRESH",
++ [KEY_EXIT] = "KEY_EXIT",
++ [KEY_MOVE] = "KEY_MOVE",
++ [KEY_EDIT] = "KEY_EDIT",
++ [KEY_SCROLLUP] = "KEY_SCROLLUP",
++ [KEY_SCROLLDOWN] = "KEY_SCROLLDOWN",
++ [KEY_KPLEFTPAREN] = "KEY_KPLEFTPAREN",
++ [KEY_KPRIGHTPAREN] = "KEY_KPRIGHTPAREN",
++ [KEY_NEW] = "KEY_NEW",
++ [KEY_REDO] = "KEY_REDO",
++ [KEY_F13] = "KEY_F13",
++ [KEY_F14] = "KEY_F14",
++ [KEY_F15] = "KEY_F15",
++ [KEY_F16] = "KEY_F16",
++ [KEY_F17] = "KEY_F17",
++ [KEY_F18] = "KEY_F18",
++ [KEY_F19] = "KEY_F19",
++ [KEY_F20] = "KEY_F20",
++ [KEY_F21] = "KEY_F21",
++ [KEY_F22] = "KEY_F22",
++ [KEY_F23] = "KEY_F23",
++ [KEY_F24] = "KEY_F24",
++ [KEY_PLAYCD] = "KEY_PLAYCD",
++ [KEY_PAUSECD] = "KEY_PAUSECD",
++ [KEY_PROG3] = "KEY_PROG3",
++ [KEY_PROG4] = "KEY_PROG4",
++ [KEY_DASHBOARD] = "KEY_DASHBOARD",
++ [KEY_SUSPEND] = "KEY_SUSPEND",
++ [KEY_CLOSE] = "KEY_CLOSE",
++ [KEY_PLAY] = "KEY_PLAY",
++ [KEY_FASTFORWARD] = "KEY_FASTFORWARD",
++ [KEY_BASSBOOST] = "KEY_BASSBOOST",
++ [KEY_PRINT] = "KEY_PRINT",
++ [KEY_HP] = "KEY_HP",
++ [KEY_CAMERA] = "KEY_CAMERA",
++ [KEY_SOUND] = "KEY_SOUND",
++ [KEY_QUESTION] = "KEY_QUESTION",
++ [KEY_EMAIL] = "KEY_EMAIL",
++ [KEY_CHAT] = "KEY_CHAT",
++ [KEY_SEARCH] = "KEY_SEARCH",
++ [KEY_CONNECT] = "KEY_CONNECT",
++ [KEY_FINANCE] = "KEY_FINANCE",
++ [KEY_SPORT] = "KEY_SPORT",
++ [KEY_SHOP] = "KEY_SHOP",
++ [KEY_ALTERASE] = "KEY_ALTERASE",
++ [KEY_CANCEL] = "KEY_CANCEL",
++ [KEY_BRIGHTNESSDOWN] = "KEY_BRIGHTNESSDOWN",
++ [KEY_BRIGHTNESSUP] = "KEY_BRIGHTNESSUP",
++ [KEY_MEDIA] = "KEY_MEDIA",
++ [KEY_SWITCHVIDEOMODE] = "KEY_SWITCHVIDEOMODE",
++ [KEY_KBDILLUMTOGGLE] = "KEY_KBDILLUMTOGGLE",
++ [KEY_KBDILLUMDOWN] = "KEY_KBDILLUMDOWN",
++ [KEY_KBDILLUMUP] = "KEY_KBDILLUMUP",
++ [KEY_SEND] = "KEY_SEND",
++ [KEY_REPLY] = "KEY_REPLY",
++ [KEY_FORWARDMAIL] = "KEY_FORWARDMAIL",
++ [KEY_SAVE] = "KEY_SAVE",
++ [KEY_DOCUMENTS] = "KEY_DOCUMENTS",
++ [KEY_BATTERY] = "KEY_BATTERY",
++ [KEY_BLUETOOTH] = "KEY_BLUETOOTH",
++ [KEY_WLAN] = "KEY_WLAN",
++ [KEY_UWB] = "KEY_UWB",
++ [KEY_UNKNOWN] = "KEY_UNKNOWN",
++ [KEY_VIDEO_NEXT] = "KEY_VIDEO_NEXT",
++ [KEY_VIDEO_PREV] = "KEY_VIDEO_PREV",
++ [KEY_BRIGHTNESS_CYCLE] = "KEY_BRIGHTNESS_CYCLE",
++ [KEY_BRIGHTNESS_AUTO] = "KEY_BRIGHTNESS_AUTO",
++ [KEY_DISPLAY_OFF] = "KEY_DISPLAY_OFF",
++ [KEY_WWAN] = "KEY_WWAN",
++ [KEY_RFKILL] = "KEY_RFKILL",
++ [KEY_MICMUTE] = "KEY_MICMUTE",
++ [KEY_OK] = "KEY_OK",
++ [KEY_SELECT] = "KEY_SELECT",
++ [KEY_GOTO] = "KEY_GOTO",
++ [KEY_CLEAR] = "KEY_CLEAR",
++ [KEY_POWER2] = "KEY_POWER2",
++ [KEY_OPTION] = "KEY_OPTION",
++ [KEY_INFO] = "KEY_INFO",
++ [KEY_TIME] = "KEY_TIME",
++ [KEY_VENDOR] = "KEY_VENDOR",
++ [KEY_ARCHIVE] = "KEY_ARCHIVE",
++ [KEY_PROGRAM] = "KEY_PROGRAM",
++ [KEY_CHANNEL] = "KEY_CHANNEL",
++ [KEY_FAVORITES] = "KEY_FAVORITES",
++ [KEY_EPG] = "KEY_EPG",
++ [KEY_PVR] = "KEY_PVR",
++ [KEY_MHP] = "KEY_MHP",
++ [KEY_LANGUAGE] = "KEY_LANGUAGE",
++ [KEY_TITLE] = "KEY_TITLE",
++ [KEY_SUBTITLE] = "KEY_SUBTITLE",
++ [KEY_ANGLE] = "KEY_ANGLE",
++ [KEY_ZOOM] = "KEY_ZOOM",
++ [KEY_MODE] = "KEY_MODE",
++ [KEY_KEYBOARD] = "KEY_KEYBOARD",
++ [KEY_SCREEN] = "KEY_SCREEN",
++ [KEY_PC] = "KEY_PC",
++ [KEY_TV] = "KEY_TV",
++ [KEY_TV2] = "KEY_TV2",
++ [KEY_VCR] = "KEY_VCR",
++ [KEY_VCR2] = "KEY_VCR2",
++ [KEY_SAT] = "KEY_SAT",
++ [KEY_SAT2] = "KEY_SAT2",
++ [KEY_CD] = "KEY_CD",
++ [KEY_TAPE] = "KEY_TAPE",
++ [KEY_RADIO] = "KEY_RADIO",
++ [KEY_TUNER] = "KEY_TUNER",
++ [KEY_PLAYER] = "KEY_PLAYER",
++ [KEY_TEXT] = "KEY_TEXT",
++ [KEY_DVD] = "KEY_DVD",
++ [KEY_AUX] = "KEY_AUX",
++ [KEY_MP3] = "KEY_MP3",
++ [KEY_AUDIO] = "KEY_AUDIO",
++ [KEY_VIDEO] = "KEY_VIDEO",
++ [KEY_DIRECTORY] = "KEY_DIRECTORY",
++ [KEY_LIST] = "KEY_LIST",
++ [KEY_MEMO] = "KEY_MEMO",
++ [KEY_CALENDAR] = "KEY_CALENDAR",
++ [KEY_RED] = "KEY_RED",
++ [KEY_GREEN] = "KEY_GREEN",
++ [KEY_YELLOW] = "KEY_YELLOW",
++ [KEY_BLUE] = "KEY_BLUE",
++ [KEY_CHANNELUP] = "KEY_CHANNELUP",
++ [KEY_CHANNELDOWN] = "KEY_CHANNELDOWN",
++ [KEY_FIRST] = "KEY_FIRST",
++ [KEY_LAST] = "KEY_LAST",
++ [KEY_AB] = "KEY_AB",
++ [KEY_NEXT] = "KEY_NEXT",
++ [KEY_RESTART] = "KEY_RESTART",
++ [KEY_SLOW] = "KEY_SLOW",
++ [KEY_SHUFFLE] = "KEY_SHUFFLE",
++ [KEY_BREAK] = "KEY_BREAK",
++ [KEY_PREVIOUS] = "KEY_PREVIOUS",
++ [KEY_DIGITS] = "KEY_DIGITS",
++ [KEY_TEEN] = "KEY_TEEN",
++ [KEY_TWEN] = "KEY_TWEN",
++ [KEY_VIDEOPHONE] = "KEY_VIDEOPHONE",
++ [KEY_GAMES] = "KEY_GAMES",
++ [KEY_ZOOMIN] = "KEY_ZOOMIN",
++ [KEY_ZOOMOUT] = "KEY_ZOOMOUT",
++ [KEY_ZOOMRESET] = "KEY_ZOOMRESET",
++ [KEY_WORDPROCESSOR] = "KEY_WORDPROCESSOR",
++ [KEY_EDITOR] = "KEY_EDITOR",
++ [KEY_SPREADSHEET] = "KEY_SPREADSHEET",
++ [KEY_GRAPHICSEDITOR] = "KEY_GRAPHICSEDITOR",
++ [KEY_PRESENTATION] = "KEY_PRESENTATION",
++ [KEY_DATABASE] = "KEY_DATABASE",
++ [KEY_NEWS] = "KEY_NEWS",
++ [KEY_VOICEMAIL] = "KEY_VOICEMAIL",
++ [KEY_ADDRESSBOOK] = "KEY_ADDRESSBOOK",
++ [KEY_MESSENGER] = "KEY_MESSENGER",
++ [KEY_DISPLAYTOGGLE] = "KEY_DISPLAYTOGGLE",
++ [KEY_SPELLCHECK] = "KEY_SPELLCHECK",
++ [KEY_LOGOFF] = "KEY_LOGOFF",
++ [KEY_DOLLAR] = "KEY_DOLLAR",
++ [KEY_EURO] = "KEY_EURO",
++ [KEY_FRAMEBACK] = "KEY_FRAMEBACK",
++ [KEY_FRAMEFORWARD] = "KEY_FRAMEFORWARD",
++ [KEY_CONTEXT_MENU] = "KEY_CONTEXT_MENU",
++ [KEY_MEDIA_REPEAT] = "KEY_MEDIA_REPEAT",
++ [KEY_10CHANNELSUP] = "KEY_10CHANNELSUP",
++ [KEY_10CHANNELSDOWN] = "KEY_10CHANNELSDOWN",
++ [KEY_IMAGES] = "KEY_IMAGES",
++ [KEY_DEL_EOL] = "KEY_DEL_EOL",
++ [KEY_DEL_EOS] = "KEY_DEL_EOS",
++ [KEY_INS_LINE] = "KEY_INS_LINE",
++ [KEY_DEL_LINE] = "KEY_DEL_LINE",
++ [KEY_FN] = "KEY_FN",
++ [KEY_FN_ESC] = "KEY_FN_ESC",
++ [KEY_FN_F1] = "KEY_FN_F1",
++ [KEY_FN_F2] = "KEY_FN_F2",
++ [KEY_FN_F3] = "KEY_FN_F3",
++ [KEY_FN_F4] = "KEY_FN_F4",
++ [KEY_FN_F5] = "KEY_FN_F5",
++ [KEY_FN_F6] = "KEY_FN_F6",
++ [KEY_FN_F7] = "KEY_FN_F7",
++ [KEY_FN_F8] = "KEY_FN_F8",
++ [KEY_FN_F9] = "KEY_FN_F9",
++ [KEY_FN_F10] = "KEY_FN_F10",
++ [KEY_FN_F11] = "KEY_FN_F11",
++ [KEY_FN_F12] = "KEY_FN_F12",
++ [KEY_FN_1] = "KEY_FN_1",
++ [KEY_FN_2] = "KEY_FN_2",
++ [KEY_FN_D] = "KEY_FN_D",
++ [KEY_FN_E] = "KEY_FN_E",
++ [KEY_FN_F] = "KEY_FN_F",
++ [KEY_FN_S] = "KEY_FN_S",
++ [KEY_FN_B] = "KEY_FN_B",
++ [KEY_BRL_DOT1] = "KEY_BRL_DOT1",
++ [KEY_BRL_DOT2] = "KEY_BRL_DOT2",
++ [KEY_BRL_DOT3] = "KEY_BRL_DOT3",
++ [KEY_BRL_DOT4] = "KEY_BRL_DOT4",
++ [KEY_BRL_DOT5] = "KEY_BRL_DOT5",
++ [KEY_BRL_DOT6] = "KEY_BRL_DOT6",
++ [KEY_BRL_DOT7] = "KEY_BRL_DOT7",
++ [KEY_BRL_DOT8] = "KEY_BRL_DOT8",
++ [KEY_BRL_DOT9] = "KEY_BRL_DOT9",
++ [KEY_BRL_DOT10] = "KEY_BRL_DOT10",
++ [KEY_NUMERIC_0] = "KEY_NUMERIC_0",
++ [KEY_NUMERIC_1] = "KEY_NUMERIC_1",
++ [KEY_NUMERIC_2] = "KEY_NUMERIC_2",
++ [KEY_NUMERIC_3] = "KEY_NUMERIC_3",
++ [KEY_NUMERIC_4] = "KEY_NUMERIC_4",
++ [KEY_NUMERIC_5] = "KEY_NUMERIC_5",
++ [KEY_NUMERIC_6] = "KEY_NUMERIC_6",
++ [KEY_NUMERIC_7] = "KEY_NUMERIC_7",
++ [KEY_NUMERIC_8] = "KEY_NUMERIC_8",
++ [KEY_NUMERIC_9] = "KEY_NUMERIC_9",
++ [KEY_NUMERIC_STAR] = "KEY_NUMERIC_STAR",
++ [KEY_NUMERIC_POUND] = "KEY_NUMERIC_POUND",
++ [KEY_NUMERIC_A] = "KEY_NUMERIC_A",
++ [KEY_NUMERIC_B] = "KEY_NUMERIC_B",
++ [KEY_NUMERIC_C] = "KEY_NUMERIC_C",
++ [KEY_NUMERIC_D] = "KEY_NUMERIC_D",
++ [KEY_CAMERA_FOCUS] = "KEY_CAMERA_FOCUS",
++ [KEY_WPS_BUTTON] = "KEY_WPS_BUTTON",
++ [KEY_TOUCHPAD_TOGGLE] = "KEY_TOUCHPAD_TOGGLE",
++ [KEY_TOUCHPAD_ON] = "KEY_TOUCHPAD_ON",
++ [KEY_TOUCHPAD_OFF] = "KEY_TOUCHPAD_OFF",
++ [KEY_CAMERA_ZOOMIN] = "KEY_CAMERA_ZOOMIN",
++ [KEY_CAMERA_ZOOMOUT] = "KEY_CAMERA_ZOOMOUT",
++ [KEY_CAMERA_UP] = "KEY_CAMERA_UP",
++ [KEY_CAMERA_DOWN] = "KEY_CAMERA_DOWN",
++ [KEY_CAMERA_LEFT] = "KEY_CAMERA_LEFT",
++ [KEY_CAMERA_RIGHT] = "KEY_CAMERA_RIGHT",
++ [KEY_ATTENDANT_ON] = "KEY_ATTENDANT_ON",
++ [KEY_ATTENDANT_OFF] = "KEY_ATTENDANT_OFF",
++ [KEY_ATTENDANT_TOGGLE] = "KEY_ATTENDANT_TOGGLE",
++ [KEY_LIGHTS_TOGGLE] = "KEY_LIGHTS_TOGGLE",
++ [KEY_ALS_TOGGLE] = "KEY_ALS_TOGGLE",
++ [KEY_BUTTONCONFIG] = "KEY_BUTTONCONFIG",
++ [KEY_TASKMANAGER] = "KEY_TASKMANAGER",
++ [KEY_JOURNAL] = "KEY_JOURNAL",
++ [KEY_CONTROLPANEL] = "KEY_CONTROLPANEL",
++ [KEY_APPSELECT] = "KEY_APPSELECT",
++ [KEY_SCREENSAVER] = "KEY_SCREENSAVER",
++ [KEY_VOICECOMMAND] = "KEY_VOICECOMMAND",
++ [KEY_BRIGHTNESS_MIN] = "KEY_BRIGHTNESS_MIN",
++ [KEY_BRIGHTNESS_MAX] = "KEY_BRIGHTNESS_MAX",
++ [KEY_KBDINPUTASSIST_PREV] = "KEY_KBDINPUTASSIST_PREV",
++ [KEY_KBDINPUTASSIST_NEXT] = "KEY_KBDINPUTASSIST_NEXT",
++ [KEY_KBDINPUTASSIST_PREVGROUP] = "KEY_KBDINPUTASSIST_PREVGROUP",
++ [KEY_KBDINPUTASSIST_NEXTGROUP] = "KEY_KBDINPUTASSIST_NEXTGROUP",
++ [KEY_KBDINPUTASSIST_ACCEPT] = "KEY_KBDINPUTASSIST_ACCEPT",
++ [KEY_KBDINPUTASSIST_CANCEL] = "KEY_KBDINPUTASSIST_CANCEL",
++ [KEY_MAX] = "KEY_MAX",
++ [BTN_0] = "BTN_0",
++ [BTN_1] = "BTN_1",
++ [BTN_2] = "BTN_2",
++ [BTN_3] = "BTN_3",
++ [BTN_4] = "BTN_4",
++ [BTN_5] = "BTN_5",
++ [BTN_6] = "BTN_6",
++ [BTN_7] = "BTN_7",
++ [BTN_8] = "BTN_8",
++ [BTN_9] = "BTN_9",
++ [BTN_LEFT] = "BTN_LEFT",
++ [BTN_RIGHT] = "BTN_RIGHT",
++ [BTN_MIDDLE] = "BTN_MIDDLE",
++ [BTN_SIDE] = "BTN_SIDE",
++ [BTN_EXTRA] = "BTN_EXTRA",
++ [BTN_FORWARD] = "BTN_FORWARD",
++ [BTN_BACK] = "BTN_BACK",
++ [BTN_TASK] = "BTN_TASK",
++ [BTN_TRIGGER] = "BTN_TRIGGER",
++ [BTN_THUMB] = "BTN_THUMB",
++ [BTN_THUMB2] = "BTN_THUMB2",
++ [BTN_TOP] = "BTN_TOP",
++ [BTN_TOP2] = "BTN_TOP2",
++ [BTN_PINKIE] = "BTN_PINKIE",
++ [BTN_BASE] = "BTN_BASE",
++ [BTN_BASE2] = "BTN_BASE2",
++ [BTN_BASE3] = "BTN_BASE3",
++ [BTN_BASE4] = "BTN_BASE4",
++ [BTN_BASE5] = "BTN_BASE5",
++ [BTN_BASE6] = "BTN_BASE6",
++ [BTN_DEAD] = "BTN_DEAD",
++ [BTN_SOUTH] = "BTN_SOUTH",
++ [BTN_EAST] = "BTN_EAST",
++ [BTN_C] = "BTN_C",
++ [BTN_NORTH] = "BTN_NORTH",
++ [BTN_WEST] = "BTN_WEST",
++ [BTN_Z] = "BTN_Z",
++ [BTN_TL] = "BTN_TL",
++ [BTN_TR] = "BTN_TR",
++ [BTN_TL2] = "BTN_TL2",
++ [BTN_TR2] = "BTN_TR2",
++ [BTN_SELECT] = "BTN_SELECT",
++ [BTN_START] = "BTN_START",
++ [BTN_MODE] = "BTN_MODE",
++ [BTN_THUMBL] = "BTN_THUMBL",
++ [BTN_THUMBR] = "BTN_THUMBR",
++ [BTN_TOOL_PEN] = "BTN_TOOL_PEN",
++ [BTN_TOOL_RUBBER] = "BTN_TOOL_RUBBER",
++ [BTN_TOOL_BRUSH] = "BTN_TOOL_BRUSH",
++ [BTN_TOOL_PENCIL] = "BTN_TOOL_PENCIL",
++ [BTN_TOOL_AIRBRUSH] = "BTN_TOOL_AIRBRUSH",
++ [BTN_TOOL_FINGER] = "BTN_TOOL_FINGER",
++ [BTN_TOOL_MOUSE] = "BTN_TOOL_MOUSE",
++ [BTN_TOOL_LENS] = "BTN_TOOL_LENS",
++ [BTN_TOOL_QUINTTAP] = "BTN_TOOL_QUINTTAP",
++ [BTN_TOUCH] = "BTN_TOUCH",
++ [BTN_STYLUS] = "BTN_STYLUS",
++ [BTN_STYLUS2] = "BTN_STYLUS2",
++ [BTN_TOOL_DOUBLETAP] = "BTN_TOOL_DOUBLETAP",
++ [BTN_TOOL_TRIPLETAP] = "BTN_TOOL_TRIPLETAP",
++ [BTN_TOOL_QUADTAP] = "BTN_TOOL_QUADTAP",
++ [BTN_GEAR_DOWN] = "BTN_GEAR_DOWN",
++ [BTN_GEAR_UP] = "BTN_GEAR_UP",
++ [BTN_DPAD_LEFT] = "BTN_DPAD_LEFT",
++ [BTN_TRIGGER_HAPPY2] = "BTN_TRIGGER_HAPPY2",
++ [BTN_TRIGGER_HAPPY1] = "BTN_TRIGGER_HAPPY1",
++ [BTN_DPAD_UP] = "BTN_DPAD_UP",
++ [BTN_TRIGGER_HAPPY3] = "BTN_TRIGGER_HAPPY3",
++ [BTN_TRIGGER_HAPPY4] = "BTN_TRIGGER_HAPPY4",
++ [BTN_TRIGGER_HAPPY5] = "BTN_TRIGGER_HAPPY5",
++ [BTN_TRIGGER_HAPPY6] = "BTN_TRIGGER_HAPPY6",
++ [BTN_TRIGGER_HAPPY7] = "BTN_TRIGGER_HAPPY7",
++ [BTN_TRIGGER_HAPPY8] = "BTN_TRIGGER_HAPPY8",
++ [BTN_TRIGGER_HAPPY9] = "BTN_TRIGGER_HAPPY9",
++ [BTN_TRIGGER_HAPPY10] = "BTN_TRIGGER_HAPPY10",
++ [BTN_TRIGGER_HAPPY11] = "BTN_TRIGGER_HAPPY11",
++ [BTN_TRIGGER_HAPPY12] = "BTN_TRIGGER_HAPPY12",
++ [BTN_TRIGGER_HAPPY13] = "BTN_TRIGGER_HAPPY13",
++ [BTN_TRIGGER_HAPPY14] = "BTN_TRIGGER_HAPPY14",
++ [BTN_TRIGGER_HAPPY15] = "BTN_TRIGGER_HAPPY15",
++ [BTN_TRIGGER_HAPPY16] = "BTN_TRIGGER_HAPPY16",
++ [BTN_TRIGGER_HAPPY17] = "BTN_TRIGGER_HAPPY17",
++ [BTN_TRIGGER_HAPPY18] = "BTN_TRIGGER_HAPPY18",
++ [BTN_TRIGGER_HAPPY19] = "BTN_TRIGGER_HAPPY19",
++ [BTN_DPAD_RIGHT] = "BTN_DPAD_RIGHT",
++ [BTN_TRIGGER_HAPPY21] = "BTN_TRIGGER_HAPPY21",
++ [BTN_TRIGGER_HAPPY22] = "BTN_TRIGGER_HAPPY22",
++ [BTN_TRIGGER_HAPPY23] = "BTN_TRIGGER_HAPPY23",
++ [BTN_TRIGGER_HAPPY24] = "BTN_TRIGGER_HAPPY24",
++ [BTN_TRIGGER_HAPPY25] = "BTN_TRIGGER_HAPPY25",
++ [BTN_TRIGGER_HAPPY26] = "BTN_TRIGGER_HAPPY26",
++ [BTN_TRIGGER_HAPPY27] = "BTN_TRIGGER_HAPPY27",
++ [BTN_TRIGGER_HAPPY28] = "BTN_TRIGGER_HAPPY28",
++ [BTN_TRIGGER_HAPPY29] = "BTN_TRIGGER_HAPPY29",
++ [BTN_TRIGGER_HAPPY30] = "BTN_TRIGGER_HAPPY30",
++ [BTN_TRIGGER_HAPPY31] = "BTN_TRIGGER_HAPPY31",
++ [BTN_TRIGGER_HAPPY32] = "BTN_TRIGGER_HAPPY32",
++ [BTN_TRIGGER_HAPPY33] = "BTN_TRIGGER_HAPPY33",
++ [BTN_TRIGGER_HAPPY34] = "BTN_TRIGGER_HAPPY34",
++ [BTN_TRIGGER_HAPPY35] = "BTN_TRIGGER_HAPPY35",
++ [BTN_TRIGGER_HAPPY36] = "BTN_TRIGGER_HAPPY36",
++ [BTN_TRIGGER_HAPPY37] = "BTN_TRIGGER_HAPPY37",
++ [BTN_TRIGGER_HAPPY38] = "BTN_TRIGGER_HAPPY38",
++ [BTN_TRIGGER_HAPPY39] = "BTN_TRIGGER_HAPPY39",
++ [BTN_TRIGGER_HAPPY40] = "BTN_TRIGGER_HAPPY40",
++ [BTN_TRIGGER_HAPPY20] = "BTN_TRIGGER_HAPPY20",
++ [BTN_DPAD_DOWN] = "BTN_DPAD_DOWN",
++};
++
++static const char * const led_map[LED_MAX + 1] = {
++ [LED_NUML] = "LED_NUML",
++ [LED_CAPSL] = "LED_CAPSL",
++ [LED_SCROLLL] = "LED_SCROLLL",
++ [LED_COMPOSE] = "LED_COMPOSE",
++ [LED_KANA] = "LED_KANA",
++ [LED_SLEEP] = "LED_SLEEP",
++ [LED_SUSPEND] = "LED_SUSPEND",
++ [LED_MUTE] = "LED_MUTE",
++ [LED_MISC] = "LED_MISC",
++ [LED_MAIL] = "LED_MAIL",
++ [LED_CHARGING] = "LED_CHARGING",
++ [LED_MAX] = "LED_MAX",
++};
++
++static const char * const snd_map[SND_MAX + 1] = {
++ [SND_CLICK] = "SND_CLICK",
++ [SND_BELL] = "SND_BELL",
++ [SND_TONE] = "SND_TONE",
++ [SND_MAX] = "SND_MAX",
++};
++
++static const char * const msc_map[MSC_MAX + 1] = {
++ [MSC_SERIAL] = "MSC_SERIAL",
++ [MSC_PULSELED] = "MSC_PULSELED",
++ [MSC_GESTURE] = "MSC_GESTURE",
++ [MSC_RAW] = "MSC_RAW",
++ [MSC_SCAN] = "MSC_SCAN",
++ [MSC_TIMESTAMP] = "MSC_TIMESTAMP",
++ [MSC_MAX] = "MSC_MAX",
++};
++
++static const char * const sw_map[SW_MAX + 1] = {
++ [SW_LID] = "SW_LID",
++ [SW_TABLET_MODE] = "SW_TABLET_MODE",
++ [SW_HEADPHONE_INSERT] = "SW_HEADPHONE_INSERT",
++ [SW_RFKILL_ALL] = "SW_RFKILL_ALL",
++ [SW_MICROPHONE_INSERT] = "SW_MICROPHONE_INSERT",
++ [SW_DOCK] = "SW_DOCK",
++ [SW_LINEOUT_INSERT] = "SW_LINEOUT_INSERT",
++ [SW_JACK_PHYSICAL_INSERT] = "SW_JACK_PHYSICAL_INSERT",
++ [SW_VIDEOOUT_INSERT] = "SW_VIDEOOUT_INSERT",
++ [SW_CAMERA_LENS_COVER] = "SW_CAMERA_LENS_COVER",
++ [SW_KEYPAD_SLIDE] = "SW_KEYPAD_SLIDE",
++ [SW_FRONT_PROXIMITY] = "SW_FRONT_PROXIMITY",
++ [SW_ROTATE_LOCK] = "SW_ROTATE_LOCK",
++ [SW_LINEIN_INSERT] = "SW_LINEIN_INSERT",
++ [SW_MUTE_DEVICE] = "SW_MUTE_DEVICE",
++ [SW_MAX] = "SW_MAX",
++};
++
++static const char * const ff_map[FF_MAX + 1] = {
++ [FF_STATUS_STOPPED] = "FF_STATUS_STOPPED",
++ [FF_STATUS_MAX] = "FF_STATUS_MAX",
++ [FF_AUTOCENTER] = "FF_AUTOCENTER",
++ [FF_GAIN] = "FF_GAIN",
++ [FF_RUMBLE] = "FF_RUMBLE",
++ [FF_PERIODIC] = "FF_PERIODIC",
++ [FF_CONSTANT] = "FF_CONSTANT",
++ [FF_SPRING] = "FF_SPRING",
++ [FF_FRICTION] = "FF_FRICTION",
++ [FF_DAMPER] = "FF_DAMPER",
++ [FF_INERTIA] = "FF_INERTIA",
++ [FF_RAMP] = "FF_RAMP",
++ [FF_SQUARE] = "FF_SQUARE",
++ [FF_TRIANGLE] = "FF_TRIANGLE",
++ [FF_SINE] = "FF_SINE",
++ [FF_SAW_UP] = "FF_SAW_UP",
++ [FF_SAW_DOWN] = "FF_SAW_DOWN",
++ [FF_CUSTOM] = "FF_CUSTOM",
++ [FF_MAX] = "FF_MAX",
++};
++
++static const char * const syn_map[SYN_MAX + 1] = {
++ [SYN_REPORT] = "SYN_REPORT",
++ [SYN_CONFIG] = "SYN_CONFIG",
++ [SYN_MT_REPORT] = "SYN_MT_REPORT",
++ [SYN_DROPPED] = "SYN_DROPPED",
++ [SYN_MAX] = "SYN_MAX",
++};
++
++static const char * const rep_map[REP_MAX + 1] = {
++ [REP_DELAY] = "REP_DELAY",
++ [REP_MAX] = "REP_MAX",
++};
++
++static const char * const input_prop_map[INPUT_PROP_MAX + 1] = {
++ [INPUT_PROP_POINTER] = "INPUT_PROP_POINTER",
++ [INPUT_PROP_DIRECT] = "INPUT_PROP_DIRECT",
++ [INPUT_PROP_BUTTONPAD] = "INPUT_PROP_BUTTONPAD",
++ [INPUT_PROP_SEMI_MT] = "INPUT_PROP_SEMI_MT",
++ [INPUT_PROP_TOPBUTTONPAD] = "INPUT_PROP_TOPBUTTONPAD",
++ [INPUT_PROP_POINTING_STICK] = "INPUT_PROP_POINTING_STICK",
++ [INPUT_PROP_ACCELEROMETER] = "INPUT_PROP_ACCELEROMETER",
++ [INPUT_PROP_MAX] = "INPUT_PROP_MAX",
++};
++
++static const char * const * const event_type_map[EV_MAX + 1] = {
++ [EV_REL] = rel_map,
++ [EV_ABS] = abs_map,
++ [EV_KEY] = key_map,
++ [EV_LED] = led_map,
++ [EV_SND] = snd_map,
++ [EV_MSC] = msc_map,
++ [EV_SW] = sw_map,
++ [EV_FF] = ff_map,
++ [EV_SYN] = syn_map,
++ [EV_REP] = rep_map,
++};
++
++#if __clang__
++#pragma clang diagnostic push
++#pragma clang diagnostic ignored "-Winitializer-overrides"
++#else
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Woverride-init"
++#endif
++static const int ev_max[EV_MAX + 1] = {
++ [0 ... EV_MAX] = -1,
++ [EV_REL] = REL_MAX,
++ [EV_ABS] = ABS_MAX,
++ [EV_KEY] = KEY_MAX,
++ [EV_LED] = LED_MAX,
++ [EV_SND] = SND_MAX,
++ [EV_MSC] = MSC_MAX,
++ [EV_SW] = SW_MAX,
++ [EV_FF] = FF_MAX,
++ [EV_SYN] = SYN_MAX,
++ [EV_REP] = REP_MAX,
++};
++#if __clang__
++#pragma clang diagnostic pop /* "-Winitializer-overrides" */
++#else
++#pragma GCC diagnostic pop /* "-Woverride-init" */
++#endif
++
++struct name_entry {
++ const char *name;
++ unsigned int value;
++};
++
++static const struct name_entry ev_names[] = {
++ { .name = "EV_ABS", .value = EV_ABS },
++ { .name = "EV_FF", .value = EV_FF },
++ { .name = "EV_FF_STATUS", .value = EV_FF_STATUS },
++ { .name = "EV_KEY", .value = EV_KEY },
++ { .name = "EV_LED", .value = EV_LED },
++ { .name = "EV_MAX", .value = EV_MAX },
++ { .name = "EV_MSC", .value = EV_MSC },
++ { .name = "EV_PWR", .value = EV_PWR },
++ { .name = "EV_REL", .value = EV_REL },
++ { .name = "EV_REP", .value = EV_REP },
++ { .name = "EV_SND", .value = EV_SND },
++ { .name = "EV_SW", .value = EV_SW },
++ { .name = "EV_SYN", .value = EV_SYN },
++};
++
++static const struct name_entry code_names[] = {
++ { .name = "ABS_BRAKE", .value = ABS_BRAKE },
++ { .name = "ABS_DISTANCE", .value = ABS_DISTANCE },
++ { .name = "ABS_GAS", .value = ABS_GAS },
++ { .name = "ABS_HAT0X", .value = ABS_HAT0X },
++ { .name = "ABS_HAT0Y", .value = ABS_HAT0Y },
++ { .name = "ABS_HAT1X", .value = ABS_HAT1X },
++ { .name = "ABS_HAT1Y", .value = ABS_HAT1Y },
++ { .name = "ABS_HAT2X", .value = ABS_HAT2X },
++ { .name = "ABS_HAT2Y", .value = ABS_HAT2Y },
++ { .name = "ABS_HAT3X", .value = ABS_HAT3X },
++ { .name = "ABS_HAT3Y", .value = ABS_HAT3Y },
++ { .name = "ABS_MAX", .value = ABS_MAX },
++ { .name = "ABS_MISC", .value = ABS_MISC },
++ { .name = "ABS_MT_BLOB_ID", .value = ABS_MT_BLOB_ID },
++ { .name = "ABS_MT_DISTANCE", .value = ABS_MT_DISTANCE },
++ { .name = "ABS_MT_ORIENTATION", .value = ABS_MT_ORIENTATION },
++ { .name = "ABS_MT_POSITION_X", .value = ABS_MT_POSITION_X },
++ { .name = "ABS_MT_POSITION_Y", .value = ABS_MT_POSITION_Y },
++ { .name = "ABS_MT_PRESSURE", .value = ABS_MT_PRESSURE },
++ { .name = "ABS_MT_SLOT", .value = ABS_MT_SLOT },
++ { .name = "ABS_MT_TOOL_TYPE", .value = ABS_MT_TOOL_TYPE },
++ { .name = "ABS_MT_TOOL_X", .value = ABS_MT_TOOL_X },
++ { .name = "ABS_MT_TOOL_Y", .value = ABS_MT_TOOL_Y },
++ { .name = "ABS_MT_TOUCH_MAJOR", .value = ABS_MT_TOUCH_MAJOR },
++ { .name = "ABS_MT_TOUCH_MINOR", .value = ABS_MT_TOUCH_MINOR },
++ { .name = "ABS_MT_TRACKING_ID", .value = ABS_MT_TRACKING_ID },
++ { .name = "ABS_MT_WIDTH_MAJOR", .value = ABS_MT_WIDTH_MAJOR },
++ { .name = "ABS_MT_WIDTH_MINOR", .value = ABS_MT_WIDTH_MINOR },
++ { .name = "ABS_PRESSURE", .value = ABS_PRESSURE },
++ { .name = "ABS_RUDDER", .value = ABS_RUDDER },
++ { .name = "ABS_RX", .value = ABS_RX },
++ { .name = "ABS_RY", .value = ABS_RY },
++ { .name = "ABS_RZ", .value = ABS_RZ },
++ { .name = "ABS_THROTTLE", .value = ABS_THROTTLE },
++ { .name = "ABS_TILT_X", .value = ABS_TILT_X },
++ { .name = "ABS_TILT_Y", .value = ABS_TILT_Y },
++ { .name = "ABS_TOOL_WIDTH", .value = ABS_TOOL_WIDTH },
++ { .name = "ABS_VOLUME", .value = ABS_VOLUME },
++ { .name = "ABS_WHEEL", .value = ABS_WHEEL },
++ { .name = "ABS_X", .value = ABS_X },
++ { .name = "ABS_Y", .value = ABS_Y },
++ { .name = "ABS_Z", .value = ABS_Z },
++ { .name = "BTN_0", .value = BTN_0 },
++ { .name = "BTN_1", .value = BTN_1 },
++ { .name = "BTN_2", .value = BTN_2 },
++ { .name = "BTN_3", .value = BTN_3 },
++ { .name = "BTN_4", .value = BTN_4 },
++ { .name = "BTN_5", .value = BTN_5 },
++ { .name = "BTN_6", .value = BTN_6 },
++ { .name = "BTN_7", .value = BTN_7 },
++ { .name = "BTN_8", .value = BTN_8 },
++ { .name = "BTN_9", .value = BTN_9 },
++ { .name = "BTN_A", .value = BTN_A },
++ { .name = "BTN_B", .value = BTN_B },
++ { .name = "BTN_BACK", .value = BTN_BACK },
++ { .name = "BTN_BASE", .value = BTN_BASE },
++ { .name = "BTN_BASE2", .value = BTN_BASE2 },
++ { .name = "BTN_BASE3", .value = BTN_BASE3 },
++ { .name = "BTN_BASE4", .value = BTN_BASE4 },
++ { .name = "BTN_BASE5", .value = BTN_BASE5 },
++ { .name = "BTN_BASE6", .value = BTN_BASE6 },
++ { .name = "BTN_C", .value = BTN_C },
++ { .name = "BTN_DEAD", .value = BTN_DEAD },
++ { .name = "BTN_DPAD_DOWN", .value = BTN_DPAD_DOWN },
++ { .name = "BTN_DPAD_LEFT", .value = BTN_DPAD_LEFT },
++ { .name = "BTN_DPAD_RIGHT", .value = BTN_DPAD_RIGHT },
++ { .name = "BTN_DPAD_UP", .value = BTN_DPAD_UP },
++ { .name = "BTN_EAST", .value = BTN_EAST },
++ { .name = "BTN_EXTRA", .value = BTN_EXTRA },
++ { .name = "BTN_FORWARD", .value = BTN_FORWARD },
++ { .name = "BTN_GEAR_DOWN", .value = BTN_GEAR_DOWN },
++ { .name = "BTN_GEAR_UP", .value = BTN_GEAR_UP },
++ { .name = "BTN_LEFT", .value = BTN_LEFT },
++ { .name = "BTN_MIDDLE", .value = BTN_MIDDLE },
++ { .name = "BTN_MODE", .value = BTN_MODE },
++ { .name = "BTN_NORTH", .value = BTN_NORTH },
++ { .name = "BTN_PINKIE", .value = BTN_PINKIE },
++ { .name = "BTN_RIGHT", .value = BTN_RIGHT },
++ { .name = "BTN_SELECT", .value = BTN_SELECT },
++ { .name = "BTN_SIDE", .value = BTN_SIDE },
++ { .name = "BTN_SOUTH", .value = BTN_SOUTH },
++ { .name = "BTN_START", .value = BTN_START },
++ { .name = "BTN_STYLUS", .value = BTN_STYLUS },
++ { .name = "BTN_STYLUS2", .value = BTN_STYLUS2 },
++ { .name = "BTN_TASK", .value = BTN_TASK },
++ { .name = "BTN_THUMB", .value = BTN_THUMB },
++ { .name = "BTN_THUMB2", .value = BTN_THUMB2 },
++ { .name = "BTN_THUMBL", .value = BTN_THUMBL },
++ { .name = "BTN_THUMBR", .value = BTN_THUMBR },
++ { .name = "BTN_TL", .value = BTN_TL },
++ { .name = "BTN_TL2", .value = BTN_TL2 },
++ { .name = "BTN_TOOL_AIRBRUSH", .value = BTN_TOOL_AIRBRUSH },
++ { .name = "BTN_TOOL_BRUSH", .value = BTN_TOOL_BRUSH },
++ { .name = "BTN_TOOL_DOUBLETAP", .value = BTN_TOOL_DOUBLETAP },
++ { .name = "BTN_TOOL_FINGER", .value = BTN_TOOL_FINGER },
++ { .name = "BTN_TOOL_LENS", .value = BTN_TOOL_LENS },
++ { .name = "BTN_TOOL_MOUSE", .value = BTN_TOOL_MOUSE },
++ { .name = "BTN_TOOL_PEN", .value = BTN_TOOL_PEN },
++ { .name = "BTN_TOOL_PENCIL", .value = BTN_TOOL_PENCIL },
++ { .name = "BTN_TOOL_QUADTAP", .value = BTN_TOOL_QUADTAP },
++ { .name = "BTN_TOOL_QUINTTAP", .value = BTN_TOOL_QUINTTAP },
++ { .name = "BTN_TOOL_RUBBER", .value = BTN_TOOL_RUBBER },
++ { .name = "BTN_TOOL_TRIPLETAP", .value = BTN_TOOL_TRIPLETAP },
++ { .name = "BTN_TOP", .value = BTN_TOP },
++ { .name = "BTN_TOP2", .value = BTN_TOP2 },
++ { .name = "BTN_TOUCH", .value = BTN_TOUCH },
++ { .name = "BTN_TR", .value = BTN_TR },
++ { .name = "BTN_TR2", .value = BTN_TR2 },
++ { .name = "BTN_TRIGGER", .value = BTN_TRIGGER },
++ { .name = "BTN_TRIGGER_HAPPY1", .value = BTN_TRIGGER_HAPPY1 },
++ { .name = "BTN_TRIGGER_HAPPY10", .value = BTN_TRIGGER_HAPPY10 },
++ { .name = "BTN_TRIGGER_HAPPY11", .value = BTN_TRIGGER_HAPPY11 },
++ { .name = "BTN_TRIGGER_HAPPY12", .value = BTN_TRIGGER_HAPPY12 },
++ { .name = "BTN_TRIGGER_HAPPY13", .value = BTN_TRIGGER_HAPPY13 },
++ { .name = "BTN_TRIGGER_HAPPY14", .value = BTN_TRIGGER_HAPPY14 },
++ { .name = "BTN_TRIGGER_HAPPY15", .value = BTN_TRIGGER_HAPPY15 },
++ { .name = "BTN_TRIGGER_HAPPY16", .value = BTN_TRIGGER_HAPPY16 },
++ { .name = "BTN_TRIGGER_HAPPY17", .value = BTN_TRIGGER_HAPPY17 },
++ { .name = "BTN_TRIGGER_HAPPY18", .value = BTN_TRIGGER_HAPPY18 },
++ { .name = "BTN_TRIGGER_HAPPY19", .value = BTN_TRIGGER_HAPPY19 },
++ { .name = "BTN_TRIGGER_HAPPY2", .value = BTN_TRIGGER_HAPPY2 },
++ { .name = "BTN_TRIGGER_HAPPY20", .value = BTN_TRIGGER_HAPPY20 },
++ { .name = "BTN_TRIGGER_HAPPY21", .value = BTN_TRIGGER_HAPPY21 },
++ { .name = "BTN_TRIGGER_HAPPY22", .value = BTN_TRIGGER_HAPPY22 },
++ { .name = "BTN_TRIGGER_HAPPY23", .value = BTN_TRIGGER_HAPPY23 },
++ { .name = "BTN_TRIGGER_HAPPY24", .value = BTN_TRIGGER_HAPPY24 },
++ { .name = "BTN_TRIGGER_HAPPY25", .value = BTN_TRIGGER_HAPPY25 },
++ { .name = "BTN_TRIGGER_HAPPY26", .value = BTN_TRIGGER_HAPPY26 },
++ { .name = "BTN_TRIGGER_HAPPY27", .value = BTN_TRIGGER_HAPPY27 },
++ { .name = "BTN_TRIGGER_HAPPY28", .value = BTN_TRIGGER_HAPPY28 },
++ { .name = "BTN_TRIGGER_HAPPY29", .value = BTN_TRIGGER_HAPPY29 },
++ { .name = "BTN_TRIGGER_HAPPY3", .value = BTN_TRIGGER_HAPPY3 },
++ { .name = "BTN_TRIGGER_HAPPY30", .value = BTN_TRIGGER_HAPPY30 },
++ { .name = "BTN_TRIGGER_HAPPY31", .value = BTN_TRIGGER_HAPPY31 },
++ { .name = "BTN_TRIGGER_HAPPY32", .value = BTN_TRIGGER_HAPPY32 },
++ { .name = "BTN_TRIGGER_HAPPY33", .value = BTN_TRIGGER_HAPPY33 },
++ { .name = "BTN_TRIGGER_HAPPY34", .value = BTN_TRIGGER_HAPPY34 },
++ { .name = "BTN_TRIGGER_HAPPY35", .value = BTN_TRIGGER_HAPPY35 },
++ { .name = "BTN_TRIGGER_HAPPY36", .value = BTN_TRIGGER_HAPPY36 },
++ { .name = "BTN_TRIGGER_HAPPY37", .value = BTN_TRIGGER_HAPPY37 },
++ { .name = "BTN_TRIGGER_HAPPY38", .value = BTN_TRIGGER_HAPPY38 },
++ { .name = "BTN_TRIGGER_HAPPY39", .value = BTN_TRIGGER_HAPPY39 },
++ { .name = "BTN_TRIGGER_HAPPY4", .value = BTN_TRIGGER_HAPPY4 },
++ { .name = "BTN_TRIGGER_HAPPY40", .value = BTN_TRIGGER_HAPPY40 },
++ { .name = "BTN_TRIGGER_HAPPY5", .value = BTN_TRIGGER_HAPPY5 },
++ { .name = "BTN_TRIGGER_HAPPY6", .value = BTN_TRIGGER_HAPPY6 },
++ { .name = "BTN_TRIGGER_HAPPY7", .value = BTN_TRIGGER_HAPPY7 },
++ { .name = "BTN_TRIGGER_HAPPY8", .value = BTN_TRIGGER_HAPPY8 },
++ { .name = "BTN_TRIGGER_HAPPY9", .value = BTN_TRIGGER_HAPPY9 },
++ { .name = "BTN_WEST", .value = BTN_WEST },
++ { .name = "BTN_X", .value = BTN_X },
++ { .name = "BTN_Y", .value = BTN_Y },
++ { .name = "BTN_Z", .value = BTN_Z },
++ { .name = "FF_AUTOCENTER", .value = FF_AUTOCENTER },
++ { .name = "FF_CONSTANT", .value = FF_CONSTANT },
++ { .name = "FF_CUSTOM", .value = FF_CUSTOM },
++ { .name = "FF_DAMPER", .value = FF_DAMPER },
++ { .name = "FF_FRICTION", .value = FF_FRICTION },
++ { .name = "FF_GAIN", .value = FF_GAIN },
++ { .name = "FF_INERTIA", .value = FF_INERTIA },
++ { .name = "FF_MAX", .value = FF_MAX },
++ { .name = "FF_PERIODIC", .value = FF_PERIODIC },
++ { .name = "FF_RAMP", .value = FF_RAMP },
++ { .name = "FF_RUMBLE", .value = FF_RUMBLE },
++ { .name = "FF_SAW_DOWN", .value = FF_SAW_DOWN },
++ { .name = "FF_SAW_UP", .value = FF_SAW_UP },
++ { .name = "FF_SINE", .value = FF_SINE },
++ { .name = "FF_SPRING", .value = FF_SPRING },
++ { .name = "FF_SQUARE", .value = FF_SQUARE },
++ { .name = "FF_STATUS_MAX", .value = FF_STATUS_MAX },
++ { .name = "FF_STATUS_STOPPED", .value = FF_STATUS_STOPPED },
++ { .name = "FF_TRIANGLE", .value = FF_TRIANGLE },
++ { .name = "KEY_0", .value = KEY_0 },
++ { .name = "KEY_1", .value = KEY_1 },
++ { .name = "KEY_102ND", .value = KEY_102ND },
++ { .name = "KEY_10CHANNELSDOWN", .value = KEY_10CHANNELSDOWN },
++ { .name = "KEY_10CHANNELSUP", .value = KEY_10CHANNELSUP },
++ { .name = "KEY_2", .value = KEY_2 },
++ { .name = "KEY_3", .value = KEY_3 },
++ { .name = "KEY_4", .value = KEY_4 },
++ { .name = "KEY_5", .value = KEY_5 },
++ { .name = "KEY_6", .value = KEY_6 },
++ { .name = "KEY_7", .value = KEY_7 },
++ { .name = "KEY_8", .value = KEY_8 },
++ { .name = "KEY_9", .value = KEY_9 },
++ { .name = "KEY_A", .value = KEY_A },
++ { .name = "KEY_AB", .value = KEY_AB },
++ { .name = "KEY_ADDRESSBOOK", .value = KEY_ADDRESSBOOK },
++ { .name = "KEY_AGAIN", .value = KEY_AGAIN },
++ { .name = "KEY_ALS_TOGGLE", .value = KEY_ALS_TOGGLE },
++ { .name = "KEY_ALTERASE", .value = KEY_ALTERASE },
++ { .name = "KEY_ANGLE", .value = KEY_ANGLE },
++ { .name = "KEY_APOSTROPHE", .value = KEY_APOSTROPHE },
++ { .name = "KEY_APPSELECT", .value = KEY_APPSELECT },
++ { .name = "KEY_ARCHIVE", .value = KEY_ARCHIVE },
++ { .name = "KEY_ATTENDANT_OFF", .value = KEY_ATTENDANT_OFF },
++ { .name = "KEY_ATTENDANT_ON", .value = KEY_ATTENDANT_ON },
++ { .name = "KEY_ATTENDANT_TOGGLE", .value = KEY_ATTENDANT_TOGGLE },
++ { .name = "KEY_AUDIO", .value = KEY_AUDIO },
++ { .name = "KEY_AUX", .value = KEY_AUX },
++ { .name = "KEY_B", .value = KEY_B },
++ { .name = "KEY_BACK", .value = KEY_BACK },
++ { .name = "KEY_BACKSLASH", .value = KEY_BACKSLASH },
++ { .name = "KEY_BACKSPACE", .value = KEY_BACKSPACE },
++ { .name = "KEY_BASSBOOST", .value = KEY_BASSBOOST },
++ { .name = "KEY_BATTERY", .value = KEY_BATTERY },
++ { .name = "KEY_BLUE", .value = KEY_BLUE },
++ { .name = "KEY_BLUETOOTH", .value = KEY_BLUETOOTH },
++ { .name = "KEY_BOOKMARKS", .value = KEY_BOOKMARKS },
++ { .name = "KEY_BREAK", .value = KEY_BREAK },
++ { .name = "KEY_BRIGHTNESSDOWN", .value = KEY_BRIGHTNESSDOWN },
++ { .name = "KEY_BRIGHTNESSUP", .value = KEY_BRIGHTNESSUP },
++ { .name = "KEY_BRIGHTNESS_AUTO", .value = KEY_BRIGHTNESS_AUTO },
++ { .name = "KEY_BRIGHTNESS_CYCLE", .value = KEY_BRIGHTNESS_CYCLE },
++ { .name = "KEY_BRIGHTNESS_MAX", .value = KEY_BRIGHTNESS_MAX },
++ { .name = "KEY_BRIGHTNESS_MIN", .value = KEY_BRIGHTNESS_MIN },
++ { .name = "KEY_BRL_DOT1", .value = KEY_BRL_DOT1 },
++ { .name = "KEY_BRL_DOT10", .value = KEY_BRL_DOT10 },
++ { .name = "KEY_BRL_DOT2", .value = KEY_BRL_DOT2 },
++ { .name = "KEY_BRL_DOT3", .value = KEY_BRL_DOT3 },
++ { .name = "KEY_BRL_DOT4", .value = KEY_BRL_DOT4 },
++ { .name = "KEY_BRL_DOT5", .value = KEY_BRL_DOT5 },
++ { .name = "KEY_BRL_DOT6", .value = KEY_BRL_DOT6 },
++ { .name = "KEY_BRL_DOT7", .value = KEY_BRL_DOT7 },
++ { .name = "KEY_BRL_DOT8", .value = KEY_BRL_DOT8 },
++ { .name = "KEY_BRL_DOT9", .value = KEY_BRL_DOT9 },
++ { .name = "KEY_BUTTONCONFIG", .value = KEY_BUTTONCONFIG },
++ { .name = "KEY_C", .value = KEY_C },
++ { .name = "KEY_CALC", .value = KEY_CALC },
++ { .name = "KEY_CALENDAR", .value = KEY_CALENDAR },
++ { .name = "KEY_CAMERA", .value = KEY_CAMERA },
++ { .name = "KEY_CAMERA_DOWN", .value = KEY_CAMERA_DOWN },
++ { .name = "KEY_CAMERA_FOCUS", .value = KEY_CAMERA_FOCUS },
++ { .name = "KEY_CAMERA_LEFT", .value = KEY_CAMERA_LEFT },
++ { .name = "KEY_CAMERA_RIGHT", .value = KEY_CAMERA_RIGHT },
++ { .name = "KEY_CAMERA_UP", .value = KEY_CAMERA_UP },
++ { .name = "KEY_CAMERA_ZOOMIN", .value = KEY_CAMERA_ZOOMIN },
++ { .name = "KEY_CAMERA_ZOOMOUT", .value = KEY_CAMERA_ZOOMOUT },
++ { .name = "KEY_CANCEL", .value = KEY_CANCEL },
++ { .name = "KEY_CAPSLOCK", .value = KEY_CAPSLOCK },
++ { .name = "KEY_CD", .value = KEY_CD },
++ { .name = "KEY_CHANNEL", .value = KEY_CHANNEL },
++ { .name = "KEY_CHANNELDOWN", .value = KEY_CHANNELDOWN },
++ { .name = "KEY_CHANNELUP", .value = KEY_CHANNELUP },
++ { .name = "KEY_CHAT", .value = KEY_CHAT },
++ { .name = "KEY_CLEAR", .value = KEY_CLEAR },
++ { .name = "KEY_CLOSE", .value = KEY_CLOSE },
++ { .name = "KEY_CLOSECD", .value = KEY_CLOSECD },
++ { .name = "KEY_COFFEE", .value = KEY_COFFEE },
++ { .name = "KEY_COMMA", .value = KEY_COMMA },
++ { .name = "KEY_COMPOSE", .value = KEY_COMPOSE },
++ { .name = "KEY_COMPUTER", .value = KEY_COMPUTER },
++ { .name = "KEY_CONFIG", .value = KEY_CONFIG },
++ { .name = "KEY_CONNECT", .value = KEY_CONNECT },
++ { .name = "KEY_CONTEXT_MENU", .value = KEY_CONTEXT_MENU },
++ { .name = "KEY_CONTROLPANEL", .value = KEY_CONTROLPANEL },
++ { .name = "KEY_COPY", .value = KEY_COPY },
++ { .name = "KEY_CUT", .value = KEY_CUT },
++ { .name = "KEY_CYCLEWINDOWS", .value = KEY_CYCLEWINDOWS },
++ { .name = "KEY_D", .value = KEY_D },
++ { .name = "KEY_DASHBOARD", .value = KEY_DASHBOARD },
++ { .name = "KEY_DATABASE", .value = KEY_DATABASE },
++ { .name = "KEY_DELETE", .value = KEY_DELETE },
++ { .name = "KEY_DELETEFILE", .value = KEY_DELETEFILE },
++ { .name = "KEY_DEL_EOL", .value = KEY_DEL_EOL },
++ { .name = "KEY_DEL_EOS", .value = KEY_DEL_EOS },
++ { .name = "KEY_DEL_LINE", .value = KEY_DEL_LINE },
++ { .name = "KEY_DIGITS", .value = KEY_DIGITS },
++ { .name = "KEY_DIRECTORY", .value = KEY_DIRECTORY },
++ { .name = "KEY_DISPLAYTOGGLE", .value = KEY_DISPLAYTOGGLE },
++ { .name = "KEY_DISPLAY_OFF", .value = KEY_DISPLAY_OFF },
++ { .name = "KEY_DOCUMENTS", .value = KEY_DOCUMENTS },
++ { .name = "KEY_DOLLAR", .value = KEY_DOLLAR },
++ { .name = "KEY_DOT", .value = KEY_DOT },
++ { .name = "KEY_DOWN", .value = KEY_DOWN },
++ { .name = "KEY_DVD", .value = KEY_DVD },
++ { .name = "KEY_E", .value = KEY_E },
++ { .name = "KEY_EDIT", .value = KEY_EDIT },
++ { .name = "KEY_EDITOR", .value = KEY_EDITOR },
++ { .name = "KEY_EJECTCD", .value = KEY_EJECTCD },
++ { .name = "KEY_EJECTCLOSECD", .value = KEY_EJECTCLOSECD },
++ { .name = "KEY_EMAIL", .value = KEY_EMAIL },
++ { .name = "KEY_END", .value = KEY_END },
++ { .name = "KEY_ENTER", .value = KEY_ENTER },
++ { .name = "KEY_EPG", .value = KEY_EPG },
++ { .name = "KEY_EQUAL", .value = KEY_EQUAL },
++ { .name = "KEY_ESC", .value = KEY_ESC },
++ { .name = "KEY_EURO", .value = KEY_EURO },
++ { .name = "KEY_EXIT", .value = KEY_EXIT },
++ { .name = "KEY_F", .value = KEY_F },
++ { .name = "KEY_F1", .value = KEY_F1 },
++ { .name = "KEY_F10", .value = KEY_F10 },
++ { .name = "KEY_F11", .value = KEY_F11 },
++ { .name = "KEY_F12", .value = KEY_F12 },
++ { .name = "KEY_F13", .value = KEY_F13 },
++ { .name = "KEY_F14", .value = KEY_F14 },
++ { .name = "KEY_F15", .value = KEY_F15 },
++ { .name = "KEY_F16", .value = KEY_F16 },
++ { .name = "KEY_F17", .value = KEY_F17 },
++ { .name = "KEY_F18", .value = KEY_F18 },
++ { .name = "KEY_F19", .value = KEY_F19 },
++ { .name = "KEY_F2", .value = KEY_F2 },
++ { .name = "KEY_F20", .value = KEY_F20 },
++ { .name = "KEY_F21", .value = KEY_F21 },
++ { .name = "KEY_F22", .value = KEY_F22 },
++ { .name = "KEY_F23", .value = KEY_F23 },
++ { .name = "KEY_F24", .value = KEY_F24 },
++ { .name = "KEY_F3", .value = KEY_F3 },
++ { .name = "KEY_F4", .value = KEY_F4 },
++ { .name = "KEY_F5", .value = KEY_F5 },
++ { .name = "KEY_F6", .value = KEY_F6 },
++ { .name = "KEY_F7", .value = KEY_F7 },
++ { .name = "KEY_F8", .value = KEY_F8 },
++ { .name = "KEY_F9", .value = KEY_F9 },
++ { .name = "KEY_FASTFORWARD", .value = KEY_FASTFORWARD },
++ { .name = "KEY_FAVORITES", .value = KEY_FAVORITES },
++ { .name = "KEY_FILE", .value = KEY_FILE },
++ { .name = "KEY_FINANCE", .value = KEY_FINANCE },
++ { .name = "KEY_FIND", .value = KEY_FIND },
++ { .name = "KEY_FIRST", .value = KEY_FIRST },
++ { .name = "KEY_FN", .value = KEY_FN },
++ { .name = "KEY_FN_1", .value = KEY_FN_1 },
++ { .name = "KEY_FN_2", .value = KEY_FN_2 },
++ { .name = "KEY_FN_B", .value = KEY_FN_B },
++ { .name = "KEY_FN_D", .value = KEY_FN_D },
++ { .name = "KEY_FN_E", .value = KEY_FN_E },
++ { .name = "KEY_FN_ESC", .value = KEY_FN_ESC },
++ { .name = "KEY_FN_F", .value = KEY_FN_F },
++ { .name = "KEY_FN_F1", .value = KEY_FN_F1 },
++ { .name = "KEY_FN_F10", .value = KEY_FN_F10 },
++ { .name = "KEY_FN_F11", .value = KEY_FN_F11 },
++ { .name = "KEY_FN_F12", .value = KEY_FN_F12 },
++ { .name = "KEY_FN_F2", .value = KEY_FN_F2 },
++ { .name = "KEY_FN_F3", .value = KEY_FN_F3 },
++ { .name = "KEY_FN_F4", .value = KEY_FN_F4 },
++ { .name = "KEY_FN_F5", .value = KEY_FN_F5 },
++ { .name = "KEY_FN_F6", .value = KEY_FN_F6 },
++ { .name = "KEY_FN_F7", .value = KEY_FN_F7 },
++ { .name = "KEY_FN_F8", .value = KEY_FN_F8 },
++ { .name = "KEY_FN_F9", .value = KEY_FN_F9 },
++ { .name = "KEY_FN_S", .value = KEY_FN_S },
++ { .name = "KEY_FORWARD", .value = KEY_FORWARD },
++ { .name = "KEY_FORWARDMAIL", .value = KEY_FORWARDMAIL },
++ { .name = "KEY_FRAMEBACK", .value = KEY_FRAMEBACK },
++ { .name = "KEY_FRAMEFORWARD", .value = KEY_FRAMEFORWARD },
++ { .name = "KEY_FRONT", .value = KEY_FRONT },
++ { .name = "KEY_G", .value = KEY_G },
++ { .name = "KEY_GAMES", .value = KEY_GAMES },
++ { .name = "KEY_GOTO", .value = KEY_GOTO },
++ { .name = "KEY_GRAPHICSEDITOR", .value = KEY_GRAPHICSEDITOR },
++ { .name = "KEY_GRAVE", .value = KEY_GRAVE },
++ { .name = "KEY_GREEN", .value = KEY_GREEN },
++ { .name = "KEY_H", .value = KEY_H },
++ { .name = "KEY_HANGEUL", .value = KEY_HANGEUL },
++ { .name = "KEY_HANJA", .value = KEY_HANJA },
++ { .name = "KEY_HELP", .value = KEY_HELP },
++ { .name = "KEY_HENKAN", .value = KEY_HENKAN },
++ { .name = "KEY_HIRAGANA", .value = KEY_HIRAGANA },
++ { .name = "KEY_HOME", .value = KEY_HOME },
++ { .name = "KEY_HOMEPAGE", .value = KEY_HOMEPAGE },
++ { .name = "KEY_HP", .value = KEY_HP },
++ { .name = "KEY_I", .value = KEY_I },
++ { .name = "KEY_IMAGES", .value = KEY_IMAGES },
++ { .name = "KEY_INFO", .value = KEY_INFO },
++ { .name = "KEY_INSERT", .value = KEY_INSERT },
++ { .name = "KEY_INS_LINE", .value = KEY_INS_LINE },
++ { .name = "KEY_ISO", .value = KEY_ISO },
++ { .name = "KEY_J", .value = KEY_J },
++ { .name = "KEY_JOURNAL", .value = KEY_JOURNAL },
++ { .name = "KEY_K", .value = KEY_K },
++ { .name = "KEY_KATAKANA", .value = KEY_KATAKANA },
++ { .name = "KEY_KATAKANAHIRAGANA", .value = KEY_KATAKANAHIRAGANA },
++ { .name = "KEY_KBDILLUMDOWN", .value = KEY_KBDILLUMDOWN },
++ { .name = "KEY_KBDILLUMTOGGLE", .value = KEY_KBDILLUMTOGGLE },
++ { .name = "KEY_KBDILLUMUP", .value = KEY_KBDILLUMUP },
++ { .name = "KEY_KBDINPUTASSIST_ACCEPT", .value = KEY_KBDINPUTASSIST_ACCEPT },
++ { .name = "KEY_KBDINPUTASSIST_CANCEL", .value = KEY_KBDINPUTASSIST_CANCEL },
++ { .name = "KEY_KBDINPUTASSIST_NEXT", .value = KEY_KBDINPUTASSIST_NEXT },
++ { .name = "KEY_KBDINPUTASSIST_NEXTGROUP", .value = KEY_KBDINPUTASSIST_NEXTGROUP },
++ { .name = "KEY_KBDINPUTASSIST_PREV", .value = KEY_KBDINPUTASSIST_PREV },
++ { .name = "KEY_KBDINPUTASSIST_PREVGROUP", .value = KEY_KBDINPUTASSIST_PREVGROUP },
++ { .name = "KEY_KEYBOARD", .value = KEY_KEYBOARD },
++ { .name = "KEY_KP0", .value = KEY_KP0 },
++ { .name = "KEY_KP1", .value = KEY_KP1 },
++ { .name = "KEY_KP2", .value = KEY_KP2 },
++ { .name = "KEY_KP3", .value = KEY_KP3 },
++ { .name = "KEY_KP4", .value = KEY_KP4 },
++ { .name = "KEY_KP5", .value = KEY_KP5 },
++ { .name = "KEY_KP6", .value = KEY_KP6 },
++ { .name = "KEY_KP7", .value = KEY_KP7 },
++ { .name = "KEY_KP8", .value = KEY_KP8 },
++ { .name = "KEY_KP9", .value = KEY_KP9 },
++ { .name = "KEY_KPASTERISK", .value = KEY_KPASTERISK },
++ { .name = "KEY_KPCOMMA", .value = KEY_KPCOMMA },
++ { .name = "KEY_KPDOT", .value = KEY_KPDOT },
++ { .name = "KEY_KPENTER", .value = KEY_KPENTER },
++ { .name = "KEY_KPEQUAL", .value = KEY_KPEQUAL },
++ { .name = "KEY_KPJPCOMMA", .value = KEY_KPJPCOMMA },
++ { .name = "KEY_KPLEFTPAREN", .value = KEY_KPLEFTPAREN },
++ { .name = "KEY_KPMINUS", .value = KEY_KPMINUS },
++ { .name = "KEY_KPPLUS", .value = KEY_KPPLUS },
++ { .name = "KEY_KPPLUSMINUS", .value = KEY_KPPLUSMINUS },
++ { .name = "KEY_KPRIGHTPAREN", .value = KEY_KPRIGHTPAREN },
++ { .name = "KEY_KPSLASH", .value = KEY_KPSLASH },
++ { .name = "KEY_L", .value = KEY_L },
++ { .name = "KEY_LANGUAGE", .value = KEY_LANGUAGE },
++ { .name = "KEY_LAST", .value = KEY_LAST },
++ { .name = "KEY_LEFT", .value = KEY_LEFT },
++ { .name = "KEY_LEFTALT", .value = KEY_LEFTALT },
++ { .name = "KEY_LEFTBRACE", .value = KEY_LEFTBRACE },
++ { .name = "KEY_LEFTCTRL", .value = KEY_LEFTCTRL },
++ { .name = "KEY_LEFTMETA", .value = KEY_LEFTMETA },
++ { .name = "KEY_LEFTSHIFT", .value = KEY_LEFTSHIFT },
++ { .name = "KEY_LIGHTS_TOGGLE", .value = KEY_LIGHTS_TOGGLE },
++ { .name = "KEY_LINEFEED", .value = KEY_LINEFEED },
++ { .name = "KEY_LIST", .value = KEY_LIST },
++ { .name = "KEY_LOGOFF", .value = KEY_LOGOFF },
++ { .name = "KEY_M", .value = KEY_M },
++ { .name = "KEY_MACRO", .value = KEY_MACRO },
++ { .name = "KEY_MAIL", .value = KEY_MAIL },
++ { .name = "KEY_MAX", .value = KEY_MAX },
++ { .name = "KEY_MEDIA", .value = KEY_MEDIA },
++ { .name = "KEY_MEDIA_REPEAT", .value = KEY_MEDIA_REPEAT },
++ { .name = "KEY_MEMO", .value = KEY_MEMO },
++ { .name = "KEY_MENU", .value = KEY_MENU },
++ { .name = "KEY_MESSENGER", .value = KEY_MESSENGER },
++ { .name = "KEY_MHP", .value = KEY_MHP },
++ { .name = "KEY_MICMUTE", .value = KEY_MICMUTE },
++ { .name = "KEY_MINUS", .value = KEY_MINUS },
++ { .name = "KEY_MODE", .value = KEY_MODE },
++ { .name = "KEY_MOVE", .value = KEY_MOVE },
++ { .name = "KEY_MP3", .value = KEY_MP3 },
++ { .name = "KEY_MSDOS", .value = KEY_MSDOS },
++ { .name = "KEY_MUHENKAN", .value = KEY_MUHENKAN },
++ { .name = "KEY_MUTE", .value = KEY_MUTE },
++ { .name = "KEY_N", .value = KEY_N },
++ { .name = "KEY_NEW", .value = KEY_NEW },
++ { .name = "KEY_NEWS", .value = KEY_NEWS },
++ { .name = "KEY_NEXT", .value = KEY_NEXT },
++ { .name = "KEY_NEXTSONG", .value = KEY_NEXTSONG },
++ { .name = "KEY_NUMERIC_0", .value = KEY_NUMERIC_0 },
++ { .name = "KEY_NUMERIC_1", .value = KEY_NUMERIC_1 },
++ { .name = "KEY_NUMERIC_2", .value = KEY_NUMERIC_2 },
++ { .name = "KEY_NUMERIC_3", .value = KEY_NUMERIC_3 },
++ { .name = "KEY_NUMERIC_4", .value = KEY_NUMERIC_4 },
++ { .name = "KEY_NUMERIC_5", .value = KEY_NUMERIC_5 },
++ { .name = "KEY_NUMERIC_6", .value = KEY_NUMERIC_6 },
++ { .name = "KEY_NUMERIC_7", .value = KEY_NUMERIC_7 },
++ { .name = "KEY_NUMERIC_8", .value = KEY_NUMERIC_8 },
++ { .name = "KEY_NUMERIC_9", .value = KEY_NUMERIC_9 },
++ { .name = "KEY_NUMERIC_A", .value = KEY_NUMERIC_A },
++ { .name = "KEY_NUMERIC_B", .value = KEY_NUMERIC_B },
++ { .name = "KEY_NUMERIC_C", .value = KEY_NUMERIC_C },
++ { .name = "KEY_NUMERIC_D", .value = KEY_NUMERIC_D },
++ { .name = "KEY_NUMERIC_POUND", .value = KEY_NUMERIC_POUND },
++ { .name = "KEY_NUMERIC_STAR", .value = KEY_NUMERIC_STAR },
++ { .name = "KEY_NUMLOCK", .value = KEY_NUMLOCK },
++ { .name = "KEY_O", .value = KEY_O },
++ { .name = "KEY_OK", .value = KEY_OK },
++ { .name = "KEY_OPEN", .value = KEY_OPEN },
++ { .name = "KEY_OPTION", .value = KEY_OPTION },
++ { .name = "KEY_P", .value = KEY_P },
++ { .name = "KEY_PAGEDOWN", .value = KEY_PAGEDOWN },
++ { .name = "KEY_PAGEUP", .value = KEY_PAGEUP },
++ { .name = "KEY_PASTE", .value = KEY_PASTE },
++ { .name = "KEY_PAUSE", .value = KEY_PAUSE },
++ { .name = "KEY_PAUSECD", .value = KEY_PAUSECD },
++ { .name = "KEY_PC", .value = KEY_PC },
++ { .name = "KEY_PHONE", .value = KEY_PHONE },
++ { .name = "KEY_PLAY", .value = KEY_PLAY },
++ { .name = "KEY_PLAYCD", .value = KEY_PLAYCD },
++ { .name = "KEY_PLAYER", .value = KEY_PLAYER },
++ { .name = "KEY_PLAYPAUSE", .value = KEY_PLAYPAUSE },
++ { .name = "KEY_POWER", .value = KEY_POWER },
++ { .name = "KEY_POWER2", .value = KEY_POWER2 },
++ { .name = "KEY_PRESENTATION", .value = KEY_PRESENTATION },
++ { .name = "KEY_PREVIOUS", .value = KEY_PREVIOUS },
++ { .name = "KEY_PREVIOUSSONG", .value = KEY_PREVIOUSSONG },
++ { .name = "KEY_PRINT", .value = KEY_PRINT },
++ { .name = "KEY_PROG1", .value = KEY_PROG1 },
++ { .name = "KEY_PROG2", .value = KEY_PROG2 },
++ { .name = "KEY_PROG3", .value = KEY_PROG3 },
++ { .name = "KEY_PROG4", .value = KEY_PROG4 },
++ { .name = "KEY_PROGRAM", .value = KEY_PROGRAM },
++ { .name = "KEY_PROPS", .value = KEY_PROPS },
++ { .name = "KEY_PVR", .value = KEY_PVR },
++ { .name = "KEY_Q", .value = KEY_Q },
++ { .name = "KEY_QUESTION", .value = KEY_QUESTION },
++ { .name = "KEY_R", .value = KEY_R },
++ { .name = "KEY_RADIO", .value = KEY_RADIO },
++ { .name = "KEY_RECORD", .value = KEY_RECORD },
++ { .name = "KEY_RED", .value = KEY_RED },
++ { .name = "KEY_REDO", .value = KEY_REDO },
++ { .name = "KEY_REFRESH", .value = KEY_REFRESH },
++ { .name = "KEY_REPLY", .value = KEY_REPLY },
++ { .name = "KEY_RESERVED", .value = KEY_RESERVED },
++ { .name = "KEY_RESTART", .value = KEY_RESTART },
++ { .name = "KEY_REWIND", .value = KEY_REWIND },
++ { .name = "KEY_RFKILL", .value = KEY_RFKILL },
++ { .name = "KEY_RIGHT", .value = KEY_RIGHT },
++ { .name = "KEY_RIGHTALT", .value = KEY_RIGHTALT },
++ { .name = "KEY_RIGHTBRACE", .value = KEY_RIGHTBRACE },
++ { .name = "KEY_RIGHTCTRL", .value = KEY_RIGHTCTRL },
++ { .name = "KEY_RIGHTMETA", .value = KEY_RIGHTMETA },
++ { .name = "KEY_RIGHTSHIFT", .value = KEY_RIGHTSHIFT },
++ { .name = "KEY_RO", .value = KEY_RO },
++ { .name = "KEY_ROTATE_DISPLAY", .value = KEY_ROTATE_DISPLAY },
++ { .name = "KEY_S", .value = KEY_S },
++ { .name = "KEY_SAT", .value = KEY_SAT },
++ { .name = "KEY_SAT2", .value = KEY_SAT2 },
++ { .name = "KEY_SAVE", .value = KEY_SAVE },
++ { .name = "KEY_SCALE", .value = KEY_SCALE },
++ { .name = "KEY_SCREEN", .value = KEY_SCREEN },
++ { .name = "KEY_SCREENSAVER", .value = KEY_SCREENSAVER },
++ { .name = "KEY_SCROLLDOWN", .value = KEY_SCROLLDOWN },
++ { .name = "KEY_SCROLLLOCK", .value = KEY_SCROLLLOCK },
++ { .name = "KEY_SCROLLUP", .value = KEY_SCROLLUP },
++ { .name = "KEY_SEARCH", .value = KEY_SEARCH },
++ { .name = "KEY_SELECT", .value = KEY_SELECT },
++ { .name = "KEY_SEMICOLON", .value = KEY_SEMICOLON },
++ { .name = "KEY_SEND", .value = KEY_SEND },
++ { .name = "KEY_SENDFILE", .value = KEY_SENDFILE },
++ { .name = "KEY_SETUP", .value = KEY_SETUP },
++ { .name = "KEY_SHOP", .value = KEY_SHOP },
++ { .name = "KEY_SHUFFLE", .value = KEY_SHUFFLE },
++ { .name = "KEY_SLASH", .value = KEY_SLASH },
++ { .name = "KEY_SLEEP", .value = KEY_SLEEP },
++ { .name = "KEY_SLOW", .value = KEY_SLOW },
++ { .name = "KEY_SOUND", .value = KEY_SOUND },
++ { .name = "KEY_SPACE", .value = KEY_SPACE },
++ { .name = "KEY_SPELLCHECK", .value = KEY_SPELLCHECK },
++ { .name = "KEY_SPORT", .value = KEY_SPORT },
++ { .name = "KEY_SPREADSHEET", .value = KEY_SPREADSHEET },
++ { .name = "KEY_STOP", .value = KEY_STOP },
++ { .name = "KEY_STOPCD", .value = KEY_STOPCD },
++ { .name = "KEY_SUBTITLE", .value = KEY_SUBTITLE },
++ { .name = "KEY_SUSPEND", .value = KEY_SUSPEND },
++ { .name = "KEY_SWITCHVIDEOMODE", .value = KEY_SWITCHVIDEOMODE },
++ { .name = "KEY_SYSRQ", .value = KEY_SYSRQ },
++ { .name = "KEY_T", .value = KEY_T },
++ { .name = "KEY_TAB", .value = KEY_TAB },
++ { .name = "KEY_TAPE", .value = KEY_TAPE },
++ { .name = "KEY_TASKMANAGER", .value = KEY_TASKMANAGER },
++ { .name = "KEY_TEEN", .value = KEY_TEEN },
++ { .name = "KEY_TEXT", .value = KEY_TEXT },
++ { .name = "KEY_TIME", .value = KEY_TIME },
++ { .name = "KEY_TITLE", .value = KEY_TITLE },
++ { .name = "KEY_TOUCHPAD_OFF", .value = KEY_TOUCHPAD_OFF },
++ { .name = "KEY_TOUCHPAD_ON", .value = KEY_TOUCHPAD_ON },
++ { .name = "KEY_TOUCHPAD_TOGGLE", .value = KEY_TOUCHPAD_TOGGLE },
++ { .name = "KEY_TUNER", .value = KEY_TUNER },
++ { .name = "KEY_TV", .value = KEY_TV },
++ { .name = "KEY_TV2", .value = KEY_TV2 },
++ { .name = "KEY_TWEN", .value = KEY_TWEN },
++ { .name = "KEY_U", .value = KEY_U },
++ { .name = "KEY_UNDO", .value = KEY_UNDO },
++ { .name = "KEY_UNKNOWN", .value = KEY_UNKNOWN },
++ { .name = "KEY_UP", .value = KEY_UP },
++ { .name = "KEY_UWB", .value = KEY_UWB },
++ { .name = "KEY_V", .value = KEY_V },
++ { .name = "KEY_VCR", .value = KEY_VCR },
++ { .name = "KEY_VCR2", .value = KEY_VCR2 },
++ { .name = "KEY_VENDOR", .value = KEY_VENDOR },
++ { .name = "KEY_VIDEO", .value = KEY_VIDEO },
++ { .name = "KEY_VIDEOPHONE", .value = KEY_VIDEOPHONE },
++ { .name = "KEY_VIDEO_NEXT", .value = KEY_VIDEO_NEXT },
++ { .name = "KEY_VIDEO_PREV", .value = KEY_VIDEO_PREV },
++ { .name = "KEY_VOICECOMMAND", .value = KEY_VOICECOMMAND },
++ { .name = "KEY_VOICEMAIL", .value = KEY_VOICEMAIL },
++ { .name = "KEY_VOLUMEDOWN", .value = KEY_VOLUMEDOWN },
++ { .name = "KEY_VOLUMEUP", .value = KEY_VOLUMEUP },
++ { .name = "KEY_W", .value = KEY_W },
++ { .name = "KEY_WAKEUP", .value = KEY_WAKEUP },
++ { .name = "KEY_WLAN", .value = KEY_WLAN },
++ { .name = "KEY_WORDPROCESSOR", .value = KEY_WORDPROCESSOR },
++ { .name = "KEY_WPS_BUTTON", .value = KEY_WPS_BUTTON },
++ { .name = "KEY_WWAN", .value = KEY_WWAN },
++ { .name = "KEY_WWW", .value = KEY_WWW },
++ { .name = "KEY_X", .value = KEY_X },
++ { .name = "KEY_XFER", .value = KEY_XFER },
++ { .name = "KEY_Y", .value = KEY_Y },
++ { .name = "KEY_YELLOW", .value = KEY_YELLOW },
++ { .name = "KEY_YEN", .value = KEY_YEN },
++ { .name = "KEY_Z", .value = KEY_Z },
++ { .name = "KEY_ZENKAKUHANKAKU", .value = KEY_ZENKAKUHANKAKU },
++ { .name = "KEY_ZOOM", .value = KEY_ZOOM },
++ { .name = "KEY_ZOOMIN", .value = KEY_ZOOMIN },
++ { .name = "KEY_ZOOMOUT", .value = KEY_ZOOMOUT },
++ { .name = "KEY_ZOOMRESET", .value = KEY_ZOOMRESET },
++ { .name = "LED_CAPSL", .value = LED_CAPSL },
++ { .name = "LED_CHARGING", .value = LED_CHARGING },
++ { .name = "LED_COMPOSE", .value = LED_COMPOSE },
++ { .name = "LED_KANA", .value = LED_KANA },
++ { .name = "LED_MAIL", .value = LED_MAIL },
++ { .name = "LED_MAX", .value = LED_MAX },
++ { .name = "LED_MISC", .value = LED_MISC },
++ { .name = "LED_MUTE", .value = LED_MUTE },
++ { .name = "LED_NUML", .value = LED_NUML },
++ { .name = "LED_SCROLLL", .value = LED_SCROLLL },
++ { .name = "LED_SLEEP", .value = LED_SLEEP },
++ { .name = "LED_SUSPEND", .value = LED_SUSPEND },
++ { .name = "MSC_GESTURE", .value = MSC_GESTURE },
++ { .name = "MSC_MAX", .value = MSC_MAX },
++ { .name = "MSC_PULSELED", .value = MSC_PULSELED },
++ { .name = "MSC_RAW", .value = MSC_RAW },
++ { .name = "MSC_SCAN", .value = MSC_SCAN },
++ { .name = "MSC_SERIAL", .value = MSC_SERIAL },
++ { .name = "MSC_TIMESTAMP", .value = MSC_TIMESTAMP },
++ { .name = "REL_DIAL", .value = REL_DIAL },
++ { .name = "REL_HWHEEL", .value = REL_HWHEEL },
++ { .name = "REL_MAX", .value = REL_MAX },
++ { .name = "REL_MISC", .value = REL_MISC },
++ { .name = "REL_RX", .value = REL_RX },
++ { .name = "REL_RY", .value = REL_RY },
++ { .name = "REL_RZ", .value = REL_RZ },
++ { .name = "REL_WHEEL", .value = REL_WHEEL },
++ { .name = "REL_X", .value = REL_X },
++ { .name = "REL_Y", .value = REL_Y },
++ { .name = "REL_Z", .value = REL_Z },
++ { .name = "REP_DELAY", .value = REP_DELAY },
++ { .name = "REP_MAX", .value = REP_MAX },
++ { .name = "SND_BELL", .value = SND_BELL },
++ { .name = "SND_CLICK", .value = SND_CLICK },
++ { .name = "SND_MAX", .value = SND_MAX },
++ { .name = "SND_TONE", .value = SND_TONE },
++ { .name = "SW_CAMERA_LENS_COVER", .value = SW_CAMERA_LENS_COVER },
++ { .name = "SW_DOCK", .value = SW_DOCK },
++ { .name = "SW_FRONT_PROXIMITY", .value = SW_FRONT_PROXIMITY },
++ { .name = "SW_HEADPHONE_INSERT", .value = SW_HEADPHONE_INSERT },
++ { .name = "SW_JACK_PHYSICAL_INSERT", .value = SW_JACK_PHYSICAL_INSERT },
++ { .name = "SW_KEYPAD_SLIDE", .value = SW_KEYPAD_SLIDE },
++ { .name = "SW_LID", .value = SW_LID },
++ { .name = "SW_LINEIN_INSERT", .value = SW_LINEIN_INSERT },
++ { .name = "SW_LINEOUT_INSERT", .value = SW_LINEOUT_INSERT },
++ { .name = "SW_MAX", .value = SW_MAX },
++ { .name = "SW_MICROPHONE_INSERT", .value = SW_MICROPHONE_INSERT },
++ { .name = "SW_MUTE_DEVICE", .value = SW_MUTE_DEVICE },
++ { .name = "SW_RFKILL_ALL", .value = SW_RFKILL_ALL },
++ { .name = "SW_ROTATE_LOCK", .value = SW_ROTATE_LOCK },
++ { .name = "SW_TABLET_MODE", .value = SW_TABLET_MODE },
++ { .name = "SW_VIDEOOUT_INSERT", .value = SW_VIDEOOUT_INSERT },
++ { .name = "SYN_CONFIG", .value = SYN_CONFIG },
++ { .name = "SYN_DROPPED", .value = SYN_DROPPED },
++ { .name = "SYN_MAX", .value = SYN_MAX },
++ { .name = "SYN_MT_REPORT", .value = SYN_MT_REPORT },
++ { .name = "SYN_REPORT", .value = SYN_REPORT },
++};
++
++static const struct name_entry prop_names[] = {
++ { .name = "INPUT_PROP_ACCELEROMETER", .value = INPUT_PROP_ACCELEROMETER },
++ { .name = "INPUT_PROP_BUTTONPAD", .value = INPUT_PROP_BUTTONPAD },
++ { .name = "INPUT_PROP_DIRECT", .value = INPUT_PROP_DIRECT },
++ { .name = "INPUT_PROP_MAX", .value = INPUT_PROP_MAX },
++ { .name = "INPUT_PROP_POINTER", .value = INPUT_PROP_POINTER },
++ { .name = "INPUT_PROP_POINTING_STICK", .value = INPUT_PROP_POINTING_STICK },
++ { .name = "INPUT_PROP_SEMI_MT", .value = INPUT_PROP_SEMI_MT },
++ { .name = "INPUT_PROP_TOPBUTTONPAD", .value = INPUT_PROP_TOPBUTTONPAD },
++};
++
++#endif /* EVENT_NAMES_H */
+--
+2.11.0
+
diff --git a/pkg/libevdev/rev b/pkg/libevdev/rev
new file mode 100644
index 00000000..00750edc
--- /dev/null
+++ b/pkg/libevdev/rev
@@ -0,0 +1 @@
+3
diff --git a/pkg/libevdev/src b/pkg/libevdev/src
new file mode 160000
+Subproject 452847a31471e5b4e13aa544cd74d3933b63793