| UHID(4) | Device Drivers Manual | UHID(4) |
uhid — USB generic
HID support
uhid* at uhidev?
#include <dev/usb/usb.h>
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_DEVICEINFO
struct usb_device_info *devinfoUSB_GET_REPORT_ID
int *repidUSB_GET_REPORT_DESC
struct usb_ctl_report_desc *repdescstruct usb_ctl_report_desc {
int ucrd_size;
u_char ucrd_data[1024]; /* filled data size will vary */
};
USB_GET_REPORT
struct usb_ctl_report *repUHID_INPUT_REPORT,
UHID_OUTPUT_REPORT, or
UHID_FEATURE_REPORT.
struct usb_ctl_report {
int ucr_report;
u_char ucr_data[1024]; /* filled data size will vary */
};
USB_SET_REPORT
struct usb_ctl_report *repreport field
indicates which report is to be set. It should be
UHID_INPUT_REPORT,
UHID_OUTPUT_REPORT, or
UHID_FEATURE_REPORT.The generic ioctls FIONBIO and
FIOASYNC are supported by
uhid.
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. Equivalent to issuing an
ioctl(2)
USB_SET_REPORT request with the report set to
UHID_OUTPUT_REPORT. Data should be written in chunks
of the size prescribed by the report descriptor.
If ioctl(2) fails, errno(2) is set to one of the following:
EIO]USB_GET_REPORT or
USB_SET_REPORT request.EINVAL]USB_GET_REPORT or
USB_SET_REPORT request was invalid.ENOTTY]If read(2) fails, errno(2) is set to one of the following:
EIO]EWOULDBLOCK]The uhid driver appeared in
OpenBSD 2.6.
| September 15, 2021 | openbsd |