reame SUBTASK_EXIT to SUBTASK_RETURN

This commit is contained in:
hathach 2018-03-05 13:25:24 +07:00
parent 185b240f03
commit 84bce659b8
6 changed files with 17 additions and 17 deletions

View File

@ -179,7 +179,7 @@ tusb_error_t rndish_open_subtask(uint8_t dev_addr, cdch_data_t *p_cdc)
msg_payload), msg_payload),
error error
); );
if ( TUSB_ERROR_NONE != error ) SUBTASK_EXIT(error); if ( TUSB_ERROR_NONE != error ) SUBTASK_RETURN(error);
// TODO currently not support multiple data packets per xfer // TODO currently not support multiple data packets per xfer
rndis_msg_initialize_cmplt_t * const p_init_cmpt = (rndis_msg_initialize_cmplt_t *) msg_payload; rndis_msg_initialize_cmplt_t * const p_init_cmpt = (rndis_msg_initialize_cmplt_t *) msg_payload;
@ -197,7 +197,7 @@ tusb_error_t rndish_open_subtask(uint8_t dev_addr, cdch_data_t *p_cdc)
msg_payload), msg_payload),
error error
); );
if ( TUSB_ERROR_NONE != error ) SUBTASK_EXIT(error); if ( TUSB_ERROR_NONE != error ) SUBTASK_RETURN(error);
rndis_msg_query_cmplt_t * const p_query_cmpt = (rndis_msg_query_cmplt_t *) msg_payload; rndis_msg_query_cmplt_t * const p_query_cmpt = (rndis_msg_query_cmplt_t *) msg_payload;
SUBTASK_ASSERT(p_query_cmpt->type == RNDIS_MSG_QUERY_CMPLT && p_query_cmpt->status == RNDIS_STATUS_SUCCESS); SUBTASK_ASSERT(p_query_cmpt->type == RNDIS_MSG_QUERY_CMPLT && p_query_cmpt->status == RNDIS_STATUS_SUCCESS);
@ -214,7 +214,7 @@ tusb_error_t rndish_open_subtask(uint8_t dev_addr, cdch_data_t *p_cdc)
msg_payload), msg_payload),
error error
); );
if ( TUSB_ERROR_NONE != error ) SUBTASK_EXIT(error); if ( TUSB_ERROR_NONE != error ) SUBTASK_RETURN(error);
rndis_msg_set_cmplt_t * const p_set_cmpt = (rndis_msg_set_cmplt_t *) msg_payload; rndis_msg_set_cmplt_t * const p_set_cmpt = (rndis_msg_set_cmplt_t *) msg_payload;
SUBTASK_ASSERT(p_set_cmpt->type == RNDIS_MSG_SET_CMPLT && p_set_cmpt->status == RNDIS_STATUS_SUCCESS); SUBTASK_ASSERT(p_set_cmpt->type == RNDIS_MSG_SET_CMPLT && p_set_cmpt->status == RNDIS_STATUS_SUCCESS);
@ -250,12 +250,12 @@ static tusb_error_t send_message_get_response_subtask( uint8_t dev_addr, cdch_da
mess_length, p_mess), mess_length, p_mess),
error error
); );
if ( TUSB_ERROR_NONE != error ) SUBTASK_EXIT(error); if ( TUSB_ERROR_NONE != error ) SUBTASK_RETURN(error);
//------------- waiting for Response Available notification -------------// //------------- waiting for Response Available notification -------------//
(void) hcd_pipe_xfer(p_cdc->pipe_notification, msg_notification[dev_addr-1], 8, true); (void) hcd_pipe_xfer(p_cdc->pipe_notification, msg_notification[dev_addr-1], 8, true);
osal_semaphore_wait(rndish_data[dev_addr-1].sem_notification_hdl, OSAL_TIMEOUT_NORMAL, &error); osal_semaphore_wait(rndish_data[dev_addr-1].sem_notification_hdl, OSAL_TIMEOUT_NORMAL, &error);
if ( TUSB_ERROR_NONE != error ) SUBTASK_EXIT(error); if ( TUSB_ERROR_NONE != error ) SUBTASK_RETURN(error);
SUBTASK_ASSERT(msg_notification[dev_addr-1][0] == 1); SUBTASK_ASSERT(msg_notification[dev_addr-1][0] == 1);
//------------- Get RNDIS Message Initialize Complete -------------// //------------- Get RNDIS Message Initialize Complete -------------//
@ -265,7 +265,7 @@ static tusb_error_t send_message_get_response_subtask( uint8_t dev_addr, cdch_da
RNDIS_MSG_PAYLOAD_MAX, p_response), RNDIS_MSG_PAYLOAD_MAX, p_response),
error error
); );
if ( TUSB_ERROR_NONE != error ) SUBTASK_EXIT(error); if ( TUSB_ERROR_NONE != error ) SUBTASK_RETURN(error);
OSAL_SUBTASK_END OSAL_SUBTASK_END
} }

