VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
vsf_libusb_hcd.c File Reference
#include "component/usb/vsf_usb_cfg.h"
#include "kernel/vsf_kernel.h"
#include "component/usb/host/vsf_usbh.h"
#include "./vsf_libusb_hcd.h"
#include "utilities/ooc_class.h"
#include "libusb.h"

Data Structures

struct  libusb_device_descriptor
 
struct  libusb_config_descriptor
 
struct  vk_libusb_hcd_dev_t
 
struct  vk_libusb_hcd_t
 
struct  vk_libusb_hcd_urb_t
 

Macros

#define __VSF_USBH_CLASS_IMPLEMENT_HCD__
 
#define __VSF_USBH_CLASS_IMPLEMENT_HUB__
 
#define __VSF_EDA_CLASS_INHERIT__
 
#define LIBUSB_CALL
 
#define libusb_hotplug_register_callback(...)   (LIBUSB_ERROR_NOT_SUPPORTED)
 
#define libusb_has_capability(...)   (false)
 
#define libusb_close   usb_close
 
#define libusb_reset_device
 
#define libusb_claim_interface   usb_claim_interface
 
#define libusb_control_transfer   usb_control_msg
 
#define libusb_get_device_speed(__dev)   (LIBUSB_SPEED_UNKNOWN)
 
#define libusb_get_device(__handle)   ((libusb_device *)usb_device(__handle))
 
#define VSF_EVT_LIBUSB_HCD_BASE   ((VSF_EVT_USER + 0x100) & ~0xFF)
 
#define VSF_LIBUSB_HCD_DEF_DEV(__N, __BIT)
 

Typedefs

typedef usb_dev_handle libusb_device_handle
 
typedef struct usb_device libusb_device
 
typedef void * libusb_context
 
typedef struct vk_libusb_hcd_dev_t vk_libusb_hcd_dev_t
 
typedef struct vk_libusb_hcd_t vk_libusb_hcd_t
 
typedef struct vk_libusb_hcd_urb_t vk_libusb_hcd_urb_t
 
typedef enum vk_libusb_hcd_evt_t vk_libusb_hcd_evt_t
 

Enumerations

enum  libusb_error {
  LIBUSB_SUCCESS = 0 ,
  LIBUSB_ERROR_IO = -1 ,
  LIBUSB_ERROR_INVALID_PARAM = -2 ,
  LIBUSB_ERROR_ACCESS = -3 ,
  LIBUSB_ERROR_NO_DEVICE = -4 ,
  LIBUSB_ERROR_NOT_FOUND = -5 ,
  LIBUSB_ERROR_BUSY = -6 ,
  LIBUSB_ERROR_TIMEOUT = -7 ,
  LIBUSB_ERROR_OVERFLOW = -8 ,
  LIBUSB_ERROR_PIPE = -9 ,
  LIBUSB_ERROR_INTERRUPTED = -10 ,
  LIBUSB_ERROR_NO_MEM = -11 ,
  LIBUSB_ERROR_NOT_SUPPORTED = -12 ,
  LIBUSB_ERROR_OTHER = -99
}
 
enum  libusb_hotplug_event {
  LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED = 0x01U ,
  LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT = 0x02U
}
 
enum  libusb_speed {
  LIBUSB_SPEED_UNKNOWN ,
  LIBUSB_SPEED_LOW ,
  LIBUSB_SPEED_FULL ,
  LIBUSB_SPEED_HIGH ,
  LIBUSB_SPEED_SUPER ,
  LIBUSB_SPEED_SUPER_PLUS
}
 
enum  vk_libusb_hcd_evt_t {
  VSF_EVT_LIBUSB_HCD_ATTACH = VSF_EVT_LIBUSB_HCD_BASE + 0x100 ,
  VSF_EVT_LIBUSB_HCD_DETACH = VSF_EVT_LIBUSB_HCD_BASE + 0x200 ,
  VSF_EVT_LIBUSB_HCD_READY = VSF_EVT_LIBUSB_HCD_BASE + 0x300
}
 

Functions

int LIBUSB_CALL libusb_init (libusb_context **ctx)
 
libusb_device_handle *LIBUSB_CALL libusb_open_device_with_vid_pid (libusb_context *ctx, uint16_t vendor_id, uint16_t product_id)
 
int LIBUSB_CALL libusb_get_config_descriptor_by_value (libusb_device *dev, uint8_t bConfigurationValue, struct libusb_config_descriptor **config)
 
void LIBUSB_CALL libusb_free_config_descriptor (struct libusb_config_descriptor *config)
 
int LIBUSB_CALL libusb_bulk_transfer (libusb_device_handle *dev_handle, unsigned char endpoint, unsigned char *data, int length, int *actual_length, unsigned int timeout)
 
int LIBUSB_CALL libusb_interrupt_transfer (libusb_device_handle *dev_handle, unsigned char endpoint, unsigned char *data, int length, int *actual_length, unsigned int timeout)
 

Variables

const vk_usbh_hcd_drv_t vk_libusb_hcd_drv
 

Macro Definition Documentation

◆ __VSF_USBH_CLASS_IMPLEMENT_HCD__

#define __VSF_USBH_CLASS_IMPLEMENT_HCD__

◆ __VSF_USBH_CLASS_IMPLEMENT_HUB__

#define __VSF_USBH_CLASS_IMPLEMENT_HUB__

◆ __VSF_EDA_CLASS_INHERIT__

