aboutsummaryrefslogtreecommitdiff
path: root/lib/libusb/libusb20_dev_open.3
blob: fa5d1746ff236e6daaf6a270fd29df0f4a22ba59 (plain) (blame)
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
57
58
59
60
61
62
63
64
65
66
67
68
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