68 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/*3 * Copyright (C) 2005-2007 Takahiro Hirofuchi4 */5 6#ifndef __VHCI_DRIVER_H7#define __VHCI_DRIVER_H8 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 17enum hub_speed {18 HUB_SPEED_HIGH = 0,19 HUB_SPEED_SUPER,20};21 22struct 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 36struct 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 47extern struct usbip_vhci_driver *vhci_driver;48 49int usbip_vhci_driver_open(void);50void usbip_vhci_driver_close(void);51 52int usbip_vhci_refresh_device_list(void);53 54 55int usbip_vhci_get_free_port(uint32_t speed);56int usbip_vhci_attach_device2(uint8_t port, int sockfd, uint32_t devid,57 uint32_t speed);58 59/* will be removed */60int usbip_vhci_attach_device(uint8_t port, int sockfd, uint8_t busnum,61 uint8_t devnum, uint32_t speed);62 63int usbip_vhci_detach_device(uint8_t port);64 65int usbip_vhci_imported_device_dump(struct usbip_imported_device *idev);66 67#endif /* __VHCI_DRIVER_H */68