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" 27struct 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 36struct 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 */ 44struct 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 */ 54struct 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 */ 64struct 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 MT_TOOL_FINGER 0 135#define MT_TOOL_PEN 1 136#define MT_TOOL_PALM 2 137#define MT_TOOL_MAX 2 138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139#define FF_STATUS_STOPPED 0x00 140#define FF_STATUS_PLAYING 0x01 141#define FF_STATUS_MAX 0x01 142struct ff_replay { 143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 __u16 length; 145 __u16 delay; 146}; 147struct ff_trigger { 148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 __u16 button; 150 __u16 interval; 151}; 152struct ff_envelope { 153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 __u16 attack_length; 155 __u16 attack_level; 156 __u16 fade_length; 157 __u16 fade_level; 158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159}; 160struct ff_constant_effect { 161 __s16 level; 162 struct ff_envelope envelope; 163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164}; 165struct ff_ramp_effect { 166 __s16 start_level; 167 __s16 end_level; 168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 struct ff_envelope envelope; 170}; 171struct ff_condition_effect { 172 __u16 right_saturation; 173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 __u16 left_saturation; 175 __s16 right_coeff; 176 __s16 left_coeff; 177 __u16 deadband; 178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 __s16 center; 180}; 181struct ff_periodic_effect { 182 __u16 waveform; 183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 __u16 period; 185 __s16 magnitude; 186 __s16 offset; 187 __u16 phase; 188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 struct ff_envelope envelope; 190 __u32 custom_len; 191 __s16 __user * custom_data; 192}; 193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194struct ff_rumble_effect { 195 __u16 strong_magnitude; 196 __u16 weak_magnitude; 197}; 198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199struct ff_effect { 200 __u16 type; 201 __s16 id; 202 __u16 direction; 203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204 struct ff_trigger trigger; 205 struct ff_replay replay; 206 union { 207 struct ff_constant_effect constant; 208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209 struct ff_ramp_effect ramp; 210 struct ff_periodic_effect periodic; 211 struct ff_condition_effect condition[2]; 212 struct ff_rumble_effect rumble; 213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214 } u; 215}; 216#define FF_RUMBLE 0x50 217#define FF_PERIODIC 0x51 218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219#define FF_CONSTANT 0x52 220#define FF_SPRING 0x53 221#define FF_FRICTION 0x54 222#define FF_DAMPER 0x55 223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224#define FF_INERTIA 0x56 225#define FF_RAMP 0x57 226#define FF_EFFECT_MIN FF_RUMBLE 227#define FF_EFFECT_MAX FF_RAMP 228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229#define FF_SQUARE 0x58 230#define FF_TRIANGLE 0x59 231#define FF_SINE 0x5a 232#define FF_SAW_UP 0x5b 233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 234#define FF_SAW_DOWN 0x5c 235#define FF_CUSTOM 0x5d 236#define FF_WAVEFORM_MIN FF_SQUARE 237#define FF_WAVEFORM_MAX FF_CUSTOM 238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 239#define FF_GAIN 0x60 240#define FF_AUTOCENTER 0x61 241#define FF_MAX_EFFECTS FF_GAIN 242#define FF_MAX 0x7f 243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 244#define FF_CNT (FF_MAX + 1) 245#endif 246