HID: uhid: add internal message buffer
authorDavid Herrmann <dh.herrmann@googlemail.com>
Sun, 10 Jun 2012 13:16:14 +0000 (15:16 +0200)
committerJiri Kosina <jkosina@suse.cz>
Mon, 18 Jun 2012 11:42:00 +0000 (13:42 +0200)
commitace3d8614ab0e6544f5f85921085b55b915fe9aa
treeb666635c332af039a991d8391b4f24ac62a51182
parent1ccd7a2a33f2b47e46c51f4501e9623a51d28090
HID: uhid: add internal message buffer

When receiving messages from the HID subsystem, we need to process them
and store them in an internal buffer so user-space can read() on the char
device to retrieve the messages.

This adds a static buffer for 32 messages to each uhid device. Each
message is dynamically allocated so the uhid_device structure does not get
too big.

uhid_queue() adds a message to the buffer. If the buffer is full, the
message is discarded. uhid_queue_event() is an helper for messages without
payload.

This also adds a public header: uhid.h. It contains the declarations for
the user-space API. It is built around "struct uhid_event" which contains
a type field which specifies the event type and each event can then add a
variable-length payload. For now, there is only a dummy event but later
patches will add new event types and payloads.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/uhid.c
include/linux/Kbuild
include/linux/uhid.h [new file with mode: 0644]