summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorAnton Lindqvist <anton@cvs.openbsd.org>2021-09-15 04:59:27 +0000
committerAnton Lindqvist <anton@cvs.openbsd.org>2021-09-15 04:59:27 +0000
commitaefa8caa65fe053fd93787aa199c63b2fcf03646 (patch)
tree54b283d6479dab389d397702f31e2132dae5aa8e /share
parentb5d6e3cdf451cdac232cfbb91b832ae2ddc536c0 (diff)
Improve the uhid(4) manual:
* Include the relevant header in the synopsis * Document all supported ioctl commands * Emphasis that a pointer is required to all ioctl commands * Make the write(2) semantics a bit clearer * Add files section * Document errors ok jmc@
Diffstat (limited to 'share')
-rw-r--r--share/man/man4/uhid.487
1 files changed, 77 insertions, 10 deletions
diff --git a/share/man/man4/uhid.4 b/share/man/man4/uhid.4
index 7340741b522..447a6ee8ca4 100644
--- a/share/man/man4/uhid.4
+++ b/share/man/man4/uhid.4
@@ -1,4 +1,4 @@
-.\" $OpenBSD: uhid.4,v 1.19 2020/12/30 12:49:58 jmc Exp $
+.\" $OpenBSD: uhid.4,v 1.20 2021/09/15 04:59:26 anton Exp $
.\" $NetBSD: uhid.4,v 1.13 2001/12/29 14:41:59 augustss Exp $
.\"
.\" Copyright (c) 1999, 2001 The NetBSD Foundation, Inc.
@@ -28,7 +28,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd $Mdocdate: December 30 2020 $
+.Dd $Mdocdate: September 15 2021 $
.Dt UHID 4
.Os
.Sh NAME
@@ -36,6 +36,8 @@
.Nd USB generic HID support
.Sh SYNOPSIS
.Cd "uhid* at uhidev?"
+.Pp
+.In dev/usb/usb.h
.Sh DESCRIPTION
The
.Nm
@@ -46,9 +48,11 @@ The device handles the following
.Xr ioctl 2
calls:
.Bl -tag -width indent
-.It Dv USB_GET_REPORT_ID Fa int
+.It Dv USB_GET_DEVICEINFO Fa struct usb_device_info *devinfo
+Get summarized information about the device.
+.It Dv USB_GET_REPORT_ID Fa int *repid
Get the report identifier used by this HID report.
-.It Dv USB_GET_REPORT_DESC Fa "struct usb_ctl_report_desc"
+.It Dv USB_GET_REPORT_DESC Fa struct usb_ctl_report_desc *repdesc
Get the HID report descriptor.
Using this descriptor the exact layout and meaning of data to/from
the device can be found.
@@ -59,25 +63,24 @@ struct usb_ctl_report_desc {
u_char ucrd_data[1024]; /* filled data size will vary */
};
.Ed
-.It Dv USB_GET_REPORT Fa "struct usb_ctl_report"
+.It Dv USB_GET_REPORT Fa struct usb_ctl_report *rep
Get a report from the device without waiting for data on
the interrupt pipe.
The
-.Fa report
+.Fa ucr_report
field indicates which report is requested.
It should be
.Dv UHID_INPUT_REPORT ,
.Dv UHID_OUTPUT_REPORT ,
or
.Dv UHID_FEATURE_REPORT .
-This call may fail if the device does not support this feature.
.Bd -literal
struct usb_ctl_report {
int ucr_report;
- u_char ucr_data[1024]; /* used data size will vary */
+ u_char ucr_data[1024]; /* filled data size will vary */
};
.Ed
-.It Dv USB_SET_REPORT Fa "struct usb_ctl_report"
+.It Dv USB_SET_REPORT Fa struct usb_ctl_report *rep
Set a report in the device.
The
.Dv report
@@ -87,9 +90,15 @@ It should be
.Dv UHID_OUTPUT_REPORT ,
or
.Dv UHID_FEATURE_REPORT .
-This call may fail if the device does not support this feature.
.El
.Pp
+The generic ioctls
+.Dv FIONBIO
+and
+.Dv FIOASYNC
+are supported by
+.Nm .
+.Pp
Use
.Xr read 2
to get data from the device.
@@ -98,8 +107,66 @@ Data should be read in chunks of the size prescribed by the report descriptor.
Use
.Xr write 2
to send data to the device.
+Equivalent to issuing an
+.Xr ioctl 2
+.Dv USB_SET_REPORT
+request with the report set to
+.Dv UHID_OUTPUT_REPORT .
Data should be written in chunks of the size prescribed by the report
descriptor.
+.Sh FILES
+.Bl -tag -width /dev/tun* -compact
+.It Pa /dev/uhid*
+.El
+.Sh ERRORS
+If
+.Xr ioctl 2
+fails,
+.Xr errno 2
+is set to one of the following:
+.Bl -tag -width Er
+.It Bq Er EIO
+The device could not fulfill a
+.Dv USB_GET_REPORT
+or
+.Dv USB_SET_REPORT
+request.
+.It Bq Er EINVAL
+The report specified by the
+.Fa ucr_report
+field in a
+.Dv USB_GET_REPORT
+or
+.Dv USB_SET_REPORT
+request was invalid.
+.It Bq Er ENOTTY
+Unrecognized command.
+.El
+.Pp
+If
+.Xr read 2
+fails,
+.Xr errno 2
+is set to one of the following:
+.Bl -tag -width Er
+.It Bq Er EIO
+The device has already been detached.
+.It Bq Er EWOULDBLOCK
+Non-blocking I/O was selected and no data were available.
+.El
+.Pp
+If
+.Xr write 2
+fails,
+.Xr errno 2
+is set to one of the following:
+.Bl -tag -width Er
+.It Bq Er EIO
+The device has already been detached or the same device does not have a
+corresponding output report.
+.It Bq Er EMSGSIZE
+The size of the supplied data exceeds the size of the output report.
+.El
.Sh SEE ALSO
.Xr usbhidctl 1 ,
.Xr usbhid 3 ,