VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions
vsf_usbh.h File Reference
#include "component/usb/vsf_usb_cfg.h"
#include "kernel/vsf_kernel.h"
#include "../common/usb_common.h"
#include "utilities/ooc_class.h"
#include "./class/HUB/vsf_usbh_HUB.h"
#include "./class/CDC/vsf_usbh_CDC.h"
#include "./class/CDC/vsf_usbh_CDCECM.h"
#include "./class/BTHCI/vsf_usbh_BTHCI.h"
#include "./class/HID/vsf_usbh_HID.h"
#include "./class/HID/vsf_usbh_ds4.h"
#include "./class/HID/vsf_usbh_nspro.h"
#include "./class/HID/vsf_usbh_xb360.h"
#include "./class/XB1/vsf_usbh_xb1.h"
#include "./class/libusb/vsf_usbh_libusb.h"
#include "./class/MSC/vsf_usbh_msc.h"
#include "./class/UAC/vsf_usbh_uac.h"
#include "./class/UVC/vsf_usbh_uvc.h"
#include "./class/DFU/vsf_usbh_dfu.h"
#include "./class/DL1x5/vsf_usbh_dl1x5.h"
#include "../driver/hcd/ohci/vsf_ohci.h"
#include "../driver/otg/dwcotg/vsf_dwcotg_hcd.h"
#include "../driver/otg/musb/fdrc/vsf_musb_fdrc_hcd.h"
#include "../driver/hcd/libusb_hcd/vsf_libusb_hcd.h"
#include "../driver/hcd/winusb_hcd/vsf_winusb_hcd.h"
#include "../driver/hcd/webusb_hcd/vsf_webusb_hcd.h"

Go to the source code of this file.

Data Structures

struct  vk_usbh_ifs_t
 
struct  vk_usbh_dev_id_t
 
struct  vk_usbh_ifs_alt_parser_t
 
struct  vk_usbh_ifs_parser_t
 
struct  vk_usbh_dev_parser_t
 
class  vk_usbh_class_drv_t
 
struct  vk_usbh_class_t
 
union  vk_usbh_pipe_flag_t
 
struct  vk_usbh_pipe_t
 
class  vk_usbh_hcd_drv_t
 
class  vk_usbh_hcd_t
 
struct  vk_usbh_hcd_iso_packet_descriptor_t
 
struct  vk_usbh_hcd_iso_packet_t
 
class  vk_usbh_hcd_dev_t
 
class  vk_usbh_hcd_urb_t
 
class  vk_usbh_urb_t
 
struct  vk_usbh_ep0_t
 
class  vk_usbh_dev_t
 
class  vk_usbh_t
 

Macros

#define VSF_USBH_CFG_EDA_PRIORITY   vsf_prio_0
 
#define VSF_USBH_CFG_ISO_EN   ENABLED
 
#define VSF_USBH_CFG_PIPE_HAS_EXTRA   ENABLED
 
#define VSF_USBH_CFG_ISO_PACKET_LIMIT   1
 
#define VSF_USBH_CFG_ENABLE_ROOT_HUB   ENABLED
 
#define VSF_USBH_CFG_MAX_DEVICE   127
 
#define vsf_usbh_malloc   vsf_heap_malloc
 
#define vsf_usbh_malloc_aligned   vsf_heap_malloc_aligned
 
#define vsf_usbh_free   vsf_heap_free
 
#define VSF_USBH_MATCH_VID_PID(__VID, __PID)
 
#define VSF_USBH_MATCH_DEV_CLASS(__CLASS, __SUB_CLASS, __PROTOCOL)
 
#define VSF_USBH_MATCH_IFS_CLASS(__CLASS, __SUB_CLASS, __PROTOCOL)
 
#define VSF_USBH_MATCH_FLAGS_VENDOR   (1 << 0)
 
#define VSF_USBH_MATCH_FLAGS_PRODUCT   (1 << 1)
 
#define VSF_USBH_MATCH_FLAGS_DEV_LO   (1 << 2)
 
#define VSF_USBH_MATCH_FLAGS_DEV_HI   (1 << 3)
 
#define VSF_USBH_MATCH_FLAGS_DEV_CLASS   (1 << 4)
 
#define VSF_USBH_MATCH_FLAGS_DEV_SUBCLASS   (1 << 5)
 
#define VSF_USBH_MATCH_FLAGS_DEV_PROTOCOL   (1 << 6)
 
#define VSF_USBH_MATCH_FLAGS_IFS_CLASS   (1 << 7)
 
