24#if VSF_USE_USB_HOST == ENABLED
27#include "../common/usb_common.h"
29#if defined(__VSF_USBH_CLASS_IMPLEMENT)
30# define __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_hcd_t
31# define __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_hcd_urb_t
32# define __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_urb_t
33# define __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_dev_t
34# define __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_t
35# define __VSF_USBH_CLASS_IMPLEMENT_CLASS__
36#elif defined(__VSF_USBH_CLASS_IMPLEMENT_HCD__)
37# define __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_hcd_t
38# define __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_hcd_urb_t
39# define __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_dev_t
40# if defined(__VSF_USBH_CLASS_IMPLEMENT_HUB__)
41# define __VSF_USBH_CLASS_INHERIT_vk_usbh_t
43#elif defined(__VSF_USBH_CLASS_IMPLEMENT_CLASS__)
44# define __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_dev_t
45# define __VSF_USBH_CLASS_INHERIT_vk_usbh_t
46# define __VSF_USBH_CLASS_INHERIT_vk_usbh_urb_t
47# if defined(__VSF_USBH_CLASS_IMPLEMENT_HUB__)
48# define __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_dev_t
60#if VSF_KERNEL_CFG_EDA_SUPPORT_TIMER != ENABLED
61# error "USBH require VSF_KERNEL_CFG_EDA_SUPPORT_TIMER"
64#if !defined(VSF_USBH_CFG_EDA_PRIORITY)
65# define VSF_USBH_CFG_EDA_PRIORITY vsf_prio_0
68#ifndef VSF_USBH_CFG_ISO_EN
69# define VSF_USBH_CFG_ISO_EN ENABLED
71#ifndef VSF_USBH_CFG_PIPE_HAS_EXTRA
72# define VSF_USBH_CFG_PIPE_HAS_EXTRA ENABLED
75#if VSF_USBH_CFG_ISO_EN == ENABLED
76#ifndef VSF_USBH_CFG_ISO_PACKET_LIMIT
77#define VSF_USBH_CFG_ISO_PACKET_LIMIT 1
81#ifndef VSF_USBH_CFG_ENABLE_ROOT_HUB
82# define VSF_USBH_CFG_ENABLE_ROOT_HUB ENABLED
85#ifndef VSF_USBH_CFG_MAX_DEVICE
86# define VSF_USBH_CFG_MAX_DEVICE 127
89#ifdef VSF_USBH_CFG_HEAP_IFS
90# undef vsf_usbh_malloc
91# undef vsf_usbh_malloc_aligned
93# define vsf_usbh_malloc VSF_USBH_CFG_HEAP_IFS.Malloc
94# define vsf_usbh_malloc_aligned VSF_USBH_CFG_HEAP_IFS.MallocAligned
95# define vsf_usbh_free VSF_USBH_CFG_HEAP_IFS.Free
97# ifndef vsf_usbh_malloc
98# define vsf_usbh_malloc vsf_heap_malloc
102# ifndef vsf_usbh_malloc_aligned
103# define vsf_usbh_malloc_aligned vsf_heap_malloc_aligned
107# ifndef vsf_usbh_free
108# define vsf_usbh_free vsf_heap_free
117#define VSF_USBH_MATCH_VID_PID(__VID, __PID) \
118 .match_vendor = true, \
119 .match_product = true, \
120 .idVendor = (__VID), \
121 .idProduct = (__PID),
122#define VSF_USBH_MATCH_DEV_CLASS(__CLASS, __SUB_CLASS, __PROTOCOL) \
123 .match_dev_class = true, \
124 .match_dev_subclass = true, \
125 .match_dev_protocol = true, \
126 .bDeviceClass = (__CLASS), \
127 .bDeviceSubClass = (__SUB_CLASS), \
128 .bDeviceProtocol = (__PROTOCOL),
129#define VSF_USBH_MATCH_IFS_CLASS(__CLASS, __SUB_CLASS, __PROTOCOL) \
130 .match_ifs_class = true, \
131 .match_ifs_subclass = true, \
132 .match_ifs_protocol = true, \
133 .bInterfaceClass = (__CLASS), \
134 .bInterfaceSubClass = (__SUB_CLASS), \
135 .bInterfaceProtocol = (__PROTOCOL),
137#define VSF_USBH_MATCH_FLAGS_VENDOR (1 << 0)
138#define VSF_USBH_MATCH_FLAGS_PRODUCT (1 << 1)
139#define VSF_USBH_MATCH_FLAGS_DEV_LO (1 << 2)
140#define VSF_USBH_MATCH_FLAGS_DEV_HI (1 << 3)
141#define VSF_USBH_MATCH_FLAGS_DEV_CLASS (1 << 4)
142#define VSF_USBH_MATCH_FLAGS_DEV_SUBCLASS (1 << 5)
143#define VSF_USBH_MATCH_FLAGS_DEV_PROTOCOL (1 << 6)
144#define VSF_USBH_MATCH_FLAGS_IFS_CLASS (1 << 7)
145#define VSF_USBH_MATCH_FLAGS_IFS_SUBCLASS (1 << 8)
146#define VSF_USBH_MATCH_FLAGS_IFS_PROTOCOL (1 << 9)
147#define VSF_USBH_MATCH_FLAGS_IFS_NUM (1 << 10)
259#if defined(__VSF_USBH_CLASS_IMPLEMENT_CLASS__)
260# define __VSF_CLASS_IMPLEMENT__
303#if VSF_USBH_CFG_PIPE_HAS_EXTRA == ENABLED
312#if defined(__VSF_USBH_CLASS_IMPLEMENT_vk_usbh_hcd_t)
313# undef __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_hcd_t
314# define __VSF_CLASS_IMPLEMENT__
359#if VSF_USBH_CFG_ISO_EN == ENABLED
379#if defined(__VSF_USBH_CLASS_IMPLEMENT_vk_usbh_hcd_urb_t)
380# undef __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_hcd_urb_t
381# define __VSF_CLASS_IMPLEMENT__
411 void (*free_buffer)(
void *param);
412 void *free_buffer_param;
416#if VSF_USBH_CFG_ISO_EN == ENABLED
437#if defined(__VSF_USBH_CLASS_IMPLEMENT_vk_usbh_urb_t)
438# undef __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_urb_t
439# define __VSF_CLASS_IMPLEMENT__
440#elif defined(__VSF_USBH_CLASS_INHERIT_vk_usbh_urb_t)
441# undef __VSF_USBH_CLASS_INHERIT_vk_usbh_urb_t
442# define __VSF_CLASS_INHERIT__
463#if defined(__VSF_USBH_CLASS_IMPLEMENT_vk_usbh_dev_t)
464# undef __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_dev_t
465# define __VSF_CLASS_IMPLEMENT__
488#if VSF_USBH_USE_HUB == ENABLED
508#if defined(__VSF_USBH_CLASS_IMPLEMENT_vk_usbh_t)
509# undef __VSF_USBH_CLASS_IMPLEMENT_vk_usbh_t
510# define __VSF_CLASS_IMPLEMENT__
511#elif defined(__VSF_USBH_CLASS_INHERIT_vk_usbh_t)
512# undef __VSF_USBH_CLASS_INHERIT_vk_usbh_t
513# define __VSF_CLASS_INHERIT__
530 vsf_bitmap(vk_usbh_devnum_bitmap) device_bitmap;
531#if VSF_USBH_CFG_ENABLE_ROOT_HUB == ENABLED
555#if defined(__VSF_USBH_CLASS_IMPLEMENT) || defined(__VSF_USBH_CLASS_IMPLEMENT_HCD__)
561#if defined(__VSF_USBH_CLASS_IMPLEMENT_HUB__)
567#if defined(__VSF_USBH_CLASS_IMPLEMENT) || defined(__VSF_USBH_CLASS_IMPLEMENT_CLASS__)
571#define __vk_usbh_get_pipe5(...) __vk_usbh_get_pipe(__VA_ARGS__)
572#define __vk_usbh_get_pipe4(...) __vk_usbh_get_pipe5(__VA_ARGS__, 0)
573#define vk_usbh_get_pipe(...) \
574 __PLOOC_EVAL(__vk_usbh_get_pipe, __VA_ARGS__)(__VA_ARGS__)
609#if VSF_USBH_CFG_ISO_EN == ENABLED
652#if VSF_USBH_USE_HUB == ENABLED
655#if VSF_USBH_USE_CDC == ENABLED
658#if VSF_USBH_USE_ECM == ENABLED
661#if VSF_USBH_USE_BTHCI == ENABLED
664#if VSF_USBH_USE_HID == ENABLED
667#if VSF_USBH_USE_DS4 == ENABLED
670#if VSF_USBH_USE_NSPRO == ENABLED
673#if VSF_USBH_USE_XB360 == ENABLED
676#if VSF_USBH_USE_XB1 == ENABLED
679#if VSF_USBH_USE_LIBUSB == ENABLED
682#if VSF_USBH_USE_MSC == ENABLED
685#if VSF_USBH_USE_UAC == ENABLED
688#if VSF_USBH_USE_UVC == ENABLED
691#if VSF_USBH_USE_DFU == ENABLED
694#if VSF_USBH_USE_DL1X5 == ENABLED
699#if VSF_USBH_USE_HCD_OHCI == ENABLED
700# include "../driver/hcd/ohci/vsf_ohci.h"
702#if VSF_USBH_USE_HCD_DWCOTG == ENABLED
703# include "../driver/otg/dwcotg/vsf_dwcotg_hcd.h"
705#if VSF_USBH_USE_HCD_MUSB_FDRC == ENABLED
706# include "../driver/otg/musb/fdrc/vsf_musb_fdrc_hcd.h"
708#if VSF_USBH_USE_HCD_LIBUSB == ENABLED
709# include "../driver/hcd/libusb_hcd/vsf_libusb_hcd.h"
711#if VSF_USBH_USE_HCD_WINUSB == ENABLED
712# include "../driver/hcd/winusb_hcd/vsf_winusb_hcd.h"
714#if VSF_USBH_USE_HCD_WEBUSB == ENABLED
715# include "../driver/hcd/webusb_hcd/vsf_webusb_hcd.h"
718#undef __VSF_USBH_CLASS_IMPLEMENT
719#undef __VSF_USBH_CLASS_IMPLEMENT_CLASS__
720#undef __VSF_USBH_CLASS_IMPLEMENT_HCD__
721#undef __VSF_USBH_CLASS_IMPLEMENT_HUB__
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NONE
none error
Definition __type.h:44
@ VSF_ERR_NOT_READY
service not ready yet
Definition __type.h:43
@ VSF_ERR_TIMEOUT
Definition __type.h:65
@ VSF_ERR_FAIL
failed
Definition __type.h:51
Definition vsf_usbh.h:268
Definition vsf_usbh.h:478
Definition vsf_usbh.h:389
Definition vsf_usbh.h:322
Definition vsf_usbh.h:347
Definition vsf_usbh.h:397
Definition vsf_usbh.h:523
Definition vsf_usbh.h:450
__le16 timeout
Definition ieee80211.h:94
signed short int16_t
Definition lvgl.h:42
unsigned short uint16_t
Definition lvgl.h:41
unsigned int uint32_t
Definition lvgl.h:43
signed int int32_t
Definition lvgl.h:44
unsigned char uint8_t
Definition lvgl.h:40
#define vsf_dcl_class
Definition ooc_class.h:46
#define vsf_class(__name)
Definition ooc_class.h:48
unsigned char uint_fast8_t
Definition stdint.h:23
unsigned int uint_fast32_t
Definition stdint.h:27
unsigned short uint_fast16_t
Definition stdint.h:25
short int_fast16_t
Definition stdint.h:24
Definition usb_common.h:203
Definition usb_common.h:85
Definition usb_common.h:185
Definition usb_common.h:240
Definition usb_common.h:227
Definition vsf_usbh.h:279
vsf_slist_node_t node
Definition vsf_usbh.h:281
const vk_usbh_class_drv_t * drv
Definition vsf_usbh.h:280
Definition vsf_usbh.h:188
uint16_t match_dev_lo
Definition vsf_usbh.h:193
uint16_t match_ifs_subclass
Definition vsf_usbh.h:199
uint16_t match_ifs_protocol
Definition vsf_usbh.h:200
uint8_t bDeviceProtocol
Definition vsf_usbh.h:213
uint16_t match_dev_protocol
Definition vsf_usbh.h:197
uint16_t match_ifs_class
Definition vsf_usbh.h:198
uint16_t match_flags
Definition vsf_usbh.h:204
uint8_t bInterfaceNumber
Definition vsf_usbh.h:217
uint16_t match_dev_hi
Definition vsf_usbh.h:194
uint16_t match_vendor
Definition vsf_usbh.h:191
uint16_t match_dev_subclass
Definition vsf_usbh.h:196
uint16_t idVendor
Definition vsf_usbh.h:208
uint8_t bDeviceSubClass
Definition vsf_usbh.h:212
uint16_t bcdDevice_lo
Definition vsf_usbh.h:210
uint16_t match_ifs_num
Definition vsf_usbh.h:201
uint8_t bInterfaceProtocol
Definition vsf_usbh.h:216
uint16_t bcdDevice_hi
Definition vsf_usbh.h:210
uint8_t bDeviceClass
Definition vsf_usbh.h:211
uint8_t bInterfaceSubClass
Definition vsf_usbh.h:215
uint16_t match_product
Definition vsf_usbh.h:192
uint16_t idProduct
Definition vsf_usbh.h:209
uint16_t match_dev_class
Definition vsf_usbh.h:195
uint8_t bInterfaceClass
Definition vsf_usbh.h:214
Definition vsf_usbh.h:234
vk_usbh_ifs_parser_t * parser_ifs
Definition vsf_usbh.h:237
struct usb_device_desc_t * desc_device
Definition vsf_usbh.h:235
uint8_t num_of_ifs
Definition vsf_usbh.h:238
enum vk_usbh_dev_parser_t::@289 probe_state
uint8_t devnum_temp
Definition vsf_usbh.h:239
uint8_t no_set_configuration
Definition vsf_usbh.h:241
struct usb_config_desc_t * desc_config
Definition vsf_usbh.h:236
uint8_t is_to_retry
Definition vsf_usbh.h:240
@ VSF_USBH_PROBE_WAIT_SET_CONFIG
Definition vsf_usbh.h:251
@ VSF_USBH_PROBE_WAIT_CONFIG_DESC_SIZE
Definition vsf_usbh.h:249
@ VSF_USBH_PROBE_WAIT_SET_ADDRESS
Definition vsf_usbh.h:246
@ VSF_USBH_PROBE_WAIT_ADDRESS_STABLE
Definition vsf_usbh.h:247
@ VSF_USBH_PROBE_WAIT_FULL_CONFIG_DESC
Definition vsf_usbh.h:250
@ VSF_USBH_PROBE_WAIT_DEVICE_RESET
Definition vsf_usbh.h:245
@ VSF_USBH_PROBE_WAIT_DEVICE_DESC
Definition vsf_usbh.h:244
@ VSF_USBH_PROBE_WAIT_FULL_DEVICE_DESC
Definition vsf_usbh.h:248
@ VSF_USBH_PROBE_START
Definition vsf_usbh.h:243
Definition vsf_usbh.h:473
vk_usbh_urb_t urb
Definition vsf_usbh.h:475
__vsf_crit_npb_t crit
Definition vsf_usbh.h:474
Definition vsf_usbh.h:360
int32_t status
Definition vsf_usbh.h:364
uint32_t offset
Definition vsf_usbh.h:361
uint32_t length
Definition vsf_usbh.h:362
uint32_t actual_length
Definition vsf_usbh.h:363
Definition vsf_usbh.h:367
uint32_t start_frame
Definition vsf_usbh.h:368
vk_usbh_hcd_iso_packet_descriptor_t frame_desc[VSF_USBH_CFG_ISO_PACKET_LIMIT]
Definition vsf_usbh.h:371
uint32_t number_of_packets
Definition vsf_usbh.h:369
Definition vsf_usbh.h:221
struct usb_interface_desc_t * desc_ifs
Definition vsf_usbh.h:222
uint16_t desc_size
Definition vsf_usbh.h:224
struct usb_endpoint_desc_t * desc_ep
Definition vsf_usbh.h:223
uint8_t num_of_ep
Definition vsf_usbh.h:225
Definition vsf_usbh.h:228
const vk_usbh_dev_id_t * id
Definition vsf_usbh.h:231
vk_usbh_ifs_alt_parser_t * parser_alt
Definition vsf_usbh.h:229
vk_usbh_ifs_t * ifs
Definition vsf_usbh.h:230
Definition vsf_usbh.h:179
uint8_t cur_alt
Definition vsf_usbh.h:185
void * param
Definition vsf_usbh.h:181
uint8_t no
Definition vsf_usbh.h:183
const vk_usbh_class_drv_t * drv
Definition vsf_usbh.h:180
uint8_t num_of_alt
Definition vsf_usbh.h:184
Definition vsf_usbh.h:299
uint16_t last_frame
Definition vsf_usbh.h:302
void * extra
Definition vsf_usbh.h:304
vk_usbh_pipe_flag_t uint16_t interval
Definition vsf_usbh.h:301
Definition vsf_list.h:876
Definition vsf_list.h:872
Definition vsf_usbh.h:284
uint32_t speed
Definition vsf_usbh.h:290
uint32_t is_pipe
Definition vsf_usbh.h:286
uint32_t size
Definition vsf_usbh.h:287
uint32_t value
Definition vsf_usbh.h:296
uint32_t toggle
Definition vsf_usbh.h:293
uint32_t is_submitted
Definition vsf_usbh.h:294
uint32_t type
Definition vsf_usbh.h:289
uint32_t endpoint
Definition vsf_usbh.h:288
uint32_t dir_in1out0
Definition vsf_usbh.h:292
uint32_t address
Definition vsf_usbh.h:291
#define pipe
Definition unistd.h:86
usb_device_speed_t
Definition usb_common.h:267
vk_av_control_type_t type
Definition vsf_audio.h:170
#define vsf_declare_bitmap(__name, __bit_size)
Definition vsf_bitmap.h:95
#define vsf_bitmap(__name)
Definition vsf_bitmap.h:93
int16_t vsf_evt_t
Definition vsf_eda.h:654
uint_fast32_t alignment
Definition vsf_heap.h:135
uint32_t size
Definition vsf_memfs.h:50
uint8_t status
Definition vsf_tgui.h:139
vsf_err_t vk_usbh_clear_endpoint_feature(vk_usbh_t *usbh, vk_usbh_dev_t *dev, uint_fast8_t endpoint, uint_fast8_t feature)
Definition vsf_usbh.c:898
void * vk_usbh_urb_take_buffer(vk_usbh_urb_t *urb)
Definition vsf_usbh.c:463
vsf_err_t vk_usbh_clear_endpoint_halt(vk_usbh_t *usbh, vk_usbh_dev_t *dev, uint_fast8_t endpoint)
Definition vsf_usbh.c:911
vsf_err_t vk_usbh_get_descriptor(vk_usbh_t *usbh, vk_usbh_dev_t *dev, uint_fast8_t type, uint_fast8_t index, uint_fast16_t size)
Definition vsf_usbh.c:832
vsf_err_t vk_usbh_get_class_descriptor(vk_usbh_t *usbh, vk_usbh_dev_t *dev, uint_fast16_t ifs_no, uint_fast8_t type, uint_fast8_t id, uint_fast16_t size)
Definition vsf_usbh.c:845
vsf_err_t vk_usbh_alloc_urb(vk_usbh_t *usbh, vk_usbh_dev_t *dev, vk_usbh_urb_t *urb)
Definition vsf_usbh.c:401
void vk_usbh_urb_prepare(vk_usbh_urb_t *urb, vk_usbh_dev_t *dev, struct usb_endpoint_desc_t *desc_ep)
Definition vsf_usbh.c:192
void vk_usbh_remove_interface(vk_usbh_t *usbh, vk_usbh_dev_t *dev, vk_usbh_ifs_t *ifs)
Definition vsf_usbh.c:500
vsf_err_t vk_usbh_clear_interface_feature(vk_usbh_t *usbh, vk_usbh_dev_t *dev, uint_fast8_t ifs, uint_fast8_t feature)
Definition vsf_usbh.c:885
vsf_err_t vk_usbh_submit_urb_flags(vk_usbh_t *usbh, vk_usbh_urb_t *urb, uint_fast16_t flags)
Definition vsf_usbh.c:733
void vk_usbh_urb_set_complete(vk_usbh_urb_t *urb, vsf_usbh_urb_complete_t complete, void *param)
Definition vsf_usbh.c:493
void vk_usbh_urb_set_buffer(vk_usbh_urb_t *urb, void *buffer, uint_fast32_t size)
Definition vsf_usbh.c:471
vsf_err_t vk_usbh_submit_urb(vk_usbh_t *usbh, vk_usbh_urb_t *urb)
Definition vsf_usbh.c:727
vk_usbh_dev_t * vk_usbh_new_device(vk_usbh_t *usbh, enum usb_device_speed_t speed, vk_usbh_dev_t *dev_parent, uint_fast8_t idx)
Definition vsf_usbh.c:306
void vk_usbh_unlink_urb(vk_usbh_t *usbh, vk_usbh_urb_t *urb)
Definition vsf_usbh.c:421
bool vk_usbh_urb_is_alloced(vk_usbh_urb_t *urb)
Definition vsf_usbh.c:205
uint_fast32_t vk_usbh_urb_get_actual_length(vk_usbh_urb_t *urb)
Definition vsf_usbh.c:487
vsf_err_t vk_usbh_control_msg(vk_usbh_t *usbh, vk_usbh_dev_t *dev, struct usb_ctrlrequest_t *req)
Definition vsf_usbh.c:800
usb_endpoint_desc_t * vk_usbh_get_next_ep_descriptor(usb_endpoint_desc_t *desc_ep, uint_fast16_t size)
Definition vsf_usbh.c:1388
enum usb_device_speed_t vk_usbh_get_dev_speed(vk_usbh_dev_t *dev)
Definition vsf_usbh.c:346
uint_fast16_t vk_usbh_get_frame(vk_usbh_t *usbh)
Definition vsf_usbh.c:278
vsf_err_t vk_usbh_submit_urb_ex(vk_usbh_t *usbh, vk_usbh_urb_t *urb, uint_fast16_t flags, vsf_eda_t *eda)
Definition vsf_usbh.c:740
vsf_err_t vk_usbh_set_configuration(vk_usbh_t *usbh, vk_usbh_dev_t *dev, uint_fast8_t configuration)
Definition vsf_usbh.c:859
void vk_usbh_reset_dev(vk_usbh_t *usbh, vk_usbh_dev_t *dev)
Definition vsf_usbh.c:351
void vk_usbh_urb_set_pipe(vk_usbh_urb_t *urb, vk_usbh_pipe_t pipe)
Definition vsf_usbh.c:221
void * vk_usbh_urb_alloc_buffer(vk_usbh_urb_t *urb, uint_fast16_t size)
Definition vsf_usbh.c:452
void vk_usbh_update_address(vk_usbh_dev_t *dev, uint_fast8_t address)
Definition vsf_usbh.c:386
void vk_usbh_hcd_urb_complete(vk_usbh_hcd_urb_t *hcd_urb)
Definition vsf_usbh.c:247
int16_t vk_usbh_get_extra_descriptor(uint8_t *buf, uint_fast16_t size, uint_fast8_t type, void **ptr)
Definition vsf_usbh.c:1363
vk_usbh_pipe_t __vk_usbh_get_pipe(vk_usbh_dev_t *dev, uint8_t endpoint, uint8_t type, uint16_t size, uint8_t interval)
Definition vsf_usbh.c:160
vsf_err_t vk_usbh_submit_urb_iso(vk_usbh_t *usbh, vk_usbh_urb_t *urb, uint_fast16_t start_frame)
Definition vsf_usbh.c:748
vk_usbh_pipe_t vk_usbh_urb_get_pipe(vk_usbh_urb_t *urb)
Definition vsf_usbh.c:211
void vk_usbh_free_urb(vk_usbh_t *usbh, vk_usbh_urb_t *urb)
Definition vsf_usbh.c:431
void * vk_usbh_urb_peek_buffer(vk_usbh_urb_t *urb)
Definition vsf_usbh.c:458
void vk_usbh_urb_prepare_by_pipe(vk_usbh_urb_t *urb, vk_usbh_dev_t *dev, vk_usbh_pipe_t pipe)
Definition vsf_usbh.c:186
void vk_usbh_hcd_urb_free_buffer(vk_usbh_hcd_urb_t *urb_hcd)
Definition vsf_usbh.c:238
void vk_usbh_disconnect_device(vk_usbh_t *usbh, vk_usbh_dev_t *dev)
Definition vsf_usbh.c:544
void vk_usbh_urb_free_buffer(vk_usbh_urb_t *urb)
Definition vsf_usbh.c:444
vsf_err_t vk_usbh_set_interface(vk_usbh_t *usbh, vk_usbh_dev_t *dev, uint_fast8_t ifs, uint_fast8_t alternate)
Definition vsf_usbh.c:872
bool vk_usbh_is_dev_resetting(vk_usbh_t *usbh, vk_usbh_dev_t *dev)
Definition vsf_usbh.c:369
vk_usbh_pipe_t vk_usbh_get_pipe_from_ep_desc(vk_usbh_dev_t *dev, struct usb_endpoint_desc_t *desc_ep)
Definition vsf_usbh.c:179
bool vk_usbh_urb_is_valid(vk_usbh_urb_t *urb)
Definition vsf_usbh.c:199
vsf_err_t vk_usbh_control_msg_ex(vk_usbh_t *usbh, vk_usbh_dev_t *dev, struct usb_ctrlrequest_t *req, uint_fast16_t flags, vsf_eda_t *eda)
Definition vsf_usbh.c:810
int_fast16_t vk_usbh_urb_get_status(vk_usbh_urb_t *urb)
Definition vsf_usbh.c:481
vsf_err_t vk_usbh_init(vk_usbh_t *usbh)
Definition vsf_usbh.c:1320
void vk_usbh_register_class(vk_usbh_t *usbh, vk_usbh_class_t *c)
Definition vsf_usbh.c:1357
#define vsf_usbh_malloc
Definition vsf_usbh.h:98
#define vsf_usbh_free
Definition vsf_usbh.h:108
@ URB_OK
Definition vsf_usbh.h:163
@ URB_TIMEOUT
Definition vsf_usbh.h:167
@ URB_PENDING
Definition vsf_usbh.h:165
@ URB_FAIL
Definition vsf_usbh.h:164
@ URB_CANCELED
Definition vsf_usbh.h:166
vsf_err_t vk_usbh_fini(vk_usbh_t *usbh)
Definition vsf_usbh.c:1341
#define vsf_usbh_malloc_aligned
Definition vsf_usbh.h:103
#define VSF_USBH_CFG_MAX_DEVICE
Definition vsf_usbh.h:86
void(* vsf_usbh_urb_complete_t)(void *param, vk_usbh_hcd_urb_t *)
Definition vsf_usbh.h:395
#define VSF_USBH_CFG_ISO_PACKET_LIMIT
Definition vsf_usbh.h:77
@ URB_ZERO_PACKET
Definition vsf_usbh.h:174
@ __URB_NEED_FREE
Definition vsf_usbh.h:175
@ URB_SHORT_NOT_OK
Definition vsf_usbh.h:172
@ URB_HCD_SPECIFIED_FLAGS
Definition vsf_usbh.h:176
@ URB_ISO_ASAP
Definition vsf_usbh.h:173
void vk_usbh_unregister_class(vk_usbh_t *usbh, vk_usbh_class_t *c)
Definition vsf_usbh.c:1347