HID: uhid: add UHID_CREATE and UHID_DESTROY events

UHID_CREATE and UHID_DESTROY are used to create and destroy a device on an
open uhid char-device. Internally, we allocate and register an HID device
with the HID core and immediately start the device. From now on events may
be received or sent to the device.

The UHID_CREATE event has a payload similar to the data used by
Bluetooth-HIDP when creating a new connection.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
David Herrmann
2012-06-10 15:16:18 +02:00
committed by Jiri Kosina
parent 6664ef72a4
commit d365c6cfd3
2 changed files with 164 additions and 1 deletions

View File

@@ -23,11 +23,30 @@
#include <linux/types.h>
enum uhid_event_type {
UHID_DUMMY,
UHID_CREATE,
UHID_DESTROY,
};
struct uhid_create_req {
__u8 name[128];
__u8 phys[64];
__u8 uniq[64];
__u8 __user *rd_data;
__u16 rd_size;
__u16 bus;
__u32 vendor;
__u32 product;
__u32 version;
__u32 country;
} __attribute__((__packed__));
struct uhid_event {
__u32 type;
union {
struct uhid_create_req create;
} u;
} __attribute__((__packed__));
#endif /* __UHID_H_ */