VSF Documented
Data Structures | Macros | Typedefs | Enumerations
vsf_usbd.h File Reference
#include "component/usb/vsf_usb_cfg.h"
#include "../common/usb_common.h"
#include "../common/usb_desc.h"
#include "kernel/vsf_kernel.h"
#include "./extension/bos/vsf_usbd_bos.h"
#include "./extension/winusb/vsf_usbd_winusb.h"
#include "./extension/webusb/vsf_usbd_webusb.h"
#include "./extension/ms/vsf_usbd_ms.h"
#include "hal/vsf_hal.h"
#include "../driver/otg/musb/fdrc/vsf_musb_fdrc_dcd.h"
#include "../driver/otg/dwcotg/vsf_dwcotg_dcd.h"
#include "../driver/dcd/usbip_dcd/vsf_usbip_dcd.h"
#include "./vsf_usbd_drv_ifs.h"
#include "utilities/ooc_class.h"

Go to the source code of this file.

Data Structures

struct  vk_usbd_desc_t
 
class  vk_usbd_trans_t
 
struct  vk_usbd_ctrl_handler_t
 

Macros

#define __VSF_CLASS_INHERIT__
 
#define VSF_USBD_CFG_AUTOSETUP   ENABLED
 
#define VSF_USBD_CFG_USE_EDA   VSF_USE_KERNEL
 
#define VSF_USBD_CFG_EDA_PRIORITY   vsf_prio_0
 
#define VSF_USBD_CFG_HW_PRIORITY   vsf_arch_prio_0
 
#define VSF_USBD_DESC_DEVICE(__DESC, __SIZE)    {USB_DT_DEVICE, 0, 0, (__SIZE), (uint8_t*)(__DESC)}
 
#define VSF_USBD_DESC_CONFIG(__INDEX, __DESC, __SIZE)    {USB_DT_CONFIG, (__INDEX), 0, (__SIZE), (uint8_t*)(__DESC)}
 
#define VSF_USBD_DESC_STRING(__LANGID, __INDEX, __DESC, __SIZE)    {USB_DT_STRING, (__INDEX), (__LANGID), (__SIZE), (uint8_t*)(__DESC)}
 
#define VSF_USBD_DESC_QUALIFIER(__DESC)    {USB_DT_DEVICE_QUALIFIER, 0, 0, USB_DT_DEVICE_QUALIFIER_SIZE, (uint8_t*)(__DESC)}
 
#define __USB_IFS(__DRV, __PARAM)
 
#define USB_IFS(__DRV, __PARAM)    __USB_IFS((__DRV), (__PARAM))
 
#define usb_unicode_t   wchar_t
 
#define __describe_usbd_version_langid_bcd_ver( __name, __vid, __pid, __speed, __version, __lang_id, __bcd_ver)
 
#define __describe_usbd_version_langid( __name, __vid, __pid, __speed, __version, __lang_id)    __describe_usbd_version_langid_bcd_ver(__name, __vid, __pid, __speed, __version, __lang_id, 0x0100)
 
#define __describe_usbd_version(__name, __vid, __pid, __speed, __version)    __describe_usbd_version_langid(__name, __vid, __pid, __speed, __version, 0x0409)
 
#define __describe_usbd( __name, __vid, __pid, __speed)    __describe_usbd_version(__name, __vid, __pid, __speed, 0x0200)
 
#define __describe_usbd4   __describe_usbd
 
#define __describe_usbd5   __describe_usbd_version
 
#define __describe_usbd6   __describe_usbd_version_langid
 
#define __describe_usbd7   __describe_usbd_version_langid_bcd_ver
 
#define __usbd_str_desc(__name, __type, __str)
 
#define usbd_str_desc(__name, __type, __str)    __usbd_str_desc(__name, __type, __str)
 
#define __usbd_str_product_desc(__name, __str_product)    __usbd_str_desc(__name, product, __str_product)
 
#define usbd_str_product_desc(__name, __str_product)    __usbd_str_product_desc(__name, __str_product)
 
#define __usbd_str_vendor_desc(__name, __str_vendor)    __usbd_str_desc(__name, vendor, __str_vendor)
 
