xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/input.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_INPUT_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_INPUT_H
9*8d67ca89SAndroid Build Coastguard Worker #include <sys/time.h>
10*8d67ca89SAndroid Build Coastguard Worker #include <sys/ioctl.h>
11*8d67ca89SAndroid Build Coastguard Worker #include <sys/types.h>
12*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
13*8d67ca89SAndroid Build Coastguard Worker #include "input-event-codes.h"
14*8d67ca89SAndroid Build Coastguard Worker struct input_event {
15*8d67ca89SAndroid Build Coastguard Worker #if __BITS_PER_LONG != 32 || !defined(__USE_TIME_BITS64)
16*8d67ca89SAndroid Build Coastguard Worker   struct timeval time;
17*8d67ca89SAndroid Build Coastguard Worker #define input_event_sec time.tv_sec
18*8d67ca89SAndroid Build Coastguard Worker #define input_event_usec time.tv_usec
19*8d67ca89SAndroid Build Coastguard Worker #else
20*8d67ca89SAndroid Build Coastguard Worker   __kernel_ulong_t __sec;
21*8d67ca89SAndroid Build Coastguard Worker #if defined(__sparc__) && defined(__arch64__)
22*8d67ca89SAndroid Build Coastguard Worker   unsigned int __usec;
23*8d67ca89SAndroid Build Coastguard Worker   unsigned int __pad;
24*8d67ca89SAndroid Build Coastguard Worker #else
25*8d67ca89SAndroid Build Coastguard Worker   __kernel_ulong_t __usec;
26*8d67ca89SAndroid Build Coastguard Worker #endif
27*8d67ca89SAndroid Build Coastguard Worker #define input_event_sec __sec
28*8d67ca89SAndroid Build Coastguard Worker #define input_event_usec __usec
29*8d67ca89SAndroid Build Coastguard Worker #endif
30*8d67ca89SAndroid Build Coastguard Worker   __u16 type;
31*8d67ca89SAndroid Build Coastguard Worker   __u16 code;
32*8d67ca89SAndroid Build Coastguard Worker   __s32 value;
33*8d67ca89SAndroid Build Coastguard Worker };
34*8d67ca89SAndroid Build Coastguard Worker #define EV_VERSION 0x010001
35*8d67ca89SAndroid Build Coastguard Worker struct input_id {
36*8d67ca89SAndroid Build Coastguard Worker   __u16 bustype;
37*8d67ca89SAndroid Build Coastguard Worker   __u16 vendor;
38*8d67ca89SAndroid Build Coastguard Worker   __u16 product;
39*8d67ca89SAndroid Build Coastguard Worker   __u16 version;
40*8d67ca89SAndroid Build Coastguard Worker };
41*8d67ca89SAndroid Build Coastguard Worker struct input_absinfo {
42*8d67ca89SAndroid Build Coastguard Worker   __s32 value;
43*8d67ca89SAndroid Build Coastguard Worker   __s32 minimum;
44*8d67ca89SAndroid Build Coastguard Worker   __s32 maximum;
45*8d67ca89SAndroid Build Coastguard Worker   __s32 fuzz;
46*8d67ca89SAndroid Build Coastguard Worker   __s32 flat;
47*8d67ca89SAndroid Build Coastguard Worker   __s32 resolution;
48*8d67ca89SAndroid Build Coastguard Worker };
49*8d67ca89SAndroid Build Coastguard Worker struct input_keymap_entry {
50*8d67ca89SAndroid Build Coastguard Worker #define INPUT_KEYMAP_BY_INDEX (1 << 0)
51*8d67ca89SAndroid Build Coastguard Worker   __u8 flags;
52*8d67ca89SAndroid Build Coastguard Worker   __u8 len;
53*8d67ca89SAndroid Build Coastguard Worker   __u16 index;
54*8d67ca89SAndroid Build Coastguard Worker   __u32 keycode;
55*8d67ca89SAndroid Build Coastguard Worker   __u8 scancode[32];
56*8d67ca89SAndroid Build Coastguard Worker };
57*8d67ca89SAndroid Build Coastguard Worker struct input_mask {
58*8d67ca89SAndroid Build Coastguard Worker   __u32 type;
59*8d67ca89SAndroid Build Coastguard Worker   __u32 codes_size;
60*8d67ca89SAndroid Build Coastguard Worker   __u64 codes_ptr;
61*8d67ca89SAndroid Build Coastguard Worker };
62*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGVERSION _IOR('E', 0x01, int)
63*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGID _IOR('E', 0x02, struct input_id)
64*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGREP _IOR('E', 0x03, unsigned int[2])
65*8d67ca89SAndroid Build Coastguard Worker #define EVIOCSREP _IOW('E', 0x03, unsigned int[2])
66*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2])
67*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct input_keymap_entry)
68*8d67ca89SAndroid Build Coastguard Worker #define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2])
69*8d67ca89SAndroid Build Coastguard Worker #define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct input_keymap_entry)
70*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len)
71*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len)
72*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGUNIQ(len) _IOC(_IOC_READ, 'E', 0x08, len)
73*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGPROP(len) _IOC(_IOC_READ, 'E', 0x09, len)
74*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGMTSLOTS(len) _IOC(_IOC_READ, 'E', 0x0a, len)
75*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGKEY(len) _IOC(_IOC_READ, 'E', 0x18, len)
76*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGLED(len) _IOC(_IOC_READ, 'E', 0x19, len)
77*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGSND(len) _IOC(_IOC_READ, 'E', 0x1a, len)
78*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGSW(len) _IOC(_IOC_READ, 'E', 0x1b, len)
79*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + (ev), len)
80*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGABS(abs) _IOR('E', 0x40 + (abs), struct input_absinfo)
81*8d67ca89SAndroid Build Coastguard Worker #define EVIOCSABS(abs) _IOW('E', 0xc0 + (abs), struct input_absinfo)
82*8d67ca89SAndroid Build Coastguard Worker #define EVIOCSFF _IOW('E', 0x80, struct ff_effect)
83*8d67ca89SAndroid Build Coastguard Worker #define EVIOCRMFF _IOW('E', 0x81, int)
84*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGEFFECTS _IOR('E', 0x84, int)
85*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGRAB _IOW('E', 0x90, int)
86*8d67ca89SAndroid Build Coastguard Worker #define EVIOCREVOKE _IOW('E', 0x91, int)
87*8d67ca89SAndroid Build Coastguard Worker #define EVIOCGMASK _IOR('E', 0x92, struct input_mask)
88*8d67ca89SAndroid Build Coastguard Worker #define EVIOCSMASK _IOW('E', 0x93, struct input_mask)
89*8d67ca89SAndroid Build Coastguard Worker #define EVIOCSCLOCKID _IOW('E', 0xa0, int)
90*8d67ca89SAndroid Build Coastguard Worker #define ID_BUS 0
91*8d67ca89SAndroid Build Coastguard Worker #define ID_VENDOR 1
92*8d67ca89SAndroid Build Coastguard Worker #define ID_PRODUCT 2
93*8d67ca89SAndroid Build Coastguard Worker #define ID_VERSION 3
94*8d67ca89SAndroid Build Coastguard Worker #define BUS_PCI 0x01
95*8d67ca89SAndroid Build Coastguard Worker #define BUS_ISAPNP 0x02
96*8d67ca89SAndroid Build Coastguard Worker #define BUS_USB 0x03
97*8d67ca89SAndroid Build Coastguard Worker #define BUS_HIL 0x04
98*8d67ca89SAndroid Build Coastguard Worker #define BUS_BLUETOOTH 0x05
99*8d67ca89SAndroid Build Coastguard Worker #define BUS_VIRTUAL 0x06
100*8d67ca89SAndroid Build Coastguard Worker #define BUS_ISA 0x10
101*8d67ca89SAndroid Build Coastguard Worker #define BUS_I8042 0x11
102*8d67ca89SAndroid Build Coastguard Worker #define BUS_XTKBD 0x12
103*8d67ca89SAndroid Build Coastguard Worker #define BUS_RS232 0x13
104*8d67ca89SAndroid Build Coastguard Worker #define BUS_GAMEPORT 0x14
105*8d67ca89SAndroid Build Coastguard Worker #define BUS_PARPORT 0x15
106*8d67ca89SAndroid Build Coastguard Worker #define BUS_AMIGA 0x16
107*8d67ca89SAndroid Build Coastguard Worker #define BUS_ADB 0x17
108*8d67ca89SAndroid Build Coastguard Worker #define BUS_I2C 0x18
109*8d67ca89SAndroid Build Coastguard Worker #define BUS_HOST 0x19
110*8d67ca89SAndroid Build Coastguard Worker #define BUS_GSC 0x1A
111*8d67ca89SAndroid Build Coastguard Worker #define BUS_ATARI 0x1B
112*8d67ca89SAndroid Build Coastguard Worker #define BUS_SPI 0x1C
113*8d67ca89SAndroid Build Coastguard Worker #define BUS_RMI 0x1D
114*8d67ca89SAndroid Build Coastguard Worker #define BUS_CEC 0x1E
115*8d67ca89SAndroid Build Coastguard Worker #define BUS_INTEL_ISHTP 0x1F
116*8d67ca89SAndroid Build Coastguard Worker #define BUS_AMD_SFH 0x20
117*8d67ca89SAndroid Build Coastguard Worker #define MT_TOOL_FINGER 0x00
118*8d67ca89SAndroid Build Coastguard Worker #define MT_TOOL_PEN 0x01
119*8d67ca89SAndroid Build Coastguard Worker #define MT_TOOL_PALM 0x02
120*8d67ca89SAndroid Build Coastguard Worker #define MT_TOOL_DIAL 0x0a
121*8d67ca89SAndroid Build Coastguard Worker #define MT_TOOL_MAX 0x0f
122*8d67ca89SAndroid Build Coastguard Worker #define FF_STATUS_STOPPED 0x00
123*8d67ca89SAndroid Build Coastguard Worker #define FF_STATUS_PLAYING 0x01
124*8d67ca89SAndroid Build Coastguard Worker #define FF_STATUS_MAX 0x01
125*8d67ca89SAndroid Build Coastguard Worker struct ff_replay {
126*8d67ca89SAndroid Build Coastguard Worker   __u16 length;
127*8d67ca89SAndroid Build Coastguard Worker   __u16 delay;
128*8d67ca89SAndroid Build Coastguard Worker };
129*8d67ca89SAndroid Build Coastguard Worker struct ff_trigger {
130*8d67ca89SAndroid Build Coastguard Worker   __u16 button;
131*8d67ca89SAndroid Build Coastguard Worker   __u16 interval;
132*8d67ca89SAndroid Build Coastguard Worker };
133*8d67ca89SAndroid Build Coastguard Worker struct ff_envelope {
134*8d67ca89SAndroid Build Coastguard Worker   __u16 attack_length;
135*8d67ca89SAndroid Build Coastguard Worker   __u16 attack_level;
136*8d67ca89SAndroid Build Coastguard Worker   __u16 fade_length;
137*8d67ca89SAndroid Build Coastguard Worker   __u16 fade_level;
138*8d67ca89SAndroid Build Coastguard Worker };
139*8d67ca89SAndroid Build Coastguard Worker struct ff_constant_effect {
140*8d67ca89SAndroid Build Coastguard Worker   __s16 level;
141*8d67ca89SAndroid Build Coastguard Worker   struct ff_envelope envelope;
142*8d67ca89SAndroid Build Coastguard Worker };
143*8d67ca89SAndroid Build Coastguard Worker struct ff_ramp_effect {
144*8d67ca89SAndroid Build Coastguard Worker   __s16 start_level;
145*8d67ca89SAndroid Build Coastguard Worker   __s16 end_level;
146*8d67ca89SAndroid Build Coastguard Worker   struct ff_envelope envelope;
147*8d67ca89SAndroid Build Coastguard Worker };
148*8d67ca89SAndroid Build Coastguard Worker struct ff_condition_effect {
149*8d67ca89SAndroid Build Coastguard Worker   __u16 right_saturation;
150*8d67ca89SAndroid Build Coastguard Worker   __u16 left_saturation;
151*8d67ca89SAndroid Build Coastguard Worker   __s16 right_coeff;
152*8d67ca89SAndroid Build Coastguard Worker   __s16 left_coeff;
153*8d67ca89SAndroid Build Coastguard Worker   __u16 deadband;
154*8d67ca89SAndroid Build Coastguard Worker   __s16 center;
155*8d67ca89SAndroid Build Coastguard Worker };
156*8d67ca89SAndroid Build Coastguard Worker struct ff_periodic_effect {
157*8d67ca89SAndroid Build Coastguard Worker   __u16 waveform;
158*8d67ca89SAndroid Build Coastguard Worker   __u16 period;
159*8d67ca89SAndroid Build Coastguard Worker   __s16 magnitude;
160*8d67ca89SAndroid Build Coastguard Worker   __s16 offset;
161*8d67ca89SAndroid Build Coastguard Worker   __u16 phase;
162*8d67ca89SAndroid Build Coastguard Worker   struct ff_envelope envelope;
163*8d67ca89SAndroid Build Coastguard Worker   __u32 custom_len;
164*8d67ca89SAndroid Build Coastguard Worker   __s16  * custom_data;
165*8d67ca89SAndroid Build Coastguard Worker };
166*8d67ca89SAndroid Build Coastguard Worker struct ff_rumble_effect {
167*8d67ca89SAndroid Build Coastguard Worker   __u16 strong_magnitude;
168*8d67ca89SAndroid Build Coastguard Worker   __u16 weak_magnitude;
169*8d67ca89SAndroid Build Coastguard Worker };
170*8d67ca89SAndroid Build Coastguard Worker struct ff_effect {
171*8d67ca89SAndroid Build Coastguard Worker   __u16 type;
172*8d67ca89SAndroid Build Coastguard Worker   __s16 id;
173*8d67ca89SAndroid Build Coastguard Worker   __u16 direction;
174*8d67ca89SAndroid Build Coastguard Worker   struct ff_trigger trigger;
175*8d67ca89SAndroid Build Coastguard Worker   struct ff_replay replay;
176*8d67ca89SAndroid Build Coastguard Worker   union {
177*8d67ca89SAndroid Build Coastguard Worker     struct ff_constant_effect constant;
178*8d67ca89SAndroid Build Coastguard Worker     struct ff_ramp_effect ramp;
179*8d67ca89SAndroid Build Coastguard Worker     struct ff_periodic_effect periodic;
180*8d67ca89SAndroid Build Coastguard Worker     struct ff_condition_effect condition[2];
181*8d67ca89SAndroid Build Coastguard Worker     struct ff_rumble_effect rumble;
182*8d67ca89SAndroid Build Coastguard Worker   } u;
183*8d67ca89SAndroid Build Coastguard Worker };
184*8d67ca89SAndroid Build Coastguard Worker #define FF_RUMBLE 0x50
185*8d67ca89SAndroid Build Coastguard Worker #define FF_PERIODIC 0x51
186*8d67ca89SAndroid Build Coastguard Worker #define FF_CONSTANT 0x52
187*8d67ca89SAndroid Build Coastguard Worker #define FF_SPRING 0x53
188*8d67ca89SAndroid Build Coastguard Worker #define FF_FRICTION 0x54
189*8d67ca89SAndroid Build Coastguard Worker #define FF_DAMPER 0x55
190*8d67ca89SAndroid Build Coastguard Worker #define FF_INERTIA 0x56
191*8d67ca89SAndroid Build Coastguard Worker #define FF_RAMP 0x57
192*8d67ca89SAndroid Build Coastguard Worker #define FF_EFFECT_MIN FF_RUMBLE
193*8d67ca89SAndroid Build Coastguard Worker #define FF_EFFECT_MAX FF_RAMP
194*8d67ca89SAndroid Build Coastguard Worker #define FF_SQUARE 0x58
195*8d67ca89SAndroid Build Coastguard Worker #define FF_TRIANGLE 0x59
196*8d67ca89SAndroid Build Coastguard Worker #define FF_SINE 0x5a
197*8d67ca89SAndroid Build Coastguard Worker #define FF_SAW_UP 0x5b
198*8d67ca89SAndroid Build Coastguard Worker #define FF_SAW_DOWN 0x5c
199*8d67ca89SAndroid Build Coastguard Worker #define FF_CUSTOM 0x5d
200*8d67ca89SAndroid Build Coastguard Worker #define FF_WAVEFORM_MIN FF_SQUARE
201*8d67ca89SAndroid Build Coastguard Worker #define FF_WAVEFORM_MAX FF_CUSTOM
202*8d67ca89SAndroid Build Coastguard Worker #define FF_GAIN 0x60
203*8d67ca89SAndroid Build Coastguard Worker #define FF_AUTOCENTER 0x61
204*8d67ca89SAndroid Build Coastguard Worker #define FF_MAX_EFFECTS FF_GAIN
205*8d67ca89SAndroid Build Coastguard Worker #define FF_MAX 0x7f
206*8d67ca89SAndroid Build Coastguard Worker #define FF_CNT (FF_MAX + 1)
207*8d67ca89SAndroid Build Coastguard Worker #endif
208