-
Notifications
You must be signed in to change notification settings - Fork 61
/
sysfs.h
95 lines (83 loc) · 2.04 KB
/
sysfs.h
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// SPDX-License-Identifier: GPL-2.0-only
/*
* sysfs.h for USBView - a USB device viewer
* Copyright (c) 1999, 2000, 2021-2022 by Greg Kroah-Hartman, [email protected]
*/
#ifndef __SYSFS_H
#define __SYSFS_H
/* should make these dynamic someday... */
#define MAX_ENDPOINTS 32
#define MAX_INTERFACES 128
#define MAX_CONFIGS 32
#define MAX_CHILDREN 32
#define DEVICE_REVISION_NUMBER_SIZE 6
#define DEVICE_STRING_MAXSIZE 255
#define INTERFACE_DRIVERNAME_NODRIVER_STRING "(none)"
#define INTERFACE_DRIVERNAME_STRING_MAXLENGTH 50
struct DeviceEndpoint {
gint address;
gboolean in; /* TRUE if in, FALSE if out */
gint attribute;
gchar *type;
gint maxPacketSize;
gchar *interval;
};
struct DeviceInterface {
gchar *name;
gint interfaceNumber;
gint alternateNumber;
gint numEndpoints;
gint subClass;
gint protocol;
gchar *class;
struct DeviceEndpoint *endpoint[MAX_ENDPOINTS];
gboolean driverAttached; /* TRUE if driver is attached to this interface currently */
};
struct DeviceConfig {
gint configNumber;
gint numInterfaces;
gint attributes;
gchar *maxPower;
struct DeviceInterface *interface[MAX_INTERFACES];
};
struct DeviceBandwidth {
gint allocated;
gint total;
gint percent;
gint numInterruptRequests;
gint numIsocRequests;
};
struct Device {
gchar *name;
gint busNumber;
gint level;
gint portNumber;
gint connectorNumber;
gint deviceNumber;
gint speed;
gint maxChildren;
gchar *version;
gchar *class;
gchar *subClass;
gchar *protocol;
gint maxPacketSize;
gint numConfigs;
gint vendorId;
gint productId;
gchar *revisionNumber;
gchar *manufacturer;
gchar *product;
gchar *serialNumber;
struct DeviceConfig *config[MAX_CONFIGS];
struct Device *parent;
struct Device *child[MAX_CHILDREN];
struct DeviceBandwidth *bandwidth;
GtkWidget *tree;
GtkTreeIter leaf;
};
extern struct Device *rootDevice;
struct Device *usb_find_device(int deviceNumber, int busNumber);
void usb_initialize_list(void);
void sysfs_parse(void);
void usb_name_devices(void);
#endif /* __USB_PARSE_H */