aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorDavid Herrmann <dh.herrmann@googlemail.com>2012-06-10 15:16:19 +0200
committerHumberto Borba <humberos@gmail.com>2013-01-12 21:04:47 -0200
commitfa55868d01e4058d2a8b864c7139a75300f664c0 (patch)
tree44e0cd9462be8b023c2cd41e57eed4a05b340ca5 /include/linux
parentee038486f733ed69cf7e4c08c43c1afd54395e66 (diff)
downloadkernel_samsung_smdk4412-fa55868d01e4058d2a8b864c7139a75300f664c0.zip
kernel_samsung_smdk4412-fa55868d01e4058d2a8b864c7139a75300f664c0.tar.gz
kernel_samsung_smdk4412-fa55868d01e4058d2a8b864c7139a75300f664c0.tar.bz2
HID: uhid: allow feeding input data into uhid devices
This adds a new event type UHID_INPUT which allows user-space to feed raw HID reports into the HID subsystem. We copy the data into kernel memory and directly feed it into the HID core. There is no error handling of the events couldn't be parsed so user-space should consider all events successfull unless read() returns an error. Signed-off-by: David Herrmann <dh.herrmann@googlemail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/uhid.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/uhid.h b/include/linux/uhid.h
index 8a493e6..6eb42be 100644
--- a/include/linux/uhid.h
+++ b/include/linux/uhid.h
@@ -25,6 +25,7 @@
enum uhid_event_type {
UHID_CREATE,
UHID_DESTROY,
+ UHID_INPUT,
};
struct uhid_create_req {
@@ -41,11 +42,19 @@ struct uhid_create_req {
__u32 country;
} __attribute__((__packed__));
+#define UHID_DATA_MAX 4096
+
+struct uhid_input_req {
+ __u8 data[UHID_DATA_MAX];
+ __u16 size;
+} __attribute__((__packed__));
+
struct uhid_event {
__u32 type;
union {
struct uhid_create_req create;
+ struct uhid_input_req input;
} u;
} __attribute__((__packed__));