/* SPDX-License-Identifier: Unlicense */ #ifndef __ZINNIA_UAPI_INPUT_H #define __ZINNIA_UAPI_INPUT_H #include #include #include struct __input_event { struct __timeval time; uint16_t type; uint16_t code; int32_t value; }; struct __input_id { uint16_t bustype; uint16_t vendor; uint16_t product; uint16_t version; }; struct __input_absinfo { int32_t value; int32_t minimum; int32_t maximum; int32_t fuzz; int32_t flat; int32_t resolution; }; #define __EV_SYN 0x00 #define __EV_KEY 0x01 #define __EV_REL 0x02 #define __EV_ABS 0x03 #define __EV_MSC 0x04 #define __EV_CNT 0x20 #define __SYN_REPORT 0 #define __REL_X 0x00 #define __REL_Y 0x01 #define __REL_WHEEL 0x08 #define __REL_MAX 0x0f #define __REL_CNT 0x10 #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_HAT0X 0x10 #define __ABS_HAT0Y 0x11 #define __ABS_MAX 0x3f #define __ABS_CNT 0x40 #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_F11 87 #define __KEY_F12 88 #define __KEY_KPENTER 96 #define __KEY_RIGHTCTRL 97 #define __KEY_KPSLASH 98 #define __KEY_SYSRQ 99 #define __KEY_RIGHTALT 100 #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_LEFTMETA 125 #define __KEY_RIGHTMETA 126 #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_CNT 0x300 #define __BTN_MISC 0x100 #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_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_SOUTH 0x130 #define __BTN_EAST 0x131 #define __BTN_C 0x132 #define __BTN_NORTH 0x133 #define __BTN_WEST 0x134 #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 __BUS_USB 0x03 #define __BUS_I8042 0x11 #define __EV_VERSION 0x010001 #define __EVIOCGVERSION __IOR('E', 0x01, int) #define __EVIOCGID __IOR('E', 0x02, struct __input_id) #define __EVIOCGNAME(len) __IOC(__IOC_OUT, 'E', 0x06, len) #define __EVIOCGPHYS(len) __IOC(__IOC_OUT, 'E', 0x07, len) #define __EVIOCGUNIQ(len) __IOC(__IOC_OUT, 'E', 0x08, len) #define __EVIOCGPROP(len) __IOC(__IOC_OUT, 'E', 0x09, len) #define __EVIOCGKEY(len) __IOC(__IOC_OUT, 'E', 0x18, len) #define __EVIOCGLED(len) __IOC(__IOC_OUT, 'E', 0x19, len) #define __EVIOCGSND(len) __IOC(__IOC_OUT, 'E', 0x1A, len) #define __EVIOCGSW(len) __IOC(__IOC_OUT, 'E', 0x1B, len) #define __EVIOCGBIT(ev, len) __IOC(__IOC_OUT, 'E', 0x20 + (ev), len) #define __EVIOCGABS(abs) __IOR('E', 0x40 + (abs), struct __input_absinfo) #define __EVIOCGRAB __IOW('E', 0x90, int) #define __EVIOCREVOKE __IOW('E', 0x91, int) #define __EVIOCSCLOCKID __IOW('E', 0xA0, int) #endif