Lines Matching +full:send +full:- +full:not +full:- +full:empty
2 UHID - User-space I/O driver support for HID subsystem
5 UHID allows user-space to implement HID transport drivers. Please see
6 hid-transport.rst for an introduction into HID transport drivers. This document
9 With UHID, a user-space transport driver can create kernel hid-devices for each
10 device connected to the user-space controlled bus. The UHID API defines the I/O
11 events provided from the kernel to user-space and vice versa.
13 There is an example user-space application in ./samples/uhid/uhid-example.c
16 ------------
18 UHID is accessed through a character misc-device. The minor number is allocated
25 write()'ing "struct uhid_event" objects. Non-blocking operations are supported
39 payloads are sent. You must not split a single event across multiple read()'s or
45 payload-structure available in the union "u" (except for empty payloads). This
48 The first thing you should do is send a UHID_CREATE2 event. This will
56 reference-counting in user-space. That is, you will never receive multiple
58 ref-counting for you.
62 If you want to send data on the interrupt channel to the HID subsystem, you send
63 a HID_INPUT2 event with your raw data payload. If the kernel wants to send data
71 The kernel blocks internal driver-execution during such round-trips (times out
72 after a hard-coded period).
74 If your device disconnects, you should send a UHID_DESTROY event. This will
75 unregister the device. You can now send UHID_CREATE2 again to register a new
81 -------
84 not supported, it will return -EOPNOTSUPP. If the payload is invalid, then
85 -EINVAL is returned, otherwise, the amount of data that was read is returned and
86 the request was handled successfully. O_NONBLOCK does not affect write() as
87 writes are always handled immediately in a non-blocking fashion. Future requests
91 This creates the internal HID device. No I/O is possible until you send this
103 You must send UHID_CREATE2 before sending input to the kernel! This event
104 contains a data-payload. This is the raw data that you read from your device
120 ------
127 event might not be available immediately after write(UHID_CREATE2) returns.
132 - UHID_DEV_NUMBERED_FEATURE_REPORTS
133 - UHID_DEV_NUMBERED_OUTPUT_REPORTS
134 - UHID_DEV_NUMBERED_INPUT_REPORTS
136 Each of these flags defines whether a given report-type uses numbered
138 the kernel already have the report-number as prefix. Otherwise, no
140 For messages sent by user-space to the kernel, you must adjust the
157 it is useful for power-management. As long as you haven't received this event
159 send UHID_INPUT2 events to the kernel.
166 This is sent if the HID device driver wants to send raw data to the I/O
173 on the control channel as described in the HID specs. The report-type and
174 report-number are available in the payload.
180 GET_REPORT (or if it fails), you must send a UHID_GET_REPORT_REPLY to the
183 never re-used, so conflicts cannot happen.
187 send a SET_REPORT request to your HID device. Once it replies, you must tell
191 ----------------------------------------------------