#define VSF_USBH_MATCH_FLAGS_IFS_SUBCLASS   (1 << 8)
 
#define VSF_USBH_MATCH_FLAGS_IFS_PROTOCOL   (1 << 9)
 
#define VSF_USBH_MATCH_FLAGS_IFS_NUM   (1 << 10)
 

Typedefs

typedef struct vk_usbh_ifs_t vk_usbh_ifs_t
 
typedef struct vk_usbh_dev_id_t vk_usbh_dev_id_t
 
typedef struct vk_usbh_ifs_alt_parser_t vk_usbh_ifs_alt_parser_t
 
typedef struct vk_usbh_ifs_parser_t vk_usbh_ifs_parser_t
 
typedef struct vk_usbh_dev_parser_t vk_usbh_dev_parser_t
 
typedef struct vk_usbh_class_t vk_usbh_class_t
 
typedef union vk_usbh_pipe_flag_t vk_usbh_pipe_flag_t
 
typedef struct vk_usbh_pipe_t vk_usbh_pipe_t
 
typedef struct vk_usbh_hcd_iso_packet_descriptor_t vk_usbh_hcd_iso_packet_descriptor_t
 
typedef struct vk_usbh_hcd_iso_packet_t vk_usbh_hcd_iso_packet_t
 
typedef void(* vsf_usbh_urb_complete_t) (void *param, vk_usbh_hcd_urb_t *)
 
typedef struct vk_usbh_ep0_t vk_usbh_ep0_t
 

Enumerations

enum  {
  URB_OK = VSF_ERR_NONE ,
  URB_FAIL = VSF_ERR_FAIL ,
  URB_PENDING = VSF_ERR_NOT_READY ,
  URB_CANCELED = 2 ,
  URB_TIMEOUT = VSF_ERR_TIMEOUT
}
 
enum  {
  URB_SHORT_NOT_OK = 0x01 ,
  URB_ISO_ASAP = 0x02 ,
  URB_ZERO_PACKET = 0x04 ,
  __URB_NEED_FREE = 0x08 ,
  URB_HCD_SPECIFIED_FLAGS = 0x10
}
 

Functions

 vsf_declare_bitmap (vk_usbh_devnum_bitmap, VSF_USBH_CFG_MAX_DEVICE+1)
 
vsf_err_t vk_usbh_init (vk_usbh_t *usbh)
 
vsf_err_t vk_usbh_fini (vk_usbh_t *usbh)
 
void vk_usbh_register_class (vk_usbh_t *usbh, vk_usbh_class_t *c)
 
void vk_usbh_unregister_class (vk_usbh_t *usbh, vk_usbh_class_t *c)
 

Macro Definition Documentation

◆ VSF_USBH_CFG_EDA_PRIORITY

#define VSF_USBH_CFG_EDA_PRIORITY   vsf_prio_0

◆ VSF_USBH_CFG_ISO_EN

#define VSF_USBH_CFG_ISO_EN   ENABLED

◆ VSF_USBH_CFG_PIPE_HAS_EXTRA

#define VSF_USBH_CFG_PIPE_HAS_EXTRA   ENABLED

◆ VSF_USBH_CFG_ISO_PACKET_LIMIT

#define VSF_USBH_CFG_ISO_PACKET_LIMIT   1

◆ VSF_USBH_CFG_ENABLE_ROOT_HUB

#define VSF_USBH_CFG_ENABLE_ROOT_HUB   ENABLED

◆ VSF_USBH_CFG_MAX_DEVICE

#define VSF_USBH_CFG_MAX_DEVICE   127

◆ vsf_usbh_malloc

#define vsf_usbh_malloc   vsf_heap_malloc

◆ vsf_usbh_malloc_aligned

#define vsf_usbh_malloc_aligned   vsf_heap_malloc_aligned

◆ vsf_usbh_free

#define vsf_usbh_free   vsf_heap_free

◆ VSF_USBH_MATCH_VID_PID

#define VSF_USBH_MATCH_VID_PID (   __VID,
  __PID 
)
Value:
.match_vendor = true, \
.match_product = true, \
.idVendor = (__VID), \
.idProduct = (__PID),

◆ VSF_USBH_MATCH_DEV_CLASS

#define VSF_USBH_MATCH_DEV_CLASS (   __CLASS,
  __SUB_CLASS,
  __PROTOCOL 
)
Value:
.match_dev_class = true, \
.match_dev_subclass = true, \
.match_dev_protocol = true, \
.bDeviceClass = (__CLASS), \
.bDeviceSubClass = (__SUB_CLASS), \
.bDeviceProtocol = (__PROTOCOL),

