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-current |