Page MenuHomeFreeBSD

D54231.id168037.diff
No OneTemporary

D54231.id168037.diff

diff --git a/lib/libusb/Makefile b/lib/libusb/Makefile
--- a/lib/libusb/Makefile
+++ b/lib/libusb/Makefile
@@ -11,7 +11,7 @@
SRCS+= libusb20_ugen20.c
INCS+= libusb20.h
INCS+= libusb20_desc.h
-MAN= libusb.3 libusb20.3
+MAN= libusb.3 libusb20.3 libusb20_dev_open.3 libusb20_be_device_foreach.3
MKLINT= no
NOGCCERROR=
PTHREAD_LIBS?= -lpthread
diff --git a/lib/libusb/libusb20_be_device_foreach.3 b/lib/libusb/libusb20_be_device_foreach.3
new file mode 100755
--- /dev/null
+++ b/lib/libusb/libusb20_be_device_foreach.3
@@ -0,0 +1,45 @@
+.\" #
+.\" # Copyright (c) 2025
+.\"
+.Dd December 14, 2025
+.Dt LIBUSB20 3
+.Os
+.Sh NAME
+.Nm libusb20_be_device_foreach
+.Nd iterates USB devices present in a USB backend.
+.Sh LIBRARY
+.Lb libusb (-l usb)
+.Sh SYNOPSIS
+.In libusb20.h
+.Ft struct libusb20_device *
+.Fn libusb20_dev_open "struct libusb20_backend *pbe" "struct libusb20_device *pdev"
+.Sh DESCRIPTION
+The starting value of pdev is NULL. A backend pointer may be obtained by calling
+.Xr libusb20_be_alloc_default 3 .
+This function returns the next USB device in the list. Calling
+.Xr libusb20_be_device_foreach 3
+again with the return value of the previous call yields the next device.
+To begin interacting with a USB device, pass the opaque pointer in a call to
+.Xr libusb20_dev_open 3 .
+.Sh RETURN VALUES
+NULL for end of list, otherwise this is a pointer to the next device.
+.Sh SEE ALSO
+.Xr libusb20_be_alloc_default 3
+.Xr libusb20_be_device_foreach 3
+.Xr libusb20_be_free 3
+.Xr libusb20_dev_open 3
+.Sh EXAMPLE
+.Bd
+ #include <libusb20.h>
+ libusb20_backend *be = libusb20_be_alloc_default();
+ 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 HISTORY
+.Sh AUTHORS
diff --git a/lib/libusb/libusb20_dev_open.3 b/lib/libusb/libusb20_dev_open.3
new file mode 100755
--- /dev/null
+++ b/lib/libusb/libusb20_dev_open.3
@@ -0,0 +1,52 @@
+.\" #
+.\" # Copyright (c) 2025
+.\"
+.Dd December 14, 2025
+.Dt LIBUSB20 3
+.Os
+.Sh NAME
+.Nm libusb20_dev_open
+.Nd opens a USB device so that querying device strings and setting up USB transfers becomes possible.
+.Sh LIBRARY
+.Lb libusb (-l usb)
+.Sh SYNOPSIS
+.In libusb20.h
+.Ft int
+.Fn libusb20_dev_open "struct libusb20_device *pdev" "uin16_t transfer_max"
+.Sh DESCRIPTION
+The
+.Fn libusb20_dev_open
+function accepts an opaque pointer to a
+.Xr libusb20_device 3
+obtained from
+.Xr libusb20_be_device_foreach 3 .
+A zero for transfer_max limits the device to only control transfers.
+Call
+.Xr libusb20_close 3
+to free resources taken by the open device handle.
+.Sh RETURN VALUES
+LIBUSB20_SUCCESS
+LIBUSB20_ERROR_BUSY
+LIBUSB20_ERROR_ACCESS
+LIBUSB20_ERROR_NO_MEM
+More errors are defined in
+.Xr libusb20.h 3
+.Sh SEE ALSO
+.Xr libusb20_be_device_foreach 3 ,
+.Xr libusb20_dev_close 3 ,
+.Xr libusb20 3
+.Sh EXAMPLE
+.Bd
+ #include <libusb20.h>
+ libusb20_backend *be = libusb20_be_alloc_default();
+ 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 HISTORY
+.Sh AUTHORS

File Metadata

Mime Type
text/plain
Expires
Mon, Dec 22, 3:22 AM (19 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27133291
Default Alt Text
D54231.id168037.diff (3 KB)

Event Timeline