◆ VSF_USBH_MATCH_IFS_CLASS

#define VSF_USBH_MATCH_IFS_CLASS (   __CLASS,
  __SUB_CLASS,
  __PROTOCOL 
)
Value:
.match_ifs_class = true, \
.match_ifs_subclass = true, \
.match_ifs_protocol = true, \
.bInterfaceClass = (__CLASS), \
.bInterfaceSubClass = (__SUB_CLASS), \
.bInterfaceProtocol = (__PROTOCOL),

◆ VSF_USBH_MATCH_FLAGS_VENDOR

#define VSF_USBH_MATCH_FLAGS_VENDOR   (1 << 0)

◆ VSF_USBH_MATCH_FLAGS_PRODUCT

#define VSF_USBH_MATCH_FLAGS_PRODUCT   (1 << 1)

◆ VSF_USBH_MATCH_FLAGS_DEV_LO

#define VSF_USBH_MATCH_FLAGS_DEV_LO   (1 << 2)

◆ VSF_USBH_MATCH_FLAGS_DEV_HI

#define VSF_USBH_MATCH_FLAGS_DEV_HI   (1 << 3)

◆ VSF_USBH_MATCH_FLAGS_DEV_CLASS

#define VSF_USBH_MATCH_FLAGS_DEV_CLASS   (1 << 4)

◆ VSF_USBH_MATCH_FLAGS_DEV_SUBCLASS

#define VSF_USBH_MATCH_FLAGS_DEV_SUBCLASS   (1 << 5)

◆ VSF_USBH_MATCH_FLAGS_DEV_PROTOCOL

#define VSF_USBH_MATCH_FLAGS_DEV_PROTOCOL   (1 << 6)

◆ VSF_USBH_MATCH_FLAGS_IFS_CLASS

#define VSF_USBH_MATCH_FLAGS_IFS_CLASS   (1 << 7)

◆ VSF_USBH_MATCH_FLAGS_IFS_SUBCLASS

#define VSF_USBH_MATCH_FLAGS_IFS_SUBCLASS   (1 << 8)

◆ VSF_USBH_MATCH_FLAGS_IFS_PROTOCOL

#define VSF_USBH_MATCH_FLAGS_IFS_PROTOCOL   (1 << 9)

◆ VSF_USBH_MATCH_FLAGS_IFS_NUM

#define VSF_USBH_MATCH_FLAGS_IFS_NUM   (1 << 10)

Typedef Documentation

◆ vk_usbh_ifs_t

typedef struct vk_usbh_ifs_t vk_usbh_ifs_t

◆ vk_usbh_dev_id_t

◆ vk_usbh_ifs_alt_parser_t

◆ vk_usbh_ifs_parser_t

◆ vk_usbh_dev_parser_t

◆ vk_usbh_class_t

◆ vk_usbh_pipe_flag_t

◆ vk_usbh_pipe_t

◆ vk_usbh_hcd_iso_packet_descriptor_t

◆ vk_usbh_hcd_iso_packet_t

◆ vsf_usbh_urb_complete_t

typedef void(* vsf_usbh_urb_complete_t) (void *param, vk_usbh_hcd_urb_t *)

◆ vk_usbh_ep0_t

typedef struct vk_usbh_ep0_t vk_usbh_ep0_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
URB_OK 
URB_FAIL 
URB_PENDING 
URB_CANCELED 
URB_TIMEOUT 

◆ anonymous enum

anonymous enum
Enumerator
URB_SHORT_NOT_OK 
URB_ISO_ASAP 
URB_ZERO_PACKET 
__URB_NEED_FREE 
URB_HCD_SPECIFIED_FLAGS 

Function Documentation

◆ vsf_declare_bitmap()

vsf_declare_bitmap ( vk_usbh_devnum_bitmap  ,
VSF_USBH_CFG_MAX_DEVICE 1 
)

◆ vk_usbh_init()

vsf_err_t vk_usbh_init ( vk_usbh_t usbh)
extern

◆ vk_usbh_fini()

vsf_err_t vk_usbh_fini ( vk_usbh_t usbh)
extern

◆ vk_usbh_register_class()

void vk_usbh_register_class ( vk_usbh_t usbh,
vk_usbh_class_t c 
)
extern

◆ vk_usbh_unregister_class()

void vk_usbh_unregister_class ( vk_usbh_t usbh,
vk_usbh_class_t c 
)
extern