View File

@ -239,11 +239,11 @@ tusb_error_t hidh_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con
#endif #endif
{ {
SUBTASK_EXIT(TUSB_ERROR_HIDH_NOT_SUPPORTED_PROTOCOL); // exit & restart task SUBTASK_RETURN(TUSB_ERROR_HIDH_NOT_SUPPORTED_PROTOCOL); // exit & restart task
} }
}else }else
{ {
SUBTASK_EXIT(TUSB_ERROR_HIDH_NOT_SUPPORTED_SUBCLASS); // exit & restart task SUBTASK_RETURN(TUSB_ERROR_HIDH_NOT_SUPPORTED_SUBCLASS); // exit & restart task
} }
*p_length = sizeof(tusb_descriptor_interface_t) + sizeof(tusb_hid_descriptor_hid_t) + sizeof(tusb_descriptor_endpoint_t); *p_length = sizeof(tusb_descriptor_interface_t) + sizeof(tusb_hid_descriptor_hid_t) + sizeof(tusb_descriptor_endpoint_t);

View File

@ -87,8 +87,8 @@ void hal_dcd_set_address (uint8_t coreid, uint8_t dev_addr);
void hal_dcd_set_config (uint8_t coreid, uint8_t config_num); void hal_dcd_set_config (uint8_t coreid, uint8_t config_num);
/*------------- Event function -------------*/ /*------------- Event function -------------*/
void hal_dcd_setup_received(uint8_t coreid, uint8_t const* p_request);
void hal_dcd_bus_event(uint8_t coreid, usbd_bus_event_type_t bus_event); void hal_dcd_bus_event(uint8_t coreid, usbd_bus_event_type_t bus_event);
void hal_dcd_setup_received(uint8_t coreid, uint8_t const* p_request);
//------------- PIPE API -------------// //------------- PIPE API -------------//
bool dcd_pipe_control_xfer(uint8_t coreid, tusb_direction_t dir, uint8_t * p_buffer, uint16_t length, bool int_on_complete); bool dcd_pipe_control_xfer(uint8_t coreid, tusb_direction_t dir, uint8_t * p_buffer, uint16_t length, bool int_on_complete);

View File

@ -207,8 +207,8 @@ tusb_error_t usbh_control_xfer_subtask(uint8_t dev_addr, uint8_t bmRequestType,
osal_mutex_release(usbh_devices[dev_addr].control.mutex_hdl); osal_mutex_release(usbh_devices[dev_addr].control.mutex_hdl);
SUBTASK_ASSERT_STATUS(error); SUBTASK_ASSERT_STATUS(error);
if (TUSB_EVENT_XFER_STALLED == usbh_devices[dev_addr].control.pipe_status) SUBTASK_EXIT(TUSB_ERROR_USBH_XFER_STALLED); if (TUSB_EVENT_XFER_STALLED == usbh_devices[dev_addr].control.pipe_status) SUBTASK_RETURN(TUSB_ERROR_USBH_XFER_STALLED);
if (TUSB_EVENT_XFER_ERROR == usbh_devices[dev_addr].control.pipe_status) SUBTASK_EXIT(TUSB_ERROR_USBH_XFER_FAILED); if (TUSB_EVENT_XFER_ERROR == usbh_devices[dev_addr].control.pipe_status) SUBTASK_RETURN(TUSB_ERROR_USBH_XFER_FAILED);
// SUBTASK_ASSERT_WITH_HANDLER(TUSB_ERROR_NONE == error && // SUBTASK_ASSERT_WITH_HANDLER(TUSB_ERROR_NONE == error &&
// TUSB_EVENT_XFER_COMPLETE == usbh_devices[dev_addr].control.pipe_status, // TUSB_EVENT_XFER_COMPLETE == usbh_devices[dev_addr].control.pipe_status,
@ -388,7 +388,7 @@ tusb_error_t enumeration_body_subtask(void)
{ // connection event { // connection event
osal_task_delay(POWER_STABLE_DELAY); // wait until device is stable. Increase this if the first 8 bytes is failed to get osal_task_delay(POWER_STABLE_DELAY); // wait until device is stable. Increase this if the first 8 bytes is failed to get
if ( !hcd_port_connect_status(usbh_devices[0].core_id) ) SUBTASK_EXIT(TUSB_ERROR_NONE); // exit if device unplugged while delaying if ( !hcd_port_connect_status(usbh_devices[0].core_id) ) SUBTASK_RETURN(TUSB_ERROR_NONE); // exit if device unplugged while delaying
hcd_port_reset( usbh_devices[0].core_id ); // port must be reset to have correct speed operation hcd_port_reset( usbh_devices[0].core_id ); // port must be reset to have correct speed operation
osal_task_delay(RESET_DELAY); osal_task_delay(RESET_DELAY);
@ -398,7 +398,7 @@ tusb_error_t enumeration_body_subtask(void)
else else
{ // disconnection event { // disconnection event
usbh_device_unplugged(usbh_devices[0].core_id, 0, 0); usbh_device_unplugged(usbh_devices[0].core_id, 0, 0);
SUBTASK_EXIT(TUSB_ERROR_NONE); // restart task SUBTASK_RETURN(TUSB_ERROR_NONE); // restart task
} }
} }
#if TUSB_CFG_HOST_HUB #if TUSB_CFG_HOST_HUB
@ -421,14 +421,14 @@ tusb_error_t enumeration_body_subtask(void)
hub_port_status_response_t * p_port_status; hub_port_status_response_t * p_port_status;
p_port_status = ((hub_port_status_response_t *) enum_data_buffer); p_port_status = ((hub_port_status_response_t *) enum_data_buffer);
if ( ! p_port_status->status_change.connect_status ) SUBTASK_EXIT(TUSB_ERROR_NONE); // only handle connection change if ( ! p_port_status->status_change.connect_status ) SUBTASK_RETURN(TUSB_ERROR_NONE); // only handle connection change
if ( ! p_port_status->status_current.connect_status ) if ( ! p_port_status->status_current.connect_status )
{ // Disconnection event { // Disconnection event
usbh_device_unplugged(usbh_devices[0].core_id, usbh_devices[0].hub_addr, usbh_devices[0].hub_port); usbh_device_unplugged(usbh_devices[0].core_id, usbh_devices[0].hub_addr, usbh_devices[0].hub_port);
(void) hub_status_pipe_queue( usbh_devices[0].hub_addr ); // done with hub, waiting for next data on status pipe (void) hub_status_pipe_queue( usbh_devices[0].hub_addr ); // done with hub, waiting for next data on status pipe
SUBTASK_EXIT(TUSB_ERROR_NONE); // restart task SUBTASK_RETURN(TUSB_ERROR_NONE); // restart task
} }
else else
{ // Connection Event { // Connection Event

View File

@ -74,7 +74,7 @@
#define OSAL_SUBTASK_BEGIN #define OSAL_SUBTASK_BEGIN
#define OSAL_SUBTASK_END return TUSB_ERROR_NONE; #define OSAL_SUBTASK_END return TUSB_ERROR_NONE;
#define SUBTASK_EXIT(error) return error; #define SUBTASK_RETURN(error) return error;
#define OSAL_SUBTASK_INVOKED_AND_WAIT(subtask, status) status = subtask #define OSAL_SUBTASK_INVOKED_AND_WAIT(subtask, status) status = subtask
//------------- Sub Task Assert -------------// //------------- Sub Task Assert -------------//

View File

@ -127,7 +127,7 @@ static inline osal_task_t osal_task_create(osal_func_t code, const char* name, u
}while(0) }while(0)
//------------- Sub Task Assert -------------// //------------- Sub Task Assert -------------//
#define SUBTASK_EXIT(error) \ #define SUBTASK_RETURN(error) \
do { TASK_RESTART; return error; } while(0) do { TASK_RESTART; return error; } while(0)
#define _SUBTASK_ASSERT_ERROR_HANDLER(error, func_call) \ #define _SUBTASK_ASSERT_ERROR_HANDLER(error, func_call) \