libusb20: Add dev_open + be_device_foreach manuals

Manual pages for libusb20_open(3) and libusb20_be_device_foreach(3).

PR:			291675
MFC after:		3 days
Reviewed by:		adrian (usb), ziaee (manpages)
Differential Revision:	https://reviews.freebsd.org/D54231
This commit is contained in:
Rick Parrish
2026-02-15 12:45:21 -05:00
committed by Alexander Ziaee
parent a404c2315b
commit caf23c8e0b
3 changed files with 127 additions and 4 deletions
+2 -4
View File
@@ -1,5 +1,4 @@
#
#
# Makefile for the FreeBSD specific LibUSB 2.0
#
@@ -11,7 +10,8 @@ SRCS+= libusb20_desc.c
SRCS+= libusb20_ugen20.c
INCS+= libusb20.h
INCS+= libusb20_desc.h
MAN= libusb.3 libusb20.3
MAN= libusb.3 libusb20.3 libusb20_be_device_foreach.3 \
libusb20_dev_open.3
MKLINT= no
NOGCCERROR=
PTHREAD_LIBS?= -lpthread
@@ -229,7 +229,6 @@ MLINKS += libusb20.3 libusb20_dev_set_config_index.3
MLINKS += libusb20.3 libusb20_dev_get_debug.3
MLINKS += libusb20.3 libusb20_dev_get_fd.3
MLINKS += libusb20.3 libusb20_dev_kernel_driver_active.3
MLINKS += libusb20.3 libusb20_dev_open.3
MLINKS += libusb20.3 libusb20_dev_process.3
MLINKS += libusb20.3 libusb20_dev_request_sync.3
MLINKS += libusb20.3 libusb20_dev_req_string_sync.3
@@ -261,7 +260,6 @@ MLINKS += libusb20.3 libusb20_be_get_quirk_name.3
MLINKS += libusb20.3 libusb20_be_add_dev_quirk.3
MLINKS += libusb20.3 libusb20_be_remove_dev_quirk.3
MLINKS += libusb20.3 libusb20_be_alloc_default.3
MLINKS += libusb20.3 libusb20_be_device_foreach.3
MLINKS += libusb20.3 libusb20_be_dequeue_device.3
MLINKS += libusb20.3 libusb20_be_enqueue_device.3
MLINKS += libusb20.3 libusb20_be_free.3
+56
View File
@@ -0,0 +1,56 @@
.\"
.\" Copyright (c) 2025 Rick Parrish <unitrunker@unitrunker.net>
.\"
.\" SPDX-License-Identifier: BSD-2-Clause
.\"
.Dd December 14, 2025
.Dt LIBUSB20 3
.Os
.Sh NAME
.Nm libusb20_be_device_foreach
.Nd iterate connected USB devices
.Sh SYNOPSIS
.Lb libusb
.In libusb20.h
.Ft struct libusb20_device *
.Fn libusb20_be_device_foreach "struct libusb20_backend *pbe" "struct libusb20_device *pdev"
.Sh DESCRIPTION
The
.Nm
function iterates connected USB devices, one device at a time.
A backend pointer for
.Fa pbe
may be obtained by calling
.Xr libusb20_be_alloc_default 3 .
The starting value of
.Fa pdev
is NULL.
Calling
.Nm libusb20_be_device_foreach
again with
.Fa pdev
set to the return value of the previous call yields the next device.
To begin interacting with a USB device, pass the pointer in a call to
.Xr libusb20_dev_open 3 .
.Sh RETURN VALUES
.Nm
returns NULL for end of list.
Otherwise this is a pointer to the next device.
.Sh EXAMPLES
.Bd -literal
#include <libusb20.h>
struct libusb20_backend *be = libusb20_be_alloc_default();
struct libusb20_device *device = NULL;
while ( (device = libusb20_be_device_foreach(be, device)) != NULL ) {
if (libusb20_dev_open(device, 0) == LIBUSB20_SUCCESS) {
/* do something */
libusb20_dev_close(device);
}
}
libusb20_be_free(be);
.Ed
.Sh SEE ALSO
.Xr libusb20 3 ,
.Xr libusb20_be_alloc_default 3 ,
.Xr libusb20_be_free 3 ,
.Xr libusb20_dev_open 3
+69
View File
@@ -0,0 +1,69 @@
.\"
.\" Copyright (c) 2025 Rick Parrish <unitrunker@unitrunker.net>
.\"
.\" SPDX-License-Identifier: BSD-2-Clause
.\"
.Dd December 14, 2025
.Dt LIBUSB20 3
.Os
.Sh NAME
.Nm libusb20_dev_open
.Nd open a USB device to retrieve descriptors and initiate transfers
.Sh SYNOPSIS
.Lb libusb
.In libusb20.h
.Ft int
.Fn libusb20_dev_open "struct libusb20_device *pdev" "uin16_t transfer_max"
.Sh DESCRIPTION
The
.Nm
function opens a USB device to retrieve descriptors and initiate transfers.
.Nm
accepts a pointer as
.Fa pdev
to a libusb20_device obtained from
.Nm libusb20_be_device_foreach .
A zero for
.Fa transfer_max
limits the device to only control transfers.
Call
.Xr libusb20_dev_close 3
to free resources taken by the open device handle.
.Sh RETURN VALUES
.Nm
returns one of the following to report success or failure:
.Pp
.Bl -tag -width "LIBUSB20_ERROR_NO_DEVICE," -compact
.It Er LIBUSB20_SUCCESS ,
The operation succeeds.
.It Er LIBUSB20_ERROR_BUSY ,
The device is in use elsewhere.
.It Er LIBUSB20_ERROR_ACCESS ,
A permissions issue.
.It Er LIBUSB20_ERROR_NO_DEVICE ,
The device detached.
.It Er LIBUSB20_ERROR_NO_MEM
The library couldn't allocate memory.
.El
.Pp
Errors not listed here may be found in
.Xr libusb20 3
and
.In libusb20.h .
.Sh EXAMPLES
.Bd -literal
#include <libusb20.h>
struct libusb20_backend *be = libusb20_be_alloc_default();
struct libusb20_device *device = NULL;
while ( (device = libusb20_be_device_foreach(be, device)) != NULL ) {
if (libusb20_dev_open(device, 0) == LIBUSB20_SUCCESS) {
/* do something */
libusb20_dev_close(device);
}
}
libusb20_be_free(be);
.Ed
.Sh SEE ALSO
.Xr libusb20 3 ,
.Xr libusb20_be_device_foreach 3 ,
.Xr libusb20_dev_close 3