The
uhid
driver provides support for all HID (Human Interface Device) interfaces
in USB devices that do not have a special driver.
The device handles the following
ioctl(2)
calls:
USB_GET_REPORT_ID (int)
|
|
Get the report identifier used by this HID report.
|
USB_GET_REPORT_DESC (struct usb_gen_descriptor)
|
|
Get the HID report descriptor.
Copies a maximum of
ugd_maxlen
bytes of the report descriptor data into the memory
specified by
ugd_data.
Upon return
ugd_actlen
is set to the number of bytes copied.
Using
this descriptor the exact layout and meaning of data to/from
the device can be found.
The report descriptor is delivered
without any processing.
struct usb_gen_descriptor {
void *ugd_data;
uint16_t ugd_maxlen;
uint16_t ugd_actlen;
uint8_t ugd_report_type;
...
};
|
USB_SET_IMMED (int)
|
|
Sets the device in a mode where each
read(2)
will return the current value of the input report.
Normally
a
read(2)
will only return the data that the device reports on its
interrupt pipe.
This call may fail if the device does not support
this feature.
|
USB_GET_REPORT (struct usb_gen_descriptor)
|
|
Get a report from the device without waiting for data on
the interrupt pipe.
Copies a maximum of
ugd_maxlen
bytes of the report data into the memory specified by
ugd_data.
Upon return
ugd_actlen
is set to the number of bytes copied.
The
ugd_report_type
field indicates which report is requested.
It should be
UHID_INPUT_REPORT,
UHID_OUTPUT_REPORT,
or
UHID_FEATURE_REPORT.
This call may fail if the device does not support this feature.
|
USB_SET_REPORT (struct usb_gen_descriptor)
|
|
Set a report in the device.
The
ugd_report_type
field indicates which report is to be set.
It should be
UHID_INPUT_REPORT,
UHID_OUTPUT_REPORT,
or
UHID_FEATURE_REPORT.
The value of the report is specified by the
ugd_data
and the
ugd_maxlen
fields.
This call may fail if the device does not support this feature.
|
USB_GET_DEVICEINFO (struct usb_device_info)
|
|
Returns information about the device, like USB vendor ID and USB product ID.
This call will not issue any USB transactions.
Also refer to
ugen(4).
|
Use
read(2)
to get data from the device.
Data should be read in chunks of the
size prescribed by the report descriptor.
Use
write(2)
to send data to the device.
Data should be written in chunks of the
size prescribed by the report descriptor.