47#if CFG_TUSB_DEBUG >= CFG_TUD_LOG_LEVEL
66CFG_TUD_MEM_SECTION CFG_TUSB_MEM_ALIGN
95 CFG_TUD_ENDPOINT0_SIZE);
167 TU_ASSERT(0 == xferred_bytes);
192 (xferred_bytes < CFG_TUD_ENDPOINT0_SIZE)) {
199 #if CFG_TUSB_DEBUG >= CFG_TUD_LOG_LEVEL
void dcd_edpt_stall(uint8_t rhport, uint8_t ep_addr)
static void * memcpy(void *dst, const void *src, size_t n)
AUDIO Channel Cluster Descriptor (4.1)
struct TU_ATTR_PACKED::@16::TU_ATTR_PACKED bmRequestType_bit
usbd_control_xfer_cb_t complete_cb
tusb_control_request_t request
static TU_ATTR_ALWAYS_INLINE uint16_t tu_min16(uint16_t x, uint16_t y)
static TU_ATTR_ALWAYS_INLINE int tu_memcpy_s(void *dest, size_t destsz, const void *src, size_t count)
TU_ATTR_PACKED_END TU_ATTR_BIT_FIELD_ORDER_END static TU_ATTR_ALWAYS_INLINE tusb_dir_t tu_edpt_dir(uint8_t addr)
bool usbd_edpt_xfer(uint8_t rhport, uint8_t ep_addr, uint8_t *buffer, uint16_t total_bytes)
static bool _data_stage_xact(uint8_t rhport)
tu_static usbd_control_xfer_t _ctrl_xfer
static bool _status_stage_xact(uint8_t rhport, tusb_control_request_t const *request)
void usbd_control_set_request(tusb_control_request_t const *request)
bool usbd_control_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes)
bool tud_control_xfer(uint8_t rhport, tusb_control_request_t const *request, void *buffer, uint16_t len)
void usbd_driver_print_control_complete_name(usbd_control_xfer_cb_t callback)
TU_ATTR_WEAK void dcd_edpt0_status_complete(uint8_t rhport, tusb_control_request_t const *request)
CFG_TUD_MEM_SECTION CFG_TUSB_MEM_ALIGN tu_static uint8_t _usbd_ctrl_buf[CFG_TUD_ENDPOINT0_SIZE]
bool tud_control_status(uint8_t rhport, tusb_control_request_t const *request)
void usbd_control_reset(void)
void usbd_control_set_complete_callback(usbd_control_xfer_cb_t fp)
bool(* usbd_control_xfer_cb_t)(uint8_t rhport, uint8_t stage, tusb_control_request_t const *request)
CFG_TUH_MEM_ALIGN tusb_control_request_t request