merge class driver control_request & control_complete to control_xfer_cb()
migrated msc_device
This commit is contained in:
@@ -97,7 +97,7 @@ static usbd_class_driver_t const _usbd_driver[] =
|
||||
.init = cdcd_init,
|
||||
.reset = cdcd_reset,
|
||||
.open = cdcd_open,
|
||||
.control_request = cdcd_control_request,
|
||||
.control_xfer_cb = cdcd_control_request,
|
||||
.control_complete = cdcd_control_complete,
|
||||
.xfer_cb = cdcd_xfer_cb,
|
||||
.sof = NULL
|
||||
@@ -110,8 +110,7 @@ static usbd_class_driver_t const _usbd_driver[] =
|
||||
.init = mscd_init,
|
||||
.reset = mscd_reset,
|
||||
.open = mscd_open,
|
||||
.control_request = mscd_control_request,
|
||||
.control_complete = mscd_control_complete,
|
||||
.control_xfer_cb = mscd_control_xfer_cb,
|
||||
.xfer_cb = mscd_xfer_cb,
|
||||
.sof = NULL
|
||||
},
|
||||
@@ -123,7 +122,7 @@ static usbd_class_driver_t const _usbd_driver[] =
|
||||
.init = hidd_init,
|
||||
.reset = hidd_reset,
|
||||
.open = hidd_open,
|
||||
.control_request = hidd_control_request,
|
||||
.control_xfer_cb = hidd_control_request,
|
||||
.control_complete = hidd_control_complete,
|
||||
.xfer_cb = hidd_xfer_cb,
|
||||
.sof = NULL
|
||||
@@ -134,9 +133,9 @@ static usbd_class_driver_t const _usbd_driver[] =
|
||||
{
|
||||
DRIVER_NAME("AUDIO")
|
||||
.init = audiod_init,
|
||||
.reset = audiod_reset,
|
||||
.reset = audiod_reset,
|
||||
.open = audiod_open,
|
||||
.control_request = audiod_control_request,
|
||||
.control_xfer_cb = audiod_control_request,
|
||||
.control_complete = audiod_control_complete,
|
||||
.xfer_cb = audiod_xfer_cb,
|
||||
.sof = NULL
|
||||
@@ -149,7 +148,7 @@ static usbd_class_driver_t const _usbd_driver[] =
|
||||
.init = midid_init,
|
||||
.open = midid_open,
|
||||
.reset = midid_reset,
|
||||
.control_request = midid_control_request,
|
||||
.control_xfer_cb = midid_control_request,
|
||||
.control_complete = midid_control_complete,
|
||||
.xfer_cb = midid_xfer_cb,
|
||||
.sof = NULL
|
||||
@@ -162,7 +161,7 @@ static usbd_class_driver_t const _usbd_driver[] =
|
||||
.init = vendord_init,
|
||||
.reset = vendord_reset,
|
||||
.open = vendord_open,
|
||||
.control_request = tud_vendor_control_request_cb,
|
||||
.control_xfer_cb = tud_vendor_control_request_cb,
|
||||
.control_complete = tud_vendor_control_complete_cb,
|
||||
.xfer_cb = vendord_xfer_cb,
|
||||
.sof = NULL
|
||||
@@ -175,7 +174,7 @@ static usbd_class_driver_t const _usbd_driver[] =
|
||||
.init = usbtmcd_init_cb,
|
||||
.reset = usbtmcd_reset_cb,
|
||||
.open = usbtmcd_open_cb,
|
||||
.control_request = usbtmcd_control_request_cb,
|
||||
.control_xfer_cb = usbtmcd_control_request_cb,
|
||||
.control_complete = usbtmcd_control_complete_cb,
|
||||
.xfer_cb = usbtmcd_xfer_cb,
|
||||
.sof = NULL
|
||||
@@ -188,7 +187,7 @@ static usbd_class_driver_t const _usbd_driver[] =
|
||||
.init = dfu_rtd_init,
|
||||
.reset = dfu_rtd_reset,
|
||||
.open = dfu_rtd_open,
|
||||
.control_request = dfu_rtd_control_request,
|
||||
.control_xfer_cb = dfu_rtd_control_request,
|
||||
.control_complete = dfu_rtd_control_complete,
|
||||
.xfer_cb = dfu_rtd_xfer_cb,
|
||||
.sof = NULL
|
||||
@@ -201,7 +200,7 @@ static usbd_class_driver_t const _usbd_driver[] =
|
||||
.init = netd_init,
|
||||
.reset = netd_reset,
|
||||
.open = netd_open,
|
||||
.control_request = netd_control_request,
|
||||
.control_xfer_cb = netd_control_request,
|
||||
.control_complete = netd_control_complete,
|
||||
.xfer_cb = netd_xfer_cb,
|
||||
.sof = NULL,
|
||||
@@ -214,7 +213,7 @@ static usbd_class_driver_t const _usbd_driver[] =
|
||||
.init = btd_init,
|
||||
.reset = btd_reset,
|
||||
.open = btd_open,
|
||||
.control_request = btd_control_request,
|
||||
.control_xfer_cb = btd_control_request,
|
||||
.control_complete = btd_control_complete,
|
||||
.xfer_cb = btd_xfer_cb,
|
||||
.sof = NULL
|
||||
@@ -274,7 +273,7 @@ static bool process_get_descriptor(uint8_t rhport, tusb_control_request_t const
|
||||
// from usbd_control.c
|
||||
void usbd_control_reset(void);
|
||||
void usbd_control_set_request(tusb_control_request_t const *request);
|
||||
void usbd_control_set_complete_callback( bool (*fp) (uint8_t, tusb_control_request_t const * ) );
|
||||
void usbd_control_set_complete_callback( usbd_control_xfer_cb_t fp );
|
||||
bool usbd_control_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
|
||||
|
||||
|
||||
@@ -313,12 +312,12 @@ static char const* const _tusb_std_request_str[] =
|
||||
};
|
||||
|
||||
// for usbd_control to print the name of control complete driver
|
||||
void usbd_driver_print_control_complete_name(bool (*control_complete) (uint8_t, tusb_control_request_t const * ))
|
||||
void usbd_driver_print_control_complete_name(usbd_control_xfer_cb_t callback)
|
||||
{
|
||||
for (uint8_t i = 0; i < TOTAL_DRIVER_COUNT; i++)
|
||||
{
|
||||
usbd_class_driver_t const * driver = get_driver(i);
|
||||
if ( driver->control_complete == control_complete )
|
||||
if ( driver->control_xfer_cb == callback )
|
||||
{
|
||||
TU_LOG2(" %s control complete\r\n", driver->name);
|
||||
return;
|
||||
@@ -565,9 +564,9 @@ void tud_task (void)
|
||||
// Helper to invoke class driver control request handler
|
||||
static bool invoke_class_control(uint8_t rhport, usbd_class_driver_t const * driver, tusb_control_request_t const * request)
|
||||
{
|
||||
usbd_control_set_complete_callback(driver->control_complete);
|
||||
usbd_control_set_complete_callback(driver->control_xfer_cb);
|
||||
TU_LOG2(" %s control request\r\n", driver->name);
|
||||
return driver->control_request(rhport, request);
|
||||
return driver->control_xfer_cb(rhport, CONTROL_STAGE_SETUP, request);
|
||||
}
|
||||
|
||||
// This handles the actual request and its response.
|
||||
@@ -581,10 +580,10 @@ static bool process_control_request(uint8_t rhport, tusb_control_request_t const
|
||||
// Vendor request
|
||||
if ( p_request->bmRequestType_bit.type == TUSB_REQ_TYPE_VENDOR )
|
||||
{
|
||||
TU_VERIFY(tud_vendor_control_request_cb);
|
||||
TU_VERIFY(tud_vendor_control_xfer_cb);
|
||||
|
||||
if (tud_vendor_control_complete_cb) usbd_control_set_complete_callback(tud_vendor_control_complete_cb);
|
||||
return tud_vendor_control_request_cb(rhport, p_request);
|
||||
usbd_control_set_complete_callback(tud_vendor_control_xfer_cb);
|
||||
return tud_vendor_control_xfer_cb(rhport, CONTROL_STAGE_SETUP, p_request);
|
||||
}
|
||||
|
||||
#if CFG_TUSB_DEBUG >= 2
|
||||
|
||||
Reference in New Issue
Block a user