linux/tools/usb/usbip/libsrc/vhci_driver.h
<<
>>
Prefs
   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
  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