change usbd xfer_cb return type to bool
This commit is contained in:
parent
b6cb4757d2
commit
c1c501e0c2
|
@ -357,7 +357,7 @@ bool cdcd_control_request(uint8_t rhport, tusb_control_request_t const * request
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
tusb_error_t cdcd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes)
|
bool cdcd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes)
|
||||||
{
|
{
|
||||||
(void) result;
|
(void) result;
|
||||||
|
|
||||||
|
@ -382,13 +382,13 @@ tusb_error_t cdcd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result,
|
||||||
// invoke receive callback (if there is still data)
|
// invoke receive callback (if there is still data)
|
||||||
if (tud_cdc_rx_cb && tu_fifo_count(&p_cdc->rx_ff) ) tud_cdc_rx_cb(itf);
|
if (tud_cdc_rx_cb && tu_fifo_count(&p_cdc->rx_ff) ) tud_cdc_rx_cb(itf);
|
||||||
|
|
||||||
// prepare for next
|
// prepare for incoming data
|
||||||
TU_ASSERT( dcd_edpt_xfer(rhport, p_cdc->ep_out, p_cdc->epout_buf, CFG_TUD_CDC_EPSIZE), TUSB_ERROR_DCD_EDPT_XFER );
|
TU_ASSERT( dcd_edpt_xfer(rhport, p_cdc->ep_out, p_cdc->epout_buf, CFG_TUD_CDC_EPSIZE) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// nothing to do with in and notif endpoint
|
// nothing to do with in and notif endpoint
|
||||||
|
|
||||||
return TUSB_ERROR_NONE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -116,7 +116,7 @@ void cdcd_init (void);
|
||||||
bool cdcd_open (uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
|
bool cdcd_open (uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
|
||||||
bool cdcd_control_request (uint8_t rhport, tusb_control_request_t const * p_request);
|
bool cdcd_control_request (uint8_t rhport, tusb_control_request_t const * p_request);
|
||||||
bool cdcd_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
|
bool cdcd_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
|
||||||
tusb_error_t cdcd_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes);
|
bool cdcd_xfer_cb (uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes);
|
||||||
void cdcd_reset (uint8_t rhport);
|
void cdcd_reset (uint8_t rhport);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -71,22 +71,22 @@ void cusd_init(void)
|
||||||
tu_varclr(&_cusd_itf);
|
tu_varclr(&_cusd_itf);
|
||||||
}
|
}
|
||||||
|
|
||||||
tusb_error_t cusd_open(uint8_t rhport, tusb_desc_interface_t const * p_desc_itf, uint16_t *p_len)
|
bool cusd_open(uint8_t rhport, tusb_desc_interface_t const * p_desc_itf, uint16_t *p_len)
|
||||||
{
|
{
|
||||||
cusd_interface_t* p_itf = &_cusd_itf;
|
cusd_interface_t* p_itf = &_cusd_itf;
|
||||||
|
|
||||||
// Open endpoint pair with usbd helper
|
// Open endpoint pair with usbd helper
|
||||||
tusb_desc_endpoint_t const *p_desc_ep = (tusb_desc_endpoint_t const *) tu_desc_next( (uint8_t const*) p_desc_itf );
|
tusb_desc_endpoint_t const *p_desc_ep = (tusb_desc_endpoint_t const *) tu_desc_next(p_desc_itf);
|
||||||
TU_ASSERT_ERR( usbd_open_edpt_pair(rhport, p_desc_ep, TUSB_XFER_BULK, &p_itf->ep_out, &p_itf->ep_in) );
|
TU_ASSERT( usbd_open_edpt_pair(rhport, p_desc_ep, TUSB_XFER_BULK, &p_itf->ep_out, &p_itf->ep_in) );
|
||||||
|
|
||||||
p_itf->itf_num = p_desc_itf->bInterfaceNumber;
|
p_itf->itf_num = p_desc_itf->bInterfaceNumber;
|
||||||
|
|
||||||
(*p_len) = sizeof(tusb_desc_interface_t) + 2*sizeof(tusb_desc_endpoint_t);
|
(*p_len) = sizeof(tusb_desc_interface_t) + 2*sizeof(tusb_desc_endpoint_t);
|
||||||
|
|
||||||
// TODO Prepare for incoming data
|
// TODO Prepare for incoming data
|
||||||
// TU_ASSERT( dcd_edpt_xfer(rhport, p_itf->ep_out, (uint8_t*) &p_msc->cbw, sizeof(msc_cbw_t)), TUSB_ERROR_DCD_EDPT_XFER );
|
// TU_ASSERT( dcd_edpt_xfer(rhport, p_itf->ep_out, (uint8_t*) &p_msc->cbw, sizeof(msc_cbw_t)) );
|
||||||
|
|
||||||
return TUSB_ERROR_NONE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cusd_control_request(uint8_t rhport, tusb_control_request_t const * p_request)
|
bool cusd_control_request(uint8_t rhport, tusb_control_request_t const * p_request)
|
||||||
|
@ -94,9 +94,9 @@ bool cusd_control_request(uint8_t rhport, tusb_control_request_t const * p_reque
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
tusb_error_t cusd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes)
|
bool cusd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes)
|
||||||
{
|
{
|
||||||
return TUSB_ERROR_NONE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cusd_reset(uint8_t rhport)
|
void cusd_reset(uint8_t rhport)
|
||||||
|
|
|
@ -63,10 +63,10 @@
|
||||||
#ifdef _TINY_USB_SOURCE_FILE_
|
#ifdef _TINY_USB_SOURCE_FILE_
|
||||||
|
|
||||||
void cusd_init(void);
|
void cusd_init(void);
|
||||||
tusb_error_t cusd_open(uint8_t rhport, tusb_desc_interface_t const * p_interface_desc, uint16_t *p_length);
|
bool cusd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length);
|
||||||
bool cusd_control_request_st(uint8_t rhport, tusb_control_request_t const * p_request);
|
bool cusd_control_request_st(uint8_t rhport, tusb_control_request_t const * p_request);
|
||||||
bool cusd_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
|
bool cusd_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
|
||||||
tusb_error_t cusd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
|
bool cusd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
|
||||||
void cusd_reset(uint8_t rhport);
|
void cusd_reset(uint8_t rhport);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -508,10 +508,10 @@ bool hidd_control_request_complete(uint8_t rhport, tusb_control_request_t const
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
tusb_error_t hidd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes)
|
bool hidd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes)
|
||||||
{
|
{
|
||||||
// nothing to do
|
// nothing to do
|
||||||
return TUSB_ERROR_NONE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -380,7 +380,7 @@ void hidd_init(void);
|
||||||
bool hidd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length);
|
bool hidd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length);
|
||||||
bool hidd_control_request(uint8_t rhport, tusb_control_request_t const * p_request);
|
bool hidd_control_request(uint8_t rhport, tusb_control_request_t const * p_request);
|
||||||
bool hidd_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
|
bool hidd_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
|
||||||
tusb_error_t hidd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
|
bool hidd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
|
||||||
void hidd_reset(uint8_t rhport);
|
void hidd_reset(uint8_t rhport);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -329,7 +329,7 @@ int32_t proc_builtin_scsi(msc_cbw_t const * p_cbw, uint8_t* buffer, uint32_t buf
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
tusb_error_t mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes)
|
bool mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes)
|
||||||
{
|
{
|
||||||
mscd_interface_t* p_msc = &_mscd_itf;
|
mscd_interface_t* p_msc = &_mscd_itf;
|
||||||
msc_cbw_t const * p_cbw = &p_msc->cbw;
|
msc_cbw_t const * p_cbw = &p_msc->cbw;
|
||||||
|
@ -340,10 +340,10 @@ tusb_error_t mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event,
|
||||||
case MSC_STAGE_CMD:
|
case MSC_STAGE_CMD:
|
||||||
//------------- new CBW received -------------//
|
//------------- new CBW received -------------//
|
||||||
// Complete IN while waiting for CMD is usually Status of previous SCSI op, ignore it
|
// Complete IN while waiting for CMD is usually Status of previous SCSI op, ignore it
|
||||||
if(ep_addr != p_msc->ep_out) return TUSB_ERROR_NONE;
|
if(ep_addr != p_msc->ep_out) return true;
|
||||||
|
|
||||||
TU_ASSERT( event == XFER_RESULT_SUCCESS &&
|
TU_ASSERT( event == XFER_RESULT_SUCCESS &&
|
||||||
xferred_bytes == sizeof(msc_cbw_t) && p_cbw->signature == MSC_CBW_SIGNATURE, TUSB_ERROR_INVALID_PARA );
|
xferred_bytes == sizeof(msc_cbw_t) && p_cbw->signature == MSC_CBW_SIGNATURE );
|
||||||
|
|
||||||
p_csw->signature = MSC_CSW_SIGNATURE;
|
p_csw->signature = MSC_CSW_SIGNATURE;
|
||||||
p_csw->tag = p_cbw->tag;
|
p_csw->tag = p_cbw->tag;
|
||||||
|
@ -388,7 +388,7 @@ tusb_error_t mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event,
|
||||||
else if ( !BIT_TEST_(p_cbw->dir, 7) )
|
else if ( !BIT_TEST_(p_cbw->dir, 7) )
|
||||||
{
|
{
|
||||||
// OUT transfer
|
// OUT transfer
|
||||||
TU_ASSERT( dcd_edpt_xfer(rhport, p_msc->ep_out, _mscd_buf, p_msc->total_len), TUSB_ERROR_DCD_EDPT_XFER );
|
TU_ASSERT( dcd_edpt_xfer(rhport, p_msc->ep_out, _mscd_buf, p_msc->total_len) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -409,8 +409,8 @@ tusb_error_t mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event,
|
||||||
p_msc->total_len = (uint32_t) cb_result;
|
p_msc->total_len = (uint32_t) cb_result;
|
||||||
p_csw->status = MSC_CSW_STATUS_PASSED;
|
p_csw->status = MSC_CSW_STATUS_PASSED;
|
||||||
|
|
||||||
TU_ASSERT( p_cbw->total_bytes >= p_msc->total_len, TUSB_ERROR_INVALID_PARA ); // cannot return more than host expect
|
TU_ASSERT( p_cbw->total_bytes >= p_msc->total_len ); // cannot return more than host expect
|
||||||
TU_ASSERT( dcd_edpt_xfer(rhport, p_msc->ep_in, _mscd_buf, p_msc->total_len), TUSB_ERROR_DCD_EDPT_XFER );
|
TU_ASSERT( dcd_edpt_xfer(rhport, p_msc->ep_in, _mscd_buf, p_msc->total_len) );
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
p_msc->total_len = 0;
|
p_msc->total_len = 0;
|
||||||
|
@ -474,7 +474,7 @@ tusb_error_t mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event,
|
||||||
// simulate an transfer complete with adjusted parameters --> this driver callback will fired again
|
// simulate an transfer complete with adjusted parameters --> this driver callback will fired again
|
||||||
dcd_event_xfer_complete(rhport, p_msc->ep_out, xferred_bytes-nbytes, XFER_RESULT_SUCCESS, false);
|
dcd_event_xfer_complete(rhport, p_msc->ep_out, xferred_bytes-nbytes, XFER_RESULT_SUCCESS, false);
|
||||||
|
|
||||||
return TUSB_ERROR_NONE; // skip the rest
|
return true; // skip the rest
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -549,7 +549,7 @@ tusb_error_t mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return TUSB_ERROR_NONE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------*/
|
/*------------------------------------------------------------------*/
|
||||||
|
|
|
@ -174,7 +174,7 @@ void mscd_init(void);
|
||||||
bool mscd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length);
|
bool mscd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length);
|
||||||
bool mscd_control_request(uint8_t rhport, tusb_control_request_t const * p_request);
|
bool mscd_control_request(uint8_t rhport, tusb_control_request_t const * p_request);
|
||||||
bool mscd_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
|
bool mscd_control_request_complete (uint8_t rhport, tusb_control_request_t const * p_request);
|
||||||
tusb_error_t mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
|
bool mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);
|
||||||
void mscd_reset(uint8_t rhport);
|
void mscd_reset(uint8_t rhport);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -92,7 +92,7 @@ typedef struct {
|
||||||
bool (* open ) (uint8_t rhport, tusb_desc_interface_t const * desc_intf, uint16_t* p_length);
|
bool (* open ) (uint8_t rhport, tusb_desc_interface_t const * desc_intf, uint16_t* p_length);
|
||||||
bool (* control_request ) (uint8_t rhport, tusb_control_request_t const * request);
|
bool (* control_request ) (uint8_t rhport, tusb_control_request_t const * request);
|
||||||
bool (* control_request_complete ) (uint8_t rhport, tusb_control_request_t const * request);
|
bool (* control_request_complete ) (uint8_t rhport, tusb_control_request_t const * request);
|
||||||
tusb_error_t (* xfer_cb ) (uint8_t rhport, uint8_t ep_addr, xfer_result_t, uint32_t);
|
bool (* xfer_cb ) (uint8_t rhport, uint8_t ep_addr, xfer_result_t, uint32_t);
|
||||||
void (* sof ) (uint8_t rhport);
|
void (* sof ) (uint8_t rhport);
|
||||||
void (* reset ) (uint8_t);
|
void (* reset ) (uint8_t);
|
||||||
} usbd_class_driver_t;
|
} usbd_class_driver_t;
|
||||||
|
|
Loading…
Reference in New Issue