#define usbd_str_vendor_desc(__name, __str_vendor)    __usbd_str_vendor_desc(__name, __str_vendor)
 
#define __usbd_str_serial_desc(__name, __str_serial)    __usbd_str_desc(__name, serial, __str_serial)
 
#define usbd_str_serial_desc(__name, __str_serial)    __usbd_str_serial_desc(__name, __str_serial)
 
#define __usbd_str_langid_desc(__name)
 
#define usbd_str_langid_desc(__name)    __usbd_str_langid_desc(__name)
 
#define __usbd_device_iad_desc(__name)
 
#define usbd_device_iad_desc(__name)    __usbd_device_iad_desc(__name)
 
#define __usbd_device_desc(__name, __class, __subclass, __protocol)
 
#define usbd_device_desc(__name, __class, __subclass, __protocol)    __usbd_device_desc(__name, (__class), (__subclass), (__protocol))
 
#define __usbd_config_desc(__name, __func_desc_size, __func_ifs_num, __attribute, __max_power_ma)
 
#define usbd_config_desc(__name, __func_desc_size, __func_ifs_num, __attribute, __max_power_ma)    __usbd_config_desc(__name, (__func_desc_size), (__func_ifs_num), (__attribute), (__max_power_ma))
 
#define __usbd_basic_desc(__name, __func_ifs_num, __ep0_size)
 
#define usbd_basic_desc(__name, __func_ifs_num, __ep0_size)    __usbd_basic_desc(__name, (__func_ifs_num), (__ep0_size))
 
#define __usbd_common_desc( __name, __str_product, __str_vendor, __str_serial, __class, __subclass, __protocol, __ep0_size, __func_desc_size, __func_ifs_num, __attribute, __max_power_ma)
 
#define __usbd_common_desc_iad( __name, __str_product, __str_vendor, __str_serial, __ep0_size, __func_desc_size, __func_ifs_num, __attribute, __max_power_ma)    __usbd_common_desc(__name, (__str_product), (__str_vendor), (__str_serial), USB_CLASS_MISC, 0x02, 0x01, (__ep0_size), (__func_desc_size), (__func_ifs_num), (__attribute), (__max_power_ma))
 
#define __usbd_func_str_desc(__name, __func_id, __str_func)    __usbd_str_desc(__name, func##__func_id, __str_func)
 
#define __usbd_qualifier_desc(__name)
 
#define __usbd_std_desc_table(__name)
 
#define __usbd_str_desc_table4(__name, __index, __type, __langid)    VSF_USBD_DESC_STRING((__langid), (__index), &__##__name##_str_##__type, sizeof(__##__name##_str_##__type)),
 
#define __usbd_str_desc_table3(__name, __index, __type)    VSF_USBD_DESC_STRING(__##__name##_langid, (__index), &__##__name##_str_##__type, sizeof(__##__name##_str_##__type)),
 
#define usbd_str_desc_table(__name, __index, __type, ...)    __PLOOC_EVAL(__usbd_str_desc_table, __name, __index, __type, ##__VA_ARGS__)(__name, (__index), __type, ##__VA_ARGS__)
 
#define __usbd_func_str_desc_table_langid(__name, __func_id, __lang_id)    VSF_USBD_DESC_STRING((__lang_id), 4 + __func_id, &__##__name##_str_func##__func_id, sizeof(__##__name##_str_func##__func_id)),
 
#define __usbd_func_str_desc_table(__name, __func_id)    __usbd_func_str_desc_table_langid(__name, __func_id, __##__name##_langid)
 
#define __usbd_func_str_desc_table2   __usbd_func_str_desc_table
 
#define __usbd_func_str_desc_table3   __usbd_func_str_desc_table_langid
 
#define __usbd_qualifier_desc_table(__name)    VSF_USBD_DESC_QUALIFIER(&__##__name##_qualifier_desc),
 
#define __usbd_ifs(__name)    vk_usbd_ifs_t __##__name##_ifs[__##__name##_ifsnum] = {
 
#define __end_describe_usbd(__name, __drv, ...)
 
#define describe_usbd(__name, __vid, __pid, __speed, ...)
 
#define usbd_common_desc_iad(__name, __str_product, __str_vendor, __str_serial, __ep0_size, __func_desc_size, __func_ifs_num, __attribute, __max_power_ma, ...)
 
