git: 3e05b2366af1 - stable/14 - libusb20: Add dev_open + be_device_foreach manuals

Alexander Ziaee <[email protected]>
Newsgroups gmane.os.freebsd.devel.cvs.src
Message-ID <6a750b47.1f74a.11328662__6042.65371091373$1786055606$gmane$org@gitrepo.freebsd.org>
The branch stable/14 has been updated by ziaee:

URL: https://cgit.FreeBSD.org/src/commit/?id=3e05b2366af1fa56907390d540a97e29f0f191dd

commit 3e05b2366af1fa56907390d540a97e29f0f191dd
Author:     Rick Parrish <[email protected]>
AuthorDate: 2026-02-15 17:45:21 +0000
Commit:     Alexander Ziaee <[email protected]>
CommitDate: 2026-08-06 22:21:32 +0000

    libusb20: Add dev_open + be_device_foreach manuals
    
    Manual pages for libusb20_open(3) and libusb20_be_device_foreach(3).
    
    PR:                     291675
    Relnotes:               yes
    MFC after:              3 days
    Reviewed by:            adrian (usb), ziaee (manpages)
    Differential Revision:  https://reviews.freebsd.org/D54231
    
    (cherry picked from commit caf23c8e0b7981dd022c52feaf6edfef232f7e27)
---
 lib/libusb/Makefile                     |  6 +--
 lib/libusb/libusb20_be_device_foreach.3 | 56 ++++++++++++++++++++++++++
 lib/libusb/libusb20_dev_open.3          | 69 +++++++++++++++++++++++++++++++++
 3 files changed, 127 insertions(+), 4 deletions(-)

diff --git a/lib/libusb/Makefile b/lib/libusb/Makefile
index 4a0c392f0d8f..b3ef5a061584 100644
--- a/lib/libusb/Makefile
+++ b/lib/libusb/Makefile
@@ -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
diff --git a/lib/libusb/libusb20_be_device_foreach.3 b/lib/libusb/libusb20_be_device_foreach.3
new file mode 100644
index 000000000000..bc741813ddb0
--- /dev/null
+++ b/lib/libusb/libusb20_be_device_foreach.3
@@ -0,0 +1,56 @@
+.\"
+.\" Copyright (c) 2025 Rick Parrish <[email protected]>
+.\"
+.\" 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
diff --git a/lib/libusb/libusb20_dev_open.3 b/lib/libusb/libusb20_dev_open.3
new file mode 100644
index 000000000000..fa5d1746ff23
--- /dev/null
+++ b/lib/libusb/libusb20_dev_open.3
@@ -0,0 +1,69 @@
+.\"
+.\" Copyright (c) 2025 Rick Parrish <[email protected]>
+.\"
+.\" 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.