VSF Documented
vsf_usbh.h File Reference

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

typedef struct vk_usbh_dev_id_t vk_usbh_dev_id_t

◆ vk_usbh_ifs_alt_parser_t

typedef struct vk_usbh_ifs_alt_parser_t vk_usbh_ifs_alt_parser_t

◆ vk_usbh_ifs_parser_t

typedef struct vk_usbh_ifs_parser_t vk_usbh_ifs_parser_t

◆ vk_usbh_dev_parser_t

typedef struct vk_usbh_dev_parser_t vk_usbh_dev_parser_t

◆ vk_usbh_class_t

typedef struct vk_usbh_class_t vk_usbh_class_t

◆ vk_usbh_pipe_flag_t

typedef union vk_usbh_pipe_flag_t vk_usbh_pipe_flag_t

◆ vk_usbh_pipe_t

typedef struct vk_usbh_pipe_t vk_usbh_pipe_t

◆ vk_usbh_hcd_iso_packet_descriptor_t

typedef struct vk_usbh_hcd_iso_packet_descriptor_t vk_usbh_hcd_iso_packet_descriptor_t

◆ vk_usbh_hcd_iso_packet_t

typedef struct vk_usbh_hcd_iso_packet_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
Generated from commit: vsfteam/vsf@ceb53fd