#define usbd_common_desc(__name, __str_product, __str_vendor, __str_serial, __class, __subclass, __protocol, __ep0_size, __func_desc_size, __func_ifs_num, __attribute, __max_power_ma, ...)
 
#define usbd_func_str_desc(__name, __func_id, __str_func)    __usbd_func_str_desc(__name, __func_id, __str_func)
 
#define usbd_qualifier_desc(__name)    __usbd_qualifier_desc(__name)
 
#define usbd_std_desc_table(__name, ...)
 
#define usbd_func_str_desc_table(__name, __func_id, ...)    __PLOOC_EVAL(__usbd_func_str_desc_table, __name, __func_id, ##__VA_ARGS__)(__name, __func_id, ##__VA_ARGS__)
 
#define usbd_qualifier_desc_table(__name)    __usbd_qualifier_desc_table(__name)
 
#define usbd_func(__name, ...)   __VA_ARGS__
 
#define usbd_ifs(__name, ...)
 
#define end_describe_usbd(__name, __drv, ...)    __end_describe_usbd(__name, (__drv), ##__VA_ARGS__)
 

Typedefs

typedef enum vk_usbd_evt_t vk_usbd_evt_t
 
typedef struct vk_usbd_desc_t vk_usbd_desc_t
 
typedef struct vk_usbd_ctrl_handler_t vk_usbd_ctrl_handler_t
 

Enumerations

enum  vk_usbd_evt_t {
  USB_ON_INIT = USB_USR_EVT + 0 ,
  USB_ON_FINI = USB_USR_EVT + 1 ,
  USB_ON_STATUS_QUERY = USB_USR_EVT + 2 ,
  VSF_USBD_MAX_EVT
}
 

Macro Definition Documentation

◆ __VSF_CLASS_INHERIT__

#define __VSF_CLASS_INHERIT__

◆ VSF_USBD_CFG_AUTOSETUP

#define VSF_USBD_CFG_AUTOSETUP   ENABLED

◆ VSF_USBD_CFG_USE_EDA

#define VSF_USBD_CFG_USE_EDA   VSF_USE_KERNEL

◆ VSF_USBD_CFG_EDA_PRIORITY

#define VSF_USBD_CFG_EDA_PRIORITY   vsf_prio_0

◆ VSF_USBD_CFG_HW_PRIORITY

#define VSF_USBD_CFG_HW_PRIORITY   vsf_arch_prio_0

◆ VSF_USBD_DESC_DEVICE

#define VSF_USBD_DESC_DEVICE (   __DESC,
  __SIZE 
)     {USB_DT_DEVICE, 0, 0, (__SIZE), (uint8_t*)(__DESC)}

◆ VSF_USBD_DESC_CONFIG

#define VSF_USBD_DESC_CONFIG (   __INDEX,
  __DESC,
  __SIZE 
)     {USB_DT_CONFIG, (__INDEX), 0, (__SIZE), (uint8_t*)(__DESC)}

◆ VSF_USBD_DESC_STRING

#define VSF_USBD_DESC_STRING (   __LANGID,
  __INDEX,
  __DESC,
  __SIZE 
)     {USB_DT_STRING, (__INDEX), (__LANGID), (__SIZE), (uint8_t*)(__DESC)}

◆ VSF_USBD_DESC_QUALIFIER

#define VSF_USBD_DESC_QUALIFIER (   __DESC)     {USB_DT_DEVICE_QUALIFIER, 0, 0, USB_DT_DEVICE_QUALIFIER_SIZE, (uint8_t*)(__DESC)}

◆ __USB_IFS

#define __USB_IFS (   __DRV,
  __PARAM 
)
Value:
{ \
.class_op = (__DRV), \
.class_param = (__PARAM), \
},

◆ USB_IFS

#define USB_IFS (   __DRV,
  __PARAM 
)     __USB_IFS((__DRV), (__PARAM))

◆ usb_unicode_t

#define usb_unicode_t   wchar_t

◆ __describe_usbd_version_langid_bcd_ver

