Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/usb/usbip/libsrc/vhci_driver.h
26292 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
/*
3
* Copyright (C) 2005-2007 Takahiro Hirofuchi
4
*/
5
6
#ifndef __VHCI_DRIVER_H
7
#define __VHCI_DRIVER_H
8
9
#include <libudev.h>
10
#include <stdint.h>
11
12
#include "usbip_common.h"
13
14
#define USBIP_VHCI_BUS_TYPE "platform"
15
#define USBIP_VHCI_DEVICE_NAME "vhci_hcd.0"
16
17
enum hub_speed {
18
HUB_SPEED_HIGH = 0,
19
HUB_SPEED_SUPER,
20
};
21
22
struct usbip_imported_device {
23
enum hub_speed hub;
24
uint8_t port;
25
uint32_t status;
26
27
uint32_t devid;
28
29
uint8_t busnum;
30
uint8_t devnum;
31
32
/* usbip_class_device list */
33
struct usbip_usb_device udev;
34
};
35
36
struct usbip_vhci_driver {
37
38
/* /sys/devices/platform/vhci_hcd */
39
struct udev_device *hc_device;
40
41
int ncontrollers;
42
int nports;
43
struct usbip_imported_device idev[];
44
};
45
46
47
extern struct usbip_vhci_driver *vhci_driver;
48
49
int usbip_vhci_driver_open(void);
50
void usbip_vhci_driver_close(void);
51
52
int usbip_vhci_refresh_device_list(void);
53
54
55
int usbip_vhci_get_free_port(uint32_t speed);
56
int usbip_vhci_attach_device2(uint8_t port, int sockfd, uint32_t devid,
57
uint32_t speed);
58
59
/* will be removed */
60
int usbip_vhci_attach_device(uint8_t port, int sockfd, uint8_t busnum,
61
uint8_t devnum, uint32_t speed);
62
63
int usbip_vhci_detach_device(uint8_t port);
64
65
int usbip_vhci_imported_device_dump(struct usbip_imported_device *idev);
66
67
#endif /* __VHCI_DRIVER_H */
68
69