#define __VSF_EDA_CLASS_INHERIT__

◆ LIBUSB_CALL

#define LIBUSB_CALL

◆ libusb_hotplug_register_callback

#define libusb_hotplug_register_callback (   ...)    (LIBUSB_ERROR_NOT_SUPPORTED)

◆ libusb_has_capability

#define libusb_has_capability (   ...)    (false)

◆ libusb_close

#define libusb_close   usb_close

◆ libusb_reset_device

#define libusb_reset_device

◆ libusb_claim_interface

#define libusb_claim_interface   usb_claim_interface

◆ libusb_control_transfer

#define libusb_control_transfer   usb_control_msg

◆ libusb_get_device_speed

#define libusb_get_device_speed (   __dev)    (LIBUSB_SPEED_UNKNOWN)

◆ libusb_get_device

#define libusb_get_device (   __handle)    ((libusb_device *)usb_device(__handle))

◆ VSF_EVT_LIBUSB_HCD_BASE

#define VSF_EVT_LIBUSB_HCD_BASE   ((VSF_EVT_USER + 0x100) & ~0xFF)

◆ VSF_LIBUSB_HCD_DEF_DEV

#define VSF_LIBUSB_HCD_DEF_DEV (   __N,
  __BIT 
)
Value:
{ \
.vid = VSF_LIBUSB_HCD_DEV##__N##_VID, \
.pid = VSF_LIBUSB_HCD_DEV##__N##_PID, \
.addr = -1, \
},

Typedef Documentation

◆ libusb_device_handle

◆ libusb_device

typedef struct usb_device libusb_device

◆ libusb_context

typedef void* libusb_context

◆ vk_libusb_hcd_dev_t

◆ vk_libusb_hcd_t

◆ vk_libusb_hcd_urb_t

◆ vk_libusb_hcd_evt_t

Enumeration Type Documentation

◆ libusb_error

Enumerator
LIBUSB_SUCCESS 
LIBUSB_ERROR_IO 
LIBUSB_ERROR_INVALID_PARAM 
LIBUSB_ERROR_ACCESS 
LIBUSB_ERROR_NO_DEVICE 
LIBUSB_ERROR_NOT_FOUND 
LIBUSB_ERROR_BUSY 
LIBUSB_ERROR_TIMEOUT 
LIBUSB_ERROR_OVERFLOW 
LIBUSB_ERROR_PIPE 
LIBUSB_ERROR_INTERRUPTED 
LIBUSB_ERROR_NO_MEM 
LIBUSB_ERROR_NOT_SUPPORTED 
LIBUSB_ERROR_OTHER 

◆ libusb_hotplug_event

Enumerator
LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED 
LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT 

◆ libusb_speed

Enumerator
LIBUSB_SPEED_UNKNOWN 
LIBUSB_SPEED_LOW 
LIBUSB_SPEED_FULL 
LIBUSB_SPEED_HIGH 
LIBUSB_SPEED_SUPER 
LIBUSB_SPEED_SUPER_PLUS 

◆ vk_libusb_hcd_evt_t

Enumerator
VSF_EVT_LIBUSB_HCD_ATTACH 
VSF_EVT_LIBUSB_HCD_DETACH 
VSF_EVT_LIBUSB_HCD_READY 

Function Documentation

◆ libusb_init()

int LIBUSB_CALL libusb_init ( libusb_context **  ctx)

◆ libusb_open_device_with_vid_pid()

libusb_device_handle *LIBUSB_CALL libusb_open_device_with_vid_pid ( libusb_context ctx,
uint16_t  vendor_id,
uint16_t  product_id 
)

◆ libusb_get_config_descriptor_by_value()

int LIBUSB_CALL libusb_get_config_descriptor_by_value ( libusb_device dev,
uint8_t  bConfigurationValue,
struct libusb_config_descriptor **  config 
)

◆ libusb_free_config_descriptor()

void LIBUSB_CALL libusb_free_config_descriptor ( struct libusb_config_descriptor config)

◆ libusb_bulk_transfer()

int LIBUSB_CALL libusb_bulk_transfer ( libusb_device_handle dev_handle,
unsigned char  endpoint,
unsigned char *  data,
int  length,
int *  actual_length,
unsigned int  timeout 
)

◆ libusb_interrupt_transfer()

int LIBUSB_CALL libusb_interrupt_transfer ( libusb_device_handle dev_handle,
unsigned char  endpoint,
unsigned char *  data,
int  length,
int *  actual_length,
unsigned int  timeout 
)

Variable Documentation

◆ vk_libusb_hcd_drv

const vk_usbh_hcd_drv_t vk_libusb_hcd_drv
Initial value:
= {
.init_evthandler = __vk_libusb_hcd_init_evthandler,
.fini = __vk_libusb_hcd_fini,
.suspend = __vk_libusb_hcd_suspend,
.resume = __vk_libusb_hcd_resume,
.get_frame_number = __vk_libusb_hcd_get_frame_number,
.alloc_device = __vk_libusb_hcd_alloc_device,
.free_device = __vk_libusb_hcd_free_device,
.alloc_urb = __vk_libusb_hcd_alloc_urb,
.free_urb = __vk_libusb_hcd_free_urb,
.submit_urb = __vk_libusb_hcd_submit_urb,
.relink_urb = __vk_libusb_hcd_relink_urb,
.reset_dev = __vk_libusb_hcd_reset_dev,
.is_dev_reset = __vk_libusb_hcd_is_dev_reset,
}