#define __describe_usbd_version_langid_bcd_ver (   __name,
  __vid,
  __pid,
  __speed,
  __version,
  __lang_id,
  __bcd_ver 
)
Value:
enum { \
__##__name##_version = (__version), \
__##__name##_pid = (__pid), \
__##__name##_vid = (__vid), \
__##__name##_langid = (__lang_id), \
__##__name##_speed = (__speed), \
__##__name##_bcd_version = (__bcd_ver), \
};
#define __name
Definition hci_transport_aic8800.c:552

◆ __describe_usbd_version_langid

#define __describe_usbd_version_langid (   __name,
  __vid,
  __pid,
  __speed,
  __version,
  __lang_id 
)     __describe_usbd_version_langid_bcd_ver(__name, __vid, __pid, __speed, __version, __lang_id, 0x0100)

◆ __describe_usbd_version

#define __describe_usbd_version (   __name,
  __vid,
  __pid,
  __speed,
  __version 
)     __describe_usbd_version_langid(__name, __vid, __pid, __speed, __version, 0x0409)

◆ __describe_usbd

#define __describe_usbd (   __name,
  __vid,
  __pid,
  __speed 
)     __describe_usbd_version(__name, __vid, __pid, __speed, 0x0200)

◆ __describe_usbd4

#define __describe_usbd4   __describe_usbd

◆ __describe_usbd5

#define __describe_usbd5   __describe_usbd_version

◆ __describe_usbd6

#define __describe_usbd6   __describe_usbd_version_langid

◆ __describe_usbd7

#define __describe_usbd7   __describe_usbd_version_langid_bcd_ver

◆ __usbd_str_desc

#define __usbd_str_desc (   __name,
  __type,
  __str 
)
Value:
struct { \
uint8_t bLength; \
uint8_t bDescriptorType; \
usb_unicode_t str[dimof(__str) - 1]; \
} VSF_CAL_PACKED const __##__name##_str_##__type = { \
.bLength = sizeof(__##__name##_str_##__type), \
.bDescriptorType = USB_DT_STRING, \
.str = __str, \
};
#define dimof(__arr)
Definition __type.h:155
#define __type
Definition hci_transport_aic8800.c:553
unsigned char uint8_t
Definition stdint.h:5
@ USB_DT_STRING
Definition usb_common.h:151
struct vk_romfs_header_t VSF_CAL_PACKED
#define usb_unicode_t
Definition vsf_usbd.h:112

◆ usbd_str_desc

#define usbd_str_desc (   __name,
  __type,
  __str 
)     __usbd_str_desc(__name, __type, __str)

◆ __usbd_str_product_desc

#define __usbd_str_product_desc (   __name,
  __str_product 
)     __usbd_str_desc(__name, product, __str_product)

◆ usbd_str_product_desc

#define usbd_str_product_desc (   __name,
  __str_product 
)     __usbd_str_product_desc(__name, __str_product)

◆ __usbd_str_vendor_desc

#define __usbd_str_vendor_desc (   __name,
  __str_vendor 
)     __usbd_str_desc(__name, vendor, __str_vendor)

◆ usbd_str_vendor_desc

#define usbd_str_vendor_desc (   __name,
  __str_vendor 
)     __usbd_str_vendor_desc(__name, __str_vendor)

◆ __usbd_str_serial_desc

#define __usbd_str_serial_desc (   __name,
  __str_serial 
)     __usbd_str_desc(__name, serial, __str_serial)

◆ usbd_str_serial_desc

#define usbd_str_serial_desc (   __name,
  __str_serial 
)     __usbd_str_serial_desc(__name, __str_serial)

◆ __usbd_str_langid_desc

#define __usbd_str_langid_desc (   __name)
Value:
struct { \
uint8_t bLength; \
uint8_t bDescriptorType; \
usb_unicode_t str[1]; \
} VSF_CAL_PACKED const __##__name##_str_langid = { \
.bLength = 4, \
.bDescriptorType = USB_DT_STRING, \
.str = (__##__name##_langid), \
};

◆ usbd_str_langid_desc

#define usbd_str_langid_desc (   __name)     __usbd_str_langid_desc(__name)

◆ __usbd_device_iad_desc

