1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef _UAPI_INPUT_H 20 #define _UAPI_INPUT_H 21 #include <sys/time.h> 22 #include <sys/ioctl.h> 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #include <sys/types.h> 25 #include <linux/types.h> 26 #include "input-event-codes.h" 27 struct input_event { 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 struct timeval time; 30 __u16 type; 31 __u16 code; 32 __s32 value; 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 }; 35 #define EV_VERSION 0x010001 36 struct input_id { 37 __u16 bustype; 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 __u16 vendor; 40 __u16 product; 41 __u16 version; 42 }; 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 struct input_absinfo { 45 __s32 value; 46 __s32 minimum; 47 __s32 maximum; 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 __s32 fuzz; 50 __s32 flat; 51 __s32 resolution; 52 }; 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 struct input_keymap_entry { 55 #define INPUT_KEYMAP_BY_INDEX (1 << 0) 56 __u8 flags; 57 __u8 len; 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 __u16 index; 60 __u32 keycode; 61 __u8 scancode[32]; 62 }; 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 struct input_mask { 65 __u32 type; 66 __u32 codes_size; 67 __u64 codes_ptr; 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 }; 70 #define EVIOCGVERSION _IOR('E', 0x01, int) 71 #define EVIOCGID _IOR('E', 0x02, struct input_id) 72 #define EVIOCGREP _IOR('E', 0x03, unsigned int[2]) 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 #define EVIOCSREP _IOW('E', 0x03, unsigned int[2]) 75 #define EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2]) 76 #define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct input_keymap_entry) 77 #define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2]) 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 #define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct input_keymap_entry) 80 #define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len) 81 #define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len) 82 #define EVIOCGUNIQ(len) _IOC(_IOC_READ, 'E', 0x08, len) 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 #define EVIOCGPROP(len) _IOC(_IOC_READ, 'E', 0x09, len) 85 #define EVIOCGMTSLOTS(len) _IOC(_IOC_READ, 'E', 0x0a, len) 86 #define EVIOCGKEY(len) _IOC(_IOC_READ, 'E', 0x18, len) 87 #define EVIOCGLED(len) _IOC(_IOC_READ, 'E', 0x19, len) 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 #define EVIOCGSND(len) _IOC(_IOC_READ, 'E', 0x1a, len) 90 #define EVIOCGSW(len) _IOC(_IOC_READ, 'E', 0x1b, len) 91 #define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + (ev), len) 92 #define EVIOCGABS(abs) _IOR('E', 0x40 + (abs), struct input_absinfo) 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 #define EVIOCSABS(abs) _IOW('E', 0xc0 + (abs), struct input_absinfo) 95 #define EVIOCSFF _IOW('E', 0x80, struct ff_effect) 96 #define EVIOCRMFF _IOW('E', 0x81, int) 97 #define EVIOCGEFFECTS _IOR('E', 0x84, int) 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 #define EVIOCGRAB _IOW('E', 0x90, int) 100 #define EVIOCREVOKE _IOW('E', 0x91, int) 101 #define EVIOCGMASK _IOR('E', 0x92, struct input_mask) 102 #define EVIOCSMASK _IOW('E', 0x93, struct input_mask) 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 #define EVIOCSCLOCKID _IOW('E', 0xa0, int) 105 #define ID_BUS 0 106 #define ID_VENDOR 1 107 #define ID_PRODUCT 2 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 #define ID_VERSION 3 110 #define BUS_PCI 0x01 111 #define BUS_ISAPNP 0x02 112 #define BUS_USB 0x03 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 #define BUS_HIL 0x04 115 #define BUS_BLUETOOTH 0x05 116 #define BUS_VIRTUAL 0x06 117 #define BUS_ISA 0x10 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 #define BUS_I8042 0x11 120 #define BUS_XTKBD 0x12 121 #define BUS_RS232 0x13 122 #define BUS_GAMEPORT 0x14 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 #define BUS_PARPORT 0x15 125 #define BUS_AMIGA 0x16 126 #define BUS_ADB 0x17 127 #define BUS_I2C 0x18 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 #define BUS_HOST 0x19 130 #define BUS_GSC 0x1A 131 #define BUS_ATARI 0x1B 132 #define BUS_SPI 0x1C 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 #define BUS_RMI 0x1D 135 #define BUS_CEC 0x1E 136 #define BUS_INTEL_ISHTP 0x1F 137 #define MT_TOOL_FINGER 0 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 #define MT_TOOL_PEN 1 140 #define MT_TOOL_PALM 2 141 #define MT_TOOL_MAX 2 142 #define FF_STATUS_STOPPED 0x00 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 #define FF_STATUS_PLAYING 0x01 145 #define FF_STATUS_MAX 0x01 146 struct ff_replay { 147 __u16 length; 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 __u16 delay; 150 }; 151 struct ff_trigger { 152 __u16 button; 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 __u16 interval; 155 }; 156 struct ff_envelope { 157 __u16 attack_length; 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 __u16 attack_level; 160 __u16 fade_length; 161 __u16 fade_level; 162 }; 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 struct ff_constant_effect { 165 __s16 level; 166 struct ff_envelope envelope; 167 }; 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 struct ff_ramp_effect { 170 __s16 start_level; 171 __s16 end_level; 172 struct ff_envelope envelope; 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 }; 175 struct ff_condition_effect { 176 __u16 right_saturation; 177 __u16 left_saturation; 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 __s16 right_coeff; 180 __s16 left_coeff; 181 __u16 deadband; 182 __s16 center; 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 }; 185 struct ff_periodic_effect { 186 __u16 waveform; 187 __u16 period; 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 __s16 magnitude; 190 __s16 offset; 191 __u16 phase; 192 struct ff_envelope envelope; 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 __u32 custom_len; 195 __s16 __user * custom_data; 196 }; 197 struct ff_rumble_effect { 198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 __u16 strong_magnitude; 200 __u16 weak_magnitude; 201 }; 202 struct ff_effect { 203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204 __u16 type; 205 __s16 id; 206 __u16 direction; 207 struct ff_trigger trigger; 208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209 struct ff_replay replay; 210 union { 211 struct ff_constant_effect constant; 212 struct ff_ramp_effect ramp; 213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214 struct ff_periodic_effect periodic; 215 struct ff_condition_effect condition[2]; 216 struct ff_rumble_effect rumble; 217 } u; 218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219 }; 220 #define FF_RUMBLE 0x50 221 #define FF_PERIODIC 0x51 222 #define FF_CONSTANT 0x52 223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224 #define FF_SPRING 0x53 225 #define FF_FRICTION 0x54 226 #define FF_DAMPER 0x55 227 #define FF_INERTIA 0x56 228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229 #define FF_RAMP 0x57 230 #define FF_EFFECT_MIN FF_RUMBLE 231 #define FF_EFFECT_MAX FF_RAMP 232 #define FF_SQUARE 0x58 233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 234 #define FF_TRIANGLE 0x59 235 #define FF_SINE 0x5a 236 #define FF_SAW_UP 0x5b 237 #define FF_SAW_DOWN 0x5c 238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 239 #define FF_CUSTOM 0x5d 240 #define FF_WAVEFORM_MIN FF_SQUARE 241 #define FF_WAVEFORM_MAX FF_CUSTOM 242 #define FF_GAIN 0x60 243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 244 #define FF_AUTOCENTER 0x61 245 #define FF_MAX_EFFECTS FF_GAIN 246 #define FF_MAX 0x7f 247 #define FF_CNT (FF_MAX + 1) 248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 249 #endif 250