libusb-1.0
libusb
os
sunos_usb.h
1
/*
2
*
3
* Copyright (c) 2016, Oracle and/or its affiliates.
4
*
5
* This library is free software; you can redistribute it and/or
6
* modify it under the terms of the GNU Lesser General Public
7
* License as published by the Free Software Foundation; either
8
* version 2.1 of the License, or (at your option) any later version.
9
*
10
* This library is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
* Lesser General Public License for more details.
14
*
15
* You should have received a copy of the GNU Lesser General Public
16
* License along with this library; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
*/
19
20
#ifndef LIBUSB_SUNOS_H
21
#define LIBUSB_SUNOS_H
22
23
#include <libdevinfo.h>
24
#include <pthread.h>
25
#include "libusbi.h"
26
27
#define READ 0
28
#define WRITE 1
29
30
typedef
struct
sunos_device_priv
{
31
uint8_t cfgvalue;
/* active config value */
32
uint8_t *raw_cfgdescr;
/* active config descriptor */
33
char
*ugenpath;
/* name of the ugen(4) node */
34
char
*phypath;
/* physical path */
35
}
sunos_dev_priv_t
;
36
37
typedef
struct
endpoint
{
38
int
datafd;
/* data file */
39
int
statfd;
/* state file */
40
}
sunos_ep_priv_t
;
41
42
typedef
struct
sunos_device_handle_priv
{
43
uint8_t altsetting[USB_MAXINTERFACES];
/* a interface's alt */
44
uint8_t config_index;
45
sunos_ep_priv_t
eps[USB_MAXENDPOINTS];
46
sunos_dev_priv_t
*dpriv;
/* device private */
47
}
sunos_dev_handle_priv_t
;
48
49
typedef
struct
sunos_transfer_priv
{
50
struct
aiocb aiocb;
51
struct
libusb_transfer
*transfer;
52
}
sunos_xfer_priv_t
;
53
54
struct
node_args
{
55
struct
libusb_context
*ctx;
56
struct
discovered_devs
**discdevs;
57
const
char
*last_ugenpath;
58
di_devlink_handle_t dlink_hdl;
59
};
60
61
struct
devlink_cbarg
{
62
struct
node_args
*nargs;
/* di node walk arguments */
63
di_node_t myself;
/* the di node */
64
di_minor_t minor;
65
};
66
67
typedef
struct
walk_link
{
68
char
*path;
69
int
len;
70
char
**linkpp;
71
}
walk_link_t
;
72
73
/* AIO callback args */
74
struct
aio_callback_args
{
75
struct
libusb_transfer
*transfer;
76
struct
aiocb aiocb;
77
};
78
79
#endif
/* LIBUSB_SUNOS_H */
sunos_device_handle_priv
Definition:
sunos_usb.h:42
libusb_context
Definition:
libusbi.h:301
walk_link
Definition:
sunos_usb.h:67
node_args
Definition:
sunos_usb.h:54
libusb_transfer
Definition:
libusb.h:1219
aio_callback_args
Definition:
sunos_usb.h:74
devlink_cbarg
Definition:
sunos_usb.h:61
sunos_transfer_priv
Definition:
sunos_usb.h:49
endpoint
Definition:
sunos_usb.h:37
sunos_device_priv
Definition:
sunos_usb.h:30
discovered_devs
Definition:
libusbi.h:736
Generated by
1.8.13