#define __usbd_device_iad_desc (   __name)
Value:
const uint8_t __##__name##_device_desc[USB_DT_DEVICE_SIZE] = { \
USB_DESC_DEV_IAD((__##__name##_version), (__##__name##_ep0size), \
(__##__name##_vid), (__##__name##_pid), \
(__##__name##_bcd_version), 1, 2, 3, (__##__name##_config_num)) \
};
#define USB_DT_DEVICE_SIZE
Definition usb_common.h:47

◆ usbd_device_iad_desc

#define usbd_device_iad_desc (   __name)     __usbd_device_iad_desc(__name)

◆ __usbd_device_desc

#define __usbd_device_desc (   __name,
  __class,
  __subclass,
  __protocol 
)
Value:
const uint8_t __##__name##_device_desc[USB_DT_DEVICE_SIZE] = { \
USB_DESC_DEV((__##__name##_version), (__class), (__subclass), \
(__protocol), (__##__name##_ep0size), (__##__name##_vid), \
(__##__name##_pid), (__##__name##_bcd_version), 1, 2, 3, \
(__##__name##_config_num)) \
};

◆ usbd_device_desc

#define usbd_device_desc (   __name,
  __class,
  __subclass,
  __protocol 
)     __usbd_device_desc(__name, (__class), (__subclass), (__protocol))

◆ __usbd_config_desc

#define __usbd_config_desc (   __name,
  __func_desc_size,
  __func_ifs_num,
  __attribute,
  __max_power_ma 
)
Value:
const uint8_t __##__name##_config_desc[USB_DT_CONFIG_SIZE + (__func_desc_size)] = {\
USB_DESC_CFG(USB_DT_CONFIG_SIZE + (__func_desc_size), (__func_ifs_num),\
1, 0, USB_CONFIG_ATT_ONE | (__attribute), (__max_power_ma) >> 1)
#define USB_DT_CONFIG_SIZE
Definition usb_common.h:48
@ USB_CONFIG_ATT_ONE
Definition usb_common.h:216

◆ usbd_config_desc

#define usbd_config_desc (   __name,
  __func_desc_size,
  __func_ifs_num,
  __attribute,
  __max_power_ma 
)     __usbd_config_desc(__name, (__func_desc_size), (__func_ifs_num), (__attribute), (__max_power_ma))

◆ __usbd_basic_desc

#define __usbd_basic_desc (   __name,
  __func_ifs_num,
  __ep0_size 
)
Value:
enum { \
__##__name##_ifsnum = (__func_ifs_num), \
__##__name##_ep0size = (__ep0_size), \
__##__name##_config_num = 1, \
};

◆ usbd_basic_desc

#define usbd_basic_desc (   __name,
  __func_ifs_num,
  __ep0_size 
)     __usbd_basic_desc(__name, (__func_ifs_num), (__ep0_size))

◆ __usbd_common_desc

#define __usbd_common_desc (   __name,
  __str_product,
  __str_vendor,
  __str_serial,
  __class,
  __subclass,
  __protocol,
  __ep0_size,
  __func_desc_size,
  __func_ifs_num,
  __attribute,
  __max_power_ma 
)
Value:
usbd_basic_desc(__name, __func_ifs_num, __ep0_size) \
usbd_str_langid_desc(__name) \
usbd_str_product_desc(__name, __str_product) \
usbd_str_vendor_desc(__name, __str_vendor) \
usbd_str_serial_desc(__name, __str_serial) \
usbd_device_desc(__name, (__class), (__subclass), (__protocol)) \
usbd_config_desc(__name, (__func_desc_size), (__func_ifs_num), (__attribute), (__max_power_ma))
#define usbd_basic_desc(__name, __func_ifs_num, __ep0_size)
Definition vsf_usbd.h:234

◆ __usbd_common_desc_iad

#define __usbd_common_desc_iad (   __name,
  __str_product,
  __str_vendor,
  __str_serial,
  __ep0_size,
  __func_desc_size,
  __func_ifs_num,
  __attribute,
  __max_power_ma 
)     __usbd_common_desc(__name, (__str_product), (__str_vendor), (__str_serial), USB_CLASS_MISC, 0x02, 0x01, (__ep0_size), (__func_desc_size), (__func_ifs_num), (__attribute), (__max_power_ma))

