• 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__UINPUT_H_
7 #define _UAPI__UINPUT_H_
8 #include <linux/types.h>
9 #include <linux/input.h>
10 #define UINPUT_VERSION		5
11 #define UINPUT_MAX_NAME_SIZE	80
12 struct uinput_ff_upload {
13 	__u32			request_id;
14 	__s32			retval;
15 	struct ff_effect	effect;
16 	struct ff_effect	old;
17 };
18 struct uinput_ff_erase {
19 	__u32			request_id;
20 	__s32			retval;
21 	__u32			effect_id;
22 };
23 #define UINPUT_IOCTL_BASE	'U'
24 #define UI_DEV_CREATE		_IO(UINPUT_IOCTL_BASE, 1)
25 #define UI_DEV_DESTROY		_IO(UINPUT_IOCTL_BASE, 2)
26 struct uinput_setup {
27 	struct input_id id;
28 	char name[UINPUT_MAX_NAME_SIZE];
29 	__u32 ff_effects_max;
30 };
31 #define UI_DEV_SETUP _IOW(UINPUT_IOCTL_BASE, 3, struct uinput_setup)
32 struct uinput_abs_setup {
33 	__u16  code;
34 
35 	struct input_absinfo absinfo;
36 };
37 #define UI_ABS_SETUP _IOW(UINPUT_IOCTL_BASE, 4, struct uinput_abs_setup)
38 #define UI_SET_EVBIT		_IOW(UINPUT_IOCTL_BASE, 100, int)
39 #define UI_SET_KEYBIT		_IOW(UINPUT_IOCTL_BASE, 101, int)
40 #define UI_SET_RELBIT		_IOW(UINPUT_IOCTL_BASE, 102, int)
41 #define UI_SET_ABSBIT		_IOW(UINPUT_IOCTL_BASE, 103, int)
42 #define UI_SET_MSCBIT		_IOW(UINPUT_IOCTL_BASE, 104, int)
43 #define UI_SET_LEDBIT		_IOW(UINPUT_IOCTL_BASE, 105, int)
44 #define UI_SET_SNDBIT		_IOW(UINPUT_IOCTL_BASE, 106, int)
45 #define UI_SET_FFBIT		_IOW(UINPUT_IOCTL_BASE, 107, int)
46 #define UI_SET_PHYS		_IOW(UINPUT_IOCTL_BASE, 108, char*)
47 #define UI_SET_SWBIT		_IOW(UINPUT_IOCTL_BASE, 109, int)
48 #define UI_SET_PROPBIT		_IOW(UINPUT_IOCTL_BASE, 110, int)
49 #define UI_BEGIN_FF_UPLOAD	_IOWR(UINPUT_IOCTL_BASE, 200, struct uinput_ff_upload)
50 #define UI_END_FF_UPLOAD	_IOW(UINPUT_IOCTL_BASE, 201, struct uinput_ff_upload)
51 #define UI_BEGIN_FF_ERASE	_IOWR(UINPUT_IOCTL_BASE, 202, struct uinput_ff_erase)
52 #define UI_END_FF_ERASE		_IOW(UINPUT_IOCTL_BASE, 203, struct uinput_ff_erase)
53 #define UI_GET_SYSNAME(len)	_IOC(_IOC_READ, UINPUT_IOCTL_BASE, 44, len)
54 #define UI_GET_VERSION		_IOR(UINPUT_IOCTL_BASE, 45, unsigned int)
55 #define EV_UINPUT		0x0101
56 #define UI_FF_UPLOAD		1
57 #define UI_FF_ERASE		2
58 struct uinput_user_dev {
59 	char name[UINPUT_MAX_NAME_SIZE];
60 	struct input_id id;
61 	__u32 ff_effects_max;
62 	__s32 absmax[ABS_CNT];
63 	__s32 absmin[ABS_CNT];
64 	__s32 absfuzz[ABS_CNT];
65 	__s32 absflat[ABS_CNT];
66 };
67 #endif
68