FreeBSD Bugzilla – Attachment 200661 Details for
Bug 222905
x11/libinput: Update to 1.12.6
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Update x11/libinput to 1.12.4
ports.x11.libinput.1.12.4.svn.diff (text/plain), 143.91 KB, created by
Niclas Zeising
on 2018-12-31 16:37:27 UTC
(
hide
)
Description:
Update x11/libinput to 1.12.4
Filename:
MIME Type:
Creator:
Niclas Zeising
Created:
2018-12-31 16:37:27 UTC
Size:
143.91 KB
patch
obsolete
>Index: x11/libinput/Makefile >=================================================================== >--- x11/libinput/Makefile (revision 488799) >+++ x11/libinput/Makefile (working copy) >@@ -1,7 +1,7 @@ > # $FreeBSD$ > > PORTNAME= libinput >-PORTVERSION= 1.11.3 >+PORTVERSION= 1.12.4 > CATEGORIES= x11 > MASTER_SITES= http://freedesktop.org/software/${PORTNAME}/ > >@@ -11,7 +11,6 @@ > LICENSE= MIT > LICENSE_FILE= ${WRKSRC}/COPYING > >-BUILD_DEPENDS= ${LOCALBASE}/include/linux/input.h:devel/evdev-proto > RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}evdev>0:devel/py-evdev@${PY_FLAVOR} \ > ${PYTHON_PKGNAMEPREFIX}pyudev>0:devel/py-pyudev@${PY_FLAVOR} > LIB_DEPENDS= libevdev.so:devel/libevdev \ >@@ -20,25 +19,25 @@ > libmtdev.so:devel/libmtdev > > USES= localbase meson pkgconfig python:3.4+,run shebangfix tar:xz >+USE_LDCONFIG= yes > > MESON_ARGS+= -Ddocumentation=false -Dtests=false >-INSTALL_TARGET= install-strip > > python_OLD_CMD= "/usr/bin/env python3" >-SHEBANG_FILES= tools/libinput-measure-fuzz \ >- tools/libinput-measure-touch-size \ >- tools/libinput-measure-touchpad-pressure \ >- tools/libinput-measure-touchpad-tap \ >- tools/libinput-measure-trackpoint-range \ >+SHEBANG_FILES= tools/libinput-measure-fuzz.py \ >+ tools/libinput-measure-touch-size.py \ >+ tools/libinput-measure-touchpad-pressure.py \ >+ tools/libinput-measure-touchpad-tap.py \ > tools/libinput-replay > > OPTIONS_DEFINE= DEBUG_GUI LIBWACOM > OPTIONS_DEFAULT=LIBWACOM > OPTIONS_SUB= yes >- >+ > DEBUG_GUI_DESC= Build the GUI event viewer > LIBWACOM_DESC= Libwacom support > >+DEBUG_GUI_USES= gnome > DEBUG_GUI_USE= GNOME=gtk30,glib20,cairo > DEBUG_GUI_MESON_TRUE= debug-gui > LIBWACOM_LIB_DEPENDS= libwacom.so:x11/libwacom >Index: x11/libinput/distinfo >=================================================================== >--- x11/libinput/distinfo (revision 488799) >+++ x11/libinput/distinfo (working copy) >@@ -1,3 +1,3 @@ >-TIMESTAMP = 1532702018 >-SHA256 (libinput-1.11.3.tar.xz) = f31191d96e425b4f16319842279d65946d9d983dcd3d9e466ae1206aa10ecb06 >-SIZE (libinput-1.11.3.tar.xz) = 487408 >+TIMESTAMP = 1546272208 >+SHA256 (libinput-1.12.4.tar.xz) = a4f329641c2e2d98199840f99792f646a3041256a380d074e00200991fcb31e6 >+SIZE (libinput-1.12.4.tar.xz) = 519596 >Index: x11/libinput/files/patch-0e03784e.c >=================================================================== >--- x11/libinput/files/patch-0e03784e.c (revision 488799) >+++ x11/libinput/files/patch-0e03784e.c (nonexistent) >@@ -1,35 +0,0 @@ >-diff --git a/meson.build b/meson.build >-index 9ff17117a9f6c79bb50362d6db6507ba56c20136..e3d81daeead3dd0c04fd67df5354d82a832d396e 100644 >---- meson.build >-+++ meson.build >-@@ -87,6 +87,10 @@ if cc.has_header_symbol('dirent.h', 'versionsort', prefix : prefix) >- config_h.set('HAVE_VERSIONSORT', '1') >- endif >- >-+if cc.has_header('xlocale.h') >-+ config_h.set('HAVE_XLOCALE_H', '1') >-+endif >-+ >- # Dependencies >- pkgconfig = import('pkgconfig') >- dep_udev = dependency('libudev') >-diff --git a/src/libinput-util.h b/src/libinput-util.h >-index c68b888ad7385d159a1bc35c3b2bf7d324cde44c..85166ca568dd1813f78c98798dbe090cd7486236 100644 >---- src/libinput-util.h >-+++ src/libinput-util.h >-@@ -31,11 +31,15 @@ >- #include <errno.h> >- #include <limits.h> >- #include <locale.h> >-+#ifdef HAVE_XLOCALE_H >-+#include <xlocale.h> >-+#endif >- #include <math.h> >- #include <stdarg.h> >- #include <stdbool.h> >- #include <stddef.h> >- #include <stdio.h> >-+#include <stdlib.h> >- #include <string.h> >- #include <time.h> >- #include <unistd.h> > >Property changes on: x11/libinput/files/patch-0e03784e.c >___________________________________________________________________ >Deleted: fbsd:nokeywords >## -1 +0,0 ## >-yes >\ No newline at end of property >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Deleted: svn:mime-type >## -1 +0,0 ## >-text/plain >\ No newline at end of property >Index: x11/libinput/files/patch-4e3ea4b8.c >=================================================================== >--- x11/libinput/files/patch-4e3ea4b8.c (revision 488799) >+++ x11/libinput/files/patch-4e3ea4b8.c (nonexistent) >@@ -1,73 +0,0 @@ >-diff --git a/meson.build b/meson.build >-index b9de1119fae84730288d5766e4be1056adb6817f..fc5371bb7e73363b3a11bc5992d6846b93a3b3d5 100644 >---- meson.build >-+++ meson.build >-@@ -96,6 +98,8 @@ endif >- >- ############ udev bits ############ >- >-+if false >-+ >- udev_dir = get_option('udev-dir') >- if udev_dir == '' >- udev_dir = join_paths(get_option('prefix'), 'lib', 'udev') >-@@ -173,6 +173,36 @@ litest_groups_rules_file = configure_file(input : 'udev/80-libinput-device-group >- install : false, >- configuration : litest_udev_rules_config) >- >-+endif >-+ >-+############ libepoll-shim (BSD) ############ >-+ >-+if cc.has_header_symbol('sys/epoll.h', 'epoll_create1', prefix : prefix) >-+ # epoll is built-in (Linux, illumos) >-+ dep_libepoll = declare_dependency() >-+else >-+ # epoll is implemented in userspace by libepoll-shim (FreeBSD) >-+ dir_libepoll = get_option('epoll-dir') >-+ if dir_libepoll == '' >-+ dir_libepoll = get_option('prefix') >-+ endif >-+ includes_epoll = include_directories(join_paths(dir_libepoll, 'include/libepoll-shim')) >-+ dep_libepoll = cc.find_library('epoll-shim', dirs : join_paths(dir_libepoll, 'lib')) >-+ code = ''' >-+ #include <sys/epoll.h> >-+ int main(void) { epoll_create1(0); } >-+ ''' >-+ if not cc.links(code, >-+ name : 'libepoll-shim check', >-+ dependencies : [dep_libepoll, dep_rt], >-+ include_directories : includes_epoll) # note: wants an include_directories object >-+ error('No built-in epoll or libepoll-shim found.') >-+ endif >-+ dep_libepoll = declare_dependency( >-+ include_directories : includes_epoll, >-+ dependencies : [dep_libepoll, dep_rt]) >-+endif >-+ >- ############ libinput-util.a ############ >- src_libinput_util = [ >- 'src/libinput-util.c', >-@@ -286,6 +314,7 @@ deps_libinput = [ >- dep_mtdev, >- dep_udev, >- dep_libevdev, >-+ dep_libepoll, >- dep_lm, >- dep_rt, >- dep_libwacom, >-diff --git a/meson_options.txt b/meson_options.txt >-index 280cf49f18710211c32c98580f7b2ecaa4b00a88..fd0149657e3635f768195485d38413a31d20e956 100644 >---- meson_options.txt >-+++ meson_options.txt >-@@ -2,6 +2,10 @@ option('udev-dir', >- type: 'string', >- value: '', >- description: 'udev base directory [default=$prefix/lib/udev]') >-+option('epoll-dir', >-+ type: 'string', >-+ value: '', >-+ description: 'libepoll-shim base directory (for non-Linux OS) [default=$prefix]') >- option('libwacom', >- type: 'boolean', >- value: true, > >Property changes on: x11/libinput/files/patch-4e3ea4b8.c >___________________________________________________________________ >Deleted: fbsd:nokeywords >## -1 +0,0 ## >-yes >\ No newline at end of property >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Deleted: svn:mime-type >## -1 +0,0 ## >-text/plain >\ No newline at end of property >Index: x11/libinput/files/patch-61f3e385.c >=================================================================== >--- x11/libinput/files/patch-61f3e385.c (revision 488799) >+++ x11/libinput/files/patch-61f3e385.c (nonexistent) >@@ -1,4069 +0,0 @@ >-diff --git a/include/linux/freebsd/input-event-codes.h b/include/linux/freebsd/input-event-codes.h >-new file mode 100644 >-index 00000000..9771e4f8 >---- /dev/null >-+++ include/linux/freebsd/input-event-codes.h >-@@ -0,0 +1,837 @@ >-+/* >-+ * Input event codes >-+ * >-+ * *** IMPORTANT *** >-+ * This file is not only included from C-code but also from devicetree source >-+ * files. As such this file MUST only contain comments and defines. >-+ * >-+ * Copyright (c) 1999-2002 Vojtech Pavlik >-+ * Copyright (c) 2015 Hans de Goede <hdegoede@redhat.com> >-+ * >-+ * This program is free software; you can redistribute it and/or modify it >-+ * under the terms of the GNU General Public License version 2 as published by >-+ * the Free Software Foundation. >-+ */ >-+#ifndef _UAPI_INPUT_EVENT_CODES_H >-+#define _UAPI_INPUT_EVENT_CODES_H >-+ >-+/* >-+ * Device properties and quirks >-+ */ >-+ >-+#define INPUT_PROP_POINTER 0x00 /* needs a pointer */ >-+#define INPUT_PROP_DIRECT 0x01 /* direct input devices */ >-+#define INPUT_PROP_BUTTONPAD 0x02 /* has button(s) under pad */ >-+#define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ >-+#define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ >-+#define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ >-+#define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */ >-+ >-+#define INPUT_PROP_MAX 0x1f >-+#define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) >-+ >-+/* >-+ * Event types >-+ */ >-+ >-+#define EV_SYN 0x00 >-+#define EV_KEY 0x01 >-+#define EV_REL 0x02 >-+#define EV_ABS 0x03 >-+#define EV_MSC 0x04 >-+#define EV_SW 0x05 >-+#define EV_LED 0x11 >-+#define EV_SND 0x12 >-+#define EV_REP 0x14 >-+#define EV_FF 0x15 >-+#define EV_PWR 0x16 >-+#define EV_FF_STATUS 0x17 >-+#define EV_MAX 0x1f >-+#define EV_CNT (EV_MAX+1) >-+ >-+/* >-+ * Synchronization events. >-+ */ >-+ >-+#define SYN_REPORT 0 >-+#define SYN_CONFIG 1 >-+#define SYN_MT_REPORT 2 >-+#define SYN_DROPPED 3 >-+#define SYN_MAX 0xf >-+#define SYN_CNT (SYN_MAX+1) >-+ >-+/* >-+ * Keys and buttons >-+ * >-+ * Most of the keys/buttons are modeled after USB HUT 1.12 >-+ * (see http://www.usb.org/developers/hidpage). >-+ * Abbreviations in the comments: >-+ * AC - Application Control >-+ * AL - Application Launch Button >-+ * SC - System Control >-+ */ >-+ >-+#define KEY_RESERVED 0 >-+#define KEY_ESC 1 >-+#define KEY_1 2 >-+#define KEY_2 3 >-+#define KEY_3 4 >-+#define KEY_4 5 >-+#define KEY_5 6 >-+#define KEY_6 7 >-+#define KEY_7 8 >-+#define KEY_8 9 >-+#define KEY_9 10 >-+#define KEY_0 11 >-+#define KEY_MINUS 12 >-+#define KEY_EQUAL 13 >-+#define KEY_BACKSPACE 14 >-+#define KEY_TAB 15 >-+#define KEY_Q 16 >-+#define KEY_W 17 >-+#define KEY_E 18 >-+#define KEY_R 19 >-+#define KEY_T 20 >-+#define KEY_Y 21 >-+#define KEY_U 22 >-+#define KEY_I 23 >-+#define KEY_O 24 >-+#define KEY_P 25 >-+#define KEY_LEFTBRACE 26 >-+#define KEY_RIGHTBRACE 27 >-+#define KEY_ENTER 28 >-+#define KEY_LEFTCTRL 29 >-+#define KEY_A 30 >-+#define KEY_S 31 >-+#define KEY_D 32 >-+#define KEY_F 33 >-+#define KEY_G 34 >-+#define KEY_H 35 >-+#define KEY_J 36 >-+#define KEY_K 37 >-+#define KEY_L 38 >-+#define KEY_SEMICOLON 39 >-+#define KEY_APOSTROPHE 40 >-+#define KEY_GRAVE 41 >-+#define KEY_LEFTSHIFT 42 >-+#define KEY_BACKSLASH 43 >-+#define KEY_Z 44 >-+#define KEY_X 45 >-+#define KEY_C 46 >-+#define KEY_V 47 >-+#define KEY_B 48 >-+#define KEY_N 49 >-+#define KEY_M 50 >-+#define KEY_COMMA 51 >-+#define KEY_DOT 52 >-+#define KEY_SLASH 53 >-+#define KEY_RIGHTSHIFT 54 >-+#define KEY_KPASTERISK 55 >-+#define KEY_LEFTALT 56 >-+#define KEY_SPACE 57 >-+#define KEY_CAPSLOCK 58 >-+#define KEY_F1 59 >-+#define KEY_F2 60 >-+#define KEY_F3 61 >-+#define KEY_F4 62 >-+#define KEY_F5 63 >-+#define KEY_F6 64 >-+#define KEY_F7 65 >-+#define KEY_F8 66 >-+#define KEY_F9 67 >-+#define KEY_F10 68 >-+#define KEY_NUMLOCK 69 >-+#define KEY_SCROLLLOCK 70 >-+#define KEY_KP7 71 >-+#define KEY_KP8 72 >-+#define KEY_KP9 73 >-+#define KEY_KPMINUS 74 >-+#define KEY_KP4 75 >-+#define KEY_KP5 76 >-+#define KEY_KP6 77 >-+#define KEY_KPPLUS 78 >-+#define KEY_KP1 79 >-+#define KEY_KP2 80 >-+#define KEY_KP3 81 >-+#define KEY_KP0 82 >-+#define KEY_KPDOT 83 >-+ >-+#define KEY_ZENKAKUHANKAKU 85 >-+#define KEY_102ND 86 >-+#define KEY_F11 87 >-+#define KEY_F12 88 >-+#define KEY_RO 89 >-+#define KEY_KATAKANA 90 >-+#define KEY_HIRAGANA 91 >-+#define KEY_HENKAN 92 >-+#define KEY_KATAKANAHIRAGANA 93 >-+#define KEY_MUHENKAN 94 >-+#define KEY_KPJPCOMMA 95 >-+#define KEY_KPENTER 96 >-+#define KEY_RIGHTCTRL 97 >-+#define KEY_KPSLASH 98 >-+#define KEY_SYSRQ 99 >-+#define KEY_RIGHTALT 100 >-+#define KEY_LINEFEED 101 >-+#define KEY_HOME 102 >-+#define KEY_UP 103 >-+#define KEY_PAGEUP 104 >-+#define KEY_LEFT 105 >-+#define KEY_RIGHT 106 >-+#define KEY_END 107 >-+#define KEY_DOWN 108 >-+#define KEY_PAGEDOWN 109 >-+#define KEY_INSERT 110 >-+#define KEY_DELETE 111 >-+#define KEY_MACRO 112 >-+#define KEY_MUTE 113 >-+#define KEY_VOLUMEDOWN 114 >-+#define KEY_VOLUMEUP 115 >-+#define KEY_POWER 116 /* SC System Power Down */ >-+#define KEY_KPEQUAL 117 >-+#define KEY_KPPLUSMINUS 118 >-+#define KEY_PAUSE 119 >-+#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */ >-+ >-+#define KEY_KPCOMMA 121 >-+#define KEY_HANGEUL 122 >-+#define KEY_HANGUEL KEY_HANGEUL >-+#define KEY_HANJA 123 >-+#define KEY_YEN 124 >-+#define KEY_LEFTMETA 125 >-+#define KEY_RIGHTMETA 126 >-+#define KEY_COMPOSE 127 >-+ >-+#define KEY_STOP 128 /* AC Stop */ >-+#define KEY_AGAIN 129 >-+#define KEY_PROPS 130 /* AC Properties */ >-+#define KEY_UNDO 131 /* AC Undo */ >-+#define KEY_FRONT 132 >-+#define KEY_COPY 133 /* AC Copy */ >-+#define KEY_OPEN 134 /* AC Open */ >-+#define KEY_PASTE 135 /* AC Paste */ >-+#define KEY_FIND 136 /* AC Search */ >-+#define KEY_CUT 137 /* AC Cut */ >-+#define KEY_HELP 138 /* AL Integrated Help Center */ >-+#define KEY_MENU 139 /* Menu (show menu) */ >-+#define KEY_CALC 140 /* AL Calculator */ >-+#define KEY_SETUP 141 >-+#define KEY_SLEEP 142 /* SC System Sleep */ >-+#define KEY_WAKEUP 143 /* System Wake Up */ >-+#define KEY_FILE 144 /* AL Local Machine Browser */ >-+#define KEY_SENDFILE 145 >-+#define KEY_DELETEFILE 146 >-+#define KEY_XFER 147 >-+#define KEY_PROG1 148 >-+#define KEY_PROG2 149 >-+#define KEY_WWW 150 /* AL Internet Browser */ >-+#define KEY_MSDOS 151 >-+#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */ >-+#define KEY_SCREENLOCK KEY_COFFEE >-+#define KEY_ROTATE_DISPLAY 153 /* Display orientation for e.g. tablets */ >-+#define KEY_DIRECTION KEY_ROTATE_DISPLAY >-+#define KEY_CYCLEWINDOWS 154 >-+#define KEY_MAIL 155 >-+#define KEY_BOOKMARKS 156 /* AC Bookmarks */ >-+#define KEY_COMPUTER 157 >-+#define KEY_BACK 158 /* AC Back */ >-+#define KEY_FORWARD 159 /* AC Forward */ >-+#define KEY_CLOSECD 160 >-+#define KEY_EJECTCD 161 >-+#define KEY_EJECTCLOSECD 162 >-+#define KEY_NEXTSONG 163 >-+#define KEY_PLAYPAUSE 164 >-+#define KEY_PREVIOUSSONG 165 >-+#define KEY_STOPCD 166 >-+#define KEY_RECORD 167 >-+#define KEY_REWIND 168 >-+#define KEY_PHONE 169 /* Media Select Telephone */ >-+#define KEY_ISO 170 >-+#define KEY_CONFIG 171 /* AL Consumer Control Configuration */ >-+#define KEY_HOMEPAGE 172 /* AC Home */ >-+#define KEY_REFRESH 173 /* AC Refresh */ >-+#define KEY_EXIT 174 /* AC Exit */ >-+#define KEY_MOVE 175 >-+#define KEY_EDIT 176 >-+#define KEY_SCROLLUP 177 >-+#define KEY_SCROLLDOWN 178 >-+#define KEY_KPLEFTPAREN 179 >-+#define KEY_KPRIGHTPAREN 180 >-+#define KEY_NEW 181 /* AC New */ >-+#define KEY_REDO 182 /* AC Redo/Repeat */ >-+ >-+#define KEY_F13 183 >-+#define KEY_F14 184 >-+#define KEY_F15 185 >-+#define KEY_F16 186 >-+#define KEY_F17 187 >-+#define KEY_F18 188 >-+#define KEY_F19 189 >-+#define KEY_F20 190 >-+#define KEY_F21 191 >-+#define KEY_F22 192 >-+#define KEY_F23 193 >-+#define KEY_F24 194 >-+ >-+#define KEY_PLAYCD 200 >-+#define KEY_PAUSECD 201 >-+#define KEY_PROG3 202 >-+#define KEY_PROG4 203 >-+#define KEY_DASHBOARD 204 /* AL Dashboard */ >-+#define KEY_SUSPEND 205 >-+#define KEY_CLOSE 206 /* AC Close */ >-+#define KEY_PLAY 207 >-+#define KEY_FASTFORWARD 208 >-+#define KEY_BASSBOOST 209 >-+#define KEY_PRINT 210 /* AC Print */ >-+#define KEY_HP 211 >-+#define KEY_CAMERA 212 >-+#define KEY_SOUND 213 >-+#define KEY_QUESTION 214 >-+#define KEY_EMAIL 215 >-+#define KEY_CHAT 216 >-+#define KEY_SEARCH 217 >-+#define KEY_CONNECT 218 >-+#define KEY_FINANCE 219 /* AL Checkbook/Finance */ >-+#define KEY_SPORT 220 >-+#define KEY_SHOP 221 >-+#define KEY_ALTERASE 222 >-+#define KEY_CANCEL 223 /* AC Cancel */ >-+#define KEY_BRIGHTNESSDOWN 224 >-+#define KEY_BRIGHTNESSUP 225 >-+#define KEY_MEDIA 226 >-+ >-+#define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video >-+ outputs (Monitor/LCD/TV-out/etc) */ >-+#define KEY_KBDILLUMTOGGLE 228 >-+#define KEY_KBDILLUMDOWN 229 >-+#define KEY_KBDILLUMUP 230 >-+ >-+#define KEY_SEND 231 /* AC Send */ >-+#define KEY_REPLY 232 /* AC Reply */ >-+#define KEY_FORWARDMAIL 233 /* AC Forward Msg */ >-+#define KEY_SAVE 234 /* AC Save */ >-+#define KEY_DOCUMENTS 235 >-+ >-+#define KEY_BATTERY 236 >-+ >-+#define KEY_BLUETOOTH 237 >-+#define KEY_WLAN 238 >-+#define KEY_UWB 239 >-+ >-+#define KEY_UNKNOWN 240 >-+ >-+#define KEY_VIDEO_NEXT 241 /* drive next video source */ >-+#define KEY_VIDEO_PREV 242 /* drive previous video source */ >-+#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */ >-+#define KEY_BRIGHTNESS_AUTO 244 /* Set Auto Brightness: manual >-+ brightness control is off, >-+ rely on ambient */ >-+#define KEY_BRIGHTNESS_ZERO KEY_BRIGHTNESS_AUTO >-+#define KEY_DISPLAY_OFF 245 /* display device to off state */ >-+ >-+#define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */ >-+#define KEY_WIMAX KEY_WWAN >-+#define KEY_RFKILL 247 /* Key that controls all radios */ >-+ >-+#define KEY_MICMUTE 248 /* Mute / unmute the microphone */ >-+ >-+/* Code 255 is reserved for special needs of AT keyboard driver */ >-+ >-+#define BTN_MISC 0x100 >-+#define BTN_0 0x100 >-+#define BTN_1 0x101 >-+#define BTN_2 0x102 >-+#define BTN_3 0x103 >-+#define BTN_4 0x104 >-+#define BTN_5 0x105 >-+#define BTN_6 0x106 >-+#define BTN_7 0x107 >-+#define BTN_8 0x108 >-+#define BTN_9 0x109 >-+ >-+#define BTN_MOUSE 0x110 >-+#define BTN_LEFT 0x110 >-+#define BTN_RIGHT 0x111 >-+#define BTN_MIDDLE 0x112 >-+#define BTN_SIDE 0x113 >-+#define BTN_EXTRA 0x114 >-+#define BTN_FORWARD 0x115 >-+#define BTN_BACK 0x116 >-+#define BTN_TASK 0x117 >-+ >-+#define BTN_JOYSTICK 0x120 >-+#define BTN_TRIGGER 0x120 >-+#define BTN_THUMB 0x121 >-+#define BTN_THUMB2 0x122 >-+#define BTN_TOP 0x123 >-+#define BTN_TOP2 0x124 >-+#define BTN_PINKIE 0x125 >-+#define BTN_BASE 0x126 >-+#define BTN_BASE2 0x127 >-+#define BTN_BASE3 0x128 >-+#define BTN_BASE4 0x129 >-+#define BTN_BASE5 0x12a >-+#define BTN_BASE6 0x12b >-+#define BTN_DEAD 0x12f >-+ >-+#define BTN_GAMEPAD 0x130 >-+#define BTN_SOUTH 0x130 >-+#define BTN_A BTN_SOUTH >-+#define BTN_EAST 0x131 >-+#define BTN_B BTN_EAST >-+#define BTN_C 0x132 >-+#define BTN_NORTH 0x133 >-+#define BTN_X BTN_NORTH >-+#define BTN_WEST 0x134 >-+#define BTN_Y BTN_WEST >-+#define BTN_Z 0x135 >-+#define BTN_TL 0x136 >-+#define BTN_TR 0x137 >-+#define BTN_TL2 0x138 >-+#define BTN_TR2 0x139 >-+#define BTN_SELECT 0x13a >-+#define BTN_START 0x13b >-+#define BTN_MODE 0x13c >-+#define BTN_THUMBL 0x13d >-+#define BTN_THUMBR 0x13e >-+ >-+#define BTN_DIGI 0x140 >-+#define BTN_TOOL_PEN 0x140 >-+#define BTN_TOOL_RUBBER 0x141 >-+#define BTN_TOOL_BRUSH 0x142 >-+#define BTN_TOOL_PENCIL 0x143 >-+#define BTN_TOOL_AIRBRUSH 0x144 >-+#define BTN_TOOL_FINGER 0x145 >-+#define BTN_TOOL_MOUSE 0x146 >-+#define BTN_TOOL_LENS 0x147 >-+#define BTN_TOOL_QUINTTAP 0x148 /* Five fingers on trackpad */ >-+#define BTN_TOUCH 0x14a >-+#define BTN_STYLUS 0x14b >-+#define BTN_STYLUS2 0x14c >-+#define BTN_TOOL_DOUBLETAP 0x14d >-+#define BTN_TOOL_TRIPLETAP 0x14e >-+#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */ >-+ >-+#define BTN_WHEEL 0x150 >-+#define BTN_GEAR_DOWN 0x150 >-+#define BTN_GEAR_UP 0x151 >-+ >-+#define KEY_OK 0x160 >-+#define KEY_SELECT 0x161 >-+#define KEY_GOTO 0x162 >-+#define KEY_CLEAR 0x163 >-+#define KEY_POWER2 0x164 >-+#define KEY_OPTION 0x165 >-+#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */ >-+#define KEY_TIME 0x167 >-+#define KEY_VENDOR 0x168 >-+#define KEY_ARCHIVE 0x169 >-+#define KEY_PROGRAM 0x16a /* Media Select Program Guide */ >-+#define KEY_CHANNEL 0x16b >-+#define KEY_FAVORITES 0x16c >-+#define KEY_EPG 0x16d >-+#define KEY_PVR 0x16e /* Media Select Home */ >-+#define KEY_MHP 0x16f >-+#define KEY_LANGUAGE 0x170 >-+#define KEY_TITLE 0x171 >-+#define KEY_SUBTITLE 0x172 >-+#define KEY_ANGLE 0x173 >-+#define KEY_ZOOM 0x174 >-+#define KEY_MODE 0x175 >-+#define KEY_KEYBOARD 0x176 >-+#define KEY_SCREEN 0x177 >-+#define KEY_PC 0x178 /* Media Select Computer */ >-+#define KEY_TV 0x179 /* Media Select TV */ >-+#define KEY_TV2 0x17a /* Media Select Cable */ >-+#define KEY_VCR 0x17b /* Media Select VCR */ >-+#define KEY_VCR2 0x17c /* VCR Plus */ >-+#define KEY_SAT 0x17d /* Media Select Satellite */ >-+#define KEY_SAT2 0x17e >-+#define KEY_CD 0x17f /* Media Select CD */ >-+#define KEY_TAPE 0x180 /* Media Select Tape */ >-+#define KEY_RADIO 0x181 >-+#define KEY_TUNER 0x182 /* Media Select Tuner */ >-+#define KEY_PLAYER 0x183 >-+#define KEY_TEXT 0x184 >-+#define KEY_DVD 0x185 /* Media Select DVD */ >-+#define KEY_AUX 0x186 >-+#define KEY_MP3 0x187 >-+#define KEY_AUDIO 0x188 /* AL Audio Browser */ >-+#define KEY_VIDEO 0x189 /* AL Movie Browser */ >-+#define KEY_DIRECTORY 0x18a >-+#define KEY_LIST 0x18b >-+#define KEY_MEMO 0x18c /* Media Select Messages */ >-+#define KEY_CALENDAR 0x18d >-+#define KEY_RED 0x18e >-+#define KEY_GREEN 0x18f >-+#define KEY_YELLOW 0x190 >-+#define KEY_BLUE 0x191 >-+#define KEY_CHANNELUP 0x192 /* Channel Increment */ >-+#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */ >-+#define KEY_FIRST 0x194 >-+#define KEY_LAST 0x195 /* Recall Last */ >-+#define KEY_AB 0x196 >-+#define KEY_NEXT 0x197 >-+#define KEY_RESTART 0x198 >-+#define KEY_SLOW 0x199 >-+#define KEY_SHUFFLE 0x19a >-+#define KEY_BREAK 0x19b >-+#define KEY_PREVIOUS 0x19c >-+#define KEY_DIGITS 0x19d >-+#define KEY_TEEN 0x19e >-+#define KEY_TWEN 0x19f >-+#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */ >-+#define KEY_GAMES 0x1a1 /* Media Select Games */ >-+#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */ >-+#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */ >-+#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */ >-+#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */ >-+#define KEY_EDITOR 0x1a6 /* AL Text Editor */ >-+#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */ >-+#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */ >-+#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */ >-+#define KEY_DATABASE 0x1aa /* AL Database App */ >-+#define KEY_NEWS 0x1ab /* AL Newsreader */ >-+#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */ >-+#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */ >-+#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */ >-+#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */ >-+#define KEY_BRIGHTNESS_TOGGLE KEY_DISPLAYTOGGLE >-+#define KEY_SPELLCHECK 0x1b0 /* AL Spell Check */ >-+#define KEY_LOGOFF 0x1b1 /* AL Logoff */ >-+ >-+#define KEY_DOLLAR 0x1b2 >-+#define KEY_EURO 0x1b3 >-+ >-+#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */ >-+#define KEY_FRAMEFORWARD 0x1b5 >-+#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */ >-+#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */ >-+#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */ >-+#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */ >-+#define KEY_IMAGES 0x1ba /* AL Image Browser */ >-+ >-+#define KEY_DEL_EOL 0x1c0 >-+#define KEY_DEL_EOS 0x1c1 >-+#define KEY_INS_LINE 0x1c2 >-+#define KEY_DEL_LINE 0x1c3 >-+ >-+#define KEY_FN 0x1d0 >-+#define KEY_FN_ESC 0x1d1 >-+#define KEY_FN_F1 0x1d2 >-+#define KEY_FN_F2 0x1d3 >-+#define KEY_FN_F3 0x1d4 >-+#define KEY_FN_F4 0x1d5 >-+#define KEY_FN_F5 0x1d6 >-+#define KEY_FN_F6 0x1d7 >-+#define KEY_FN_F7 0x1d8 >-+#define KEY_FN_F8 0x1d9 >-+#define KEY_FN_F9 0x1da >-+#define KEY_FN_F10 0x1db >-+#define KEY_FN_F11 0x1dc >-+#define KEY_FN_F12 0x1dd >-+#define KEY_FN_1 0x1de >-+#define KEY_FN_2 0x1df >-+#define KEY_FN_D 0x1e0 >-+#define KEY_FN_E 0x1e1 >-+#define KEY_FN_F 0x1e2 >-+#define KEY_FN_S 0x1e3 >-+#define KEY_FN_B 0x1e4 >-+ >-+#define KEY_BRL_DOT1 0x1f1 >-+#define KEY_BRL_DOT2 0x1f2 >-+#define KEY_BRL_DOT3 0x1f3 >-+#define KEY_BRL_DOT4 0x1f4 >-+#define KEY_BRL_DOT5 0x1f5 >-+#define KEY_BRL_DOT6 0x1f6 >-+#define KEY_BRL_DOT7 0x1f7 >-+#define KEY_BRL_DOT8 0x1f8 >-+#define KEY_BRL_DOT9 0x1f9 >-+#define KEY_BRL_DOT10 0x1fa >-+ >-+#define KEY_NUMERIC_0 0x200 /* used by phones, remote controls, */ >-+#define KEY_NUMERIC_1 0x201 /* and other keypads */ >-+#define KEY_NUMERIC_2 0x202 >-+#define KEY_NUMERIC_3 0x203 >-+#define KEY_NUMERIC_4 0x204 >-+#define KEY_NUMERIC_5 0x205 >-+#define KEY_NUMERIC_6 0x206 >-+#define KEY_NUMERIC_7 0x207 >-+#define KEY_NUMERIC_8 0x208 >-+#define KEY_NUMERIC_9 0x209 >-+#define KEY_NUMERIC_STAR 0x20a >-+#define KEY_NUMERIC_POUND 0x20b >-+#define KEY_NUMERIC_A 0x20c /* Phone key A - HUT Telephony 0xb9 */ >-+#define KEY_NUMERIC_B 0x20d >-+#define KEY_NUMERIC_C 0x20e >-+#define KEY_NUMERIC_D 0x20f >-+ >-+#define KEY_CAMERA_FOCUS 0x210 >-+#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */ >-+ >-+#define KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */ >-+#define KEY_TOUCHPAD_ON 0x213 >-+#define KEY_TOUCHPAD_OFF 0x214 >-+ >-+#define KEY_CAMERA_ZOOMIN 0x215 >-+#define KEY_CAMERA_ZOOMOUT 0x216 >-+#define KEY_CAMERA_UP 0x217 >-+#define KEY_CAMERA_DOWN 0x218 >-+#define KEY_CAMERA_LEFT 0x219 >-+#define KEY_CAMERA_RIGHT 0x21a >-+ >-+#define KEY_ATTENDANT_ON 0x21b >-+#define KEY_ATTENDANT_OFF 0x21c >-+#define KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */ >-+#define KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */ >-+ >-+#define BTN_DPAD_UP 0x220 >-+#define BTN_DPAD_DOWN 0x221 >-+#define BTN_DPAD_LEFT 0x222 >-+#define BTN_DPAD_RIGHT 0x223 >-+ >-+#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ >-+ >-+#define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ >-+#define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ >-+#define KEY_JOURNAL 0x242 /* AL Log/Journal/Timecard */ >-+#define KEY_CONTROLPANEL 0x243 /* AL Control Panel */ >-+#define KEY_APPSELECT 0x244 /* AL Select Task/Application */ >-+#define KEY_SCREENSAVER 0x245 /* AL Screen Saver */ >-+#define KEY_VOICECOMMAND 0x246 /* Listening Voice Command */ >-+ >-+#define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ >-+#define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ >-+ >-+#define KEY_KBDINPUTASSIST_PREV 0x260 >-+#define KEY_KBDINPUTASSIST_NEXT 0x261 >-+#define KEY_KBDINPUTASSIST_PREVGROUP 0x262 >-+#define KEY_KBDINPUTASSIST_NEXTGROUP 0x263 >-+#define KEY_KBDINPUTASSIST_ACCEPT 0x264 >-+#define KEY_KBDINPUTASSIST_CANCEL 0x265 >-+ >-+/* Diagonal movement keys */ >-+#define KEY_RIGHT_UP 0x266 >-+#define KEY_RIGHT_DOWN 0x267 >-+#define KEY_LEFT_UP 0x268 >-+#define KEY_LEFT_DOWN 0x269 >-+ >-+#define KEY_ROOT_MENU 0x26a /* Show Device's Root Menu */ >-+/* Show Top Menu of the Media (e.g. DVD) */ >-+#define KEY_MEDIA_TOP_MENU 0x26b >-+#define KEY_NUMERIC_11 0x26c >-+#define KEY_NUMERIC_12 0x26d >-+/* >-+ * Toggle Audio Description: refers to an audio service that helps blind and >-+ * visually impaired consumers understand the action in a program. Note: in >-+ * some countries this is referred to as "Video Description". >-+ */ >-+#define KEY_AUDIO_DESC 0x26e >-+#define KEY_3D_MODE 0x26f >-+#define KEY_NEXT_FAVORITE 0x270 >-+#define KEY_STOP_RECORD 0x271 >-+#define KEY_PAUSE_RECORD 0x272 >-+#define KEY_VOD 0x273 /* Video on Demand */ >-+#define KEY_UNMUTE 0x274 >-+#define KEY_FASTREVERSE 0x275 >-+#define KEY_SLOWREVERSE 0x276 >-+/* >-+ * Control a data application associated with the currently viewed channel, >-+ * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.) >-+ */ >-+#define KEY_DATA 0x277 >-+#define KEY_ONSCREEN_KEYBOARD 0x278 >-+ >-+#define BTN_TRIGGER_HAPPY 0x2c0 >-+#define BTN_TRIGGER_HAPPY1 0x2c0 >-+#define BTN_TRIGGER_HAPPY2 0x2c1 >-+#define BTN_TRIGGER_HAPPY3 0x2c2 >-+#define BTN_TRIGGER_HAPPY4 0x2c3 >-+#define BTN_TRIGGER_HAPPY5 0x2c4 >-+#define BTN_TRIGGER_HAPPY6 0x2c5 >-+#define BTN_TRIGGER_HAPPY7 0x2c6 >-+#define BTN_TRIGGER_HAPPY8 0x2c7 >-+#define BTN_TRIGGER_HAPPY9 0x2c8 >-+#define BTN_TRIGGER_HAPPY10 0x2c9 >-+#define BTN_TRIGGER_HAPPY11 0x2ca >-+#define BTN_TRIGGER_HAPPY12 0x2cb >-+#define BTN_TRIGGER_HAPPY13 0x2cc >-+#define BTN_TRIGGER_HAPPY14 0x2cd >-+#define BTN_TRIGGER_HAPPY15 0x2ce >-+#define BTN_TRIGGER_HAPPY16 0x2cf >-+#define BTN_TRIGGER_HAPPY17 0x2d0 >-+#define BTN_TRIGGER_HAPPY18 0x2d1 >-+#define BTN_TRIGGER_HAPPY19 0x2d2 >-+#define BTN_TRIGGER_HAPPY20 0x2d3 >-+#define BTN_TRIGGER_HAPPY21 0x2d4 >-+#define BTN_TRIGGER_HAPPY22 0x2d5 >-+#define BTN_TRIGGER_HAPPY23 0x2d6 >-+#define BTN_TRIGGER_HAPPY24 0x2d7 >-+#define BTN_TRIGGER_HAPPY25 0x2d8 >-+#define BTN_TRIGGER_HAPPY26 0x2d9 >-+#define BTN_TRIGGER_HAPPY27 0x2da >-+#define BTN_TRIGGER_HAPPY28 0x2db >-+#define BTN_TRIGGER_HAPPY29 0x2dc >-+#define BTN_TRIGGER_HAPPY30 0x2dd >-+#define BTN_TRIGGER_HAPPY31 0x2de >-+#define BTN_TRIGGER_HAPPY32 0x2df >-+#define BTN_TRIGGER_HAPPY33 0x2e0 >-+#define BTN_TRIGGER_HAPPY34 0x2e1 >-+#define BTN_TRIGGER_HAPPY35 0x2e2 >-+#define BTN_TRIGGER_HAPPY36 0x2e3 >-+#define BTN_TRIGGER_HAPPY37 0x2e4 >-+#define BTN_TRIGGER_HAPPY38 0x2e5 >-+#define BTN_TRIGGER_HAPPY39 0x2e6 >-+#define BTN_TRIGGER_HAPPY40 0x2e7 >-+ >-+/* We avoid low common keys in module aliases so they don't get huge. */ >-+#define KEY_MIN_INTERESTING KEY_MUTE >-+#define KEY_MAX 0x2ff >-+#define KEY_CNT (KEY_MAX+1) >-+ >-+/* >-+ * Relative axes >-+ */ >-+ >-+#define REL_X 0x00 >-+#define REL_Y 0x01 >-+#define REL_Z 0x02 >-+#define REL_RX 0x03 >-+#define REL_RY 0x04 >-+#define REL_RZ 0x05 >-+#define REL_HWHEEL 0x06 >-+#define REL_DIAL 0x07 >-+#define REL_WHEEL 0x08 >-+#define REL_MISC 0x09 >-+#define REL_MAX 0x0f >-+#define REL_CNT (REL_MAX+1) >-+ >-+/* >-+ * Absolute axes >-+ */ >-+ >-+#define ABS_X 0x00 >-+#define ABS_Y 0x01 >-+#define ABS_Z 0x02 >-+#define ABS_RX 0x03 >-+#define ABS_RY 0x04 >-+#define ABS_RZ 0x05 >-+#define ABS_THROTTLE 0x06 >-+#define ABS_RUDDER 0x07 >-+#define ABS_WHEEL 0x08 >-+#define ABS_GAS 0x09 >-+#define ABS_BRAKE 0x0a >-+#define ABS_HAT0X 0x10 >-+#define ABS_HAT0Y 0x11 >-+#define ABS_HAT1X 0x12 >-+#define ABS_HAT1Y 0x13 >-+#define ABS_HAT2X 0x14 >-+#define ABS_HAT2Y 0x15 >-+#define ABS_HAT3X 0x16 >-+#define ABS_HAT3Y 0x17 >-+#define ABS_PRESSURE 0x18 >-+#define ABS_DISTANCE 0x19 >-+#define ABS_TILT_X 0x1a >-+#define ABS_TILT_Y 0x1b >-+#define ABS_TOOL_WIDTH 0x1c >-+ >-+#define ABS_VOLUME 0x20 >-+ >-+#define ABS_MISC 0x28 >-+ >-+#define ABS_MT_SLOT 0x2f /* MT slot being modified */ >-+#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */ >-+#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */ >-+#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */ >-+#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */ >-+#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */ >-+#define ABS_MT_POSITION_X 0x35 /* Center X touch position */ >-+#define ABS_MT_POSITION_Y 0x36 /* Center Y touch position */ >-+#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ >-+#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ >-+#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ >-+#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */ >-+#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */ >-+#define ABS_MT_TOOL_X 0x3c /* Center X tool position */ >-+#define ABS_MT_TOOL_Y 0x3d /* Center Y tool position */ >-+ >-+#define ABS_MAX 0x3f >-+#define ABS_CNT (ABS_MAX+1) >-+ >-+/* >-+ * Switch events >-+ */ >-+ >-+#define SW_LID 0x00 /* set = lid shut */ >-+#define SW_TABLET_MODE 0x01 /* set = tablet mode */ >-+#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ >-+#define SW_RFKILL_ALL 0x03 /* rfkill master switch, type "any" >-+ set = radio enabled */ >-+#define SW_RADIO SW_RFKILL_ALL /* deprecated */ >-+#define SW_MICROPHONE_INSERT 0x04 /* set = inserted */ >-+#define SW_DOCK 0x05 /* set = plugged into dock */ >-+#define SW_LINEOUT_INSERT 0x06 /* set = inserted */ >-+#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */ >-+#define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */ >-+#define SW_CAMERA_LENS_COVER 0x09 /* set = lens covered */ >-+#define SW_KEYPAD_SLIDE 0x0a /* set = keypad slide out */ >-+#define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */ >-+#define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */ >-+#define SW_LINEIN_INSERT 0x0d /* set = inserted */ >-+#define SW_MUTE_DEVICE 0x0e /* set = device disabled */ >-+#define SW_PEN_INSERTED 0x0f /* set = pen inserted */ >-+#define SW_MAX 0x0f >-+#define SW_CNT (SW_MAX+1) >-+ >-+/* >-+ * Misc events >-+ */ >-+ >-+#define MSC_SERIAL 0x00 >-+#define MSC_PULSELED 0x01 >-+#define MSC_GESTURE 0x02 >-+#define MSC_RAW 0x03 >-+#define MSC_SCAN 0x04 >-+#define MSC_TIMESTAMP 0x05 >-+#define MSC_MAX 0x07 >-+#define MSC_CNT (MSC_MAX+1) >-+ >-+/* >-+ * LEDs >-+ */ >-+ >-+#define LED_NUML 0x00 >-+#define LED_CAPSL 0x01 >-+#define LED_SCROLLL 0x02 >-+#define LED_COMPOSE 0x03 >-+#define LED_KANA 0x04 >-+#define LED_SLEEP 0x05 >-+#define LED_SUSPEND 0x06 >-+#define LED_MUTE 0x07 >-+#define LED_MISC 0x08 >-+#define LED_MAIL 0x09 >-+#define LED_CHARGING 0x0a >-+#define LED_MAX 0x0f >-+#define LED_CNT (LED_MAX+1) >-+ >-+/* >-+ * Autorepeat values >-+ */ >-+ >-+#define REP_DELAY 0x00 >-+#define REP_PERIOD 0x01 >-+#define REP_MAX 0x01 >-+#define REP_CNT (REP_MAX+1) >-+ >-+/* >-+ * Sounds >-+ */ >-+ >-+#define SND_CLICK 0x00 >-+#define SND_BELL 0x01 >-+#define SND_TONE 0x02 >-+#define SND_MAX 0x07 >-+#define SND_CNT (SND_MAX+1) >-+ >-+#endif >-diff --git a/include/linux/freebsd/input.h b/include/linux/freebsd/input.h >-new file mode 100644 >-index 00000000..72733f21 >---- /dev/null >-+++ include/linux/freebsd/input.h >-@@ -0,0 +1,507 @@ >-+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ >-+/* >-+ * Copyright (c) 1999-2002 Vojtech Pavlik >-+ * >-+ * This program is free software; you can redistribute it and/or modify it >-+ * under the terms of the GNU General Public License version 2 as published by >-+ * the Free Software Foundation. >-+ */ >-+#ifndef _UAPI_INPUT_H >-+#define _UAPI_INPUT_H >-+ >-+ >-+#ifndef __KERNEL__ >-+#include <sys/time.h> >-+#include <sys/ioccom.h> >-+#include <sys/types.h> >-+#endif >-+ >-+#include "input-event-codes.h" >-+ >-+/* >-+ * The event structure itself >-+ * Note that __USE_TIME_BITS64 is defined by libc based on >-+ * application's request to use 64 bit time_t. >-+ */ >-+ >-+struct input_event { >-+#if 1 /* (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KERNEL) */ >-+ struct timeval time; >-+#define input_event_sec time.tv_sec >-+#define input_event_usec time.tv_usec >-+#else >-+ __kernel_ulong_t __sec; >-+ __kernel_ulong_t __usec; >-+#define input_event_sec __sec >-+#define input_event_usec __usec >-+#endif >-+ uint16_t type; >-+ uint16_t code; >-+ int32_t value; >-+}; >-+ >-+/* >-+ * Protocol version. >-+ */ >-+ >-+#define EV_VERSION 0x010001 >-+ >-+/* >-+ * IOCTLs (0x00 - 0x7f) >-+ */ >-+ >-+struct input_id { >-+ uint16_t bustype; >-+ uint16_t vendor; >-+ uint16_t product; >-+ uint16_t version; >-+}; >-+ >-+/** >-+ * struct input_absinfo - used by EVIOCGABS/EVIOCSABS ioctls >-+ * @value: latest reported value for the axis. >-+ * @minimum: specifies minimum value for the axis. >-+ * @maximum: specifies maximum value for the axis. >-+ * @fuzz: specifies fuzz value that is used to filter noise from >-+ * the event stream. >-+ * @flat: values that are within this value will be discarded by >-+ * joydev interface and reported as 0 instead. >-+ * @resolution: specifies resolution for the values reported for >-+ * the axis. >-+ * >-+ * Note that input core does not clamp reported values to the >-+ * [minimum, maximum] limits, such task is left to userspace. >-+ * >-+ * The default resolution for main axes (ABS_X, ABS_Y, ABS_Z) >-+ * is reported in units per millimeter (units/mm), resolution >-+ * for rotational axes (ABS_RX, ABS_RY, ABS_RZ) is reported >-+ * in units per radian. >-+ * When INPUT_PROP_ACCELEROMETER is set the resolution changes. >-+ * The main axes (ABS_X, ABS_Y, ABS_Z) are then reported in >-+ * in units per g (units/g) and in units per degree per second >-+ * (units/deg/s) for rotational axes (ABS_RX, ABS_RY, ABS_RZ). >-+ */ >-+struct input_absinfo { >-+ int32_t value; >-+ int32_t minimum; >-+ int32_t maximum; >-+ int32_t fuzz; >-+ int32_t flat; >-+ int32_t resolution; >-+}; >-+ >-+/** >-+ * struct input_keymap_entry - used by EVIOCGKEYCODE/EVIOCSKEYCODE ioctls >-+ * @scancode: scancode represented in machine-endian form. >-+ * @len: length of the scancode that resides in @scancode buffer. >-+ * @index: index in the keymap, may be used instead of scancode >-+ * @flags: allows to specify how kernel should handle the request. For >-+ * example, setting INPUT_KEYMAP_BY_INDEX flag indicates that kernel >-+ * should perform lookup in keymap by @index instead of @scancode >-+ * @keycode: key code assigned to this scancode >-+ * >-+ * The structure is used to retrieve and modify keymap data. Users have >-+ * option of performing lookup either by @scancode itself or by @index >-+ * in keymap entry. EVIOCGKEYCODE will also return scancode or index >-+ * (depending on which element was used to perform lookup). >-+ */ >-+struct input_keymap_entry { >-+#define INPUT_KEYMAP_BY_INDEX (1 << 0) >-+ uint8_t flags; >-+ uint8_t len; >-+ uint16_t index; >-+ uint32_t keycode; >-+ uint8_t scancode[32]; >-+}; >-+ >-+struct input_mask { >-+ uint32_t type; >-+ uint32_t codes_size; >-+ uint64_t codes_ptr; >-+}; >-+ >-+#define EVIOCGVERSION _IOR('E', 0x01, int) /* get driver version */ >-+#define EVIOCGID _IOR('E', 0x02, struct input_id) /* get device ID */ >-+#define EVIOCGREP _IOR('E', 0x03, unsigned int[2]) /* get repeat settings */ >-+#define EVIOCSREP _IOW('E', 0x03, unsigned int[2]) /* set repeat settings */ >-+ >-+#define EVIOCGKEYCODE _IOWR('E', 0x04, unsigned int[2]) /* get keycode */ >-+#define EVIOCGKEYCODE_V2 _IOWR('E', 0x04, struct input_keymap_entry) >-+#define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2]) /* set keycode */ >-+#define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct input_keymap_entry) >-+ >-+#define EVIOCGNAME(len) _IOC(IOC_OUT, 'E', 0x06, len) /* get device name */ >-+#define EVIOCGPHYS(len) _IOC(IOC_OUT, 'E', 0x07, len) /* get physical location */ >-+#define EVIOCGUNIQ(len) _IOC(IOC_OUT, 'E', 0x08, len) /* get unique identifier */ >-+#define EVIOCGPROP(len) _IOC(IOC_OUT, 'E', 0x09, len) /* get device properties */ >-+ >-+/** >-+ * EVIOCGMTSLOTS(len) - get MT slot values >-+ * @len: size of the data buffer in bytes >-+ * >-+ * The ioctl buffer argument should be binary equivalent to >-+ * >-+ * struct input_mt_request_layout { >-+ * uint32_t code; >-+ * int32_t values[num_slots]; >-+ * }; >-+ * >-+ * where num_slots is the (arbitrary) number of MT slots to extract. >-+ * >-+ * The ioctl size argument (len) is the size of the buffer, which >-+ * should satisfy len = (num_slots + 1) * sizeof(int32_t). If len is >-+ * too small to fit all available slots, the first num_slots are >-+ * returned. >-+ * >-+ * Before the call, code is set to the wanted ABS_MT event type. On >-+ * return, values[] is filled with the slot values for the specified >-+ * ABS_MT code. >-+ * >-+ * If the request code is not an ABS_MT value, -EINVAL is returned. >-+ */ >-+#define EVIOCGMTSLOTS(len) _IOC(IOC_INOUT, 'E', 0x0a, len) >-+ >-+#define EVIOCGKEY(len) _IOC(IOC_OUT, 'E', 0x18, len) /* get global key state */ >-+#define EVIOCGLED(len) _IOC(IOC_OUT, 'E', 0x19, len) /* get all LEDs */ >-+#define EVIOCGSND(len) _IOC(IOC_OUT, 'E', 0x1a, len) /* get all sounds status */ >-+#define EVIOCGSW(len) _IOC(IOC_OUT, 'E', 0x1b, len) /* get all switch states */ >-+ >-+#define EVIOCGBIT(ev,len) _IOC(IOC_OUT, 'E', 0x20 + (ev), len) /* get event bits */ >-+#define EVIOCGABS(abs) _IOR('E', 0x40 + (abs), struct input_absinfo) /* get abs value/limits */ >-+#define EVIOCSABS(abs) _IOW('E', 0xc0 + (abs), struct input_absinfo) /* set abs value/limits */ >-+ >-+#define EVIOCSFF _IOW('E', 0x80, struct ff_effect) /* send a force effect to a force feedback device */ >-+#define EVIOCRMFF _IOWINT('E', 0x81) /* Erase a force effect */ >-+#define EVIOCGEFFECTS _IOR('E', 0x84, int) /* Report number of effects playable at the same time */ >-+ >-+#define EVIOCGRAB _IOWINT('E', 0x90) /* Grab/Release device */ >-+#define EVIOCREVOKE _IOWINT('E', 0x91) /* Revoke device access */ >-+ >-+/** >-+ * EVIOCGMASK - Retrieve current event mask >-+ * >-+ * This ioctl allows user to retrieve the current event mask for specific >-+ * event type. The argument must be of type "struct input_mask" and >-+ * specifies the event type to query, the address of the receive buffer and >-+ * the size of the receive buffer. >-+ * >-+ * The event mask is a per-client mask that specifies which events are >-+ * forwarded to the client. Each event code is represented by a single bit >-+ * in the event mask. If the bit is set, the event is passed to the client >-+ * normally. Otherwise, the event is filtered and will never be queued on >-+ * the client's receive buffer. >-+ * >-+ * Event masks do not affect global state of the input device. They only >-+ * affect the file descriptor they are applied to. >-+ * >-+ * The default event mask for a client has all bits set, i.e. all events >-+ * are forwarded to the client. If the kernel is queried for an unknown >-+ * event type or if the receive buffer is larger than the number of >-+ * event codes known to the kernel, the kernel returns all zeroes for those >-+ * codes. >-+ * >-+ * At maximum, codes_size bytes are copied. >-+ * >-+ * This ioctl may fail with ENODEV in case the file is revoked, EFAULT >-+ * if the receive-buffer points to invalid memory, or EINVAL if the kernel >-+ * does not implement the ioctl. >-+ */ >-+#define EVIOCGMASK _IOW('E', 0x92, struct input_mask) /* Get event-masks */ >-+ >-+/** >-+ * EVIOCSMASK - Set event mask >-+ * >-+ * This ioctl is the counterpart to EVIOCGMASK. Instead of receiving the >-+ * current event mask, this changes the client's event mask for a specific >-+ * type. See EVIOCGMASK for a description of event-masks and the >-+ * argument-type. >-+ * >-+ * This ioctl provides full forward compatibility. If the passed event type >-+ * is unknown to the kernel, or if the number of event codes specified in >-+ * the mask is bigger than what is known to the kernel, the ioctl is still >-+ * accepted and applied. However, any unknown codes are left untouched and >-+ * stay cleared. That means, the kernel always filters unknown codes >-+ * regardless of what the client requests. If the new mask doesn't cover >-+ * all known event-codes, all remaining codes are automatically cleared and >-+ * thus filtered. >-+ * >-+ * This ioctl may fail with ENODEV in case the file is revoked. EFAULT is >-+ * returned if the receive-buffer points to invalid memory. EINVAL is returned >-+ * if the kernel does not implement the ioctl. >-+ */ >-+#define EVIOCSMASK _IOW('E', 0x93, struct input_mask) /* Set event-masks */ >-+ >-+#define EVIOCSCLOCKID _IOW('E', 0xa0, int) /* Set clockid to be used for timestamps */ >-+ >-+/* >-+ * IDs. >-+ */ >-+ >-+#define ID_BUS 0 >-+#define ID_VENDOR 1 >-+#define ID_PRODUCT 2 >-+#define ID_VERSION 3 >-+ >-+#define BUS_PCI 0x01 >-+#define BUS_ISAPNP 0x02 >-+#define BUS_USB 0x03 >-+#define BUS_HIL 0x04 >-+#define BUS_BLUETOOTH 0x05 >-+#define BUS_VIRTUAL 0x06 >-+ >-+#define BUS_ISA 0x10 >-+#define BUS_I8042 0x11 >-+#define BUS_XTKBD 0x12 >-+#define BUS_RS232 0x13 >-+#define BUS_GAMEPORT 0x14 >-+#define BUS_PARPORT 0x15 >-+#define BUS_AMIGA 0x16 >-+#define BUS_ADB 0x17 >-+#define BUS_I2C 0x18 >-+#define BUS_HOST 0x19 >-+#define BUS_GSC 0x1A >-+#define BUS_ATARI 0x1B >-+#define BUS_SPI 0x1C >-+#define BUS_RMI 0x1D >-+#define BUS_CEC 0x1E >-+#define BUS_INTEL_ISHTP 0x1F >-+ >-+/* >-+ * MT_TOOL types >-+ */ >-+#define MT_TOOL_FINGER 0 >-+#define MT_TOOL_PEN 1 >-+#define MT_TOOL_PALM 2 >-+#define MT_TOOL_MAX 2 >-+ >-+/* >-+ * Values describing the status of a force-feedback effect >-+ */ >-+#define FF_STATUS_STOPPED 0x00 >-+#define FF_STATUS_PLAYING 0x01 >-+#define FF_STATUS_MAX 0x01 >-+ >-+/* >-+ * Structures used in ioctls to upload effects to a device >-+ * They are pieces of a bigger structure (called ff_effect) >-+ */ >-+ >-+/* >-+ * All duration values are expressed in ms. Values above 32767 ms (0x7fff) >-+ * should not be used and have unspecified results. >-+ */ >-+ >-+/** >-+ * struct ff_replay - defines scheduling of the force-feedback effect >-+ * @length: duration of the effect >-+ * @delay: delay before effect should start playing >-+ */ >-+struct ff_replay { >-+ uint16_t length; >-+ uint16_t delay; >-+}; >-+ >-+/** >-+ * struct ff_trigger - defines what triggers the force-feedback effect >-+ * @button: number of the button triggering the effect >-+ * @interval: controls how soon the effect can be re-triggered >-+ */ >-+struct ff_trigger { >-+ uint16_t button; >-+ uint16_t interval; >-+}; >-+ >-+/** >-+ * struct ff_envelope - generic force-feedback effect envelope >-+ * @attack_length: duration of the attack (ms) >-+ * @attack_level: level at the beginning of the attack >-+ * @fade_length: duration of fade (ms) >-+ * @fade_level: level at the end of fade >-+ * >-+ * The @attack_level and @fade_level are absolute values; when applying >-+ * envelope force-feedback core will convert to positive/negative >-+ * value based on polarity of the default level of the effect. >-+ * Valid range for the attack and fade levels is 0x0000 - 0x7fff >-+ */ >-+struct ff_envelope { >-+ uint16_t attack_length; >-+ uint16_t attack_level; >-+ uint16_t fade_length; >-+ uint16_t fade_level; >-+}; >-+ >-+/** >-+ * struct ff_constant_effect - defines parameters of a constant force-feedback effect >-+ * @level: strength of the effect; may be negative >-+ * @envelope: envelope data >-+ */ >-+struct ff_constant_effect { >-+ int16_t level; >-+ struct ff_envelope envelope; >-+}; >-+ >-+/** >-+ * struct ff_ramp_effect - defines parameters of a ramp force-feedback effect >-+ * @start_level: beginning strength of the effect; may be negative >-+ * @end_level: final strength of the effect; may be negative >-+ * @envelope: envelope data >-+ */ >-+struct ff_ramp_effect { >-+ int16_t start_level; >-+ int16_t end_level; >-+ struct ff_envelope envelope; >-+}; >-+ >-+/** >-+ * struct ff_condition_effect - defines a spring or friction force-feedback effect >-+ * @right_saturation: maximum level when joystick moved all way to the right >-+ * @left_saturation: same for the left side >-+ * @right_coeff: controls how fast the force grows when the joystick moves >-+ * to the right >-+ * @left_coeff: same for the left side >-+ * @deadband: size of the dead zone, where no force is produced >-+ * @center: position of the dead zone >-+ */ >-+struct ff_condition_effect { >-+ uint16_t right_saturation; >-+ uint16_t left_saturation; >-+ >-+ int16_t right_coeff; >-+ int16_t left_coeff; >-+ >-+ uint16_t deadband; >-+ int16_t center; >-+}; >-+ >-+/** >-+ * struct ff_periodic_effect - defines parameters of a periodic force-feedback effect >-+ * @waveform: kind of the effect (wave) >-+ * @period: period of the wave (ms) >-+ * @magnitude: peak value >-+ * @offset: mean value of the wave (roughly) >-+ * @phase: 'horizontal' shift >-+ * @envelope: envelope data >-+ * @custom_len: number of samples (FF_CUSTOM only) >-+ * @custom_data: buffer of samples (FF_CUSTOM only) >-+ * >-+ * Known waveforms - FF_SQUARE, FF_TRIANGLE, FF_SINE, FF_SAW_UP, >-+ * FF_SAW_DOWN, FF_CUSTOM. The exact syntax FF_CUSTOM is undefined >-+ * for the time being as no driver supports it yet. >-+ * >-+ * Note: the data pointed by custom_data is copied by the driver. >-+ * You can therefore dispose of the memory after the upload/update. >-+ */ >-+struct ff_periodic_effect { >-+ uint16_t waveform; >-+ uint16_t period; >-+ int16_t magnitude; >-+ int16_t offset; >-+ uint16_t phase; >-+ >-+ struct ff_envelope envelope; >-+ >-+ uint32_t custom_len; >-+ int16_t *custom_data; >-+}; >-+ >-+/** >-+ * struct ff_rumble_effect - defines parameters of a periodic force-feedback effect >-+ * @strong_magnitude: magnitude of the heavy motor >-+ * @weak_magnitude: magnitude of the light one >-+ * >-+ * Some rumble pads have two motors of different weight. Strong_magnitude >-+ * represents the magnitude of the vibration generated by the heavy one. >-+ */ >-+struct ff_rumble_effect { >-+ uint16_t strong_magnitude; >-+ uint16_t weak_magnitude; >-+}; >-+ >-+/** >-+ * struct ff_effect - defines force feedback effect >-+ * @type: type of the effect (FF_CONSTANT, FF_PERIODIC, FF_RAMP, FF_SPRING, >-+ * FF_FRICTION, FF_DAMPER, FF_RUMBLE, FF_INERTIA, or FF_CUSTOM) >-+ * @id: an unique id assigned to an effect >-+ * @direction: direction of the effect >-+ * @trigger: trigger conditions (struct ff_trigger) >-+ * @replay: scheduling of the effect (struct ff_replay) >-+ * @u: effect-specific structure (one of ff_constant_effect, ff_ramp_effect, >-+ * ff_periodic_effect, ff_condition_effect, ff_rumble_effect) further >-+ * defining effect parameters >-+ * >-+ * This structure is sent through ioctl from the application to the driver. >-+ * To create a new effect application should set its @id to -1; the kernel >-+ * will return assigned @id which can later be used to update or delete >-+ * this effect. >-+ * >-+ * Direction of the effect is encoded as follows: >-+ * 0 deg -> 0x0000 (down) >-+ * 90 deg -> 0x4000 (left) >-+ * 180 deg -> 0x8000 (up) >-+ * 270 deg -> 0xC000 (right) >-+ */ >-+struct ff_effect { >-+ uint16_t type; >-+ int16_t id; >-+ uint16_t direction; >-+ struct ff_trigger trigger; >-+ struct ff_replay replay; >-+ >-+ union { >-+ struct ff_constant_effect constant; >-+ struct ff_ramp_effect ramp; >-+ struct ff_periodic_effect periodic; >-+ struct ff_condition_effect condition[2]; /* One for each axis */ >-+ struct ff_rumble_effect rumble; >-+ } u; >-+}; >-+ >-+/* >-+ * Force feedback effect types >-+ */ >-+ >-+#define FF_RUMBLE 0x50 >-+#define FF_PERIODIC 0x51 >-+#define FF_CONSTANT 0x52 >-+#define FF_SPRING 0x53 >-+#define FF_FRICTION 0x54 >-+#define FF_DAMPER 0x55 >-+#define FF_INERTIA 0x56 >-+#define FF_RAMP 0x57 >-+ >-+#define FF_EFFECT_MIN FF_RUMBLE >-+#define FF_EFFECT_MAX FF_RAMP >-+ >-+/* >-+ * Force feedback periodic effect types >-+ */ >-+ >-+#define FF_SQUARE 0x58 >-+#define FF_TRIANGLE 0x59 >-+#define FF_SINE 0x5a >-+#define FF_SAW_UP 0x5b >-+#define FF_SAW_DOWN 0x5c >-+#define FF_CUSTOM 0x5d >-+ >-+#define FF_WAVEFORM_MIN FF_SQUARE >-+#define FF_WAVEFORM_MAX FF_CUSTOM >-+ >-+/* >-+ * Set ff device properties >-+ */ >-+ >-+#define FF_GAIN 0x60 >-+#define FF_AUTOCENTER 0x61 >-+ >-+/* >-+ * ff->playback(effect_id = FF_GAIN) is the first effect_id to >-+ * cause a collision with another ff method, in this case ff->set_gain(). >-+ * Therefore the greatest safe value for effect_id is FF_GAIN - 1, >-+ * and thus the total number of effects should never exceed FF_GAIN. >-+ */ >-+#define FF_MAX_EFFECTS FF_GAIN >-+ >-+#define FF_MAX 0x7f >-+#define FF_CNT (FF_MAX+1) >-+ >-+#endif /* _UAPI_INPUT_H */ >-diff --git a/include/linux/input-event-codes.h b/include/linux/input-event-codes.h >-deleted file mode 100644 >-index 9771e4f8..00000000 >---- include/linux/input-event-codes.h >-+++ /dev/null >-@@ -1,837 +0,0 @@ >--/* >-- * Input event codes >-- * >-- * *** IMPORTANT *** >-- * This file is not only included from C-code but also from devicetree source >-- * files. As such this file MUST only contain comments and defines. >-- * >-- * Copyright (c) 1999-2002 Vojtech Pavlik >-- * Copyright (c) 2015 Hans de Goede <hdegoede@redhat.com> >-- * >-- * This program is free software; you can redistribute it and/or modify it >-- * under the terms of the GNU General Public License version 2 as published by >-- * the Free Software Foundation. >-- */ >--#ifndef _UAPI_INPUT_EVENT_CODES_H >--#define _UAPI_INPUT_EVENT_CODES_H >-- >--/* >-- * Device properties and quirks >-- */ >-- >--#define INPUT_PROP_POINTER 0x00 /* needs a pointer */ >--#define INPUT_PROP_DIRECT 0x01 /* direct input devices */ >--#define INPUT_PROP_BUTTONPAD 0x02 /* has button(s) under pad */ >--#define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ >--#define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ >--#define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ >--#define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */ >-- >--#define INPUT_PROP_MAX 0x1f >--#define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) >-- >--/* >-- * Event types >-- */ >-- >--#define EV_SYN 0x00 >--#define EV_KEY 0x01 >--#define EV_REL 0x02 >--#define EV_ABS 0x03 >--#define EV_MSC 0x04 >--#define EV_SW 0x05 >--#define EV_LED 0x11 >--#define EV_SND 0x12 >--#define EV_REP 0x14 >--#define EV_FF 0x15 >--#define EV_PWR 0x16 >--#define EV_FF_STATUS 0x17 >--#define EV_MAX 0x1f >--#define EV_CNT (EV_MAX+1) >-- >--/* >-- * Synchronization events. >-- */ >-- >--#define SYN_REPORT 0 >--#define SYN_CONFIG 1 >--#define SYN_MT_REPORT 2 >--#define SYN_DROPPED 3 >--#define SYN_MAX 0xf >--#define SYN_CNT (SYN_MAX+1) >-- >--/* >-- * Keys and buttons >-- * >-- * Most of the keys/buttons are modeled after USB HUT 1.12 >-- * (see http://www.usb.org/developers/hidpage). >-- * Abbreviations in the comments: >-- * AC - Application Control >-- * AL - Application Launch Button >-- * SC - System Control >-- */ >-- >--#define KEY_RESERVED 0 >--#define KEY_ESC 1 >--#define KEY_1 2 >--#define KEY_2 3 >--#define KEY_3 4 >--#define KEY_4 5 >--#define KEY_5 6 >--#define KEY_6 7 >--#define KEY_7 8 >--#define KEY_8 9 >--#define KEY_9 10 >--#define KEY_0 11 >--#define KEY_MINUS 12 >--#define KEY_EQUAL 13 >--#define KEY_BACKSPACE 14 >--#define KEY_TAB 15 >--#define KEY_Q 16 >--#define KEY_W 17 >--#define KEY_E 18 >--#define KEY_R 19 >--#define KEY_T 20 >--#define KEY_Y 21 >--#define KEY_U 22 >--#define KEY_I 23 >--#define KEY_O 24 >--#define KEY_P 25 >--#define KEY_LEFTBRACE 26 >--#define KEY_RIGHTBRACE 27 >--#define KEY_ENTER 28 >--#define KEY_LEFTCTRL 29 >--#define KEY_A 30 >--#define KEY_S 31 >--#define KEY_D 32 >--#define KEY_F 33 >--#define KEY_G 34 >--#define KEY_H 35 >--#define KEY_J 36 >--#define KEY_K 37 >--#define KEY_L 38 >--#define KEY_SEMICOLON 39 >--#define KEY_APOSTROPHE 40 >--#define KEY_GRAVE 41 >--#define KEY_LEFTSHIFT 42 >--#define KEY_BACKSLASH 43 >--#define KEY_Z 44 >--#define KEY_X 45 >--#define KEY_C 46 >--#define KEY_V 47 >--#define KEY_B 48 >--#define KEY_N 49 >--#define KEY_M 50 >--#define KEY_COMMA 51 >--#define KEY_DOT 52 >--#define KEY_SLASH 53 >--#define KEY_RIGHTSHIFT 54 >--#define KEY_KPASTERISK 55 >--#define KEY_LEFTALT 56 >--#define KEY_SPACE 57 >--#define KEY_CAPSLOCK 58 >--#define KEY_F1 59 >--#define KEY_F2 60 >--#define KEY_F3 61 >--#define KEY_F4 62 >--#define KEY_F5 63 >--#define KEY_F6 64 >--#define KEY_F7 65 >--#define KEY_F8 66 >--#define KEY_F9 67 >--#define KEY_F10 68 >--#define KEY_NUMLOCK 69 >--#define KEY_SCROLLLOCK 70 >--#define KEY_KP7 71 >--#define KEY_KP8 72 >--#define KEY_KP9 73 >--#define KEY_KPMINUS 74 >--#define KEY_KP4 75 >--#define KEY_KP5 76 >--#define KEY_KP6 77 >--#define KEY_KPPLUS 78 >--#define KEY_KP1 79 >--#define KEY_KP2 80 >--#define KEY_KP3 81 >--#define KEY_KP0 82 >--#define KEY_KPDOT 83 >-- >--#define KEY_ZENKAKUHANKAKU 85 >--#define KEY_102ND 86 >--#define KEY_F11 87 >--#define KEY_F12 88 >--#define KEY_RO 89 >--#define KEY_KATAKANA 90 >--#define KEY_HIRAGANA 91 >--#define KEY_HENKAN 92 >--#define KEY_KATAKANAHIRAGANA 93 >--#define KEY_MUHENKAN 94 >--#define KEY_KPJPCOMMA 95 >--#define KEY_KPENTER 96 >--#define KEY_RIGHTCTRL 97 >--#define KEY_KPSLASH 98 >--#define KEY_SYSRQ 99 >--#define KEY_RIGHTALT 100 >--#define KEY_LINEFEED 101 >--#define KEY_HOME 102 >--#define KEY_UP 103 >--#define KEY_PAGEUP 104 >--#define KEY_LEFT 105 >--#define KEY_RIGHT 106 >--#define KEY_END 107 >--#define KEY_DOWN 108 >--#define KEY_PAGEDOWN 109 >--#define KEY_INSERT 110 >--#define KEY_DELETE 111 >--#define KEY_MACRO 112 >--#define KEY_MUTE 113 >--#define KEY_VOLUMEDOWN 114 >--#define KEY_VOLUMEUP 115 >--#define KEY_POWER 116 /* SC System Power Down */ >--#define KEY_KPEQUAL 117 >--#define KEY_KPPLUSMINUS 118 >--#define KEY_PAUSE 119 >--#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */ >-- >--#define KEY_KPCOMMA 121 >--#define KEY_HANGEUL 122 >--#define KEY_HANGUEL KEY_HANGEUL >--#define KEY_HANJA 123 >--#define KEY_YEN 124 >--#define KEY_LEFTMETA 125 >--#define KEY_RIGHTMETA 126 >--#define KEY_COMPOSE 127 >-- >--#define KEY_STOP 128 /* AC Stop */ >--#define KEY_AGAIN 129 >--#define KEY_PROPS 130 /* AC Properties */ >--#define KEY_UNDO 131 /* AC Undo */ >--#define KEY_FRONT 132 >--#define KEY_COPY 133 /* AC Copy */ >--#define KEY_OPEN 134 /* AC Open */ >--#define KEY_PASTE 135 /* AC Paste */ >--#define KEY_FIND 136 /* AC Search */ >--#define KEY_CUT 137 /* AC Cut */ >--#define KEY_HELP 138 /* AL Integrated Help Center */ >--#define KEY_MENU 139 /* Menu (show menu) */ >--#define KEY_CALC 140 /* AL Calculator */ >--#define KEY_SETUP 141 >--#define KEY_SLEEP 142 /* SC System Sleep */ >--#define KEY_WAKEUP 143 /* System Wake Up */ >--#define KEY_FILE 144 /* AL Local Machine Browser */ >--#define KEY_SENDFILE 145 >--#define KEY_DELETEFILE 146 >--#define KEY_XFER 147 >--#define KEY_PROG1 148 >--#define KEY_PROG2 149 >--#define KEY_WWW 150 /* AL Internet Browser */ >--#define KEY_MSDOS 151 >--#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */ >--#define KEY_SCREENLOCK KEY_COFFEE >--#define KEY_ROTATE_DISPLAY 153 /* Display orientation for e.g. tablets */ >--#define KEY_DIRECTION KEY_ROTATE_DISPLAY >--#define KEY_CYCLEWINDOWS 154 >--#define KEY_MAIL 155 >--#define KEY_BOOKMARKS 156 /* AC Bookmarks */ >--#define KEY_COMPUTER 157 >--#define KEY_BACK 158 /* AC Back */ >--#define KEY_FORWARD 159 /* AC Forward */ >--#define KEY_CLOSECD 160 >--#define KEY_EJECTCD 161 >--#define KEY_EJECTCLOSECD 162 >--#define KEY_NEXTSONG 163 >--#define KEY_PLAYPAUSE 164 >--#define KEY_PREVIOUSSONG 165 >--#define KEY_STOPCD 166 >--#define KEY_RECORD 167 >--#define KEY_REWIND 168 >--#define KEY_PHONE 169 /* Media Select Telephone */ >--#define KEY_ISO 170 >--#define KEY_CONFIG 171 /* AL Consumer Control Configuration */ >--#define KEY_HOMEPAGE 172 /* AC Home */ >--#define KEY_REFRESH 173 /* AC Refresh */ >--#define KEY_EXIT 174 /* AC Exit */ >--#define KEY_MOVE 175 >--#define KEY_EDIT 176 >--#define KEY_SCROLLUP 177 >--#define KEY_SCROLLDOWN 178 >--#define KEY_KPLEFTPAREN 179 >--#define KEY_KPRIGHTPAREN 180 >--#define KEY_NEW 181 /* AC New */ >--#define KEY_REDO 182 /* AC Redo/Repeat */ >-- >--#define KEY_F13 183 >--#define KEY_F14 184 >--#define KEY_F15 185 >--#define KEY_F16 186 >--#define KEY_F17 187 >--#define KEY_F18 188 >--#define KEY_F19 189 >--#define KEY_F20 190 >--#define KEY_F21 191 >--#define KEY_F22 192 >--#define KEY_F23 193 >--#define KEY_F24 194 >-- >--#define KEY_PLAYCD 200 >--#define KEY_PAUSECD 201 >--#define KEY_PROG3 202 >--#define KEY_PROG4 203 >--#define KEY_DASHBOARD 204 /* AL Dashboard */ >--#define KEY_SUSPEND 205 >--#define KEY_CLOSE 206 /* AC Close */ >--#define KEY_PLAY 207 >--#define KEY_FASTFORWARD 208 >--#define KEY_BASSBOOST 209 >--#define KEY_PRINT 210 /* AC Print */ >--#define KEY_HP 211 >--#define KEY_CAMERA 212 >--#define KEY_SOUND 213 >--#define KEY_QUESTION 214 >--#define KEY_EMAIL 215 >--#define KEY_CHAT 216 >--#define KEY_SEARCH 217 >--#define KEY_CONNECT 218 >--#define KEY_FINANCE 219 /* AL Checkbook/Finance */ >--#define KEY_SPORT 220 >--#define KEY_SHOP 221 >--#define KEY_ALTERASE 222 >--#define KEY_CANCEL 223 /* AC Cancel */ >--#define KEY_BRIGHTNESSDOWN 224 >--#define KEY_BRIGHTNESSUP 225 >--#define KEY_MEDIA 226 >-- >--#define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video >-- outputs (Monitor/LCD/TV-out/etc) */ >--#define KEY_KBDILLUMTOGGLE 228 >--#define KEY_KBDILLUMDOWN 229 >--#define KEY_KBDILLUMUP 230 >-- >--#define KEY_SEND 231 /* AC Send */ >--#define KEY_REPLY 232 /* AC Reply */ >--#define KEY_FORWARDMAIL 233 /* AC Forward Msg */ >--#define KEY_SAVE 234 /* AC Save */ >--#define KEY_DOCUMENTS 235 >-- >--#define KEY_BATTERY 236 >-- >--#define KEY_BLUETOOTH 237 >--#define KEY_WLAN 238 >--#define KEY_UWB 239 >-- >--#define KEY_UNKNOWN 240 >-- >--#define KEY_VIDEO_NEXT 241 /* drive next video source */ >--#define KEY_VIDEO_PREV 242 /* drive previous video source */ >--#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */ >--#define KEY_BRIGHTNESS_AUTO 244 /* Set Auto Brightness: manual >-- brightness control is off, >-- rely on ambient */ >--#define KEY_BRIGHTNESS_ZERO KEY_BRIGHTNESS_AUTO >--#define KEY_DISPLAY_OFF 245 /* display device to off state */ >-- >--#define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */ >--#define KEY_WIMAX KEY_WWAN >--#define KEY_RFKILL 247 /* Key that controls all radios */ >-- >--#define KEY_MICMUTE 248 /* Mute / unmute the microphone */ >-- >--/* Code 255 is reserved for special needs of AT keyboard driver */ >-- >--#define BTN_MISC 0x100 >--#define BTN_0 0x100 >--#define BTN_1 0x101 >--#define BTN_2 0x102 >--#define BTN_3 0x103 >--#define BTN_4 0x104 >--#define BTN_5 0x105 >--#define BTN_6 0x106 >--#define BTN_7 0x107 >--#define BTN_8 0x108 >--#define BTN_9 0x109 >-- >--#define BTN_MOUSE 0x110 >--#define BTN_LEFT 0x110 >--#define BTN_RIGHT 0x111 >--#define BTN_MIDDLE 0x112 >--#define BTN_SIDE 0x113 >--#define BTN_EXTRA 0x114 >--#define BTN_FORWARD 0x115 >--#define BTN_BACK 0x116 >--#define BTN_TASK 0x117 >-- >--#define BTN_JOYSTICK 0x120 >--#define BTN_TRIGGER 0x120 >--#define BTN_THUMB 0x121 >--#define BTN_THUMB2 0x122 >--#define BTN_TOP 0x123 >--#define BTN_TOP2 0x124 >--#define BTN_PINKIE 0x125 >--#define BTN_BASE 0x126 >--#define BTN_BASE2 0x127 >--#define BTN_BASE3 0x128 >--#define BTN_BASE4 0x129 >--#define BTN_BASE5 0x12a >--#define BTN_BASE6 0x12b >--#define BTN_DEAD 0x12f >-- >--#define BTN_GAMEPAD 0x130 >--#define BTN_SOUTH 0x130 >--#define BTN_A BTN_SOUTH >--#define BTN_EAST 0x131 >--#define BTN_B BTN_EAST >--#define BTN_C 0x132 >--#define BTN_NORTH 0x133 >--#define BTN_X BTN_NORTH >--#define BTN_WEST 0x134 >--#define BTN_Y BTN_WEST >--#define BTN_Z 0x135 >--#define BTN_TL 0x136 >--#define BTN_TR 0x137 >--#define BTN_TL2 0x138 >--#define BTN_TR2 0x139 >--#define BTN_SELECT 0x13a >--#define BTN_START 0x13b >--#define BTN_MODE 0x13c >--#define BTN_THUMBL 0x13d >--#define BTN_THUMBR 0x13e >-- >--#define BTN_DIGI 0x140 >--#define BTN_TOOL_PEN 0x140 >--#define BTN_TOOL_RUBBER 0x141 >--#define BTN_TOOL_BRUSH 0x142 >--#define BTN_TOOL_PENCIL 0x143 >--#define BTN_TOOL_AIRBRUSH 0x144 >--#define BTN_TOOL_FINGER 0x145 >--#define BTN_TOOL_MOUSE 0x146 >--#define BTN_TOOL_LENS 0x147 >--#define BTN_TOOL_QUINTTAP 0x148 /* Five fingers on trackpad */ >--#define BTN_TOUCH 0x14a >--#define BTN_STYLUS 0x14b >--#define BTN_STYLUS2 0x14c >--#define BTN_TOOL_DOUBLETAP 0x14d >--#define BTN_TOOL_TRIPLETAP 0x14e >--#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */ >-- >--#define BTN_WHEEL 0x150 >--#define BTN_GEAR_DOWN 0x150 >--#define BTN_GEAR_UP 0x151 >-- >--#define KEY_OK 0x160 >--#define KEY_SELECT 0x161 >--#define KEY_GOTO 0x162 >--#define KEY_CLEAR 0x163 >--#define KEY_POWER2 0x164 >--#define KEY_OPTION 0x165 >--#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */ >--#define KEY_TIME 0x167 >--#define KEY_VENDOR 0x168 >--#define KEY_ARCHIVE 0x169 >--#define KEY_PROGRAM 0x16a /* Media Select Program Guide */ >--#define KEY_CHANNEL 0x16b >--#define KEY_FAVORITES 0x16c >--#define KEY_EPG 0x16d >--#define KEY_PVR 0x16e /* Media Select Home */ >--#define KEY_MHP 0x16f >--#define KEY_LANGUAGE 0x170 >--#define KEY_TITLE 0x171 >--#define KEY_SUBTITLE 0x172 >--#define KEY_ANGLE 0x173 >--#define KEY_ZOOM 0x174 >--#define KEY_MODE 0x175 >--#define KEY_KEYBOARD 0x176 >--#define KEY_SCREEN 0x177 >--#define KEY_PC 0x178 /* Media Select Computer */ >--#define KEY_TV 0x179 /* Media Select TV */ >--#define KEY_TV2 0x17a /* Media Select Cable */ >--#define KEY_VCR 0x17b /* Media Select VCR */ >--#define KEY_VCR2 0x17c /* VCR Plus */ >--#define KEY_SAT 0x17d /* Media Select Satellite */ >--#define KEY_SAT2 0x17e >--#define KEY_CD 0x17f /* Media Select CD */ >--#define KEY_TAPE 0x180 /* Media Select Tape */ >--#define KEY_RADIO 0x181 >--#define KEY_TUNER 0x182 /* Media Select Tuner */ >--#define KEY_PLAYER 0x183 >--#define KEY_TEXT 0x184 >--#define KEY_DVD 0x185 /* Media Select DVD */ >--#define KEY_AUX 0x186 >--#define KEY_MP3 0x187 >--#define KEY_AUDIO 0x188 /* AL Audio Browser */ >--#define KEY_VIDEO 0x189 /* AL Movie Browser */ >--#define KEY_DIRECTORY 0x18a >--#define KEY_LIST 0x18b >--#define KEY_MEMO 0x18c /* Media Select Messages */ >--#define KEY_CALENDAR 0x18d >--#define KEY_RED 0x18e >--#define KEY_GREEN 0x18f >--#define KEY_YELLOW 0x190 >--#define KEY_BLUE 0x191 >--#define KEY_CHANNELUP 0x192 /* Channel Increment */ >--#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */ >--#define KEY_FIRST 0x194 >--#define KEY_LAST 0x195 /* Recall Last */ >--#define KEY_AB 0x196 >--#define KEY_NEXT 0x197 >--#define KEY_RESTART 0x198 >--#define KEY_SLOW 0x199 >--#define KEY_SHUFFLE 0x19a >--#define KEY_BREAK 0x19b >--#define KEY_PREVIOUS 0x19c >--#define KEY_DIGITS 0x19d >--#define KEY_TEEN 0x19e >--#define KEY_TWEN 0x19f >--#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */ >--#define KEY_GAMES 0x1a1 /* Media Select Games */ >--#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */ >--#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */ >--#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */ >--#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */ >--#define KEY_EDITOR 0x1a6 /* AL Text Editor */ >--#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */ >--#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */ >--#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */ >--#define KEY_DATABASE 0x1aa /* AL Database App */ >--#define KEY_NEWS 0x1ab /* AL Newsreader */ >--#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */ >--#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */ >--#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */ >--#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */ >--#define KEY_BRIGHTNESS_TOGGLE KEY_DISPLAYTOGGLE >--#define KEY_SPELLCHECK 0x1b0 /* AL Spell Check */ >--#define KEY_LOGOFF 0x1b1 /* AL Logoff */ >-- >--#define KEY_DOLLAR 0x1b2 >--#define KEY_EURO 0x1b3 >-- >--#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */ >--#define KEY_FRAMEFORWARD 0x1b5 >--#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */ >--#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */ >--#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */ >--#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */ >--#define KEY_IMAGES 0x1ba /* AL Image Browser */ >-- >--#define KEY_DEL_EOL 0x1c0 >--#define KEY_DEL_EOS 0x1c1 >--#define KEY_INS_LINE 0x1c2 >--#define KEY_DEL_LINE 0x1c3 >-- >--#define KEY_FN 0x1d0 >--#define KEY_FN_ESC 0x1d1 >--#define KEY_FN_F1 0x1d2 >--#define KEY_FN_F2 0x1d3 >--#define KEY_FN_F3 0x1d4 >--#define KEY_FN_F4 0x1d5 >--#define KEY_FN_F5 0x1d6 >--#define KEY_FN_F6 0x1d7 >--#define KEY_FN_F7 0x1d8 >--#define KEY_FN_F8 0x1d9 >--#define KEY_FN_F9 0x1da >--#define KEY_FN_F10 0x1db >--#define KEY_FN_F11 0x1dc >--#define KEY_FN_F12 0x1dd >--#define KEY_FN_1 0x1de >--#define KEY_FN_2 0x1df >--#define KEY_FN_D 0x1e0 >--#define KEY_FN_E 0x1e1 >--#define KEY_FN_F 0x1e2 >--#define KEY_FN_S 0x1e3 >--#define KEY_FN_B 0x1e4 >-- >--#define KEY_BRL_DOT1 0x1f1 >--#define KEY_BRL_DOT2 0x1f2 >--#define KEY_BRL_DOT3 0x1f3 >--#define KEY_BRL_DOT4 0x1f4 >--#define KEY_BRL_DOT5 0x1f5 >--#define KEY_BRL_DOT6 0x1f6 >--#define KEY_BRL_DOT7 0x1f7 >--#define KEY_BRL_DOT8 0x1f8 >--#define KEY_BRL_DOT9 0x1f9 >--#define KEY_BRL_DOT10 0x1fa >-- >--#define KEY_NUMERIC_0 0x200 /* used by phones, remote controls, */ >--#define KEY_NUMERIC_1 0x201 /* and other keypads */ >--#define KEY_NUMERIC_2 0x202 >--#define KEY_NUMERIC_3 0x203 >--#define KEY_NUMERIC_4 0x204 >--#define KEY_NUMERIC_5 0x205 >--#define KEY_NUMERIC_6 0x206 >--#define KEY_NUMERIC_7 0x207 >--#define KEY_NUMERIC_8 0x208 >--#define KEY_NUMERIC_9 0x209 >--#define KEY_NUMERIC_STAR 0x20a >--#define KEY_NUMERIC_POUND 0x20b >--#define KEY_NUMERIC_A 0x20c /* Phone key A - HUT Telephony 0xb9 */ >--#define KEY_NUMERIC_B 0x20d >--#define KEY_NUMERIC_C 0x20e >--#define KEY_NUMERIC_D 0x20f >-- >--#define KEY_CAMERA_FOCUS 0x210 >--#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */ >-- >--#define KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */ >--#define KEY_TOUCHPAD_ON 0x213 >--#define KEY_TOUCHPAD_OFF 0x214 >-- >--#define KEY_CAMERA_ZOOMIN 0x215 >--#define KEY_CAMERA_ZOOMOUT 0x216 >--#define KEY_CAMERA_UP 0x217 >--#define KEY_CAMERA_DOWN 0x218 >--#define KEY_CAMERA_LEFT 0x219 >--#define KEY_CAMERA_RIGHT 0x21a >-- >--#define KEY_ATTENDANT_ON 0x21b >--#define KEY_ATTENDANT_OFF 0x21c >--#define KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */ >--#define KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */ >-- >--#define BTN_DPAD_UP 0x220 >--#define BTN_DPAD_DOWN 0x221 >--#define BTN_DPAD_LEFT 0x222 >--#define BTN_DPAD_RIGHT 0x223 >-- >--#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ >-- >--#define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ >--#define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ >--#define KEY_JOURNAL 0x242 /* AL Log/Journal/Timecard */ >--#define KEY_CONTROLPANEL 0x243 /* AL Control Panel */ >--#define KEY_APPSELECT 0x244 /* AL Select Task/Application */ >--#define KEY_SCREENSAVER 0x245 /* AL Screen Saver */ >--#define KEY_VOICECOMMAND 0x246 /* Listening Voice Command */ >-- >--#define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ >--#define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ >-- >--#define KEY_KBDINPUTASSIST_PREV 0x260 >--#define KEY_KBDINPUTASSIST_NEXT 0x261 >--#define KEY_KBDINPUTASSIST_PREVGROUP 0x262 >--#define KEY_KBDINPUTASSIST_NEXTGROUP 0x263 >--#define KEY_KBDINPUTASSIST_ACCEPT 0x264 >--#define KEY_KBDINPUTASSIST_CANCEL 0x265 >-- >--/* Diagonal movement keys */ >--#define KEY_RIGHT_UP 0x266 >--#define KEY_RIGHT_DOWN 0x267 >--#define KEY_LEFT_UP 0x268 >--#define KEY_LEFT_DOWN 0x269 >-- >--#define KEY_ROOT_MENU 0x26a /* Show Device's Root Menu */ >--/* Show Top Menu of the Media (e.g. DVD) */ >--#define KEY_MEDIA_TOP_MENU 0x26b >--#define KEY_NUMERIC_11 0x26c >--#define KEY_NUMERIC_12 0x26d >--/* >-- * Toggle Audio Description: refers to an audio service that helps blind and >-- * visually impaired consumers understand the action in a program. Note: in >-- * some countries this is referred to as "Video Description". >-- */ >--#define KEY_AUDIO_DESC 0x26e >--#define KEY_3D_MODE 0x26f >--#define KEY_NEXT_FAVORITE 0x270 >--#define KEY_STOP_RECORD 0x271 >--#define KEY_PAUSE_RECORD 0x272 >--#define KEY_VOD 0x273 /* Video on Demand */ >--#define KEY_UNMUTE 0x274 >--#define KEY_FASTREVERSE 0x275 >--#define KEY_SLOWREVERSE 0x276 >--/* >-- * Control a data application associated with the currently viewed channel, >-- * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.) >-- */ >--#define KEY_DATA 0x277 >--#define KEY_ONSCREEN_KEYBOARD 0x278 >-- >--#define BTN_TRIGGER_HAPPY 0x2c0 >--#define BTN_TRIGGER_HAPPY1 0x2c0 >--#define BTN_TRIGGER_HAPPY2 0x2c1 >--#define BTN_TRIGGER_HAPPY3 0x2c2 >--#define BTN_TRIGGER_HAPPY4 0x2c3 >--#define BTN_TRIGGER_HAPPY5 0x2c4 >--#define BTN_TRIGGER_HAPPY6 0x2c5 >--#define BTN_TRIGGER_HAPPY7 0x2c6 >--#define BTN_TRIGGER_HAPPY8 0x2c7 >--#define BTN_TRIGGER_HAPPY9 0x2c8 >--#define BTN_TRIGGER_HAPPY10 0x2c9 >--#define BTN_TRIGGER_HAPPY11 0x2ca >--#define BTN_TRIGGER_HAPPY12 0x2cb >--#define BTN_TRIGGER_HAPPY13 0x2cc >--#define BTN_TRIGGER_HAPPY14 0x2cd >--#define BTN_TRIGGER_HAPPY15 0x2ce >--#define BTN_TRIGGER_HAPPY16 0x2cf >--#define BTN_TRIGGER_HAPPY17 0x2d0 >--#define BTN_TRIGGER_HAPPY18 0x2d1 >--#define BTN_TRIGGER_HAPPY19 0x2d2 >--#define BTN_TRIGGER_HAPPY20 0x2d3 >--#define BTN_TRIGGER_HAPPY21 0x2d4 >--#define BTN_TRIGGER_HAPPY22 0x2d5 >--#define BTN_TRIGGER_HAPPY23 0x2d6 >--#define BTN_TRIGGER_HAPPY24 0x2d7 >--#define BTN_TRIGGER_HAPPY25 0x2d8 >--#define BTN_TRIGGER_HAPPY26 0x2d9 >--#define BTN_TRIGGER_HAPPY27 0x2da >--#define BTN_TRIGGER_HAPPY28 0x2db >--#define BTN_TRIGGER_HAPPY29 0x2dc >--#define BTN_TRIGGER_HAPPY30 0x2dd >--#define BTN_TRIGGER_HAPPY31 0x2de >--#define BTN_TRIGGER_HAPPY32 0x2df >--#define BTN_TRIGGER_HAPPY33 0x2e0 >--#define BTN_TRIGGER_HAPPY34 0x2e1 >--#define BTN_TRIGGER_HAPPY35 0x2e2 >--#define BTN_TRIGGER_HAPPY36 0x2e3 >--#define BTN_TRIGGER_HAPPY37 0x2e4 >--#define BTN_TRIGGER_HAPPY38 0x2e5 >--#define BTN_TRIGGER_HAPPY39 0x2e6 >--#define BTN_TRIGGER_HAPPY40 0x2e7 >-- >--/* We avoid low common keys in module aliases so they don't get huge. */ >--#define KEY_MIN_INTERESTING KEY_MUTE >--#define KEY_MAX 0x2ff >--#define KEY_CNT (KEY_MAX+1) >-- >--/* >-- * Relative axes >-- */ >-- >--#define REL_X 0x00 >--#define REL_Y 0x01 >--#define REL_Z 0x02 >--#define REL_RX 0x03 >--#define REL_RY 0x04 >--#define REL_RZ 0x05 >--#define REL_HWHEEL 0x06 >--#define REL_DIAL 0x07 >--#define REL_WHEEL 0x08 >--#define REL_MISC 0x09 >--#define REL_MAX 0x0f >--#define REL_CNT (REL_MAX+1) >-- >--/* >-- * Absolute axes >-- */ >-- >--#define ABS_X 0x00 >--#define ABS_Y 0x01 >--#define ABS_Z 0x02 >--#define ABS_RX 0x03 >--#define ABS_RY 0x04 >--#define ABS_RZ 0x05 >--#define ABS_THROTTLE 0x06 >--#define ABS_RUDDER 0x07 >--#define ABS_WHEEL 0x08 >--#define ABS_GAS 0x09 >--#define ABS_BRAKE 0x0a >--#define ABS_HAT0X 0x10 >--#define ABS_HAT0Y 0x11 >--#define ABS_HAT1X 0x12 >--#define ABS_HAT1Y 0x13 >--#define ABS_HAT2X 0x14 >--#define ABS_HAT2Y 0x15 >--#define ABS_HAT3X 0x16 >--#define ABS_HAT3Y 0x17 >--#define ABS_PRESSURE 0x18 >--#define ABS_DISTANCE 0x19 >--#define ABS_TILT_X 0x1a >--#define ABS_TILT_Y 0x1b >--#define ABS_TOOL_WIDTH 0x1c >-- >--#define ABS_VOLUME 0x20 >-- >--#define ABS_MISC 0x28 >-- >--#define ABS_MT_SLOT 0x2f /* MT slot being modified */ >--#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */ >--#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */ >--#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */ >--#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */ >--#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */ >--#define ABS_MT_POSITION_X 0x35 /* Center X touch position */ >--#define ABS_MT_POSITION_Y 0x36 /* Center Y touch position */ >--#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ >--#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ >--#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ >--#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */ >--#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */ >--#define ABS_MT_TOOL_X 0x3c /* Center X tool position */ >--#define ABS_MT_TOOL_Y 0x3d /* Center Y tool position */ >-- >--#define ABS_MAX 0x3f >--#define ABS_CNT (ABS_MAX+1) >-- >--/* >-- * Switch events >-- */ >-- >--#define SW_LID 0x00 /* set = lid shut */ >--#define SW_TABLET_MODE 0x01 /* set = tablet mode */ >--#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ >--#define SW_RFKILL_ALL 0x03 /* rfkill master switch, type "any" >-- set = radio enabled */ >--#define SW_RADIO SW_RFKILL_ALL /* deprecated */ >--#define SW_MICROPHONE_INSERT 0x04 /* set = inserted */ >--#define SW_DOCK 0x05 /* set = plugged into dock */ >--#define SW_LINEOUT_INSERT 0x06 /* set = inserted */ >--#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */ >--#define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */ >--#define SW_CAMERA_LENS_COVER 0x09 /* set = lens covered */ >--#define SW_KEYPAD_SLIDE 0x0a /* set = keypad slide out */ >--#define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */ >--#define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */ >--#define SW_LINEIN_INSERT 0x0d /* set = inserted */ >--#define SW_MUTE_DEVICE 0x0e /* set = device disabled */ >--#define SW_PEN_INSERTED 0x0f /* set = pen inserted */ >--#define SW_MAX 0x0f >--#define SW_CNT (SW_MAX+1) >-- >--/* >-- * Misc events >-- */ >-- >--#define MSC_SERIAL 0x00 >--#define MSC_PULSELED 0x01 >--#define MSC_GESTURE 0x02 >--#define MSC_RAW 0x03 >--#define MSC_SCAN 0x04 >--#define MSC_TIMESTAMP 0x05 >--#define MSC_MAX 0x07 >--#define MSC_CNT (MSC_MAX+1) >-- >--/* >-- * LEDs >-- */ >-- >--#define LED_NUML 0x00 >--#define LED_CAPSL 0x01 >--#define LED_SCROLLL 0x02 >--#define LED_COMPOSE 0x03 >--#define LED_KANA 0x04 >--#define LED_SLEEP 0x05 >--#define LED_SUSPEND 0x06 >--#define LED_MUTE 0x07 >--#define LED_MISC 0x08 >--#define LED_MAIL 0x09 >--#define LED_CHARGING 0x0a >--#define LED_MAX 0x0f >--#define LED_CNT (LED_MAX+1) >-- >--/* >-- * Autorepeat values >-- */ >-- >--#define REP_DELAY 0x00 >--#define REP_PERIOD 0x01 >--#define REP_MAX 0x01 >--#define REP_CNT (REP_MAX+1) >-- >--/* >-- * Sounds >-- */ >-- >--#define SND_CLICK 0x00 >--#define SND_BELL 0x01 >--#define SND_TONE 0x02 >--#define SND_MAX 0x07 >--#define SND_CNT (SND_MAX+1) >-- >--#endif >-diff --git a/include/linux/input.h b/include/linux/input.h >-index b3044aec..03c512ef 100644 >---- include/linux/input.h >-+++ include/linux/input.h >-@@ -1,506 +1,5 @@ >--/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ >--/* >-- * Copyright (c) 1999-2002 Vojtech Pavlik >-- * >-- * This program is free software; you can redistribute it and/or modify it >-- * under the terms of the GNU General Public License version 2 as published by >-- * the Free Software Foundation. >-- */ >--#ifndef _INPUT_H >--#define _INPUT_H >-- >-- >--#include <sys/time.h> >--#include <sys/ioctl.h> >--#include <sys/types.h> >--#include <linux/types.h> >-- >--#include "input-event-codes.h" >-- >--/* >-- * The event structure itself >-- * Note that __USE_TIME_BITS64 is defined by libc based on >-- * application's request to use 64 bit time_t. >-- */ >-- >--struct input_event { >--#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KERNEL) >-- struct timeval time; >--#define input_event_sec time.tv_sec >--#define input_event_usec time.tv_usec >--#else >-- __kernel_ulong_t __sec; >-- __kernel_ulong_t __usec; >--#define input_event_sec __sec >--#define input_event_usec __usec >-+#ifdef __linux__ >-+#include "linux/input.h" >-+#elif __FreeBSD__ >-+#include "freebsd/input.h" >- #endif >-- __u16 type; >-- __u16 code; >-- __s32 value; >--}; >-- >--/* >-- * Protocol version. >-- */ >-- >--#define EV_VERSION 0x010001 >-- >--/* >-- * IOCTLs (0x00 - 0x7f) >-- */ >-- >--struct input_id { >-- __u16 bustype; >-- __u16 vendor; >-- __u16 product; >-- __u16 version; >--}; >-- >--/** >-- * struct input_absinfo - used by EVIOCGABS/EVIOCSABS ioctls >-- * @value: latest reported value for the axis. >-- * @minimum: specifies minimum value for the axis. >-- * @maximum: specifies maximum value for the axis. >-- * @fuzz: specifies fuzz value that is used to filter noise from >-- * the event stream. >-- * @flat: values that are within this value will be discarded by >-- * joydev interface and reported as 0 instead. >-- * @resolution: specifies resolution for the values reported for >-- * the axis. >-- * >-- * Note that input core does not clamp reported values to the >-- * [minimum, maximum] limits, such task is left to userspace. >-- * >-- * The default resolution for main axes (ABS_X, ABS_Y, ABS_Z) >-- * is reported in units per millimeter (units/mm), resolution >-- * for rotational axes (ABS_RX, ABS_RY, ABS_RZ) is reported >-- * in units per radian. >-- * When INPUT_PROP_ACCELEROMETER is set the resolution changes. >-- * The main axes (ABS_X, ABS_Y, ABS_Z) are then reported in >-- * in units per g (units/g) and in units per degree per second >-- * (units/deg/s) for rotational axes (ABS_RX, ABS_RY, ABS_RZ). >-- */ >--struct input_absinfo { >-- __s32 value; >-- __s32 minimum; >-- __s32 maximum; >-- __s32 fuzz; >-- __s32 flat; >-- __s32 resolution; >--}; >-- >--/** >-- * struct input_keymap_entry - used by EVIOCGKEYCODE/EVIOCSKEYCODE ioctls >-- * @scancode: scancode represented in machine-endian form. >-- * @len: length of the scancode that resides in @scancode buffer. >-- * @index: index in the keymap, may be used instead of scancode >-- * @flags: allows to specify how kernel should handle the request. For >-- * example, setting INPUT_KEYMAP_BY_INDEX flag indicates that kernel >-- * should perform lookup in keymap by @index instead of @scancode >-- * @keycode: key code assigned to this scancode >-- * >-- * The structure is used to retrieve and modify keymap data. Users have >-- * option of performing lookup either by @scancode itself or by @index >-- * in keymap entry. EVIOCGKEYCODE will also return scancode or index >-- * (depending on which element was used to perform lookup). >-- */ >--struct input_keymap_entry { >--#define INPUT_KEYMAP_BY_INDEX (1 << 0) >-- __u8 flags; >-- __u8 len; >-- __u16 index; >-- __u32 keycode; >-- __u8 scancode[32]; >--}; >-- >--struct input_mask { >-- __u32 type; >-- __u32 codes_size; >-- __u64 codes_ptr; >--}; >-- >--#define EVIOCGVERSION _IOR('E', 0x01, int) /* get driver version */ >--#define EVIOCGID _IOR('E', 0x02, struct input_id) /* get device ID */ >--#define EVIOCGREP _IOR('E', 0x03, unsigned int[2]) /* get repeat settings */ >--#define EVIOCSREP _IOW('E', 0x03, unsigned int[2]) /* set repeat settings */ >-- >--#define EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2]) /* get keycode */ >--#define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct input_keymap_entry) >--#define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2]) /* set keycode */ >--#define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct input_keymap_entry) >-- >--#define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len) /* get device name */ >--#define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len) /* get physical location */ >--#define EVIOCGUNIQ(len) _IOC(_IOC_READ, 'E', 0x08, len) /* get unique identifier */ >--#define EVIOCGPROP(len) _IOC(_IOC_READ, 'E', 0x09, len) /* get device properties */ >-- >--/** >-- * EVIOCGMTSLOTS(len) - get MT slot values >-- * @len: size of the data buffer in bytes >-- * >-- * The ioctl buffer argument should be binary equivalent to >-- * >-- * struct input_mt_request_layout { >-- * __u32 code; >-- * __s32 values[num_slots]; >-- * }; >-- * >-- * where num_slots is the (arbitrary) number of MT slots to extract. >-- * >-- * The ioctl size argument (len) is the size of the buffer, which >-- * should satisfy len = (num_slots + 1) * sizeof(__s32). If len is >-- * too small to fit all available slots, the first num_slots are >-- * returned. >-- * >-- * Before the call, code is set to the wanted ABS_MT event type. On >-- * return, values[] is filled with the slot values for the specified >-- * ABS_MT code. >-- * >-- * If the request code is not an ABS_MT value, -EINVAL is returned. >-- */ >--#define EVIOCGMTSLOTS(len) _IOC(_IOC_READ, 'E', 0x0a, len) >-- >--#define EVIOCGKEY(len) _IOC(_IOC_READ, 'E', 0x18, len) /* get global key state */ >--#define EVIOCGLED(len) _IOC(_IOC_READ, 'E', 0x19, len) /* get all LEDs */ >--#define EVIOCGSND(len) _IOC(_IOC_READ, 'E', 0x1a, len) /* get all sounds status */ >--#define EVIOCGSW(len) _IOC(_IOC_READ, 'E', 0x1b, len) /* get all switch states */ >-- >--#define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + (ev), len) /* get event bits */ >--#define EVIOCGABS(abs) _IOR('E', 0x40 + (abs), struct input_absinfo) /* get abs value/limits */ >--#define EVIOCSABS(abs) _IOW('E', 0xc0 + (abs), struct input_absinfo) /* set abs value/limits */ >-- >--#define EVIOCSFF _IOW('E', 0x80, struct ff_effect) /* send a force effect to a force feedback device */ >--#define EVIOCRMFF _IOW('E', 0x81, int) /* Erase a force effect */ >--#define EVIOCGEFFECTS _IOR('E', 0x84, int) /* Report number of effects playable at the same time */ >-- >--#define EVIOCGRAB _IOW('E', 0x90, int) /* Grab/Release device */ >--#define EVIOCREVOKE _IOW('E', 0x91, int) /* Revoke device access */ >-- >--/** >-- * EVIOCGMASK - Retrieve current event mask >-- * >-- * This ioctl allows user to retrieve the current event mask for specific >-- * event type. The argument must be of type "struct input_mask" and >-- * specifies the event type to query, the address of the receive buffer and >-- * the size of the receive buffer. >-- * >-- * The event mask is a per-client mask that specifies which events are >-- * forwarded to the client. Each event code is represented by a single bit >-- * in the event mask. If the bit is set, the event is passed to the client >-- * normally. Otherwise, the event is filtered and will never be queued on >-- * the client's receive buffer. >-- * >-- * Event masks do not affect global state of the input device. They only >-- * affect the file descriptor they are applied to. >-- * >-- * The default event mask for a client has all bits set, i.e. all events >-- * are forwarded to the client. If the kernel is queried for an unknown >-- * event type or if the receive buffer is larger than the number of >-- * event codes known to the kernel, the kernel returns all zeroes for those >-- * codes. >-- * >-- * At maximum, codes_size bytes are copied. >-- * >-- * This ioctl may fail with ENODEV in case the file is revoked, EFAULT >-- * if the receive-buffer points to invalid memory, or EINVAL if the kernel >-- * does not implement the ioctl. >-- */ >--#define EVIOCGMASK _IOR('E', 0x92, struct input_mask) /* Get event-masks */ >-- >--/** >-- * EVIOCSMASK - Set event mask >-- * >-- * This ioctl is the counterpart to EVIOCGMASK. Instead of receiving the >-- * current event mask, this changes the client's event mask for a specific >-- * type. See EVIOCGMASK for a description of event-masks and the >-- * argument-type. >-- * >-- * This ioctl provides full forward compatibility. If the passed event type >-- * is unknown to the kernel, or if the number of event codes specified in >-- * the mask is bigger than what is known to the kernel, the ioctl is still >-- * accepted and applied. However, any unknown codes are left untouched and >-- * stay cleared. That means, the kernel always filters unknown codes >-- * regardless of what the client requests. If the new mask doesn't cover >-- * all known event-codes, all remaining codes are automatically cleared and >-- * thus filtered. >-- * >-- * This ioctl may fail with ENODEV in case the file is revoked. EFAULT is >-- * returned if the receive-buffer points to invalid memory. EINVAL is returned >-- * if the kernel does not implement the ioctl. >-- */ >--#define EVIOCSMASK _IOW('E', 0x93, struct input_mask) /* Set event-masks */ >-- >--#define EVIOCSCLOCKID _IOW('E', 0xa0, int) /* Set clockid to be used for timestamps */ >-- >--/* >-- * IDs. >-- */ >-- >--#define ID_BUS 0 >--#define ID_VENDOR 1 >--#define ID_PRODUCT 2 >--#define ID_VERSION 3 >-- >--#define BUS_PCI 0x01 >--#define BUS_ISAPNP 0x02 >--#define BUS_USB 0x03 >--#define BUS_HIL 0x04 >--#define BUS_BLUETOOTH 0x05 >--#define BUS_VIRTUAL 0x06 >-- >--#define BUS_ISA 0x10 >--#define BUS_I8042 0x11 >--#define BUS_XTKBD 0x12 >--#define BUS_RS232 0x13 >--#define BUS_GAMEPORT 0x14 >--#define BUS_PARPORT 0x15 >--#define BUS_AMIGA 0x16 >--#define BUS_ADB 0x17 >--#define BUS_I2C 0x18 >--#define BUS_HOST 0x19 >--#define BUS_GSC 0x1A >--#define BUS_ATARI 0x1B >--#define BUS_SPI 0x1C >--#define BUS_RMI 0x1D >--#define BUS_CEC 0x1E >--#define BUS_INTEL_ISHTP 0x1F >-- >--/* >-- * MT_TOOL types >-- */ >--#define MT_TOOL_FINGER 0 >--#define MT_TOOL_PEN 1 >--#define MT_TOOL_PALM 2 >--#define MT_TOOL_MAX 2 >-- >--/* >-- * Values describing the status of a force-feedback effect >-- */ >--#define FF_STATUS_STOPPED 0x00 >--#define FF_STATUS_PLAYING 0x01 >--#define FF_STATUS_MAX 0x01 >-- >--/* >-- * Structures used in ioctls to upload effects to a device >-- * They are pieces of a bigger structure (called ff_effect) >-- */ >-- >--/* >-- * All duration values are expressed in ms. Values above 32767 ms (0x7fff) >-- * should not be used and have unspecified results. >-- */ >-- >--/** >-- * struct ff_replay - defines scheduling of the force-feedback effect >-- * @length: duration of the effect >-- * @delay: delay before effect should start playing >-- */ >--struct ff_replay { >-- __u16 length; >-- __u16 delay; >--}; >-- >--/** >-- * struct ff_trigger - defines what triggers the force-feedback effect >-- * @button: number of the button triggering the effect >-- * @interval: controls how soon the effect can be re-triggered >-- */ >--struct ff_trigger { >-- __u16 button; >-- __u16 interval; >--}; >-- >--/** >-- * struct ff_envelope - generic force-feedback effect envelope >-- * @attack_length: duration of the attack (ms) >-- * @attack_level: level at the beginning of the attack >-- * @fade_length: duration of fade (ms) >-- * @fade_level: level at the end of fade >-- * >-- * The @attack_level and @fade_level are absolute values; when applying >-- * envelope force-feedback core will convert to positive/negative >-- * value based on polarity of the default level of the effect. >-- * Valid range for the attack and fade levels is 0x0000 - 0x7fff >-- */ >--struct ff_envelope { >-- __u16 attack_length; >-- __u16 attack_level; >-- __u16 fade_length; >-- __u16 fade_level; >--}; >-- >--/** >-- * struct ff_constant_effect - defines parameters of a constant force-feedback effect >-- * @level: strength of the effect; may be negative >-- * @envelope: envelope data >-- */ >--struct ff_constant_effect { >-- __s16 level; >-- struct ff_envelope envelope; >--}; >-- >--/** >-- * struct ff_ramp_effect - defines parameters of a ramp force-feedback effect >-- * @start_level: beginning strength of the effect; may be negative >-- * @end_level: final strength of the effect; may be negative >-- * @envelope: envelope data >-- */ >--struct ff_ramp_effect { >-- __s16 start_level; >-- __s16 end_level; >-- struct ff_envelope envelope; >--}; >-- >--/** >-- * struct ff_condition_effect - defines a spring or friction force-feedback effect >-- * @right_saturation: maximum level when joystick moved all way to the right >-- * @left_saturation: same for the left side >-- * @right_coeff: controls how fast the force grows when the joystick moves >-- * to the right >-- * @left_coeff: same for the left side >-- * @deadband: size of the dead zone, where no force is produced >-- * @center: position of the dead zone >-- */ >--struct ff_condition_effect { >-- __u16 right_saturation; >-- __u16 left_saturation; >-- >-- __s16 right_coeff; >-- __s16 left_coeff; >-- >-- __u16 deadband; >-- __s16 center; >--}; >-- >--/** >-- * struct ff_periodic_effect - defines parameters of a periodic force-feedback effect >-- * @waveform: kind of the effect (wave) >-- * @period: period of the wave (ms) >-- * @magnitude: peak value >-- * @offset: mean value of the wave (roughly) >-- * @phase: 'horizontal' shift >-- * @envelope: envelope data >-- * @custom_len: number of samples (FF_CUSTOM only) >-- * @custom_data: buffer of samples (FF_CUSTOM only) >-- * >-- * Known waveforms - FF_SQUARE, FF_TRIANGLE, FF_SINE, FF_SAW_UP, >-- * FF_SAW_DOWN, FF_CUSTOM. The exact syntax FF_CUSTOM is undefined >-- * for the time being as no driver supports it yet. >-- * >-- * Note: the data pointed by custom_data is copied by the driver. >-- * You can therefore dispose of the memory after the upload/update. >-- */ >--struct ff_periodic_effect { >-- __u16 waveform; >-- __u16 period; >-- __s16 magnitude; >-- __s16 offset; >-- __u16 phase; >-- >-- struct ff_envelope envelope; >-- >-- __u32 custom_len; >-- __s16 *custom_data; >--}; >-- >--/** >-- * struct ff_rumble_effect - defines parameters of a periodic force-feedback effect >-- * @strong_magnitude: magnitude of the heavy motor >-- * @weak_magnitude: magnitude of the light one >-- * >-- * Some rumble pads have two motors of different weight. Strong_magnitude >-- * represents the magnitude of the vibration generated by the heavy one. >-- */ >--struct ff_rumble_effect { >-- __u16 strong_magnitude; >-- __u16 weak_magnitude; >--}; >-- >--/** >-- * struct ff_effect - defines force feedback effect >-- * @type: type of the effect (FF_CONSTANT, FF_PERIODIC, FF_RAMP, FF_SPRING, >-- * FF_FRICTION, FF_DAMPER, FF_RUMBLE, FF_INERTIA, or FF_CUSTOM) >-- * @id: an unique id assigned to an effect >-- * @direction: direction of the effect >-- * @trigger: trigger conditions (struct ff_trigger) >-- * @replay: scheduling of the effect (struct ff_replay) >-- * @u: effect-specific structure (one of ff_constant_effect, ff_ramp_effect, >-- * ff_periodic_effect, ff_condition_effect, ff_rumble_effect) further >-- * defining effect parameters >-- * >-- * This structure is sent through ioctl from the application to the driver. >-- * To create a new effect application should set its @id to -1; the kernel >-- * will return assigned @id which can later be used to update or delete >-- * this effect. >-- * >-- * Direction of the effect is encoded as follows: >-- * 0 deg -> 0x0000 (down) >-- * 90 deg -> 0x4000 (left) >-- * 180 deg -> 0x8000 (up) >-- * 270 deg -> 0xC000 (right) >-- */ >--struct ff_effect { >-- __u16 type; >-- __s16 id; >-- __u16 direction; >-- struct ff_trigger trigger; >-- struct ff_replay replay; >-- >-- union { >-- struct ff_constant_effect constant; >-- struct ff_ramp_effect ramp; >-- struct ff_periodic_effect periodic; >-- struct ff_condition_effect condition[2]; /* One for each axis */ >-- struct ff_rumble_effect rumble; >-- } u; >--}; >-- >--/* >-- * Force feedback effect types >-- */ >-- >--#define FF_RUMBLE 0x50 >--#define FF_PERIODIC 0x51 >--#define FF_CONSTANT 0x52 >--#define FF_SPRING 0x53 >--#define FF_FRICTION 0x54 >--#define FF_DAMPER 0x55 >--#define FF_INERTIA 0x56 >--#define FF_RAMP 0x57 >-- >--#define FF_EFFECT_MIN FF_RUMBLE >--#define FF_EFFECT_MAX FF_RAMP >-- >--/* >-- * Force feedback periodic effect types >-- */ >-- >--#define FF_SQUARE 0x58 >--#define FF_TRIANGLE 0x59 >--#define FF_SINE 0x5a >--#define FF_SAW_UP 0x5b >--#define FF_SAW_DOWN 0x5c >--#define FF_CUSTOM 0x5d >-- >--#define FF_WAVEFORM_MIN FF_SQUARE >--#define FF_WAVEFORM_MAX FF_CUSTOM >-- >--/* >-- * Set ff device properties >-- */ >-- >--#define FF_GAIN 0x60 >--#define FF_AUTOCENTER 0x61 >-- >--/* >-- * ff->playback(effect_id = FF_GAIN) is the first effect_id to >-- * cause a collision with another ff method, in this case ff->set_gain(). >-- * Therefore the greatest safe value for effect_id is FF_GAIN - 1, >-- * and thus the total number of effects should never exceed FF_GAIN. >-- */ >--#define FF_MAX_EFFECTS FF_GAIN >-- >--#define FF_MAX 0x7f >--#define FF_CNT (FF_MAX+1) >-- >--#endif /* _INPUT_H */ >-diff --git a/include/linux/linux/input-event-codes.h b/include/linux/linux/input-event-codes.h >-new file mode 100644 >-index 00000000..9771e4f8 >---- /dev/null >-+++ include/linux/linux/input-event-codes.h >-@@ -0,0 +1,837 @@ >-+/* >-+ * Input event codes >-+ * >-+ * *** IMPORTANT *** >-+ * This file is not only included from C-code but also from devicetree source >-+ * files. As such this file MUST only contain comments and defines. >-+ * >-+ * Copyright (c) 1999-2002 Vojtech Pavlik >-+ * Copyright (c) 2015 Hans de Goede <hdegoede@redhat.com> >-+ * >-+ * This program is free software; you can redistribute it and/or modify it >-+ * under the terms of the GNU General Public License version 2 as published by >-+ * the Free Software Foundation. >-+ */ >-+#ifndef _UAPI_INPUT_EVENT_CODES_H >-+#define _UAPI_INPUT_EVENT_CODES_H >-+ >-+/* >-+ * Device properties and quirks >-+ */ >-+ >-+#define INPUT_PROP_POINTER 0x00 /* needs a pointer */ >-+#define INPUT_PROP_DIRECT 0x01 /* direct input devices */ >-+#define INPUT_PROP_BUTTONPAD 0x02 /* has button(s) under pad */ >-+#define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ >-+#define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ >-+#define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ >-+#define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */ >-+ >-+#define INPUT_PROP_MAX 0x1f >-+#define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) >-+ >-+/* >-+ * Event types >-+ */ >-+ >-+#define EV_SYN 0x00 >-+#define EV_KEY 0x01 >-+#define EV_REL 0x02 >-+#define EV_ABS 0x03 >-+#define EV_MSC 0x04 >-+#define EV_SW 0x05 >-+#define EV_LED 0x11 >-+#define EV_SND 0x12 >-+#define EV_REP 0x14 >-+#define EV_FF 0x15 >-+#define EV_PWR 0x16 >-+#define EV_FF_STATUS 0x17 >-+#define EV_MAX 0x1f >-+#define EV_CNT (EV_MAX+1) >-+ >-+/* >-+ * Synchronization events. >-+ */ >-+ >-+#define SYN_REPORT 0 >-+#define SYN_CONFIG 1 >-+#define SYN_MT_REPORT 2 >-+#define SYN_DROPPED 3 >-+#define SYN_MAX 0xf >-+#define SYN_CNT (SYN_MAX+1) >-+ >-+/* >-+ * Keys and buttons >-+ * >-+ * Most of the keys/buttons are modeled after USB HUT 1.12 >-+ * (see http://www.usb.org/developers/hidpage). >-+ * Abbreviations in the comments: >-+ * AC - Application Control >-+ * AL - Application Launch Button >-+ * SC - System Control >-+ */ >-+ >-+#define KEY_RESERVED 0 >-+#define KEY_ESC 1 >-+#define KEY_1 2 >-+#define KEY_2 3 >-+#define KEY_3 4 >-+#define KEY_4 5 >-+#define KEY_5 6 >-+#define KEY_6 7 >-+#define KEY_7 8 >-+#define KEY_8 9 >-+#define KEY_9 10 >-+#define KEY_0 11 >-+#define KEY_MINUS 12 >-+#define KEY_EQUAL 13 >-+#define KEY_BACKSPACE 14 >-+#define KEY_TAB 15 >-+#define KEY_Q 16 >-+#define KEY_W 17 >-+#define KEY_E 18 >-+#define KEY_R 19 >-+#define KEY_T 20 >-+#define KEY_Y 21 >-+#define KEY_U 22 >-+#define KEY_I 23 >-+#define KEY_O 24 >-+#define KEY_P 25 >-+#define KEY_LEFTBRACE 26 >-+#define KEY_RIGHTBRACE 27 >-+#define KEY_ENTER 28 >-+#define KEY_LEFTCTRL 29 >-+#define KEY_A 30 >-+#define KEY_S 31 >-+#define KEY_D 32 >-+#define KEY_F 33 >-+#define KEY_G 34 >-+#define KEY_H 35 >-+#define KEY_J 36 >-+#define KEY_K 37 >-+#define KEY_L 38 >-+#define KEY_SEMICOLON 39 >-+#define KEY_APOSTROPHE 40 >-+#define KEY_GRAVE 41 >-+#define KEY_LEFTSHIFT 42 >-+#define KEY_BACKSLASH 43 >-+#define KEY_Z 44 >-+#define KEY_X 45 >-+#define KEY_C 46 >-+#define KEY_V 47 >-+#define KEY_B 48 >-+#define KEY_N 49 >-+#define KEY_M 50 >-+#define KEY_COMMA 51 >-+#define KEY_DOT 52 >-+#define KEY_SLASH 53 >-+#define KEY_RIGHTSHIFT 54 >-+#define KEY_KPASTERISK 55 >-+#define KEY_LEFTALT 56 >-+#define KEY_SPACE 57 >-+#define KEY_CAPSLOCK 58 >-+#define KEY_F1 59 >-+#define KEY_F2 60 >-+#define KEY_F3 61 >-+#define KEY_F4 62 >-+#define KEY_F5 63 >-+#define KEY_F6 64 >-+#define KEY_F7 65 >-+#define KEY_F8 66 >-+#define KEY_F9 67 >-+#define KEY_F10 68 >-+#define KEY_NUMLOCK 69 >-+#define KEY_SCROLLLOCK 70 >-+#define KEY_KP7 71 >-+#define KEY_KP8 72 >-+#define KEY_KP9 73 >-+#define KEY_KPMINUS 74 >-+#define KEY_KP4 75 >-+#define KEY_KP5 76 >-+#define KEY_KP6 77 >-+#define KEY_KPPLUS 78 >-+#define KEY_KP1 79 >-+#define KEY_KP2 80 >-+#define KEY_KP3 81 >-+#define KEY_KP0 82 >-+#define KEY_KPDOT 83 >-+ >-+#define KEY_ZENKAKUHANKAKU 85 >-+#define KEY_102ND 86 >-+#define KEY_F11 87 >-+#define KEY_F12 88 >-+#define KEY_RO 89 >-+#define KEY_KATAKANA 90 >-+#define KEY_HIRAGANA 91 >-+#define KEY_HENKAN 92 >-+#define KEY_KATAKANAHIRAGANA 93 >-+#define KEY_MUHENKAN 94 >-+#define KEY_KPJPCOMMA 95 >-+#define KEY_KPENTER 96 >-+#define KEY_RIGHTCTRL 97 >-+#define KEY_KPSLASH 98 >-+#define KEY_SYSRQ 99 >-+#define KEY_RIGHTALT 100 >-+#define KEY_LINEFEED 101 >-+#define KEY_HOME 102 >-+#define KEY_UP 103 >-+#define KEY_PAGEUP 104 >-+#define KEY_LEFT 105 >-+#define KEY_RIGHT 106 >-+#define KEY_END 107 >-+#define KEY_DOWN 108 >-+#define KEY_PAGEDOWN 109 >-+#define KEY_INSERT 110 >-+#define KEY_DELETE 111 >-+#define KEY_MACRO 112 >-+#define KEY_MUTE 113 >-+#define KEY_VOLUMEDOWN 114 >-+#define KEY_VOLUMEUP 115 >-+#define KEY_POWER 116 /* SC System Power Down */ >-+#define KEY_KPEQUAL 117 >-+#define KEY_KPPLUSMINUS 118 >-+#define KEY_PAUSE 119 >-+#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */ >-+ >-+#define KEY_KPCOMMA 121 >-+#define KEY_HANGEUL 122 >-+#define KEY_HANGUEL KEY_HANGEUL >-+#define KEY_HANJA 123 >-+#define KEY_YEN 124 >-+#define KEY_LEFTMETA 125 >-+#define KEY_RIGHTMETA 126 >-+#define KEY_COMPOSE 127 >-+ >-+#define KEY_STOP 128 /* AC Stop */ >-+#define KEY_AGAIN 129 >-+#define KEY_PROPS 130 /* AC Properties */ >-+#define KEY_UNDO 131 /* AC Undo */ >-+#define KEY_FRONT 132 >-+#define KEY_COPY 133 /* AC Copy */ >-+#define KEY_OPEN 134 /* AC Open */ >-+#define KEY_PASTE 135 /* AC Paste */ >-+#define KEY_FIND 136 /* AC Search */ >-+#define KEY_CUT 137 /* AC Cut */ >-+#define KEY_HELP 138 /* AL Integrated Help Center */ >-+#define KEY_MENU 139 /* Menu (show menu) */ >-+#define KEY_CALC 140 /* AL Calculator */ >-+#define KEY_SETUP 141 >-+#define KEY_SLEEP 142 /* SC System Sleep */ >-+#define KEY_WAKEUP 143 /* System Wake Up */ >-+#define KEY_FILE 144 /* AL Local Machine Browser */ >-+#define KEY_SENDFILE 145 >-+#define KEY_DELETEFILE 146 >-+#define KEY_XFER 147 >-+#define KEY_PROG1 148 >-+#define KEY_PROG2 149 >-+#define KEY_WWW 150 /* AL Internet Browser */ >-+#define KEY_MSDOS 151 >-+#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */ >-+#define KEY_SCREENLOCK KEY_COFFEE >-+#define KEY_ROTATE_DISPLAY 153 /* Display orientation for e.g. tablets */ >-+#define KEY_DIRECTION KEY_ROTATE_DISPLAY >-+#define KEY_CYCLEWINDOWS 154 >-+#define KEY_MAIL 155 >-+#define KEY_BOOKMARKS 156 /* AC Bookmarks */ >-+#define KEY_COMPUTER 157 >-+#define KEY_BACK 158 /* AC Back */ >-+#define KEY_FORWARD 159 /* AC Forward */ >-+#define KEY_CLOSECD 160 >-+#define KEY_EJECTCD 161 >-+#define KEY_EJECTCLOSECD 162 >-+#define KEY_NEXTSONG 163 >-+#define KEY_PLAYPAUSE 164 >-+#define KEY_PREVIOUSSONG 165 >-+#define KEY_STOPCD 166 >-+#define KEY_RECORD 167 >-+#define KEY_REWIND 168 >-+#define KEY_PHONE 169 /* Media Select Telephone */ >-+#define KEY_ISO 170 >-+#define KEY_CONFIG 171 /* AL Consumer Control Configuration */ >-+#define KEY_HOMEPAGE 172 /* AC Home */ >-+#define KEY_REFRESH 173 /* AC Refresh */ >-+#define KEY_EXIT 174 /* AC Exit */ >-+#define KEY_MOVE 175 >-+#define KEY_EDIT 176 >-+#define KEY_SCROLLUP 177 >-+#define KEY_SCROLLDOWN 178 >-+#define KEY_KPLEFTPAREN 179 >-+#define KEY_KPRIGHTPAREN 180 >-+#define KEY_NEW 181 /* AC New */ >-+#define KEY_REDO 182 /* AC Redo/Repeat */ >-+ >-+#define KEY_F13 183 >-+#define KEY_F14 184 >-+#define KEY_F15 185 >-+#define KEY_F16 186 >-+#define KEY_F17 187 >-+#define KEY_F18 188 >-+#define KEY_F19 189 >-+#define KEY_F20 190 >-+#define KEY_F21 191 >-+#define KEY_F22 192 >-+#define KEY_F23 193 >-+#define KEY_F24 194 >-+ >-+#define KEY_PLAYCD 200 >-+#define KEY_PAUSECD 201 >-+#define KEY_PROG3 202 >-+#define KEY_PROG4 203 >-+#define KEY_DASHBOARD 204 /* AL Dashboard */ >-+#define KEY_SUSPEND 205 >-+#define KEY_CLOSE 206 /* AC Close */ >-+#define KEY_PLAY 207 >-+#define KEY_FASTFORWARD 208 >-+#define KEY_BASSBOOST 209 >-+#define KEY_PRINT 210 /* AC Print */ >-+#define KEY_HP 211 >-+#define KEY_CAMERA 212 >-+#define KEY_SOUND 213 >-+#define KEY_QUESTION 214 >-+#define KEY_EMAIL 215 >-+#define KEY_CHAT 216 >-+#define KEY_SEARCH 217 >-+#define KEY_CONNECT 218 >-+#define KEY_FINANCE 219 /* AL Checkbook/Finance */ >-+#define KEY_SPORT 220 >-+#define KEY_SHOP 221 >-+#define KEY_ALTERASE 222 >-+#define KEY_CANCEL 223 /* AC Cancel */ >-+#define KEY_BRIGHTNESSDOWN 224 >-+#define KEY_BRIGHTNESSUP 225 >-+#define KEY_MEDIA 226 >-+ >-+#define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video >-+ outputs (Monitor/LCD/TV-out/etc) */ >-+#define KEY_KBDILLUMTOGGLE 228 >-+#define KEY_KBDILLUMDOWN 229 >-+#define KEY_KBDILLUMUP 230 >-+ >-+#define KEY_SEND 231 /* AC Send */ >-+#define KEY_REPLY 232 /* AC Reply */ >-+#define KEY_FORWARDMAIL 233 /* AC Forward Msg */ >-+#define KEY_SAVE 234 /* AC Save */ >-+#define KEY_DOCUMENTS 235 >-+ >-+#define KEY_BATTERY 236 >-+ >-+#define KEY_BLUETOOTH 237 >-+#define KEY_WLAN 238 >-+#define KEY_UWB 239 >-+ >-+#define KEY_UNKNOWN 240 >-+ >-+#define KEY_VIDEO_NEXT 241 /* drive next video source */ >-+#define KEY_VIDEO_PREV 242 /* drive previous video source */ >-+#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */ >-+#define KEY_BRIGHTNESS_AUTO 244 /* Set Auto Brightness: manual >-+ brightness control is off, >-+ rely on ambient */ >-+#define KEY_BRIGHTNESS_ZERO KEY_BRIGHTNESS_AUTO >-+#define KEY_DISPLAY_OFF 245 /* display device to off state */ >-+ >-+#define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */ >-+#define KEY_WIMAX KEY_WWAN >-+#define KEY_RFKILL 247 /* Key that controls all radios */ >-+ >-+#define KEY_MICMUTE 248 /* Mute / unmute the microphone */ >-+ >-+/* Code 255 is reserved for special needs of AT keyboard driver */ >-+ >-+#define BTN_MISC 0x100 >-+#define BTN_0 0x100 >-+#define BTN_1 0x101 >-+#define BTN_2 0x102 >-+#define BTN_3 0x103 >-+#define BTN_4 0x104 >-+#define BTN_5 0x105 >-+#define BTN_6 0x106 >-+#define BTN_7 0x107 >-+#define BTN_8 0x108 >-+#define BTN_9 0x109 >-+ >-+#define BTN_MOUSE 0x110 >-+#define BTN_LEFT 0x110 >-+#define BTN_RIGHT 0x111 >-+#define BTN_MIDDLE 0x112 >-+#define BTN_SIDE 0x113 >-+#define BTN_EXTRA 0x114 >-+#define BTN_FORWARD 0x115 >-+#define BTN_BACK 0x116 >-+#define BTN_TASK 0x117 >-+ >-+#define BTN_JOYSTICK 0x120 >-+#define BTN_TRIGGER 0x120 >-+#define BTN_THUMB 0x121 >-+#define BTN_THUMB2 0x122 >-+#define BTN_TOP 0x123 >-+#define BTN_TOP2 0x124 >-+#define BTN_PINKIE 0x125 >-+#define BTN_BASE 0x126 >-+#define BTN_BASE2 0x127 >-+#define BTN_BASE3 0x128 >-+#define BTN_BASE4 0x129 >-+#define BTN_BASE5 0x12a >-+#define BTN_BASE6 0x12b >-+#define BTN_DEAD 0x12f >-+ >-+#define BTN_GAMEPAD 0x130 >-+#define BTN_SOUTH 0x130 >-+#define BTN_A BTN_SOUTH >-+#define BTN_EAST 0x131 >-+#define BTN_B BTN_EAST >-+#define BTN_C 0x132 >-+#define BTN_NORTH 0x133 >-+#define BTN_X BTN_NORTH >-+#define BTN_WEST 0x134 >-+#define BTN_Y BTN_WEST >-+#define BTN_Z 0x135 >-+#define BTN_TL 0x136 >-+#define BTN_TR 0x137 >-+#define BTN_TL2 0x138 >-+#define BTN_TR2 0x139 >-+#define BTN_SELECT 0x13a >-+#define BTN_START 0x13b >-+#define BTN_MODE 0x13c >-+#define BTN_THUMBL 0x13d >-+#define BTN_THUMBR 0x13e >-+ >-+#define BTN_DIGI 0x140 >-+#define BTN_TOOL_PEN 0x140 >-+#define BTN_TOOL_RUBBER 0x141 >-+#define BTN_TOOL_BRUSH 0x142 >-+#define BTN_TOOL_PENCIL 0x143 >-+#define BTN_TOOL_AIRBRUSH 0x144 >-+#define BTN_TOOL_FINGER 0x145 >-+#define BTN_TOOL_MOUSE 0x146 >-+#define BTN_TOOL_LENS 0x147 >-+#define BTN_TOOL_QUINTTAP 0x148 /* Five fingers on trackpad */ >-+#define BTN_TOUCH 0x14a >-+#define BTN_STYLUS 0x14b >-+#define BTN_STYLUS2 0x14c >-+#define BTN_TOOL_DOUBLETAP 0x14d >-+#define BTN_TOOL_TRIPLETAP 0x14e >-+#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */ >-+ >-+#define BTN_WHEEL 0x150 >-+#define BTN_GEAR_DOWN 0x150 >-+#define BTN_GEAR_UP 0x151 >-+ >-+#define KEY_OK 0x160 >-+#define KEY_SELECT 0x161 >-+#define KEY_GOTO 0x162 >-+#define KEY_CLEAR 0x163 >-+#define KEY_POWER2 0x164 >-+#define KEY_OPTION 0x165 >-+#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */ >-+#define KEY_TIME 0x167 >-+#define KEY_VENDOR 0x168 >-+#define KEY_ARCHIVE 0x169 >-+#define KEY_PROGRAM 0x16a /* Media Select Program Guide */ >-+#define KEY_CHANNEL 0x16b >-+#define KEY_FAVORITES 0x16c >-+#define KEY_EPG 0x16d >-+#define KEY_PVR 0x16e /* Media Select Home */ >-+#define KEY_MHP 0x16f >-+#define KEY_LANGUAGE 0x170 >-+#define KEY_TITLE 0x171 >-+#define KEY_SUBTITLE 0x172 >-+#define KEY_ANGLE 0x173 >-+#define KEY_ZOOM 0x174 >-+#define KEY_MODE 0x175 >-+#define KEY_KEYBOARD 0x176 >-+#define KEY_SCREEN 0x177 >-+#define KEY_PC 0x178 /* Media Select Computer */ >-+#define KEY_TV 0x179 /* Media Select TV */ >-+#define KEY_TV2 0x17a /* Media Select Cable */ >-+#define KEY_VCR 0x17b /* Media Select VCR */ >-+#define KEY_VCR2 0x17c /* VCR Plus */ >-+#define KEY_SAT 0x17d /* Media Select Satellite */ >-+#define KEY_SAT2 0x17e >-+#define KEY_CD 0x17f /* Media Select CD */ >-+#define KEY_TAPE 0x180 /* Media Select Tape */ >-+#define KEY_RADIO 0x181 >-+#define KEY_TUNER 0x182 /* Media Select Tuner */ >-+#define KEY_PLAYER 0x183 >-+#define KEY_TEXT 0x184 >-+#define KEY_DVD 0x185 /* Media Select DVD */ >-+#define KEY_AUX 0x186 >-+#define KEY_MP3 0x187 >-+#define KEY_AUDIO 0x188 /* AL Audio Browser */ >-+#define KEY_VIDEO 0x189 /* AL Movie Browser */ >-+#define KEY_DIRECTORY 0x18a >-+#define KEY_LIST 0x18b >-+#define KEY_MEMO 0x18c /* Media Select Messages */ >-+#define KEY_CALENDAR 0x18d >-+#define KEY_RED 0x18e >-+#define KEY_GREEN 0x18f >-+#define KEY_YELLOW 0x190 >-+#define KEY_BLUE 0x191 >-+#define KEY_CHANNELUP 0x192 /* Channel Increment */ >-+#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */ >-+#define KEY_FIRST 0x194 >-+#define KEY_LAST 0x195 /* Recall Last */ >-+#define KEY_AB 0x196 >-+#define KEY_NEXT 0x197 >-+#define KEY_RESTART 0x198 >-+#define KEY_SLOW 0x199 >-+#define KEY_SHUFFLE 0x19a >-+#define KEY_BREAK 0x19b >-+#define KEY_PREVIOUS 0x19c >-+#define KEY_DIGITS 0x19d >-+#define KEY_TEEN 0x19e >-+#define KEY_TWEN 0x19f >-+#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */ >-+#define KEY_GAMES 0x1a1 /* Media Select Games */ >-+#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */ >-+#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */ >-+#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */ >-+#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */ >-+#define KEY_EDITOR 0x1a6 /* AL Text Editor */ >-+#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */ >-+#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */ >-+#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */ >-+#define KEY_DATABASE 0x1aa /* AL Database App */ >-+#define KEY_NEWS 0x1ab /* AL Newsreader */ >-+#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */ >-+#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */ >-+#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */ >-+#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */ >-+#define KEY_BRIGHTNESS_TOGGLE KEY_DISPLAYTOGGLE >-+#define KEY_SPELLCHECK 0x1b0 /* AL Spell Check */ >-+#define KEY_LOGOFF 0x1b1 /* AL Logoff */ >-+ >-+#define KEY_DOLLAR 0x1b2 >-+#define KEY_EURO 0x1b3 >-+ >-+#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */ >-+#define KEY_FRAMEFORWARD 0x1b5 >-+#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */ >-+#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */ >-+#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */ >-+#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */ >-+#define KEY_IMAGES 0x1ba /* AL Image Browser */ >-+ >-+#define KEY_DEL_EOL 0x1c0 >-+#define KEY_DEL_EOS 0x1c1 >-+#define KEY_INS_LINE 0x1c2 >-+#define KEY_DEL_LINE 0x1c3 >-+ >-+#define KEY_FN 0x1d0 >-+#define KEY_FN_ESC 0x1d1 >-+#define KEY_FN_F1 0x1d2 >-+#define KEY_FN_F2 0x1d3 >-+#define KEY_FN_F3 0x1d4 >-+#define KEY_FN_F4 0x1d5 >-+#define KEY_FN_F5 0x1d6 >-+#define KEY_FN_F6 0x1d7 >-+#define KEY_FN_F7 0x1d8 >-+#define KEY_FN_F8 0x1d9 >-+#define KEY_FN_F9 0x1da >-+#define KEY_FN_F10 0x1db >-+#define KEY_FN_F11 0x1dc >-+#define KEY_FN_F12 0x1dd >-+#define KEY_FN_1 0x1de >-+#define KEY_FN_2 0x1df >-+#define KEY_FN_D 0x1e0 >-+#define KEY_FN_E 0x1e1 >-+#define KEY_FN_F 0x1e2 >-+#define KEY_FN_S 0x1e3 >-+#define KEY_FN_B 0x1e4 >-+ >-+#define KEY_BRL_DOT1 0x1f1 >-+#define KEY_BRL_DOT2 0x1f2 >-+#define KEY_BRL_DOT3 0x1f3 >-+#define KEY_BRL_DOT4 0x1f4 >-+#define KEY_BRL_DOT5 0x1f5 >-+#define KEY_BRL_DOT6 0x1f6 >-+#define KEY_BRL_DOT7 0x1f7 >-+#define KEY_BRL_DOT8 0x1f8 >-+#define KEY_BRL_DOT9 0x1f9 >-+#define KEY_BRL_DOT10 0x1fa >-+ >-+#define KEY_NUMERIC_0 0x200 /* used by phones, remote controls, */ >-+#define KEY_NUMERIC_1 0x201 /* and other keypads */ >-+#define KEY_NUMERIC_2 0x202 >-+#define KEY_NUMERIC_3 0x203 >-+#define KEY_NUMERIC_4 0x204 >-+#define KEY_NUMERIC_5 0x205 >-+#define KEY_NUMERIC_6 0x206 >-+#define KEY_NUMERIC_7 0x207 >-+#define KEY_NUMERIC_8 0x208 >-+#define KEY_NUMERIC_9 0x209 >-+#define KEY_NUMERIC_STAR 0x20a >-+#define KEY_NUMERIC_POUND 0x20b >-+#define KEY_NUMERIC_A 0x20c /* Phone key A - HUT Telephony 0xb9 */ >-+#define KEY_NUMERIC_B 0x20d >-+#define KEY_NUMERIC_C 0x20e >-+#define KEY_NUMERIC_D 0x20f >-+ >-+#define KEY_CAMERA_FOCUS 0x210 >-+#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */ >-+ >-+#define KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */ >-+#define KEY_TOUCHPAD_ON 0x213 >-+#define KEY_TOUCHPAD_OFF 0x214 >-+ >-+#define KEY_CAMERA_ZOOMIN 0x215 >-+#define KEY_CAMERA_ZOOMOUT 0x216 >-+#define KEY_CAMERA_UP 0x217 >-+#define KEY_CAMERA_DOWN 0x218 >-+#define KEY_CAMERA_LEFT 0x219 >-+#define KEY_CAMERA_RIGHT 0x21a >-+ >-+#define KEY_ATTENDANT_ON 0x21b >-+#define KEY_ATTENDANT_OFF 0x21c >-+#define KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */ >-+#define KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */ >-+ >-+#define BTN_DPAD_UP 0x220 >-+#define BTN_DPAD_DOWN 0x221 >-+#define BTN_DPAD_LEFT 0x222 >-+#define BTN_DPAD_RIGHT 0x223 >-+ >-+#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ >-+ >-+#define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ >-+#define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ >-+#define KEY_JOURNAL 0x242 /* AL Log/Journal/Timecard */ >-+#define KEY_CONTROLPANEL 0x243 /* AL Control Panel */ >-+#define KEY_APPSELECT 0x244 /* AL Select Task/Application */ >-+#define KEY_SCREENSAVER 0x245 /* AL Screen Saver */ >-+#define KEY_VOICECOMMAND 0x246 /* Listening Voice Command */ >-+ >-+#define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ >-+#define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ >-+ >-+#define KEY_KBDINPUTASSIST_PREV 0x260 >-+#define KEY_KBDINPUTASSIST_NEXT 0x261 >-+#define KEY_KBDINPUTASSIST_PREVGROUP 0x262 >-+#define KEY_KBDINPUTASSIST_NEXTGROUP 0x263 >-+#define KEY_KBDINPUTASSIST_ACCEPT 0x264 >-+#define KEY_KBDINPUTASSIST_CANCEL 0x265 >-+ >-+/* Diagonal movement keys */ >-+#define KEY_RIGHT_UP 0x266 >-+#define KEY_RIGHT_DOWN 0x267 >-+#define KEY_LEFT_UP 0x268 >-+#define KEY_LEFT_DOWN 0x269 >-+ >-+#define KEY_ROOT_MENU 0x26a /* Show Device's Root Menu */ >-+/* Show Top Menu of the Media (e.g. DVD) */ >-+#define KEY_MEDIA_TOP_MENU 0x26b >-+#define KEY_NUMERIC_11 0x26c >-+#define KEY_NUMERIC_12 0x26d >-+/* >-+ * Toggle Audio Description: refers to an audio service that helps blind and >-+ * visually impaired consumers understand the action in a program. Note: in >-+ * some countries this is referred to as "Video Description". >-+ */ >-+#define KEY_AUDIO_DESC 0x26e >-+#define KEY_3D_MODE 0x26f >-+#define KEY_NEXT_FAVORITE 0x270 >-+#define KEY_STOP_RECORD 0x271 >-+#define KEY_PAUSE_RECORD 0x272 >-+#define KEY_VOD 0x273 /* Video on Demand */ >-+#define KEY_UNMUTE 0x274 >-+#define KEY_FASTREVERSE 0x275 >-+#define KEY_SLOWREVERSE 0x276 >-+/* >-+ * Control a data application associated with the currently viewed channel, >-+ * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.) >-+ */ >-+#define KEY_DATA 0x277 >-+#define KEY_ONSCREEN_KEYBOARD 0x278 >-+ >-+#define BTN_TRIGGER_HAPPY 0x2c0 >-+#define BTN_TRIGGER_HAPPY1 0x2c0 >-+#define BTN_TRIGGER_HAPPY2 0x2c1 >-+#define BTN_TRIGGER_HAPPY3 0x2c2 >-+#define BTN_TRIGGER_HAPPY4 0x2c3 >-+#define BTN_TRIGGER_HAPPY5 0x2c4 >-+#define BTN_TRIGGER_HAPPY6 0x2c5 >-+#define BTN_TRIGGER_HAPPY7 0x2c6 >-+#define BTN_TRIGGER_HAPPY8 0x2c7 >-+#define BTN_TRIGGER_HAPPY9 0x2c8 >-+#define BTN_TRIGGER_HAPPY10 0x2c9 >-+#define BTN_TRIGGER_HAPPY11 0x2ca >-+#define BTN_TRIGGER_HAPPY12 0x2cb >-+#define BTN_TRIGGER_HAPPY13 0x2cc >-+#define BTN_TRIGGER_HAPPY14 0x2cd >-+#define BTN_TRIGGER_HAPPY15 0x2ce >-+#define BTN_TRIGGER_HAPPY16 0x2cf >-+#define BTN_TRIGGER_HAPPY17 0x2d0 >-+#define BTN_TRIGGER_HAPPY18 0x2d1 >-+#define BTN_TRIGGER_HAPPY19 0x2d2 >-+#define BTN_TRIGGER_HAPPY20 0x2d3 >-+#define BTN_TRIGGER_HAPPY21 0x2d4 >-+#define BTN_TRIGGER_HAPPY22 0x2d5 >-+#define BTN_TRIGGER_HAPPY23 0x2d6 >-+#define BTN_TRIGGER_HAPPY24 0x2d7 >-+#define BTN_TRIGGER_HAPPY25 0x2d8 >-+#define BTN_TRIGGER_HAPPY26 0x2d9 >-+#define BTN_TRIGGER_HAPPY27 0x2da >-+#define BTN_TRIGGER_HAPPY28 0x2db >-+#define BTN_TRIGGER_HAPPY29 0x2dc >-+#define BTN_TRIGGER_HAPPY30 0x2dd >-+#define BTN_TRIGGER_HAPPY31 0x2de >-+#define BTN_TRIGGER_HAPPY32 0x2df >-+#define BTN_TRIGGER_HAPPY33 0x2e0 >-+#define BTN_TRIGGER_HAPPY34 0x2e1 >-+#define BTN_TRIGGER_HAPPY35 0x2e2 >-+#define BTN_TRIGGER_HAPPY36 0x2e3 >-+#define BTN_TRIGGER_HAPPY37 0x2e4 >-+#define BTN_TRIGGER_HAPPY38 0x2e5 >-+#define BTN_TRIGGER_HAPPY39 0x2e6 >-+#define BTN_TRIGGER_HAPPY40 0x2e7 >-+ >-+/* We avoid low common keys in module aliases so they don't get huge. */ >-+#define KEY_MIN_INTERESTING KEY_MUTE >-+#define KEY_MAX 0x2ff >-+#define KEY_CNT (KEY_MAX+1) >-+ >-+/* >-+ * Relative axes >-+ */ >-+ >-+#define REL_X 0x00 >-+#define REL_Y 0x01 >-+#define REL_Z 0x02 >-+#define REL_RX 0x03 >-+#define REL_RY 0x04 >-+#define REL_RZ 0x05 >-+#define REL_HWHEEL 0x06 >-+#define REL_DIAL 0x07 >-+#define REL_WHEEL 0x08 >-+#define REL_MISC 0x09 >-+#define REL_MAX 0x0f >-+#define REL_CNT (REL_MAX+1) >-+ >-+/* >-+ * Absolute axes >-+ */ >-+ >-+#define ABS_X 0x00 >-+#define ABS_Y 0x01 >-+#define ABS_Z 0x02 >-+#define ABS_RX 0x03 >-+#define ABS_RY 0x04 >-+#define ABS_RZ 0x05 >-+#define ABS_THROTTLE 0x06 >-+#define ABS_RUDDER 0x07 >-+#define ABS_WHEEL 0x08 >-+#define ABS_GAS 0x09 >-+#define ABS_BRAKE 0x0a >-+#define ABS_HAT0X 0x10 >-+#define ABS_HAT0Y 0x11 >-+#define ABS_HAT1X 0x12 >-+#define ABS_HAT1Y 0x13 >-+#define ABS_HAT2X 0x14 >-+#define ABS_HAT2Y 0x15 >-+#define ABS_HAT3X 0x16 >-+#define ABS_HAT3Y 0x17 >-+#define ABS_PRESSURE 0x18 >-+#define ABS_DISTANCE 0x19 >-+#define ABS_TILT_X 0x1a >-+#define ABS_TILT_Y 0x1b >-+#define ABS_TOOL_WIDTH 0x1c >-+ >-+#define ABS_VOLUME 0x20 >-+ >-+#define ABS_MISC 0x28 >-+ >-+#define ABS_MT_SLOT 0x2f /* MT slot being modified */ >-+#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */ >-+#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */ >-+#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */ >-+#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */ >-+#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */ >-+#define ABS_MT_POSITION_X 0x35 /* Center X touch position */ >-+#define ABS_MT_POSITION_Y 0x36 /* Center Y touch position */ >-+#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ >-+#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ >-+#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ >-+#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */ >-+#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */ >-+#define ABS_MT_TOOL_X 0x3c /* Center X tool position */ >-+#define ABS_MT_TOOL_Y 0x3d /* Center Y tool position */ >-+ >-+#define ABS_MAX 0x3f >-+#define ABS_CNT (ABS_MAX+1) >-+ >-+/* >-+ * Switch events >-+ */ >-+ >-+#define SW_LID 0x00 /* set = lid shut */ >-+#define SW_TABLET_MODE 0x01 /* set = tablet mode */ >-+#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ >-+#define SW_RFKILL_ALL 0x03 /* rfkill master switch, type "any" >-+ set = radio enabled */ >-+#define SW_RADIO SW_RFKILL_ALL /* deprecated */ >-+#define SW_MICROPHONE_INSERT 0x04 /* set = inserted */ >-+#define SW_DOCK 0x05 /* set = plugged into dock */ >-+#define SW_LINEOUT_INSERT 0x06 /* set = inserted */ >-+#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */ >-+#define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */ >-+#define SW_CAMERA_LENS_COVER 0x09 /* set = lens covered */ >-+#define SW_KEYPAD_SLIDE 0x0a /* set = keypad slide out */ >-+#define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */ >-+#define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */ >-+#define SW_LINEIN_INSERT 0x0d /* set = inserted */ >-+#define SW_MUTE_DEVICE 0x0e /* set = device disabled */ >-+#define SW_PEN_INSERTED 0x0f /* set = pen inserted */ >-+#define SW_MAX 0x0f >-+#define SW_CNT (SW_MAX+1) >-+ >-+/* >-+ * Misc events >-+ */ >-+ >-+#define MSC_SERIAL 0x00 >-+#define MSC_PULSELED 0x01 >-+#define MSC_GESTURE 0x02 >-+#define MSC_RAW 0x03 >-+#define MSC_SCAN 0x04 >-+#define MSC_TIMESTAMP 0x05 >-+#define MSC_MAX 0x07 >-+#define MSC_CNT (MSC_MAX+1) >-+ >-+/* >-+ * LEDs >-+ */ >-+ >-+#define LED_NUML 0x00 >-+#define LED_CAPSL 0x01 >-+#define LED_SCROLLL 0x02 >-+#define LED_COMPOSE 0x03 >-+#define LED_KANA 0x04 >-+#define LED_SLEEP 0x05 >-+#define LED_SUSPEND 0x06 >-+#define LED_MUTE 0x07 >-+#define LED_MISC 0x08 >-+#define LED_MAIL 0x09 >-+#define LED_CHARGING 0x0a >-+#define LED_MAX 0x0f >-+#define LED_CNT (LED_MAX+1) >-+ >-+/* >-+ * Autorepeat values >-+ */ >-+ >-+#define REP_DELAY 0x00 >-+#define REP_PERIOD 0x01 >-+#define REP_MAX 0x01 >-+#define REP_CNT (REP_MAX+1) >-+ >-+/* >-+ * Sounds >-+ */ >-+ >-+#define SND_CLICK 0x00 >-+#define SND_BELL 0x01 >-+#define SND_TONE 0x02 >-+#define SND_MAX 0x07 >-+#define SND_CNT (SND_MAX+1) >-+ >-+#endif >-diff --git a/include/linux/linux/input.h b/include/linux/linux/input.h >-new file mode 100644 >-index 00000000..b3044aec >---- /dev/null >-+++ include/linux/linux/input.h >-@@ -0,0 +1,506 @@ >-+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ >-+/* >-+ * Copyright (c) 1999-2002 Vojtech Pavlik >-+ * >-+ * This program is free software; you can redistribute it and/or modify it >-+ * under the terms of the GNU General Public License version 2 as published by >-+ * the Free Software Foundation. >-+ */ >-+#ifndef _INPUT_H >-+#define _INPUT_H >-+ >-+ >-+#include <sys/time.h> >-+#include <sys/ioctl.h> >-+#include <sys/types.h> >-+#include <linux/types.h> >-+ >-+#include "input-event-codes.h" >-+ >-+/* >-+ * The event structure itself >-+ * Note that __USE_TIME_BITS64 is defined by libc based on >-+ * application's request to use 64 bit time_t. >-+ */ >-+ >-+struct input_event { >-+#if (__BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)) && !defined(__KERNEL) >-+ struct timeval time; >-+#define input_event_sec time.tv_sec >-+#define input_event_usec time.tv_usec >-+#else >-+ __kernel_ulong_t __sec; >-+ __kernel_ulong_t __usec; >-+#define input_event_sec __sec >-+#define input_event_usec __usec >-+#endif >-+ __u16 type; >-+ __u16 code; >-+ __s32 value; >-+}; >-+ >-+/* >-+ * Protocol version. >-+ */ >-+ >-+#define EV_VERSION 0x010001 >-+ >-+/* >-+ * IOCTLs (0x00 - 0x7f) >-+ */ >-+ >-+struct input_id { >-+ __u16 bustype; >-+ __u16 vendor; >-+ __u16 product; >-+ __u16 version; >-+}; >-+ >-+/** >-+ * struct input_absinfo - used by EVIOCGABS/EVIOCSABS ioctls >-+ * @value: latest reported value for the axis. >-+ * @minimum: specifies minimum value for the axis. >-+ * @maximum: specifies maximum value for the axis. >-+ * @fuzz: specifies fuzz value that is used to filter noise from >-+ * the event stream. >-+ * @flat: values that are within this value will be discarded by >-+ * joydev interface and reported as 0 instead. >-+ * @resolution: specifies resolution for the values reported for >-+ * the axis. >-+ * >-+ * Note that input core does not clamp reported values to the >-+ * [minimum, maximum] limits, such task is left to userspace. >-+ * >-+ * The default resolution for main axes (ABS_X, ABS_Y, ABS_Z) >-+ * is reported in units per millimeter (units/mm), resolution >-+ * for rotational axes (ABS_RX, ABS_RY, ABS_RZ) is reported >-+ * in units per radian. >-+ * When INPUT_PROP_ACCELEROMETER is set the resolution changes. >-+ * The main axes (ABS_X, ABS_Y, ABS_Z) are then reported in >-+ * in units per g (units/g) and in units per degree per second >-+ * (units/deg/s) for rotational axes (ABS_RX, ABS_RY, ABS_RZ). >-+ */ >-+struct input_absinfo { >-+ __s32 value; >-+ __s32 minimum; >-+ __s32 maximum; >-+ __s32 fuzz; >-+ __s32 flat; >-+ __s32 resolution; >-+}; >-+ >-+/** >-+ * struct input_keymap_entry - used by EVIOCGKEYCODE/EVIOCSKEYCODE ioctls >-+ * @scancode: scancode represented in machine-endian form. >-+ * @len: length of the scancode that resides in @scancode buffer. >-+ * @index: index in the keymap, may be used instead of scancode >-+ * @flags: allows to specify how kernel should handle the request. For >-+ * example, setting INPUT_KEYMAP_BY_INDEX flag indicates that kernel >-+ * should perform lookup in keymap by @index instead of @scancode >-+ * @keycode: key code assigned to this scancode >-+ * >-+ * The structure is used to retrieve and modify keymap data. Users have >-+ * option of performing lookup either by @scancode itself or by @index >-+ * in keymap entry. EVIOCGKEYCODE will also return scancode or index >-+ * (depending on which element was used to perform lookup). >-+ */ >-+struct input_keymap_entry { >-+#define INPUT_KEYMAP_BY_INDEX (1 << 0) >-+ __u8 flags; >-+ __u8 len; >-+ __u16 index; >-+ __u32 keycode; >-+ __u8 scancode[32]; >-+}; >-+ >-+struct input_mask { >-+ __u32 type; >-+ __u32 codes_size; >-+ __u64 codes_ptr; >-+}; >-+ >-+#define EVIOCGVERSION _IOR('E', 0x01, int) /* get driver version */ >-+#define EVIOCGID _IOR('E', 0x02, struct input_id) /* get device ID */ >-+#define EVIOCGREP _IOR('E', 0x03, unsigned int[2]) /* get repeat settings */ >-+#define EVIOCSREP _IOW('E', 0x03, unsigned int[2]) /* set repeat settings */ >-+ >-+#define EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2]) /* get keycode */ >-+#define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct input_keymap_entry) >-+#define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2]) /* set keycode */ >-+#define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct input_keymap_entry) >-+ >-+#define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len) /* get device name */ >-+#define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len) /* get physical location */ >-+#define EVIOCGUNIQ(len) _IOC(_IOC_READ, 'E', 0x08, len) /* get unique identifier */ >-+#define EVIOCGPROP(len) _IOC(_IOC_READ, 'E', 0x09, len) /* get device properties */ >-+ >-+/** >-+ * EVIOCGMTSLOTS(len) - get MT slot values >-+ * @len: size of the data buffer in bytes >-+ * >-+ * The ioctl buffer argument should be binary equivalent to >-+ * >-+ * struct input_mt_request_layout { >-+ * __u32 code; >-+ * __s32 values[num_slots]; >-+ * }; >-+ * >-+ * where num_slots is the (arbitrary) number of MT slots to extract. >-+ * >-+ * The ioctl size argument (len) is the size of the buffer, which >-+ * should satisfy len = (num_slots + 1) * sizeof(__s32). If len is >-+ * too small to fit all available slots, the first num_slots are >-+ * returned. >-+ * >-+ * Before the call, code is set to the wanted ABS_MT event type. On >-+ * return, values[] is filled with the slot values for the specified >-+ * ABS_MT code. >-+ * >-+ * If the request code is not an ABS_MT value, -EINVAL is returned. >-+ */ >-+#define EVIOCGMTSLOTS(len) _IOC(_IOC_READ, 'E', 0x0a, len) >-+ >-+#define EVIOCGKEY(len) _IOC(_IOC_READ, 'E', 0x18, len) /* get global key state */ >-+#define EVIOCGLED(len) _IOC(_IOC_READ, 'E', 0x19, len) /* get all LEDs */ >-+#define EVIOCGSND(len) _IOC(_IOC_READ, 'E', 0x1a, len) /* get all sounds status */ >-+#define EVIOCGSW(len) _IOC(_IOC_READ, 'E', 0x1b, len) /* get all switch states */ >-+ >-+#define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + (ev), len) /* get event bits */ >-+#define EVIOCGABS(abs) _IOR('E', 0x40 + (abs), struct input_absinfo) /* get abs value/limits */ >-+#define EVIOCSABS(abs) _IOW('E', 0xc0 + (abs), struct input_absinfo) /* set abs value/limits */ >-+ >-+#define EVIOCSFF _IOW('E', 0x80, struct ff_effect) /* send a force effect to a force feedback device */ >-+#define EVIOCRMFF _IOW('E', 0x81, int) /* Erase a force effect */ >-+#define EVIOCGEFFECTS _IOR('E', 0x84, int) /* Report number of effects playable at the same time */ >-+ >-+#define EVIOCGRAB _IOW('E', 0x90, int) /* Grab/Release device */ >-+#define EVIOCREVOKE _IOW('E', 0x91, int) /* Revoke device access */ >-+ >-+/** >-+ * EVIOCGMASK - Retrieve current event mask >-+ * >-+ * This ioctl allows user to retrieve the current event mask for specific >-+ * event type. The argument must be of type "struct input_mask" and >-+ * specifies the event type to query, the address of the receive buffer and >-+ * the size of the receive buffer. >-+ * >-+ * The event mask is a per-client mask that specifies which events are >-+ * forwarded to the client. Each event code is represented by a single bit >-+ * in the event mask. If the bit is set, the event is passed to the client >-+ * normally. Otherwise, the event is filtered and will never be queued on >-+ * the client's receive buffer. >-+ * >-+ * Event masks do not affect global state of the input device. They only >-+ * affect the file descriptor they are applied to. >-+ * >-+ * The default event mask for a client has all bits set, i.e. all events >-+ * are forwarded to the client. If the kernel is queried for an unknown >-+ * event type or if the receive buffer is larger than the number of >-+ * event codes known to the kernel, the kernel returns all zeroes for those >-+ * codes. >-+ * >-+ * At maximum, codes_size bytes are copied. >-+ * >-+ * This ioctl may fail with ENODEV in case the file is revoked, EFAULT >-+ * if the receive-buffer points to invalid memory, or EINVAL if the kernel >-+ * does not implement the ioctl. >-+ */ >-+#define EVIOCGMASK _IOR('E', 0x92, struct input_mask) /* Get event-masks */ >-+ >-+/** >-+ * EVIOCSMASK - Set event mask >-+ * >-+ * This ioctl is the counterpart to EVIOCGMASK. Instead of receiving the >-+ * current event mask, this changes the client's event mask for a specific >-+ * type. See EVIOCGMASK for a description of event-masks and the >-+ * argument-type. >-+ * >-+ * This ioctl provides full forward compatibility. If the passed event type >-+ * is unknown to the kernel, or if the number of event codes specified in >-+ * the mask is bigger than what is known to the kernel, the ioctl is still >-+ * accepted and applied. However, any unknown codes are left untouched and >-+ * stay cleared. That means, the kernel always filters unknown codes >-+ * regardless of what the client requests. If the new mask doesn't cover >-+ * all known event-codes, all remaining codes are automatically cleared and >-+ * thus filtered. >-+ * >-+ * This ioctl may fail with ENODEV in case the file is revoked. EFAULT is >-+ * returned if the receive-buffer points to invalid memory. EINVAL is returned >-+ * if the kernel does not implement the ioctl. >-+ */ >-+#define EVIOCSMASK _IOW('E', 0x93, struct input_mask) /* Set event-masks */ >-+ >-+#define EVIOCSCLOCKID _IOW('E', 0xa0, int) /* Set clockid to be used for timestamps */ >-+ >-+/* >-+ * IDs. >-+ */ >-+ >-+#define ID_BUS 0 >-+#define ID_VENDOR 1 >-+#define ID_PRODUCT 2 >-+#define ID_VERSION 3 >-+ >-+#define BUS_PCI 0x01 >-+#define BUS_ISAPNP 0x02 >-+#define BUS_USB 0x03 >-+#define BUS_HIL 0x04 >-+#define BUS_BLUETOOTH 0x05 >-+#define BUS_VIRTUAL 0x06 >-+ >-+#define BUS_ISA 0x10 >-+#define BUS_I8042 0x11 >-+#define BUS_XTKBD 0x12 >-+#define BUS_RS232 0x13 >-+#define BUS_GAMEPORT 0x14 >-+#define BUS_PARPORT 0x15 >-+#define BUS_AMIGA 0x16 >-+#define BUS_ADB 0x17 >-+#define BUS_I2C 0x18 >-+#define BUS_HOST 0x19 >-+#define BUS_GSC 0x1A >-+#define BUS_ATARI 0x1B >-+#define BUS_SPI 0x1C >-+#define BUS_RMI 0x1D >-+#define BUS_CEC 0x1E >-+#define BUS_INTEL_ISHTP 0x1F >-+ >-+/* >-+ * MT_TOOL types >-+ */ >-+#define MT_TOOL_FINGER 0 >-+#define MT_TOOL_PEN 1 >-+#define MT_TOOL_PALM 2 >-+#define MT_TOOL_MAX 2 >-+ >-+/* >-+ * Values describing the status of a force-feedback effect >-+ */ >-+#define FF_STATUS_STOPPED 0x00 >-+#define FF_STATUS_PLAYING 0x01 >-+#define FF_STATUS_MAX 0x01 >-+ >-+/* >-+ * Structures used in ioctls to upload effects to a device >-+ * They are pieces of a bigger structure (called ff_effect) >-+ */ >-+ >-+/* >-+ * All duration values are expressed in ms. Values above 32767 ms (0x7fff) >-+ * should not be used and have unspecified results. >-+ */ >-+ >-+/** >-+ * struct ff_replay - defines scheduling of the force-feedback effect >-+ * @length: duration of the effect >-+ * @delay: delay before effect should start playing >-+ */ >-+struct ff_replay { >-+ __u16 length; >-+ __u16 delay; >-+}; >-+ >-+/** >-+ * struct ff_trigger - defines what triggers the force-feedback effect >-+ * @button: number of the button triggering the effect >-+ * @interval: controls how soon the effect can be re-triggered >-+ */ >-+struct ff_trigger { >-+ __u16 button; >-+ __u16 interval; >-+}; >-+ >-+/** >-+ * struct ff_envelope - generic force-feedback effect envelope >-+ * @attack_length: duration of the attack (ms) >-+ * @attack_level: level at the beginning of the attack >-+ * @fade_length: duration of fade (ms) >-+ * @fade_level: level at the end of fade >-+ * >-+ * The @attack_level and @fade_level are absolute values; when applying >-+ * envelope force-feedback core will convert to positive/negative >-+ * value based on polarity of the default level of the effect. >-+ * Valid range for the attack and fade levels is 0x0000 - 0x7fff >-+ */ >-+struct ff_envelope { >-+ __u16 attack_length; >-+ __u16 attack_level; >-+ __u16 fade_length; >-+ __u16 fade_level; >-+}; >-+ >-+/** >-+ * struct ff_constant_effect - defines parameters of a constant force-feedback effect >-+ * @level: strength of the effect; may be negative >-+ * @envelope: envelope data >-+ */ >-+struct ff_constant_effect { >-+ __s16 level; >-+ struct ff_envelope envelope; >-+}; >-+ >-+/** >-+ * struct ff_ramp_effect - defines parameters of a ramp force-feedback effect >-+ * @start_level: beginning strength of the effect; may be negative >-+ * @end_level: final strength of the effect; may be negative >-+ * @envelope: envelope data >-+ */ >-+struct ff_ramp_effect { >-+ __s16 start_level; >-+ __s16 end_level; >-+ struct ff_envelope envelope; >-+}; >-+ >-+/** >-+ * struct ff_condition_effect - defines a spring or friction force-feedback effect >-+ * @right_saturation: maximum level when joystick moved all way to the right >-+ * @left_saturation: same for the left side >-+ * @right_coeff: controls how fast the force grows when the joystick moves >-+ * to the right >-+ * @left_coeff: same for the left side >-+ * @deadband: size of the dead zone, where no force is produced >-+ * @center: position of the dead zone >-+ */ >-+struct ff_condition_effect { >-+ __u16 right_saturation; >-+ __u16 left_saturation; >-+ >-+ __s16 right_coeff; >-+ __s16 left_coeff; >-+ >-+ __u16 deadband; >-+ __s16 center; >-+}; >-+ >-+/** >-+ * struct ff_periodic_effect - defines parameters of a periodic force-feedback effect >-+ * @waveform: kind of the effect (wave) >-+ * @period: period of the wave (ms) >-+ * @magnitude: peak value >-+ * @offset: mean value of the wave (roughly) >-+ * @phase: 'horizontal' shift >-+ * @envelope: envelope data >-+ * @custom_len: number of samples (FF_CUSTOM only) >-+ * @custom_data: buffer of samples (FF_CUSTOM only) >-+ * >-+ * Known waveforms - FF_SQUARE, FF_TRIANGLE, FF_SINE, FF_SAW_UP, >-+ * FF_SAW_DOWN, FF_CUSTOM. The exact syntax FF_CUSTOM is undefined >-+ * for the time being as no driver supports it yet. >-+ * >-+ * Note: the data pointed by custom_data is copied by the driver. >-+ * You can therefore dispose of the memory after the upload/update. >-+ */ >-+struct ff_periodic_effect { >-+ __u16 waveform; >-+ __u16 period; >-+ __s16 magnitude; >-+ __s16 offset; >-+ __u16 phase; >-+ >-+ struct ff_envelope envelope; >-+ >-+ __u32 custom_len; >-+ __s16 *custom_data; >-+}; >-+ >-+/** >-+ * struct ff_rumble_effect - defines parameters of a periodic force-feedback effect >-+ * @strong_magnitude: magnitude of the heavy motor >-+ * @weak_magnitude: magnitude of the light one >-+ * >-+ * Some rumble pads have two motors of different weight. Strong_magnitude >-+ * represents the magnitude of the vibration generated by the heavy one. >-+ */ >-+struct ff_rumble_effect { >-+ __u16 strong_magnitude; >-+ __u16 weak_magnitude; >-+}; >-+ >-+/** >-+ * struct ff_effect - defines force feedback effect >-+ * @type: type of the effect (FF_CONSTANT, FF_PERIODIC, FF_RAMP, FF_SPRING, >-+ * FF_FRICTION, FF_DAMPER, FF_RUMBLE, FF_INERTIA, or FF_CUSTOM) >-+ * @id: an unique id assigned to an effect >-+ * @direction: direction of the effect >-+ * @trigger: trigger conditions (struct ff_trigger) >-+ * @replay: scheduling of the effect (struct ff_replay) >-+ * @u: effect-specific structure (one of ff_constant_effect, ff_ramp_effect, >-+ * ff_periodic_effect, ff_condition_effect, ff_rumble_effect) further >-+ * defining effect parameters >-+ * >-+ * This structure is sent through ioctl from the application to the driver. >-+ * To create a new effect application should set its @id to -1; the kernel >-+ * will return assigned @id which can later be used to update or delete >-+ * this effect. >-+ * >-+ * Direction of the effect is encoded as follows: >-+ * 0 deg -> 0x0000 (down) >-+ * 90 deg -> 0x4000 (left) >-+ * 180 deg -> 0x8000 (up) >-+ * 270 deg -> 0xC000 (right) >-+ */ >-+struct ff_effect { >-+ __u16 type; >-+ __s16 id; >-+ __u16 direction; >-+ struct ff_trigger trigger; >-+ struct ff_replay replay; >-+ >-+ union { >-+ struct ff_constant_effect constant; >-+ struct ff_ramp_effect ramp; >-+ struct ff_periodic_effect periodic; >-+ struct ff_condition_effect condition[2]; /* One for each axis */ >-+ struct ff_rumble_effect rumble; >-+ } u; >-+}; >-+ >-+/* >-+ * Force feedback effect types >-+ */ >-+ >-+#define FF_RUMBLE 0x50 >-+#define FF_PERIODIC 0x51 >-+#define FF_CONSTANT 0x52 >-+#define FF_SPRING 0x53 >-+#define FF_FRICTION 0x54 >-+#define FF_DAMPER 0x55 >-+#define FF_INERTIA 0x56 >-+#define FF_RAMP 0x57 >-+ >-+#define FF_EFFECT_MIN FF_RUMBLE >-+#define FF_EFFECT_MAX FF_RAMP >-+ >-+/* >-+ * Force feedback periodic effect types >-+ */ >-+ >-+#define FF_SQUARE 0x58 >-+#define FF_TRIANGLE 0x59 >-+#define FF_SINE 0x5a >-+#define FF_SAW_UP 0x5b >-+#define FF_SAW_DOWN 0x5c >-+#define FF_CUSTOM 0x5d >-+ >-+#define FF_WAVEFORM_MIN FF_SQUARE >-+#define FF_WAVEFORM_MAX FF_CUSTOM >-+ >-+/* >-+ * Set ff device properties >-+ */ >-+ >-+#define FF_GAIN 0x60 >-+#define FF_AUTOCENTER 0x61 >-+ >-+/* >-+ * ff->playback(effect_id = FF_GAIN) is the first effect_id to >-+ * cause a collision with another ff method, in this case ff->set_gain(). >-+ * Therefore the greatest safe value for effect_id is FF_GAIN - 1, >-+ * and thus the total number of effects should never exceed FF_GAIN. >-+ */ >-+#define FF_MAX_EFFECTS FF_GAIN >-+ >-+#define FF_MAX 0x7f >-+#define FF_CNT (FF_MAX+1) >-+ >-+#endif /* _INPUT_H */ > >Property changes on: x11/libinput/files/patch-61f3e385.c >___________________________________________________________________ >Deleted: fbsd:nokeywords >## -1 +0,0 ## >-yes >\ No newline at end of property >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Deleted: svn:mime-type >## -1 +0,0 ## >-text/plain >\ No newline at end of property >Index: x11/libinput/files/patch-ef9b7e88.c >=================================================================== >--- x11/libinput/files/patch-ef9b7e88.c (revision 488799) >+++ x11/libinput/files/patch-ef9b7e88.c (nonexistent) >@@ -1,17 +0,0 @@ >-diff --git a/meson.build b/meson.build >-index e3d81daeead3dd0c04fd67df5354d82a832d396e..931681a943bb58da6ac6cf99e5947ac7816d818b 100644 >---- meson.build >-+++ meson.build >-@@ -87,6 +87,12 @@ if cc.has_header_symbol('dirent.h', 'versionsort', prefix : prefix) >- config_h.set('HAVE_VERSIONSORT', '1') >- endif >- >-+if not cc.has_header_symbol('errno.h', 'program_invocation_short_name', prefix : prefix) >-+ if cc.has_header_symbol('stdlib.h', 'getprogname') >-+ config_h.set('program_invocation_short_name', 'getprogname()') >-+ endif >-+endif >-+ >- if cc.has_header('xlocale.h') >- config_h.set('HAVE_XLOCALE_H', '1') >- endif > >Property changes on: x11/libinput/files/patch-ef9b7e88.c >___________________________________________________________________ >Deleted: fbsd:nokeywords >## -1 +0,0 ## >-yes >\ No newline at end of property >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Deleted: svn:mime-type >## -1 +0,0 ## >-text/plain >\ No newline at end of property >Index: x11/libinput/files/patch-f8b41205.c >=================================================================== >--- x11/libinput/files/patch-f8b41205.c (revision 488799) >+++ x11/libinput/files/patch-f8b41205.c (nonexistent) >@@ -1,104 +0,0 @@ >-diff --git a/meson.build b/meson.build >-index 94973255d7af4020b049c1e533b2438409514f03..9ff17117a9f6c79bb50362d6db6507ba56c20136 100644 >---- meson.build >-+++ meson.build >-@@ -83,6 +83,10 @@ if get_option('coverity') >- config_h.set('_Float64x', 'long') >- endif >- >-+if cc.has_header_symbol('dirent.h', 'versionsort', prefix : prefix) >-+ config_h.set('HAVE_VERSIONSORT', '1') >-+endif >-+ >- # Dependencies >- pkgconfig = import('pkgconfig') >- dep_udev = dependency('libudev') >-diff --git a/src/libinput-versionsort.h b/src/libinput-versionsort.h >-new file mode 100644 >-index 0000000000000000000000000000000000000000..356ec8da2f56ccedefb4f30cbeb353a1140e175a >---- /dev/null >-+++ src/libinput-versionsort.h >-@@ -0,0 +1,71 @@ >-+#pragma once >-+ >-+#include "config.h" >-+ >-+#ifndef HAVE_VERSIONSORT >-+ >-+/* Copyright © 2005-2014 Rich Felker, et al. >-+ * >-+ * Permission is hereby granted, free of charge, to any person obtaining >-+ * a copy of this software and associated documentation files (the >-+ * "Software"), to deal in the Software without restriction, including >-+ * without limitation the rights to use, copy, modify, merge, publish, >-+ * distribute, sublicense, and/or sell copies of the Software, and to >-+ * permit persons to whom the Software is furnished to do so, subject to >-+ * the following conditions: >-+ * >-+ * The above copyright notice and this permission notice shall be >-+ * included in all copies or substantial portions of the Software. >-+ * >-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, >-+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF >-+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. >-+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY >-+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, >-+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE >-+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. >-+ */ >-+ >-+#include <ctype.h> >-+#include <string.h> >-+#include <dirent.h> >-+ >-+static int >-+strverscmp(const char *l0, const char *r0) >-+{ >-+ const unsigned char *l = (const void *)l0; >-+ const unsigned char *r = (const void *)r0; >-+ size_t i, dp, j; >-+ int z = 1; >-+ >-+ /* Find maximal matching prefix and track its maximal digit >-+ * suffix and whether those digits are all zeros. */ >-+ for (dp=i=0; l[i]==r[i]; i++) { >-+ int c = l[i]; >-+ if (!c) return 0; >-+ if (!isdigit(c)) dp=i+1, z=1; >-+ else if (c!='0') z=0; >-+ } >-+ >-+ if (l[dp]!='0' && r[dp]!='0') { >-+ /* If we're not looking at a digit sequence that began >-+ * with a zero, longest digit string is greater. */ >-+ for (j=i; isdigit(l[j]); j++) >-+ if (!isdigit(r[j])) return 1; >-+ if (isdigit(r[j])) return -1; >-+ } else if (z && dp<i && (isdigit(l[i]) || isdigit(r[i]))) { >-+ /* Otherwise, if common prefix of digit sequence is >-+ * all zeros, digits order less than non-digits. */ >-+ return (unsigned char)(l[i]-'0') - (unsigned char)(r[i]-'0'); >-+ } >-+ >-+ return l[i] - r[i]; >-+} >-+ >-+static int >-+versionsort(const struct dirent **a, const struct dirent **b) >-+{ >-+ return strverscmp((*a)->d_name, (*b)->d_name); >-+} >-+ >-+#endif >-diff --git a/tools/libinput-record.c b/tools/libinput-record.c >-index 50b6ee8512af6dff4badd95ce8546a346e4701c0..169947df0160f862a8a4c7bffe255909be572d20 100644 >---- tools/libinput-record.c >-+++ tools/libinput-record.c >-@@ -40,6 +40,7 @@ >- #include <signal.h> >- #include <stdbool.h> >- >-+#include "libinput-versionsort.h" >- #include "libinput-util.h" >- #include "libinput-version.h" >- #include "libinput-git-version.h" > >Property changes on: x11/libinput/files/patch-f8b41205.c >___________________________________________________________________ >Deleted: fbsd:nokeywords >## -1 +0,0 ## >-yes >\ No newline at end of property >Deleted: svn:eol-style >## -1 +0,0 ## >-native >\ No newline at end of property >Deleted: svn:mime-type >## -1 +0,0 ## >-text/plain >\ No newline at end of property >Index: x11/libinput/files/patch-meson.build >=================================================================== >--- x11/libinput/files/patch-meson.build (nonexistent) >+++ x11/libinput/files/patch-meson.build (working copy) >@@ -0,0 +1,20 @@ >+--- meson.build.orig 2018-12-31 16:13:39 UTC >++++ meson.build >+@@ -145,6 +145,8 @@ endif >+ >+ ############ udev bits ############ >+ >++if false >++ >+ executable('libinput-device-group', >+ 'udev/libinput-device-group.c', >+ dependencies : [dep_udev, dep_libwacom], >+@@ -181,6 +183,8 @@ litest_model_quirks_file = configure_file(input : 'ude >+ output : '90-libinput-model-quirks-litest.rules', >+ install : false, >+ configuration : litest_udev_rules_config) >++ >++endif >+ >+ ############ libepoll-shim (BSD) ############ >+ > >Property changes on: x11/libinput/files/patch-meson.build >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: x11/libinput/files/patch-src_evdev.c >=================================================================== >--- x11/libinput/files/patch-src_evdev.c (revision 488799) >+++ x11/libinput/files/patch-src_evdev.c (working copy) >@@ -6,9 +6,9 @@ > The udev_devices from reopening do have the right properties, > so we just use them instead of the original (enumerated) ones. > >---- src/evdev.c.orig 2018-06-09 12:13:43 UTC >+--- src/evdev.c.orig 2018-12-18 05:06:18 UTC > +++ src/evdev.c >-@@ -895,7 +895,7 @@ evdev_sync_device(struct evdev_device *device) >+@@ -905,7 +905,7 @@ evdev_sync_device(struct evdev_device *device) > evdev_device_dispatch_one(device, &ev); > } while (rc == LIBEVDEV_READ_STATUS_SYNC); > >@@ -17,7 +17,7 @@ > } > > static void >-@@ -933,6 +933,17 @@ evdev_device_dispatch(void *data) >+@@ -943,6 +943,17 @@ evdev_device_dispatch(void *data) > > if (rc != -EAGAIN && rc != -EINTR) { > libinput_remove_source(libinput, device->source); >@@ -35,7 +35,7 @@ > device->source = NULL; > } > } >-@@ -1785,9 +1796,9 @@ evdev_notify_added_device(struct evdev_device *device) >+@@ -1835,9 +1846,9 @@ evdev_notify_added_device(struct evdev_device *device) > } > > static bool >@@ -47,7 +47,7 @@ > struct udev_device *udev_device_new = NULL; > struct stat st; > bool rc = false; >-@@ -1800,10 +1811,16 @@ evdev_device_have_same_syspath(struct udev_device *ude >+@@ -1850,10 +1861,16 @@ evdev_device_have_same_syspath(struct udev_device *ude > goto out; > > rc = streq(udev_device_get_syspath(udev_device_new), >@@ -67,7 +67,7 @@ > return rc; > } > >-@@ -2003,7 +2020,7 @@ evdev_device_create(struct libinput_seat *seat, >+@@ -2036,7 +2053,7 @@ evdev_device_create(struct libinput_seat *seat, > return NULL; > } > >@@ -76,7 +76,7 @@ > goto err; > > device = zalloc(sizeof *device); >-@@ -2559,7 +2576,7 @@ evdev_device_resume(struct evdev_device *device) >+@@ -2592,7 +2609,7 @@ evdev_device_resume(struct evdev_device *device) > if (fd < 0) > return -errno; > >Index: x11/libinput/pkg-plist >=================================================================== >--- x11/libinput/pkg-plist (revision 488799) >+++ x11/libinput/pkg-plist (working copy) >@@ -12,18 +12,46 @@ > libexec/libinput/libinput-measure-touch-size > libexec/libinput/libinput-measure-touchpad-pressure > libexec/libinput/libinput-measure-touchpad-tap >-libexec/libinput/libinput-measure-trackpoint-range >+libexec/libinput/libinput-quirks > libexec/libinput/libinput-record > libexec/libinput/libinput-replay >-man/man1/libinput.1.gz > man/man1/libinput-debug-events.1.gz > %%DEBUG_GUI%%man/man1/libinput-debug-gui.1.gz > man/man1/libinput-list-devices.1.gz >-man/man1/libinput-measure.1.gz > man/man1/libinput-measure-fuzz.1.gz > man/man1/libinput-measure-touch-size.1.gz > man/man1/libinput-measure-touchpad-pressure.1.gz > man/man1/libinput-measure-touchpad-tap.1.gz >-man/man1/libinput-measure-trackpoint-range.1.gz >+man/man1/libinput-measure.1.gz >+man/man1/libinput-quirks-list.1.gz >+man/man1/libinput-quirks-validate.1.gz >+man/man1/libinput-quirks.1.gz > man/man1/libinput-record.1.gz > man/man1/libinput-replay.1.gz >+man/man1/libinput.1.gz >+%%DATADIR%%/10-generic-keyboard.quirks >+%%DATADIR%%/10-generic-lid.quirks >+%%DATADIR%%/10-generic-trackball.quirks >+%%DATADIR%%/30-vendor-aiptek.quirks >+%%DATADIR%%/30-vendor-alps.quirks >+%%DATADIR%%/30-vendor-cyapa.quirks >+%%DATADIR%%/30-vendor-elantech.quirks >+%%DATADIR%%/30-vendor-huion.quirks >+%%DATADIR%%/30-vendor-ibm.quirks >+%%DATADIR%%/30-vendor-kensington.quirks >+%%DATADIR%%/30-vendor-logitech.quirks >+%%DATADIR%%/30-vendor-microsoft.quirks >+%%DATADIR%%/30-vendor-razer.quirks >+%%DATADIR%%/30-vendor-synaptics.quirks >+%%DATADIR%%/30-vendor-vmware.quirks >+%%DATADIR%%/30-vendor-wacom.quirks >+%%DATADIR%%/50-system-acer.quirks >+%%DATADIR%%/50-system-apple.quirks >+%%DATADIR%%/50-system-asus.quirks >+%%DATADIR%%/50-system-chicony.quirks >+%%DATADIR%%/50-system-cyborg.quirks >+%%DATADIR%%/50-system-dell.quirks >+%%DATADIR%%/50-system-google.quirks >+%%DATADIR%%/50-system-hp.quirks >+%%DATADIR%%/50-system-lenovo.quirks >+%%DATADIR%%/50-system-system76.quirks
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 222905
:
187052
|
187852
|
187854
|
188571
|
188894
|
189969
|
192391
|
198118
|
200661
|
201353