summaryrefslogtreecommitdiff
path: root/lib/libusb/libusb20_be_device_foreach.3
blob: bc741813ddb09ff449ac840b856a92b4c1f5ec42 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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