Date: Fri, 5 Sep 2025 05:17:18 +0100 From: Jessica Clarke <jrtc27@freebsd.org> To: A FreeBSD User <freebsd@walstatt-de.de> Cc: Vladimir Kondratyev <wulf@FreeBSD.org>, "src-committers@freebsd.org" <src-committers@FreeBSD.org>, "dev-commits-src-all@freebsd.org" <dev-commits-src-all@FreeBSD.org>, "dev-commits-src-main@freebsd.org" <dev-commits-src-main@FreeBSD.org> Subject: Re: git: aef807876c30 - main - moused(8): Add support for evdev protocol Message-ID: <4AC13FF6-98EB-41C9-83EC-E8B9FB6A1093@freebsd.org> In-Reply-To: <20250905061122.69e01f1a@thor.sb211.local> References: <202509042108.584L86Ro060944@gitrepo.freebsd.org> <20250905061122.69e01f1a@thor.sb211.local>
next in thread | previous in thread | raw e-mail | index | archive | help
On 5 Sep 2025, at 05:13, A FreeBSD User <freebsd@walstatt-de.de> wrote: > Am Tage des Herren Thu, 4 Sep 2025 21:08:06 GMT > Vladimir Kondratyev <wulf@FreeBSD.org> schrieb: >=20 >> The branch main has been updated by wulf: >>=20 >> URL: = https://cgit.FreeBSD.org/src/commit/?id=3Daef807876c305587c60f73e2cd914115= d22a53fd >>=20 >> commit aef807876c305587c60f73e2cd914115d22a53fd >> Author: Vladimir Kondratyev <wulf@FreeBSD.org> >> AuthorDate: 2025-09-04 21:07:25 +0000 >> Commit: Vladimir Kondratyev <wulf@FreeBSD.org> >> CommitDate: 2025-09-04 21:07:25 +0000 >>=20 >> moused(8): Add support for evdev protocol >>=20 >> The new daemon have following properties as compared with previous >> incarnation: >> - evdev protocol support for mices and touchpads. Additionally to >> relative PS/2 and USB devices it enables console support for = I2C/USB >> touchpads and bluetooth mices. >> - Other aged protocols like COM, raw PS/2 and X10 are dropped with = only >> exception of sysmouse. For those who still use them there is an >> utility called msconvd(8). >> - single daemon per system where hotplug is processed via devd = socket. >> Per device mode still supported too. >> - Configuration and quirks files in libinput-compatible format. >> Actually, the new moused config parser is taken from libinput. >>=20 >> The moused(8) can work in 2 modes: >> 1. Evdev support mode. It enables all previously mentioned = devices. >> It is enabled by deault. >> 2. Sysmouse support mode. All should work as before. >> No new devices supported. To enable it add following lines to >> /etc/rc.conf: >> moused_port=3D"/dev/psm0" >> moused_nondefault_enable=3D"YES" >> One may add hw.usb.usbhid.enable=3D0 to /boot/loader.conf to = enable >> ums(4) driver which supports sysmouse protocol. >>=20 >> Differential Revision: https://reviews.freebsd.org/D52164 >> --- >> libexec/rc/rc.conf | 8 +- >> libexec/rc/rc.d/Makefile | 1 + >> libexec/rc/rc.d/msconvd | 61 + >> tools/build/mk/OptionalObsoleteFiles.inc | 7 + >> usr.sbin/moused/Makefile | 12 +- >> usr.sbin/moused/Makefile.depend | 17 - >> usr.sbin/moused/moused/Makefile | 28 + >> usr.sbin/moused/moused/event-names.h | 1656 ++++++++++ >> usr.sbin/moused/moused/moused.8 | 538 ++++ >> usr.sbin/moused/moused/moused.c | 3205 = ++++++++++++++++++++ >> usr.sbin/moused/moused/moused.conf | 43 + >> usr.sbin/moused/moused/moused.conf.5 | 422 +++ >> usr.sbin/moused/moused/quirks.c | 2033 = +++++++++++++ >> usr.sbin/moused/moused/quirks.h | 369 +++ >> .../moused/moused/quirks/5-generic-touchpad.quirks | 9 + >> usr.sbin/moused/moused/util-evdev.c | 173 ++ >> usr.sbin/moused/moused/util-evdev.h | 35 + >> usr.sbin/moused/moused/util-list.c | 86 + >> usr.sbin/moused/moused/util-list.h | 194 ++ >> usr.sbin/moused/moused/util.c | 423 +++ >> usr.sbin/moused/moused/util.h | 413 +++ >> usr.sbin/moused/msconvd/Makefile | 8 + >> usr.sbin/moused/{moused.8 =3D> msconvd/msconvd.8} | 395 +-- >> usr.sbin/moused/{moused.c =3D> msconvd/msconvd.c} | 1212 ++------ >> 24 files changed, 10008 insertions(+), 1340 deletions(-) >>=20 >> diff --git a/libexec/rc/rc.conf b/libexec/rc/rc.conf >> index bfa46bd343a6..0ef3012892dd 100644 >> --- a/libexec/rc/rc.conf >> +++ b/libexec/rc/rc.conf >> @@ -586,15 +586,19 @@ font8x14=3D"NO" # font 8x14 from >> /usr/share/{syscons,vt}/fonts/* (or NO). font8x8=3D"NO" # font 8x8 = from >> /usr/share/{syscons,vt}/fonts/* (or NO). blanktime=3D"300" # blank = time (in >> seconds) or "NO" to turn it off. saver=3D"NO" # screen saver: Uses >> /boot/kernel/${saver}_saver.ko -moused_nondefault_enable=3D"YES" # = Treat non-default mice as >> enabled unless +moused_nondefault_enable=3D"NO" # Treat non-default = mice as enabled unless >> # specifically overridden in rc.conf(5). >> moused_enable=3D"NO" # Run the mouse daemon. >> moused_type=3D"auto" # See man page for rc.conf(5) for available = settings. >> -moused_port=3D"/dev/psm0" # Set to your mouse port. >> +moused_port=3D"auto" # Set to your mouse port. >> moused_flags=3D"" # Any additional flags to moused. >> mousechar_start=3D"NO" # if 0xd0-0xd3 default range is occupied in = your >> # language code table, specify alternative range >> # start like mousechar_start=3D3, see vidcontrol(1) >> +msconvd_enable=3D"NO" # Run the mouse protocol conversion daemon. >> +msconvd_type=3D"auto" # See rc.conf(5) man page for available = moused_type-s. >> +msconvd_ports=3D"" # List of msconvd ports. >> +msconvd_flags=3D"" # Any additional flags to msconvd. >> allscreens_flags=3D"" # Set this vidcontrol mode for all virtual = screens >> allscreens_kbdflags=3D"" # Set this kbdcontrol mode for all virtual = screens >>=20 >> diff --git a/libexec/rc/rc.d/Makefile b/libexec/rc/rc.d/Makefile >> index 7c1f50b027a9..e5ee34e62185 100644 >> --- a/libexec/rc/rc.d/Makefile >> +++ b/libexec/rc/rc.d/Makefile >> @@ -273,6 +273,7 @@ JAILPACKAGE=3D jail >> .if ${MK_LEGACY_CONSOLE} !=3D "no" >> CONFGROUPS+=3D CONSOLE >> CONSOLE+=3D moused >> +CONSOLE+=3D msconvd >> CONSOLE+=3D syscons >> CONSOLEPACKAGE=3D console-tools >> .endif >> diff --git a/libexec/rc/rc.d/msconvd b/libexec/rc/rc.d/msconvd >> new file mode 100755 >> index 000000000000..c2a96bf2eb68 >> --- /dev/null >> +++ b/libexec/rc/rc.d/msconvd >> @@ -0,0 +1,61 @@ >> +#!/bin/sh >> +# >> +# >> + >> +# PROVIDE: msconvd >> +# REQUIRE: DAEMON FILESYSTEMS >> +# KEYWORD: nojail shutdown >> + >> +. /etc/rc.subr >> + >> +name=3D"msconvd" >> +desc=3D"Mouse protocol conversion daemon" >> +command=3D"/usr/sbin/${name}" >> +start_cmd=3D"msconvd_start" >> +pidprefix=3D"/var/run/msconvd" >> +load_rc_config $name >> + >> +: ${msconvd_enable=3D"NO"} >> +: ${msconvd_type=3D"auto"} >> + >> +# doesn't make sense to run in a svcj: nojail keyword >> +# XXX: How does msconvd communiacte with the kernel? >> +# XXX: Does the kernel prevent this communcation in jails? >> +msconvd_svcj=3D"NO" >> + >> +# Set the pid file and variable name. The second argument, if it = exists, is >> +# expected to be the mouse device. >> +# >> +if [ -n "$2" ]; then >> + eval msconvd_$2_enable=3D\${msconvd_$2_enable-${msconvd_enable}} >> + rcvar=3D"msconvd_$2_enable" >> + pidfile=3D"${pidprefix}.$2.pid" >> +else >> + for ms in ${msconvd_ports}; do >> + /etc/rc.d/msconvd $1 ${ms} >> + done >> + exit 0 >> +fi >> + >> +msconvd_start() >> +{ >> + local ms myflags myport mytype >> + >> + # Set the mouse device and get any related variables. If >> + # a msconvd device has been specified on the commandline, then >> + # rc.conf(5) variables defined for that device take precedence >> + # over the generic msconvd_* variables. The only exception is >> + # the msconvd_port variable, which if not defined sets it to >> + # the passed in device name. >> + # >> + ms=3D$1 >> + eval myflags=3D\${msconvd_${ms}_flags-$msconvd_flags} >> + eval myport=3D\${msconvd_${ms}_port-/dev/${ms}} >> + eval mytype=3D\${msconvd_${ms}_type-$msconvd_type} >> + >> + startmsg -n "Starting ${ms} ${name}" >> + ${command} ${myflags} -p ${myport} -t ${mytype} -I ${pidfile} >> + startmsg '.' >> +} >> + >> +run_rc_command $* >> diff --git a/tools/build/mk/OptionalObsoleteFiles.inc >> b/tools/build/mk/OptionalObsoleteFiles.inc index = 5eea402c4526..a2fb28f1a186 100644 >> --- a/tools/build/mk/OptionalObsoleteFiles.inc >> +++ b/tools/build/mk/OptionalObsoleteFiles.inc >> @@ -3793,11 +3793,14 @@ OLD_FILES+=3Dusr/share/man/man1/host.1.gz >> .endif >>=20 >> .if ${MK_LEGACY_CONSOLE} =3D=3D no >> +OLD_FILES+=3Detc/moused.conf >> OLD_FILES+=3Detc/rc.d/moused >> +OLD_FILES+=3Detc/rc.d/msconvd >> OLD_FILES+=3Detc/rc.d/syscons >> OLD_FILES+=3Dusr/sbin/kbdcontrol >> OLD_FILES+=3Dusr/sbin/kbdmap >> OLD_FILES+=3Dusr/sbin/moused >> +OLD_FILES+=3Dusr/sbin/msconvd >> OLD_FILES+=3Dusr/sbin/vidcontrol >> OLD_FILES+=3Dusr/sbin/vidfont >> OLD_FILES+=3Dusr/share/man/man1/kbdcontrol.1.gz >> @@ -3806,7 +3809,11 @@ OLD_FILES+=3Dusr/share/man/man1/vidcontrol.1.gz >> OLD_FILES+=3Dusr/share/man/man1/vidfont.1.gz >> OLD_FILES+=3Dusr/share/man/man5/kbdmap.5.gz >> OLD_FILES+=3Dusr/share/man/man5/keymap.5.gz >> +OLD_FILES+=3Dusr/share/man/man5/moused.conf.5.gz >> OLD_FILES+=3Dusr/share/man/man8/moused.8.gz >> +OLD_FILES+=3Dusr/share/man/man8/msconvd.8.gz >> +OLD_FILES+=3Dusr/share/moused/5-generic-touchpad.quirks >> +OLD_DIRS+=3Dusr/share/moused >> .endif >>=20 >> .for LIBCOMPAT libcompat in ${_ALL_LIBCOMPATS_libcompats} >> diff --git a/usr.sbin/moused/Makefile b/usr.sbin/moused/Makefile >> index 2a7aa0484542..b6319b6fef20 100644 >> --- a/usr.sbin/moused/Makefile >> +++ b/usr.sbin/moused/Makefile >> @@ -1,10 +1,4 @@ >> -PACKAGE=3D console-tools >> -PROG=3D moused >> -MAN=3D moused.8 >> +SUBDIR+=3Dmoused >> +SUBDIR+=3Dmsconvd >>=20 >> -LIBADD=3D m util >> - >> -#BINMODE=3D4555 >> -#PRECIOUSPROG=3D >> - >> -.include <bsd.prog.mk> >> +.include <bsd.subdir.mk> >> diff --git a/usr.sbin/moused/Makefile.depend = b/usr.sbin/moused/Makefile.depend >> deleted file mode 100644 >> index af3b7054df7a..000000000000 >> --- a/usr.sbin/moused/Makefile.depend >> +++ /dev/null >> @@ -1,17 +0,0 @@ >> -# Autogenerated - do NOT edit! >> - >> -DIRDEPS =3D \ >> - include \ >> - include/xlocale \ >> - lib/${CSU_DIR} \ >> - lib/libc \ >> - lib/libcompiler_rt \ >> - lib/libutil \ >> - lib/msun \ >> - >> - >> -.include <dirdeps.mk> >> - >> -.if ${DEP_RELDIR} =3D=3D ${_DEP_RELDIR} >> -# local dependencies - needed for -jN in clean tree >> -.endif >> diff --git a/usr.sbin/moused/moused/Makefile = b/usr.sbin/moused/moused/Makefile >> new file mode 100644 >> index 000000000000..8479764b710b >> --- /dev/null >> +++ b/usr.sbin/moused/moused/Makefile >> @@ -0,0 +1,28 @@ >> +PACKAGE=3D console-tools >> +PROG=3D moused >> + >> +SRCS=3D moused.c \ >> + event-names.h \ >> + quirks.c \ >> + quirks.h \ >> + util.c \ >> + util.h \ >> + util-evdev.c \ >> + util-evdev.h \ >> + util-list.c \ >> + util-list.h >> +MAN=3D moused.8 \ >> + moused.conf.5 >> +CONFS=3D moused.conf >> +QUIRKS=3D 5-generic-touchpad.quirks >> + >> +CWARNFLAGS.quirks.c+=3D -Wno-cast-align -Wno-shadow -Wno-cast-qual \ >> + -Wno-unused-variable -Wno-unused-parameter >> +CWARNFLAGS.util.c+=3D -Wno-shadow >> +LIBADD=3D m util >> +BINDIR=3D /usr/sbin >> + >> +FILES=3D ${QUIRKS:S|^|quirks/|} >> +FILESDIR=3D /usr/share/${PROG} >> + >> +.include <bsd.prog.mk> >> diff --git a/usr.sbin/moused/moused/event-names.h = b/usr.sbin/moused/moused/event-names.h >> new file mode 100644 >> index 000000000000..05093a1d0db3 >> --- /dev/null >> +++ b/usr.sbin/moused/moused/event-names.h >> @@ -0,0 +1,1656 @@ >> +/* THIS FILE IS GENERATED, DO NOT EDIT */ >> + >> +#ifndef EVENT_NAMES_H >> +#define EVENT_NAMES_H >> + >> +static const char * const ev_map[EV_MAX + 1] =3D { >> + [EV_SYN] =3D "EV_SYN", >> + [EV_KEY] =3D "EV_KEY", >> + [EV_REL] =3D "EV_REL", >> + [EV_ABS] =3D "EV_ABS", >> + [EV_MSC] =3D "EV_MSC", >> + [EV_SW] =3D "EV_SW", >> + [EV_LED] =3D "EV_LED", >> + [EV_SND] =3D "EV_SND", >> + [EV_REP] =3D "EV_REP", >> + [EV_FF] =3D "EV_FF", >> + [EV_PWR] =3D "EV_PWR", >> + [EV_FF_STATUS] =3D "EV_FF_STATUS", >> + [EV_MAX] =3D "EV_MAX", >> +}; >> + >> +static const char * const rel_map[REL_MAX + 1] =3D { >> + [REL_X] =3D "REL_X", >> + [REL_Y] =3D "REL_Y", >> + [REL_Z] =3D "REL_Z", >> + [REL_RX] =3D "REL_RX", >> + [REL_RY] =3D "REL_RY", >> + [REL_RZ] =3D "REL_RZ", >> + [REL_HWHEEL] =3D "REL_HWHEEL", >> + [REL_DIAL] =3D "REL_DIAL", >> + [REL_WHEEL] =3D "REL_WHEEL", >> + [REL_MISC] =3D "REL_MISC", >> + [REL_RESERVED] =3D "REL_RESERVED", >> + [REL_WHEEL_HI_RES] =3D "REL_WHEEL_HI_RES", >> + [REL_HWHEEL_HI_RES] =3D "REL_HWHEEL_HI_RES", >> + [REL_MAX] =3D "REL_MAX", >> +}; >> + >> +static const char * const abs_map[ABS_MAX + 1] =3D { >> + [ABS_X] =3D "ABS_X", >> + [ABS_Y] =3D "ABS_Y", >> + [ABS_Z] =3D "ABS_Z", >> + [ABS_RX] =3D "ABS_RX", >> + [ABS_RY] =3D "ABS_RY", >> + [ABS_RZ] =3D "ABS_RZ", >> + [ABS_THROTTLE] =3D "ABS_THROTTLE", >> + [ABS_RUDDER] =3D "ABS_RUDDER", >> + [ABS_WHEEL] =3D "ABS_WHEEL", >> + [ABS_GAS] =3D "ABS_GAS", >> + [ABS_BRAKE] =3D "ABS_BRAKE", >> + [ABS_HAT0X] =3D "ABS_HAT0X", >> + [ABS_HAT0Y] =3D "ABS_HAT0Y", >> + [ABS_HAT1X] =3D "ABS_HAT1X", >> + [ABS_HAT1Y] =3D "ABS_HAT1Y", >> + [ABS_HAT2X] =3D "ABS_HAT2X", >> + [ABS_HAT2Y] =3D "ABS_HAT2Y", >> + [ABS_HAT3X] =3D "ABS_HAT3X", >> + [ABS_HAT3Y] =3D "ABS_HAT3Y", >> + [ABS_PRESSURE] =3D "ABS_PRESSURE", >> + [ABS_DISTANCE] =3D "ABS_DISTANCE", >> + [ABS_TILT_X] =3D "ABS_TILT_X", >> + [ABS_TILT_Y] =3D "ABS_TILT_Y", >> + [ABS_TOOL_WIDTH] =3D "ABS_TOOL_WIDTH", >> + [ABS_VOLUME] =3D "ABS_VOLUME", >> + // [ABS_PROFILE] =3D "ABS_PROFILE", >> + [ABS_MISC] =3D "ABS_MISC", >> + [ABS_RESERVED] =3D "ABS_RESERVED", >> + [ABS_MT_SLOT] =3D "ABS_MT_SLOT", >> + [ABS_MT_TOUCH_MAJOR] =3D "ABS_MT_TOUCH_MAJOR", >> + [ABS_MT_TOUCH_MINOR] =3D "ABS_MT_TOUCH_MINOR", >> + [ABS_MT_WIDTH_MAJOR] =3D "ABS_MT_WIDTH_MAJOR", >> + [ABS_MT_WIDTH_MINOR] =3D "ABS_MT_WIDTH_MINOR", >> + [ABS_MT_ORIENTATION] =3D "ABS_MT_ORIENTATION", >> + [ABS_MT_POSITION_X] =3D "ABS_MT_POSITION_X", >> + [ABS_MT_POSITION_Y] =3D "ABS_MT_POSITION_Y", >> + [ABS_MT_TOOL_TYPE] =3D "ABS_MT_TOOL_TYPE", >> + [ABS_MT_BLOB_ID] =3D "ABS_MT_BLOB_ID", >> + [ABS_MT_TRACKING_ID] =3D "ABS_MT_TRACKING_ID", >> + [ABS_MT_PRESSURE] =3D "ABS_MT_PRESSURE", >> + [ABS_MT_DISTANCE] =3D "ABS_MT_DISTANCE", >> + [ABS_MT_TOOL_X] =3D "ABS_MT_TOOL_X", >> + [ABS_MT_TOOL_Y] =3D "ABS_MT_TOOL_Y", >> + [ABS_MAX] =3D "ABS_MAX", >> +}; >> + >> +static const char * const key_map[KEY_MAX + 1] =3D { >> + [KEY_RESERVED] =3D "KEY_RESERVED", >> + [KEY_ESC] =3D "KEY_ESC", >> + [KEY_1] =3D "KEY_1", >> + [KEY_2] =3D "KEY_2", >> + [KEY_3] =3D "KEY_3", >> + [KEY_4] =3D "KEY_4", >> + [KEY_5] =3D "KEY_5", >> + [KEY_6] =3D "KEY_6", >> + [KEY_7] =3D "KEY_7", >> + [KEY_8] =3D "KEY_8", >> + [KEY_9] =3D "KEY_9", >> + [KEY_0] =3D "KEY_0", >> + [KEY_MINUS] =3D "KEY_MINUS", >> + [KEY_EQUAL] =3D "KEY_EQUAL", >> + [KEY_BACKSPACE] =3D "KEY_BACKSPACE", >> + [KEY_TAB] =3D "KEY_TAB", >> + [KEY_Q] =3D "KEY_Q", >> + [KEY_W] =3D "KEY_W", >> + [KEY_E] =3D "KEY_E", >> + [KEY_R] =3D "KEY_R", >> + [KEY_T] =3D "KEY_T", >> + [KEY_Y] =3D "KEY_Y", >> + [KEY_U] =3D "KEY_U", >> + [KEY_I] =3D "KEY_I", >> + [KEY_O] =3D "KEY_O", >> + [KEY_P] =3D "KEY_P", >> + [KEY_LEFTBRACE] =3D "KEY_LEFTBRACE", >> + [KEY_RIGHTBRACE] =3D "KEY_RIGHTBRACE", >> + [KEY_ENTER] =3D "KEY_ENTER", >> + [KEY_LEFTCTRL] =3D "KEY_LEFTCTRL", >> + [KEY_A] =3D "KEY_A", >> + [KEY_S] =3D "KEY_S", >> + [KEY_D] =3D "KEY_D", >> + [KEY_F] =3D "KEY_F", >> + [KEY_G] =3D "KEY_G", >> + [KEY_H] =3D "KEY_H", >> + [KEY_J] =3D "KEY_J", >> + [KEY_K] =3D "KEY_K", >> + [KEY_L] =3D "KEY_L", >> + [KEY_SEMICOLON] =3D "KEY_SEMICOLON", >> + [KEY_APOSTROPHE] =3D "KEY_APOSTROPHE", >> + [KEY_GRAVE] =3D "KEY_GRAVE", >> + [KEY_LEFTSHIFT] =3D "KEY_LEFTSHIFT", >> + [KEY_BACKSLASH] =3D "KEY_BACKSLASH", >> + [KEY_Z] =3D "KEY_Z", >> + [KEY_X] =3D "KEY_X", >> + [KEY_C] =3D "KEY_C", >> + [KEY_V] =3D "KEY_V", >> + [KEY_B] =3D "KEY_B", >> + [KEY_N] =3D "KEY_N", >> + [KEY_M] =3D "KEY_M", >> + [KEY_COMMA] =3D "KEY_COMMA", >> + [KEY_DOT] =3D "KEY_DOT", >> + [KEY_SLASH] =3D "KEY_SLASH", >> + [KEY_RIGHTSHIFT] =3D "KEY_RIGHTSHIFT", >> + [KEY_KPASTERISK] =3D "KEY_KPASTERISK", >> + [KEY_LEFTALT] =3D "KEY_LEFTALT", >> + [KEY_SPACE] =3D "KEY_SPACE", >> + [KEY_CAPSLOCK] =3D "KEY_CAPSLOCK", >> + [KEY_F1] =3D "KEY_F1", >> + [KEY_F2] =3D "KEY_F2", >> + [KEY_F3] =3D "KEY_F3", >> + [KEY_F4] =3D "KEY_F4", >> + [KEY_F5] =3D "KEY_F5", >> + [KEY_F6] =3D "KEY_F6", >> + [KEY_F7] =3D "KEY_F7", >> + [KEY_F8] =3D "KEY_F8", >> + [KEY_F9] =3D "KEY_F9", >> + [KEY_F10] =3D "KEY_F10", >> + [KEY_NUMLOCK] =3D "KEY_NUMLOCK", >> + [KEY_SCROLLLOCK] =3D "KEY_SCROLLLOCK", >> + [KEY_KP7] =3D "KEY_KP7", >> + [KEY_KP8] =3D "KEY_KP8", >> + [KEY_KP9] =3D "KEY_KP9", >> + [KEY_KPMINUS] =3D "KEY_KPMINUS", >> + [KEY_KP4] =3D "KEY_KP4", >> + [KEY_KP5] =3D "KEY_KP5", >> + [KEY_KP6] =3D "KEY_KP6", >> + [KEY_KPPLUS] =3D "KEY_KPPLUS", >> + [KEY_KP1] =3D "KEY_KP1", >> + [KEY_KP2] =3D "KEY_KP2", >> + [KEY_KP3] =3D "KEY_KP3", >> + [KEY_KP0] =3D "KEY_KP0", >> + [KEY_KPDOT] =3D "KEY_KPDOT", >> + [KEY_ZENKAKUHANKAKU] =3D "KEY_ZENKAKUHANKAKU", >> + [KEY_102ND] =3D "KEY_102ND", >> + [KEY_F11] =3D "KEY_F11", >> + [KEY_F12] =3D "KEY_F12", >> + [KEY_RO] =3D "KEY_RO", >> + [KEY_KATAKANA] =3D "KEY_KATAKANA", >> + [KEY_HIRAGANA] =3D "KEY_HIRAGANA", >> + [KEY_HENKAN] =3D "KEY_HENKAN", >> + [KEY_KATAKANAHIRAGANA] =3D "KEY_KATAKANAHIRAGANA", >> + [KEY_MUHENKAN] =3D "KEY_MUHENKAN", >> + [KEY_KPJPCOMMA] =3D "KEY_KPJPCOMMA", >> + [KEY_KPENTER] =3D "KEY_KPENTER", >> + [KEY_RIGHTCTRL] =3D "KEY_RIGHTCTRL", >> + [KEY_KPSLASH] =3D "KEY_KPSLASH", >> + [KEY_SYSRQ] =3D "KEY_SYSRQ", >> + [KEY_RIGHTALT] =3D "KEY_RIGHTALT", >> + [KEY_LINEFEED] =3D "KEY_LINEFEED", >> + [KEY_HOME] =3D "KEY_HOME", >> + [KEY_UP] =3D "KEY_UP", >> + [KEY_PAGEUP] =3D "KEY_PAGEUP", >> + [KEY_LEFT] =3D "KEY_LEFT", >> + [KEY_RIGHT] =3D "KEY_RIGHT", >> + [KEY_END] =3D "KEY_END", >> + [KEY_DOWN] =3D "KEY_DOWN", >> + [KEY_PAGEDOWN] =3D "KEY_PAGEDOWN", >> + [KEY_INSERT] =3D "KEY_INSERT", >> + [KEY_DELETE] =3D "KEY_DELETE", >> + [KEY_MACRO] =3D "KEY_MACRO", >> + [KEY_MUTE] =3D "KEY_MUTE", >> + [KEY_VOLUMEDOWN] =3D "KEY_VOLUMEDOWN", >> + [KEY_VOLUMEUP] =3D "KEY_VOLUMEUP", >> + [KEY_POWER] =3D "KEY_POWER", >> + [KEY_KPEQUAL] =3D "KEY_KPEQUAL", >> + [KEY_KPPLUSMINUS] =3D "KEY_KPPLUSMINUS", >> + [KEY_PAUSE] =3D "KEY_PAUSE", >> + [KEY_SCALE] =3D "KEY_SCALE", >> + [KEY_KPCOMMA] =3D "KEY_KPCOMMA", >> + [KEY_HANGEUL] =3D "KEY_HANGEUL", >> + [KEY_HANJA] =3D "KEY_HANJA", >> + [KEY_YEN] =3D "KEY_YEN", >> + [KEY_LEFTMETA] =3D "KEY_LEFTMETA", >> + [KEY_RIGHTMETA] =3D "KEY_RIGHTMETA", >> + [KEY_COMPOSE] =3D "KEY_COMPOSE", >> + [KEY_STOP] =3D "KEY_STOP", >> + [KEY_AGAIN] =3D "KEY_AGAIN", >> + [KEY_PROPS] =3D "KEY_PROPS", >> + [KEY_UNDO] =3D "KEY_UNDO", >> + [KEY_FRONT] =3D "KEY_FRONT", >> + [KEY_COPY] =3D "KEY_COPY", >> + [KEY_OPEN] =3D "KEY_OPEN", >> + [KEY_PASTE] =3D "KEY_PASTE", >> + [KEY_FIND] =3D "KEY_FIND", >> + [KEY_CUT] =3D "KEY_CUT", >> + [KEY_HELP] =3D "KEY_HELP", >> + [KEY_MENU] =3D "KEY_MENU", >> + [KEY_CALC] =3D "KEY_CALC", >> + [KEY_SETUP] =3D "KEY_SETUP", >> + [KEY_SLEEP] =3D "KEY_SLEEP", >> + [KEY_WAKEUP] =3D "KEY_WAKEUP", >> + [KEY_FILE] =3D "KEY_FILE", >> + [KEY_SENDFILE] =3D "KEY_SENDFILE", >> + [KEY_DELETEFILE] =3D "KEY_DELETEFILE", >> + [KEY_XFER] =3D "KEY_XFER", >> + [KEY_PROG1] =3D "KEY_PROG1", >> + [KEY_PROG2] =3D "KEY_PROG2", >> + [KEY_WWW] =3D "KEY_WWW", >> + [KEY_MSDOS] =3D "KEY_MSDOS", >> + [KEY_COFFEE] =3D "KEY_COFFEE", >> + [KEY_ROTATE_DISPLAY] =3D "KEY_ROTATE_DISPLAY", >> + [KEY_CYCLEWINDOWS] =3D "KEY_CYCLEWINDOWS", >> + [KEY_MAIL] =3D "KEY_MAIL", >> + [KEY_BOOKMARKS] =3D "KEY_BOOKMARKS", >> + [KEY_COMPUTER] =3D "KEY_COMPUTER", >> + [KEY_BACK] =3D "KEY_BACK", >> + [KEY_FORWARD] =3D "KEY_FORWARD", >> + [KEY_CLOSECD] =3D "KEY_CLOSECD", >> + [KEY_EJECTCD] =3D "KEY_EJECTCD", >> + [KEY_EJECTCLOSECD] =3D "KEY_EJECTCLOSECD", >> + [KEY_NEXTSONG] =3D "KEY_NEXTSONG", >> + [KEY_PLAYPAUSE] =3D "KEY_PLAYPAUSE", >> + [KEY_PREVIOUSSONG] =3D "KEY_PREVIOUSSONG", >> + [KEY_STOPCD] =3D "KEY_STOPCD", >> + [KEY_RECORD] =3D "KEY_RECORD", >> + [KEY_REWIND] =3D "KEY_REWIND", >> + [KEY_PHONE] =3D "KEY_PHONE", >> + [KEY_ISO] =3D "KEY_ISO", >> + [KEY_CONFIG] =3D "KEY_CONFIG", >> + [KEY_HOMEPAGE] =3D "KEY_HOMEPAGE", >> + [KEY_REFRESH] =3D "KEY_REFRESH", >> + [KEY_EXIT] =3D "KEY_EXIT", >> + [KEY_MOVE] =3D "KEY_MOVE", >> + [KEY_EDIT] =3D "KEY_EDIT", >> + [KEY_SCROLLUP] =3D "KEY_SCROLLUP", >> + [KEY_SCROLLDOWN] =3D "KEY_SCROLLDOWN", >> + [KEY_KPLEFTPAREN] =3D "KEY_KPLEFTPAREN", >> + [KEY_KPRIGHTPAREN] =3D "KEY_KPRIGHTPAREN", >> + [KEY_NEW] =3D "KEY_NEW", >> + [KEY_REDO] =3D "KEY_REDO", >> + [KEY_F13] =3D "KEY_F13", >> + [KEY_F14] =3D "KEY_F14", >> + [KEY_F15] =3D "KEY_F15", >> + [KEY_F16] =3D "KEY_F16", >> + [KEY_F17] =3D "KEY_F17", >> + [KEY_F18] =3D "KEY_F18", >> + [KEY_F19] =3D "KEY_F19", >> + [KEY_F20] =3D "KEY_F20", >> + [KEY_F21] =3D "KEY_F21", >> + [KEY_F22] =3D "KEY_F22", >> + [KEY_F23] =3D "KEY_F23", >> + [KEY_F24] =3D "KEY_F24", >> + [KEY_PLAYCD] =3D "KEY_PLAYCD", >> + [KEY_PAUSECD] =3D "KEY_PAUSECD", >> + [KEY_PROG3] =3D "KEY_PROG3", >> + [KEY_PROG4] =3D "KEY_PROG4", >> + // [KEY_ALL_APPLICATIONS] =3D "KEY_ALL_APPLICATIONS", >> + [KEY_SUSPEND] =3D "KEY_SUSPEND", >> + [KEY_CLOSE] =3D "KEY_CLOSE", >> + [KEY_PLAY] =3D "KEY_PLAY", >> + [KEY_FASTFORWARD] =3D "KEY_FASTFORWARD", >> + [KEY_BASSBOOST] =3D "KEY_BASSBOOST", >> + [KEY_PRINT] =3D "KEY_PRINT", >> + [KEY_HP] =3D "KEY_HP", >> + [KEY_CAMERA] =3D "KEY_CAMERA", >> + [KEY_SOUND] =3D "KEY_SOUND", >> + [KEY_QUESTION] =3D "KEY_QUESTION", >> + [KEY_EMAIL] =3D "KEY_EMAIL", >> + [KEY_CHAT] =3D "KEY_CHAT", >> + [KEY_SEARCH] =3D "KEY_SEARCH", >> + [KEY_CONNECT] =3D "KEY_CONNECT", >> + [KEY_FINANCE] =3D "KEY_FINANCE", >> + [KEY_SPORT] =3D "KEY_SPORT", >> + [KEY_SHOP] =3D "KEY_SHOP", >> + [KEY_ALTERASE] =3D "KEY_ALTERASE", >> + [KEY_CANCEL] =3D "KEY_CANCEL", >> + [KEY_BRIGHTNESSDOWN] =3D "KEY_BRIGHTNESSDOWN", >> + [KEY_BRIGHTNESSUP] =3D "KEY_BRIGHTNESSUP", >> + [KEY_MEDIA] =3D "KEY_MEDIA", >> + [KEY_SWITCHVIDEOMODE] =3D "KEY_SWITCHVIDEOMODE", >> + [KEY_KBDILLUMTOGGLE] =3D "KEY_KBDILLUMTOGGLE", >> + [KEY_KBDILLUMDOWN] =3D "KEY_KBDILLUMDOWN", >> + [KEY_KBDILLUMUP] =3D "KEY_KBDILLUMUP", >> + [KEY_SEND] =3D "KEY_SEND", >> + [KEY_REPLY] =3D "KEY_REPLY", >> + [KEY_FORWARDMAIL] =3D "KEY_FORWARDMAIL", >> + [KEY_SAVE] =3D "KEY_SAVE", >> + [KEY_DOCUMENTS] =3D "KEY_DOCUMENTS", >> + [KEY_BATTERY] =3D "KEY_BATTERY", >> + [KEY_BLUETOOTH] =3D "KEY_BLUETOOTH", >> + [KEY_WLAN] =3D "KEY_WLAN", >> + [KEY_UWB] =3D "KEY_UWB", >> + [KEY_UNKNOWN] =3D "KEY_UNKNOWN", >> + [KEY_VIDEO_NEXT] =3D "KEY_VIDEO_NEXT", >> + [KEY_VIDEO_PREV] =3D "KEY_VIDEO_PREV", >> + [KEY_BRIGHTNESS_CYCLE] =3D "KEY_BRIGHTNESS_CYCLE", >> + [KEY_BRIGHTNESS_AUTO] =3D "KEY_BRIGHTNESS_AUTO", >> + [KEY_DISPLAY_OFF] =3D "KEY_DISPLAY_OFF", >> + [KEY_WWAN] =3D "KEY_WWAN", >> + [KEY_RFKILL] =3D "KEY_RFKILL", >> + [KEY_MICMUTE] =3D "KEY_MICMUTE", >> + [KEY_OK] =3D "KEY_OK", >> + [KEY_SELECT] =3D "KEY_SELECT", >> + [KEY_GOTO] =3D "KEY_GOTO", >> + [KEY_CLEAR] =3D "KEY_CLEAR", >> + [KEY_POWER2] =3D "KEY_POWER2", >> + [KEY_OPTION] =3D "KEY_OPTION", >> + [KEY_INFO] =3D "KEY_INFO", >> + [KEY_TIME] =3D "KEY_TIME", >> + [KEY_VENDOR] =3D "KEY_VENDOR", >> + [KEY_ARCHIVE] =3D "KEY_ARCHIVE", >> + [KEY_PROGRAM] =3D "KEY_PROGRAM", >> + [KEY_CHANNEL] =3D "KEY_CHANNEL", >> + [KEY_FAVORITES] =3D "KEY_FAVORITES", >> + [KEY_EPG] =3D "KEY_EPG", >> + [KEY_PVR] =3D "KEY_PVR", >> + [KEY_MHP] =3D "KEY_MHP", >> + [KEY_LANGUAGE] =3D "KEY_LANGUAGE", >> + [KEY_TITLE] =3D "KEY_TITLE", >> + [KEY_SUBTITLE] =3D "KEY_SUBTITLE", >> + [KEY_ANGLE] =3D "KEY_ANGLE", >> + [KEY_FULL_SCREEN] =3D "KEY_FULL_SCREEN", >> + [KEY_MODE] =3D "KEY_MODE", >> + [KEY_KEYBOARD] =3D "KEY_KEYBOARD", >> + [KEY_ASPECT_RATIO] =3D "KEY_ASPECT_RATIO", >> + [KEY_PC] =3D "KEY_PC", >> + [KEY_TV] =3D "KEY_TV", >> + [KEY_TV2] =3D "KEY_TV2", >> + [KEY_VCR] =3D "KEY_VCR", >> + [KEY_VCR2] =3D "KEY_VCR2", >> + [KEY_SAT] =3D "KEY_SAT", >> + [KEY_SAT2] =3D "KEY_SAT2", >> + [KEY_CD] =3D "KEY_CD", >> + [KEY_TAPE] =3D "KEY_TAPE", >> + [KEY_RADIO] =3D "KEY_RADIO", >> + [KEY_TUNER] =3D "KEY_TUNER", >> + [KEY_PLAYER] =3D "KEY_PLAYER", >> + [KEY_TEXT] =3D "KEY_TEXT", >> + [KEY_DVD] =3D "KEY_DVD", >> + [KEY_AUX] =3D "KEY_AUX", >> + [KEY_MP3] =3D "KEY_MP3", >> + [KEY_AUDIO] =3D "KEY_AUDIO", >> + [KEY_VIDEO] =3D "KEY_VIDEO", >> + [KEY_DIRECTORY] =3D "KEY_DIRECTORY", >> + [KEY_LIST] =3D "KEY_LIST", >> + [KEY_MEMO] =3D "KEY_MEMO", >> + [KEY_CALENDAR] =3D "KEY_CALENDAR", >> + [KEY_RED] =3D "KEY_RED", >> + [KEY_GREEN] =3D "KEY_GREEN", >> + [KEY_YELLOW] =3D "KEY_YELLOW", >> + [KEY_BLUE] =3D "KEY_BLUE", >> + [KEY_CHANNELUP] =3D "KEY_CHANNELUP", >> + [KEY_CHANNELDOWN] =3D "KEY_CHANNELDOWN", >> + [KEY_FIRST] =3D "KEY_FIRST", >> + [KEY_LAST] =3D "KEY_LAST", >> + [KEY_AB] =3D "KEY_AB", >> + [KEY_NEXT] =3D "KEY_NEXT", >> + [KEY_RESTART] =3D "KEY_RESTART", >> + [KEY_SLOW] =3D "KEY_SLOW", >> + [KEY_SHUFFLE] =3D "KEY_SHUFFLE", >> + [KEY_BREAK] =3D "KEY_BREAK", >> + [KEY_PREVIOUS] =3D "KEY_PREVIOUS", >> + [KEY_DIGITS] =3D "KEY_DIGITS", >> + [KEY_TEEN] =3D "KEY_TEEN", >> + [KEY_TWEN] =3D "KEY_TWEN", >> + [KEY_VIDEOPHONE] =3D "KEY_VIDEOPHONE", >> + [KEY_GAMES] =3D "KEY_GAMES", >> + [KEY_ZOOMIN] =3D "KEY_ZOOMIN", >> + [KEY_ZOOMOUT] =3D "KEY_ZOOMOUT", >> + [KEY_ZOOMRESET] =3D "KEY_ZOOMRESET", >> + [KEY_WORDPROCESSOR] =3D "KEY_WORDPROCESSOR", >> + [KEY_EDITOR] =3D "KEY_EDITOR", >> + [KEY_SPREADSHEET] =3D "KEY_SPREADSHEET", >> + [KEY_GRAPHICSEDITOR] =3D "KEY_GRAPHICSEDITOR", >> + [KEY_PRESENTATION] =3D "KEY_PRESENTATION", >> + [KEY_DATABASE] =3D "KEY_DATABASE", >> + [KEY_NEWS] =3D "KEY_NEWS", >> + [KEY_VOICEMAIL] =3D "KEY_VOICEMAIL", >> + [KEY_ADDRESSBOOK] =3D "KEY_ADDRESSBOOK", >> + [KEY_MESSENGER] =3D "KEY_MESSENGER", >> + [KEY_DISPLAYTOGGLE] =3D "KEY_DISPLAYTOGGLE", >> + [KEY_SPELLCHECK] =3D "KEY_SPELLCHECK", >> + [KEY_LOGOFF] =3D "KEY_LOGOFF", >> + [KEY_DOLLAR] =3D "KEY_DOLLAR", >> + [KEY_EURO] =3D "KEY_EURO", >> + [KEY_FRAMEBACK] =3D "KEY_FRAMEBACK", >> + [KEY_FRAMEFORWARD] =3D "KEY_FRAMEFORWARD", >> + [KEY_CONTEXT_MENU] =3D "KEY_CONTEXT_MENU", >> + [KEY_MEDIA_REPEAT] =3D "KEY_MEDIA_REPEAT", >> + [KEY_10CHANNELSUP] =3D "KEY_10CHANNELSUP", >> + [KEY_10CHANNELSDOWN] =3D "KEY_10CHANNELSDOWN", >> + [KEY_IMAGES] =3D "KEY_IMAGES", >> + // [KEY_NOTIFICATION_CENTER] =3D "KEY_NOTIFICATION_CENTER", >> + // [KEY_PICKUP_PHONE] =3D "KEY_PICKUP_PHONE", >> + // [KEY_HANGUP_PHONE] =3D "KEY_HANGUP_PHONE", >> + [KEY_DEL_EOL] =3D "KEY_DEL_EOL", >> + [KEY_DEL_EOS] =3D "KEY_DEL_EOS", >> + [KEY_INS_LINE] =3D "KEY_INS_LINE", >> + [KEY_DEL_LINE] =3D "KEY_DEL_LINE", >> + [KEY_FN] =3D "KEY_FN", >> + [KEY_FN_ESC] =3D "KEY_FN_ESC", >> + [KEY_FN_F1] =3D "KEY_FN_F1", >> + [KEY_FN_F2] =3D "KEY_FN_F2", >> + [KEY_FN_F3] =3D "KEY_FN_F3", >> + [KEY_FN_F4] =3D "KEY_FN_F4", >> + [KEY_FN_F5] =3D "KEY_FN_F5", >> + [KEY_FN_F6] =3D "KEY_FN_F6", >> + [KEY_FN_F7] =3D "KEY_FN_F7", >> + [KEY_FN_F8] =3D "KEY_FN_F8", >> + [KEY_FN_F9] =3D "KEY_FN_F9", >> + [KEY_FN_F10] =3D "KEY_FN_F10", >> + [KEY_FN_F11] =3D "KEY_FN_F11", >> + [KEY_FN_F12] =3D "KEY_FN_F12", >> + [KEY_FN_1] =3D "KEY_FN_1", >> + [KEY_FN_2] =3D "KEY_FN_2", >> + [KEY_FN_D] =3D "KEY_FN_D", >> + [KEY_FN_E] =3D "KEY_FN_E", >> + [KEY_FN_F] =3D "KEY_FN_F", >> + [KEY_FN_S] =3D "KEY_FN_S", >> + [KEY_FN_B] =3D "KEY_FN_B", >> + // [KEY_FN_RIGHT_SHIFT] =3D "KEY_FN_RIGHT_SHIFT", >> + [KEY_BRL_DOT1] =3D "KEY_BRL_DOT1", >> + [KEY_BRL_DOT2] =3D "KEY_BRL_DOT2", >> + [KEY_BRL_DOT3] =3D "KEY_BRL_DOT3", >> + [KEY_BRL_DOT4] =3D "KEY_BRL_DOT4", >> + [KEY_BRL_DOT5] =3D "KEY_BRL_DOT5", >> + [KEY_BRL_DOT6] =3D "KEY_BRL_DOT6", >> + [KEY_BRL_DOT7] =3D "KEY_BRL_DOT7", >> + [KEY_BRL_DOT8] =3D "KEY_BRL_DOT8", >> + [KEY_BRL_DOT9] =3D "KEY_BRL_DOT9", >> + [KEY_BRL_DOT10] =3D "KEY_BRL_DOT10", >> + [KEY_NUMERIC_0] =3D "KEY_NUMERIC_0", >> + [KEY_NUMERIC_1] =3D "KEY_NUMERIC_1", >> + [KEY_NUMERIC_2] =3D "KEY_NUMERIC_2", >> + [KEY_NUMERIC_3] =3D "KEY_NUMERIC_3", >> + [KEY_NUMERIC_4] =3D "KEY_NUMERIC_4", >> + [KEY_NUMERIC_5] =3D "KEY_NUMERIC_5", >> + [KEY_NUMERIC_6] =3D "KEY_NUMERIC_6", >> + [KEY_NUMERIC_7] =3D "KEY_NUMERIC_7", >> + [KEY_NUMERIC_8] =3D "KEY_NUMERIC_8", >> + [KEY_NUMERIC_9] =3D "KEY_NUMERIC_9", >> + [KEY_NUMERIC_STAR] =3D "KEY_NUMERIC_STAR", >> + [KEY_NUMERIC_POUND] =3D "KEY_NUMERIC_POUND", >> + [KEY_NUMERIC_A] =3D "KEY_NUMERIC_A", >> + [KEY_NUMERIC_B] =3D "KEY_NUMERIC_B", >> + [KEY_NUMERIC_C] =3D "KEY_NUMERIC_C", >> + [KEY_NUMERIC_D] =3D "KEY_NUMERIC_D", >> + [KEY_CAMERA_FOCUS] =3D "KEY_CAMERA_FOCUS", >> + [KEY_WPS_BUTTON] =3D "KEY_WPS_BUTTON", >> + [KEY_TOUCHPAD_TOGGLE] =3D "KEY_TOUCHPAD_TOGGLE", >> + [KEY_TOUCHPAD_ON] =3D "KEY_TOUCHPAD_ON", >> + [KEY_TOUCHPAD_OFF] =3D "KEY_TOUCHPAD_OFF", >> + [KEY_CAMERA_ZOOMIN] =3D "KEY_CAMERA_ZOOMIN", >> + [KEY_CAMERA_ZOOMOUT] =3D "KEY_CAMERA_ZOOMOUT", >> + [KEY_CAMERA_UP] =3D "KEY_CAMERA_UP", >> + [KEY_CAMERA_DOWN] =3D "KEY_CAMERA_DOWN", >> + [KEY_CAMERA_LEFT] =3D "KEY_CAMERA_LEFT", >> + [KEY_CAMERA_RIGHT] =3D "KEY_CAMERA_RIGHT", >> + [KEY_ATTENDANT_ON] =3D "KEY_ATTENDANT_ON", >> + [KEY_ATTENDANT_OFF] =3D "KEY_ATTENDANT_OFF", >> + [KEY_ATTENDANT_TOGGLE] =3D "KEY_ATTENDANT_TOGGLE", >> + [KEY_LIGHTS_TOGGLE] =3D "KEY_LIGHTS_TOGGLE", >> + [KEY_ALS_TOGGLE] =3D "KEY_ALS_TOGGLE", >> + [KEY_ROTATE_LOCK_TOGGLE] =3D "KEY_ROTATE_LOCK_TOGGLE", >> + [KEY_BUTTONCONFIG] =3D "KEY_BUTTONCONFIG", >> + [KEY_TASKMANAGER] =3D "KEY_TASKMANAGER", >> + [KEY_JOURNAL] =3D "KEY_JOURNAL", >> + [KEY_CONTROLPANEL] =3D "KEY_CONTROLPANEL", >> + [KEY_APPSELECT] =3D "KEY_APPSELECT", >> + [KEY_SCREENSAVER] =3D "KEY_SCREENSAVER", >> + [KEY_VOICECOMMAND] =3D "KEY_VOICECOMMAND", >> + [KEY_ASSISTANT] =3D "KEY_ASSISTANT", >> + [KEY_KBD_LAYOUT_NEXT] =3D "KEY_KBD_LAYOUT_NEXT", >> + // [KEY_EMOJI_PICKER] =3D "KEY_EMOJI_PICKER", >> + //[KEY_DICTATE] =3D "KEY_DICTATE", >> + //[KEY_CAMERA_ACCESS_ENABLE] =3D "KEY_CAMERA_ACCESS_ENABLE", >> + //[KEY_CAMERA_ACCESS_DISABLE] =3D "KEY_CAMERA_ACCESS_DISABLE", >> + //[KEY_CAMERA_ACCESS_TOGGLE] =3D "KEY_CAMERA_ACCESS_TOGGLE", >> + [KEY_BRIGHTNESS_MIN] =3D "KEY_BRIGHTNESS_MIN", >> + [KEY_BRIGHTNESS_MAX] =3D "KEY_BRIGHTNESS_MAX", >> + [KEY_KBDINPUTASSIST_PREV] =3D "KEY_KBDINPUTASSIST_PREV", >> + [KEY_KBDINPUTASSIST_NEXT] =3D "KEY_KBDINPUTASSIST_NEXT", >> + [KEY_KBDINPUTASSIST_PREVGROUP] =3D = "KEY_KBDINPUTASSIST_PREVGROUP", >> + [KEY_KBDINPUTASSIST_NEXTGROUP] =3D = "KEY_KBDINPUTASSIST_NEXTGROUP", >> + [KEY_KBDINPUTASSIST_ACCEPT] =3D "KEY_KBDINPUTASSIST_ACCEPT", >> + [KEY_KBDINPUTASSIST_CANCEL] =3D "KEY_KBDINPUTASSIST_CANCEL", >> + [KEY_RIGHT_UP] =3D "KEY_RIGHT_UP", >> + [KEY_RIGHT_DOWN] =3D "KEY_RIGHT_DOWN", >> + [KEY_LEFT_UP] =3D "KEY_LEFT_UP", >> + [KEY_LEFT_DOWN] =3D "KEY_LEFT_DOWN", >> + [KEY_ROOT_MENU] =3D "KEY_ROOT_MENU", >> + [KEY_MEDIA_TOP_MENU] =3D "KEY_MEDIA_TOP_MENU", >> + [KEY_NUMERIC_11] =3D "KEY_NUMERIC_11", >> + [KEY_NUMERIC_12] =3D "KEY_NUMERIC_12", >> + [KEY_AUDIO_DESC] =3D "KEY_AUDIO_DESC", >> + [KEY_3D_MODE] =3D "KEY_3D_MODE", >> + [KEY_NEXT_FAVORITE] =3D "KEY_NEXT_FAVORITE", >> + [KEY_STOP_RECORD] =3D "KEY_STOP_RECORD", >> + [KEY_PAUSE_RECORD] =3D "KEY_PAUSE_RECORD", >> + [KEY_VOD] =3D "KEY_VOD", >> + [KEY_UNMUTE] =3D "KEY_UNMUTE", >> + [KEY_FASTREVERSE] =3D "KEY_FASTREVERSE", >> + [KEY_SLOWREVERSE] =3D "KEY_SLOWREVERSE", >> + [KEY_DATA] =3D "KEY_DATA", >> + [KEY_ONSCREEN_KEYBOARD] =3D "KEY_ONSCREEN_KEYBOARD", >> + [KEY_PRIVACY_SCREEN_TOGGLE] =3D "KEY_PRIVACY_SCREEN_TOGGLE", >> + [KEY_SELECTIVE_SCREENSHOT] =3D "KEY_SELECTIVE_SCREENSHOT", >> + // [KEY_NEXT_ELEMENT] =3D "KEY_NEXT_ELEMENT", >> + // [KEY_PREVIOUS_ELEMENT] =3D "KEY_PREVIOUS_ELEMENT", >> + // [KEY_AUTOPILOT_ENGAGE_TOGGLE] =3D = "KEY_AUTOPILOT_ENGAGE_TOGGLE", >> + // [KEY_MARK_WAYPOINT] =3D "KEY_MARK_WAYPOINT", >> + // [KEY_SOS] =3D "KEY_SOS", >> + // [KEY_NAV_CHART] =3D "KEY_NAV_CHART", >> + // [KEY_FISHING_CHART] =3D "KEY_FISHING_CHART", >> + // [KEY_SINGLE_RANGE_RADAR] =3D "KEY_SINGLE_RANGE_RADAR", >> + // [KEY_DUAL_RANGE_RADAR] =3D "KEY_DUAL_RANGE_RADAR", >> + // [KEY_RADAR_OVERLAY] =3D "KEY_RADAR_OVERLAY", >> + // [KEY_TRADITIONAL_SONAR] =3D "KEY_TRADITIONAL_SONAR", >> + // [KEY_CLEARVU_SONAR] =3D "KEY_CLEARVU_SONAR", >> + // [KEY_SIDEVU_SONAR] =3D "KEY_SIDEVU_SONAR", >> + // [KEY_NAV_INFO] =3D "KEY_NAV_INFO", >> + // [KEY_BRIGHTNESS_MENU] =3D "KEY_BRIGHTNESS_MENU", >> + [KEY_MACRO1] =3D "KEY_MACRO1", >> + [KEY_MACRO2] =3D "KEY_MACRO2", >> + [KEY_MACRO3] =3D "KEY_MACRO3", >> + [KEY_MACRO4] =3D "KEY_MACRO4", >> + [KEY_MACRO5] =3D "KEY_MACRO5", >> + [KEY_MACRO6] =3D "KEY_MACRO6", >> + [KEY_MACRO7] =3D "KEY_MACRO7", >> + [KEY_MACRO8] =3D "KEY_MACRO8", >> + [KEY_MACRO9] =3D "KEY_MACRO9", >> + [KEY_MACRO10] =3D "KEY_MACRO10", >> + [KEY_MACRO11] =3D "KEY_MACRO11", >> + [KEY_MACRO12] =3D "KEY_MACRO12", >> + [KEY_MACRO13] =3D "KEY_MACRO13", >> + [KEY_MACRO14] =3D "KEY_MACRO14", >> + [KEY_MACRO15] =3D "KEY_MACRO15", >> + [KEY_MACRO16] =3D "KEY_MACRO16", >> + [KEY_MACRO17] =3D "KEY_MACRO17", >> + [KEY_MACRO18] =3D "KEY_MACRO18", >> + [KEY_MACRO19] =3D "KEY_MACRO19", >> + [KEY_MACRO20] =3D "KEY_MACRO20", >> + [KEY_MACRO21] =3D "KEY_MACRO21", >> + [KEY_MACRO22] =3D "KEY_MACRO22", >> + [KEY_MACRO23] =3D "KEY_MACRO23", >> + [KEY_MACRO24] =3D "KEY_MACRO24", >> + [KEY_MACRO25] =3D "KEY_MACRO25", >> + [KEY_MACRO26] =3D "KEY_MACRO26", >> + [KEY_MACRO27] =3D "KEY_MACRO27", >> + [KEY_MACRO28] =3D "KEY_MACRO28", >> + [KEY_MACRO29] =3D "KEY_MACRO29", >> + [KEY_MACRO30] =3D "KEY_MACRO30", >> + [KEY_MACRO_RECORD_START] =3D "KEY_MACRO_RECORD_START", >> + [KEY_MACRO_RECORD_STOP] =3D "KEY_MACRO_RECORD_STOP", >> + [KEY_MACRO_PRESET_CYCLE] =3D "KEY_MACRO_PRESET_CYCLE", >> + [KEY_MACRO_PRESET1] =3D "KEY_MACRO_PRESET1", >> + [KEY_MACRO_PRESET2] =3D "KEY_MACRO_PRESET2", >> + [KEY_MACRO_PRESET3] =3D "KEY_MACRO_PRESET3", >> + [KEY_KBD_LCD_MENU1] =3D "KEY_KBD_LCD_MENU1", >> + [KEY_KBD_LCD_MENU2] =3D "KEY_KBD_LCD_MENU2", >> + [KEY_KBD_LCD_MENU3] =3D "KEY_KBD_LCD_MENU3", >> + [KEY_KBD_LCD_MENU4] =3D "KEY_KBD_LCD_MENU4", >> + [KEY_KBD_LCD_MENU5] =3D "KEY_KBD_LCD_MENU5", >> + [KEY_MAX] =3D "KEY_MAX", >> + [BTN_0] =3D "BTN_0", >> + [BTN_1] =3D "BTN_1", >> + [BTN_2] =3D "BTN_2", >> + [BTN_3] =3D "BTN_3", >> + [BTN_4] =3D "BTN_4", >> + [BTN_5] =3D "BTN_5", >> + [BTN_6] =3D "BTN_6", >> + [BTN_7] =3D "BTN_7", >> + [BTN_8] =3D "BTN_8", >> + [BTN_9] =3D "BTN_9", >> + [BTN_LEFT] =3D "BTN_LEFT", >> + [BTN_RIGHT] =3D "BTN_RIGHT", >> + [BTN_MIDDLE] =3D "BTN_MIDDLE", >> + [BTN_SIDE] =3D "BTN_SIDE", >> + [BTN_EXTRA] =3D "BTN_EXTRA", >> + [BTN_FORWARD] =3D "BTN_FORWARD", >> + [BTN_BACK] =3D "BTN_BACK", >> + [BTN_TASK] =3D "BTN_TASK", >> + [BTN_TRIGGER] =3D "BTN_TRIGGER", >> + [BTN_THUMB] =3D "BTN_THUMB", >> + [BTN_THUMB2] =3D "BTN_THUMB2", >> + [BTN_TOP] =3D "BTN_TOP", >> + [BTN_TOP2] =3D "BTN_TOP2", >> + [BTN_PINKIE] =3D "BTN_PINKIE", >> + [BTN_BASE] =3D "BTN_BASE", >> + [BTN_BASE2] =3D "BTN_BASE2", >> + [BTN_BASE3] =3D "BTN_BASE3", >> + [BTN_BASE4] =3D "BTN_BASE4", >> + [BTN_BASE5] =3D "BTN_BASE5", >> + [BTN_BASE6] =3D "BTN_BASE6", >> + [BTN_DEAD] =3D "BTN_DEAD", >> + [BTN_SOUTH] =3D "BTN_SOUTH", >> + [BTN_EAST] =3D "BTN_EAST", >> + [BTN_C] =3D "BTN_C", >> + [BTN_NORTH] =3D "BTN_NORTH", >> + [BTN_WEST] =3D "BTN_WEST", >> + [BTN_Z] =3D "BTN_Z", >> + [BTN_TL] =3D "BTN_TL", >> + [BTN_TR] =3D "BTN_TR", >> + [BTN_TL2] =3D "BTN_TL2", >> + [BTN_TR2] =3D "BTN_TR2", >> + [BTN_SELECT] =3D "BTN_SELECT", >> + [BTN_START] =3D "BTN_START", >> + [BTN_MODE] =3D "BTN_MODE", >> + [BTN_THUMBL] =3D "BTN_THUMBL", >> + [BTN_THUMBR] =3D "BTN_THUMBR", >> + [BTN_TOOL_PEN] =3D "BTN_TOOL_PEN", >> + [BTN_TOOL_RUBBER] =3D "BTN_TOOL_RUBBER", >> + [BTN_TOOL_BRUSH] =3D "BTN_TOOL_BRUSH", >> + [BTN_TOOL_PENCIL] =3D "BTN_TOOL_PENCIL", >> + [BTN_TOOL_AIRBRUSH] =3D "BTN_TOOL_AIRBRUSH", >> + [BTN_TOOL_FINGER] =3D "BTN_TOOL_FINGER", >> + [BTN_TOOL_MOUSE] =3D "BTN_TOOL_MOUSE", >> + [BTN_TOOL_LENS] =3D "BTN_TOOL_LENS", >> + [BTN_TOOL_QUINTTAP] =3D "BTN_TOOL_QUINTTAP", >> + [BTN_STYLUS3] =3D "BTN_STYLUS3", >> + [BTN_TOUCH] =3D "BTN_TOUCH", >> + [BTN_STYLUS] =3D "BTN_STYLUS", >> + [BTN_STYLUS2] =3D "BTN_STYLUS2", >> + [BTN_TOOL_DOUBLETAP] =3D "BTN_TOOL_DOUBLETAP", >> + [BTN_TOOL_TRIPLETAP] =3D "BTN_TOOL_TRIPLETAP", >> + [BTN_TOOL_QUADTAP] =3D "BTN_TOOL_QUADTAP", >> + [BTN_GEAR_DOWN] =3D "BTN_GEAR_DOWN", >> + [BTN_GEAR_UP] =3D "BTN_GEAR_UP", >> + [BTN_DPAD_UP] =3D "BTN_DPAD_UP", >> + [BTN_DPAD_DOWN] =3D "BTN_DPAD_DOWN", >> + [BTN_DPAD_LEFT] =3D "BTN_DPAD_LEFT", >> + [BTN_DPAD_RIGHT] =3D "BTN_DPAD_RIGHT", >> + [BTN_TRIGGER_HAPPY1] =3D "BTN_TRIGGER_HAPPY1", >> + [BTN_TRIGGER_HAPPY2] =3D "BTN_TRIGGER_HAPPY2", >> + [BTN_TRIGGER_HAPPY3] =3D "BTN_TRIGGER_HAPPY3", >> + [BTN_TRIGGER_HAPPY4] =3D "BTN_TRIGGER_HAPPY4", >> + [BTN_TRIGGER_HAPPY5] =3D "BTN_TRIGGER_HAPPY5", >> + [BTN_TRIGGER_HAPPY6] =3D "BTN_TRIGGER_HAPPY6", >> + [BTN_TRIGGER_HAPPY7] =3D "BTN_TRIGGER_HAPPY7", >> + [BTN_TRIGGER_HAPPY8] =3D "BTN_TRIGGER_HAPPY8", >> + [BTN_TRIGGER_HAPPY9] =3D "BTN_TRIGGER_HAPPY9", >> + [BTN_TRIGGER_HAPPY10] =3D "BTN_TRIGGER_HAPPY10", >> + [BTN_TRIGGER_HAPPY11] =3D "BTN_TRIGGER_HAPPY11", >> + [BTN_TRIGGER_HAPPY12] =3D "BTN_TRIGGER_HAPPY12", >> + [BTN_TRIGGER_HAPPY13] =3D "BTN_TRIGGER_HAPPY13", >> + [BTN_TRIGGER_HAPPY14] =3D "BTN_TRIGGER_HAPPY14", >> + [BTN_TRIGGER_HAPPY15] =3D "BTN_TRIGGER_HAPPY15", >> + [BTN_TRIGGER_HAPPY16] =3D "BTN_TRIGGER_HAPPY16", >> + [BTN_TRIGGER_HAPPY17] =3D "BTN_TRIGGER_HAPPY17", >> + [BTN_TRIGGER_HAPPY18] =3D "BTN_TRIGGER_HAPPY18", >> + [BTN_TRIGGER_HAPPY19] =3D "BTN_TRIGGER_HAPPY19", >> + [BTN_TRIGGER_HAPPY20] =3D "BTN_TRIGGER_HAPPY20", >> + [BTN_TRIGGER_HAPPY21] =3D "BTN_TRIGGER_HAPPY21", >> + [BTN_TRIGGER_HAPPY22] =3D "BTN_TRIGGER_HAPPY22", >> + [BTN_TRIGGER_HAPPY23] =3D "BTN_TRIGGER_HAPPY23", >> + [BTN_TRIGGER_HAPPY24] =3D "BTN_TRIGGER_HAPPY24", >> + [BTN_TRIGGER_HAPPY25] =3D "BTN_TRIGGER_HAPPY25", >> + [BTN_TRIGGER_HAPPY26] =3D "BTN_TRIGGER_HAPPY26", >> + [BTN_TRIGGER_HAPPY27] =3D "BTN_TRIGGER_HAPPY27", >> + [BTN_TRIGGER_HAPPY28] =3D "BTN_TRIGGER_HAPPY28", >> + [BTN_TRIGGER_HAPPY29] =3D "BTN_TRIGGER_HAPPY29", >> + [BTN_TRIGGER_HAPPY30] =3D "BTN_TRIGGER_HAPPY30", >> + [BTN_TRIGGER_HAPPY31] =3D "BTN_TRIGGER_HAPPY31", >> + [BTN_TRIGGER_HAPPY32] =3D "BTN_TRIGGER_HAPPY32", >> + [BTN_TRIGGER_HAPPY33] =3D "BTN_TRIGGER_HAPPY33", >> + [BTN_TRIGGER_HAPPY34] =3D "BTN_TRIGGER_HAPPY34", >> + [BTN_TRIGGER_HAPPY35] =3D "BTN_TRIGGER_HAPPY35", >> + [BTN_TRIGGER_HAPPY36] =3D "BTN_TRIGGER_HAPPY36", >> + [BTN_TRIGGER_HAPPY37] =3D "BTN_TRIGGER_HAPPY37", >> + [BTN_TRIGGER_HAPPY38] =3D "BTN_TRIGGER_HAPPY38", >> + [BTN_TRIGGER_HAPPY39] =3D "BTN_TRIGGER_HAPPY39", >> + [BTN_TRIGGER_HAPPY40] =3D "BTN_TRIGGER_HAPPY40", >> +}; >> + >> +static const char * const led_map[LED_MAX + 1] =3D { >> + [LED_NUML] =3D "LED_NUML", >> + [LED_CAPSL] =3D "LED_CAPSL", >> *** 11201 LINES SKIPPED *** >>=20 >=20 > make buildworld fails to build due to this error: >=20 > [...] > c++ -target x86_64-unknown-freebsd16.0 = --sysroot=3D/usr/obj/usr/src/amd64.amd64/tmp > -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -fpie -O2 -pipe = -fno-common -march=3Dnative -I. > -I/usr/src/sbin/devd -fPIE -DNDEBUG -MD -MF.depend.devd.pieo = -MTdevd.pieo > -Wno-format-zero-length -fstack-protector-strong -Wsystem-headers = -Wall -Wno-format-y2k -W > -Wno-unused-parameter -Wpointer-arith -Wreturn-type -Wcast-qual = -Wwrite-strings -Wswitch > -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Wdate-time > -Wmissing-variable-declarations -Wthread-safety -Wno-empty-body = -Wno-string-plus-int > -Wno-unused-const-variable -Wno-error=3Dunused-but-set-parameter > -Wno-error=3Dcast-function-type-mismatch = -Wno-missing-variable-declarations -Qunused-arguments > -march=3Dnative -fPIE -std=3Dgnu++17 -c = /usr/src/sbin/devd/devd.cc -o devd.pieo > /usr/src/sbin/devd/devd.cc:1228:2: error: "Remove this gross hack" = 1228 | #error "Remove this > gross hack" | ^ 1 error generated. *** Error code 1 Unrelated. This is because __FreeBSD_version was bumped now 15 branched, and this was left in to scream at people to do something for FreeBSD 16. I guess that worked, though a bit of an unfortunate way to start the 16 cycle :) Jessica
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4AC13FF6-98EB-41C9-83EC-E8B9FB6A1093>