◆ __usbd_func_str_desc

#define __usbd_func_str_desc (   __name,
  __func_id,
  __str_func 
)     __usbd_str_desc(__name, func##__func_id, __str_func)

◆ __usbd_qualifier_desc

#define __usbd_qualifier_desc (   __name)
Value:
const uint8_t __##__name##_qualifier_desc[USB_DT_DEVICE_QUALIFIER_SIZE] = {\
USB_DESC_QUALIFIER((__##__name##_version), 0, 0, 0, (__##__name##_ep0size), (__##__name##_config_num))\
};
#define USB_DT_DEVICE_QUALIFIER_SIZE
Definition usb_common.h:52

◆ __usbd_std_desc_table

#define __usbd_std_desc_table (   __name)
Value:
const vk_usbd_desc_t __##__name##_std_descs[] = { \
VSF_USBD_DESC_DEVICE(__##__name##_device_desc, sizeof(__##__name##_device_desc)),\
VSF_USBD_DESC_CONFIG(0, __##__name##_config_desc, sizeof(__##__name##_config_desc)),\
VSF_USBD_DESC_STRING(0, 0, &__##__name##_str_langid, sizeof(__##__name##_str_langid)),\
VSF_USBD_DESC_STRING(__##__name##_langid, 1, &__##__name##_str_vendor, sizeof(__##__name##_str_vendor)),\
VSF_USBD_DESC_STRING(__##__name##_langid, 2, &__##__name##_str_product, sizeof(__##__name##_str_product)),\
VSF_USBD_DESC_STRING(__##__name##_langid, 3, &__##__name##_str_serial, sizeof(__##__name##_str_serial)),
Definition vsf_usbd.h:379

◆ __usbd_str_desc_table4

#define __usbd_str_desc_table4 (   __name,
  __index,
  __type,
  __langid 
)     VSF_USBD_DESC_STRING((__langid), (__index), &__##__name##_str_##__type, sizeof(__##__name##_str_##__type)),

◆ __usbd_str_desc_table3

#define __usbd_str_desc_table3 (   __name,
  __index,
  __type 
)     VSF_USBD_DESC_STRING(__##__name##_langid, (__index), &__##__name##_str_##__type, sizeof(__##__name##_str_##__type)),

◆ usbd_str_desc_table

#define usbd_str_desc_table (   __name,
  __index,
  __type,
  ... 
)     __PLOOC_EVAL(__usbd_str_desc_table, __name, __index, __type, ##__VA_ARGS__)(__name, (__index), __type, ##__VA_ARGS__)

◆ __usbd_func_str_desc_table_langid

#define __usbd_func_str_desc_table_langid (   __name,
  __func_id,
  __lang_id 
)     VSF_USBD_DESC_STRING((__lang_id), 4 + __func_id, &__##__name##_str_func##__func_id, sizeof(__##__name##_str_func##__func_id)),

◆ __usbd_func_str_desc_table

#define __usbd_func_str_desc_table (   __name,
  __func_id 
)     __usbd_func_str_desc_table_langid(__name, __func_id, __##__name##_langid)

◆ __usbd_func_str_desc_table2

#define __usbd_func_str_desc_table2   __usbd_func_str_desc_table

◆ __usbd_func_str_desc_table3

#define __usbd_func_str_desc_table3   __usbd_func_str_desc_table_langid

◆ __usbd_qualifier_desc_table

#define __usbd_qualifier_desc_table (   __name)     VSF_USBD_DESC_QUALIFIER(&__##__name##_qualifier_desc),

◆ __usbd_ifs

#define __usbd_ifs (   __name)     vk_usbd_ifs_t __##__name##_ifs[__##__name##_ifsnum] = {

◆ __end_describe_usbd

#define __end_describe_usbd (   __name,
  __drv,
  ... 
)
Value:
vk_usbd_cfg_t __##__name##_cfg[1] = { \
{ \
.num_of_ifs = dimof(__##__name##_ifs), \
.ifs = __##__name##_ifs, \
}, \
}; \
vk_usbd_dev_t __name = { \
.num_of_config = dimof(__##__name##_cfg), \
.config = __##__name##_cfg, \
.num_of_desc = dimof(__##__name##_std_descs), \
.desc = (vk_usbd_desc_t *)__##__name##_std_descs, \
.speed = (usb_dc_speed_t)__##__name##_speed, \
.drv = &(__drv), \
__VA_ARGS__ \
};
uint8_t usb_dc_speed_t
Definition vsf_template_usb.h:313

◆ describe_usbd

#define describe_usbd (   __name,
  __vid,
  __pid,
  __speed,
  ... 
)
Value:
extern vk_usbd_dev_t __name; \
__PLOOC_EVAL(__describe_usbd, __name, __vid, __pid, __speed, ##__VA_ARGS__)(__name, __vid, __pid, __speed, ##__VA_ARGS__)
#define __describe_usbd( __name, __vid, __pid, __speed)
Definition vsf_usbd.h:148

◆ usbd_common_desc_iad

#define usbd_common_desc_iad (   __name,
  __str_product,
  __str_vendor,
  __str_serial,
  __ep0_size,
  __func_desc_size,
  __func_ifs_num,
  __attribute,
  __max_power_ma,
  ... 
)
Value:
__usbd_common_desc_iad(__name, __str_product, __str_vendor, __str_serial, (__ep0_size), (__func_desc_size), (__func_ifs_num), (__attribute), (__max_power_ma))\
__VA_ARGS__};
#define __usbd_common_desc_iad( __name, __str_product, __str_vendor, __str_serial, __ep0_size, __func_desc_size, __func_ifs_num, __attribute, __max_power_ma)
Definition vsf_usbd.h:263

◆ usbd_common_desc

#define usbd_common_desc (   __name,
  __str_product,
  __str_vendor,
  __str_serial,
  __class,
  __subclass,
  __protocol,
  __ep0_size,
  __func_desc_size,
  __func_ifs_num,
  __attribute,
  __max_power_ma,
  ... 
)
Value:
__usbd_common_desc(__name, __str_product, __str_vendor, __str_serial, (__class), (__subclass), (__protocol), (__ep0_size), (__func_desc_size), (__func_ifs_num), (__attribute), (__max_power_ma))\
__VA_ARGS__};
#define __usbd_common_desc( __name, __str_product, __str_vendor, __str_serial, __class, __subclass, __protocol, __ep0_size, __func_desc_size, __func_ifs_num, __attribute, __max_power_ma)
Definition vsf_usbd.h:242

◆ usbd_func_str_desc

#define usbd_func_str_desc (   __name,
  __func_id,
  __str_func 
)     __usbd_func_str_desc(__name, __func_id, __str_func)

◆ usbd_qualifier_desc

#define usbd_qualifier_desc (   __name)     __usbd_qualifier_desc(__name)

◆ usbd_std_desc_table

#define usbd_std_desc_table (   __name,
  ... 
)
Value:
__VA_ARGS__};
#define __usbd_std_desc_table(__name)
Definition vsf_usbd.h:283

◆ usbd_func_str_desc_table

#define usbd_func_str_desc_table (   __name,
  __func_id,
  ... 
)     __PLOOC_EVAL(__usbd_func_str_desc_table, __name, __func_id, ##__VA_ARGS__)(__name, __func_id, ##__VA_ARGS__)

◆ usbd_qualifier_desc_table

#define usbd_qualifier_desc_table (   __name)     __usbd_qualifier_desc_table(__name)

◆ usbd_func

#define usbd_func (   __name,
  ... 
)    __VA_ARGS__

◆ usbd_ifs

#define usbd_ifs (   __name,
  ... 
)
Value:
__VA_ARGS__};
#define __usbd_ifs(__name)
Definition vsf_usbd.h:311

◆ end_describe_usbd

#define end_describe_usbd (   __name,
  __drv,
  ... 
)     __end_describe_usbd(__name, (__drv), ##__VA_ARGS__)

Typedef Documentation

◆ vk_usbd_evt_t

◆ vk_usbd_desc_t

◆ vk_usbd_ctrl_handler_t

Enumeration Type Documentation

◆ vk_usbd_evt_t

Enumerator
USB_ON_INIT 
USB_ON_FINI 
USB_ON_STATUS_QUERY 
VSF_USBD_MAX_EVT