123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- #ifndef __UINPUT_H_
- #define __UINPUT_H_
- #include <linux/types.h>
- #include <linux/input.h>
- #define UINPUT_VERSION 5
- #define UINPUT_MAX_NAME_SIZE 80
- struct uinput_ff_upload {
- __u32 request_id;
- __s32 retval;
- struct ff_effect effect;
- struct ff_effect old;
- };
- struct uinput_ff_erase {
- __u32 request_id;
- __s32 retval;
- __u32 effect_id;
- };
- #define UINPUT_IOCTL_BASE 'U'
- #define UI_DEV_CREATE _IO(UINPUT_IOCTL_BASE, 1)
- #define UI_DEV_DESTROY _IO(UINPUT_IOCTL_BASE, 2)
- struct uinput_setup {
- struct input_id id;
- char name[UINPUT_MAX_NAME_SIZE];
- __u32 ff_effects_max;
- };
- #define UI_DEV_SETUP _IOW(UINPUT_IOCTL_BASE, 3, struct uinput_setup)
- struct uinput_abs_setup {
- __u16 code;
-
- struct input_absinfo absinfo;
- };
- #define UI_ABS_SETUP _IOW(UINPUT_IOCTL_BASE, 4, struct uinput_abs_setup)
- #define UI_SET_EVBIT _IOW(UINPUT_IOCTL_BASE, 100, int)
- #define UI_SET_KEYBIT _IOW(UINPUT_IOCTL_BASE, 101, int)
- #define UI_SET_RELBIT _IOW(UINPUT_IOCTL_BASE, 102, int)
- #define UI_SET_ABSBIT _IOW(UINPUT_IOCTL_BASE, 103, int)
- #define UI_SET_MSCBIT _IOW(UINPUT_IOCTL_BASE, 104, int)
- #define UI_SET_LEDBIT _IOW(UINPUT_IOCTL_BASE, 105, int)
- #define UI_SET_SNDBIT _IOW(UINPUT_IOCTL_BASE, 106, int)
- #define UI_SET_FFBIT _IOW(UINPUT_IOCTL_BASE, 107, int)
- #define UI_SET_PHYS _IOW(UINPUT_IOCTL_BASE, 108, char*)
- #define UI_SET_SWBIT _IOW(UINPUT_IOCTL_BASE, 109, int)
- #define UI_SET_PROPBIT _IOW(UINPUT_IOCTL_BASE, 110, int)
- #define UI_BEGIN_FF_UPLOAD _IOWR(UINPUT_IOCTL_BASE, 200, struct uinput_ff_upload)
- #define UI_END_FF_UPLOAD _IOW(UINPUT_IOCTL_BASE, 201, struct uinput_ff_upload)
- #define UI_BEGIN_FF_ERASE _IOWR(UINPUT_IOCTL_BASE, 202, struct uinput_ff_erase)
- #define UI_END_FF_ERASE _IOW(UINPUT_IOCTL_BASE, 203, struct uinput_ff_erase)
- #define UI_GET_SYSNAME(len) _IOC(_IOC_READ, UINPUT_IOCTL_BASE, 44, len)
- #define UI_GET_VERSION _IOR(UINPUT_IOCTL_BASE, 45, unsigned int)
- #define EV_UINPUT 0x0101
- #define UI_FF_UPLOAD 1
- #define UI_FF_ERASE 2
- struct uinput_user_dev {
- char name[UINPUT_MAX_NAME_SIZE];
- struct input_id id;
- __u32 ff_effects_max;
- __s32 absmax[ABS_CNT];
- __s32 absmin[ABS_CNT];
- __s32 absfuzz[ABS_CNT];
- __s32 absflat[ABS_CNT];
- };
- #endif
|