change signature for dfu runtime

This commit is contained in:
hathach
2020-05-28 00:46:32 +07:00
parent e340404968
commit 2eeeda1bcf
2 changed files with 13 additions and 12 deletions

View File

@@ -56,24 +56,25 @@ void dfu_rtd_reset(uint8_t rhport)
(void) rhport; (void) rhport;
} }
bool dfu_rtd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length) uint16_t dfu_rtd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t max_len)
{ {
(void) rhport; (void) rhport;
(void) max_len;
// Ensure this is DFU Runtime // Ensure this is DFU Runtime
TU_VERIFY(itf_desc->bInterfaceSubClass == TUD_DFU_APP_SUBCLASS); TU_VERIFY(itf_desc->bInterfaceSubClass == TUD_DFU_APP_SUBCLASS &&
TU_VERIFY(itf_desc->bInterfaceProtocol == DFU_PROTOCOL_RT); itf_desc->bInterfaceProtocol == DFU_PROTOCOL_RT, 0);
uint8_t const * p_desc = tu_desc_next( itf_desc ); uint8_t const * p_desc = tu_desc_next( itf_desc );
(*p_length) = sizeof(tusb_desc_interface_t); uint16_t len = sizeof(tusb_desc_interface_t);
if ( TUSB_DESC_FUNCTIONAL == tu_desc_type(p_desc) ) if ( TUSB_DESC_FUNCTIONAL == tu_desc_type(p_desc) )
{ {
(*p_length) += p_desc[DESC_OFFSET_LEN]; len += tu_desc_len(p_desc);
p_desc = tu_desc_next(p_desc); p_desc = tu_desc_next(p_desc);
} }
return true; return len;
} }
bool dfu_rtd_control_complete(uint8_t rhport, tusb_control_request_t const * request) bool dfu_rtd_control_complete(uint8_t rhport, tusb_control_request_t const * request)

View File

@@ -65,7 +65,7 @@ TU_ATTR_WEAK void tud_dfu_rt_reboot_to_dfu(void); // TODO rename to _cb conventi
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
void dfu_rtd_init(void); void dfu_rtd_init(void);
void dfu_rtd_reset(uint8_t rhport); void dfu_rtd_reset(uint8_t rhport);
bool dfu_rtd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t *p_length); uint16_t dfu_rtd_open(uint8_t rhport, tusb_desc_interface_t const * itf_desc, uint16_t max_len);
bool dfu_rtd_control_request(uint8_t rhport, tusb_control_request_t const * request); bool dfu_rtd_control_request(uint8_t rhport, tusb_control_request_t const * request);
bool dfu_rtd_control_complete(uint8_t rhport, tusb_control_request_t const * request); bool dfu_rtd_control_complete(uint8_t rhport, tusb_control_request_t const * request);
bool dfu_rtd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes); bool dfu_rtd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes);