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