1: uhs_status_t Usbh_Api_CancelDisableAttDet(
void )
2: {
3: uhs_status_t retval =
UDI_STAT_INVALID_STATE;
4: uhs_status_t result;
5: UHS_MSG_APIWRAP_ANS_DIS_ATTDET_FMT *rcv_msg;
6:
7:
8:
9: retval = kernel_create_message( &g_suspend_reqans_mbox );
10:
if(retval !=
UDI_OK){
11: CORE_REPORT_ERROR(
USBC_RESOURCE_UNAVAIL );
12:
return UDI_STAT_RESOURCE_UNAVAIL;
13: }
14:
15:
16:
17: retval = Usbh_susres_SendMsg_req_susres( &g_suspend_reqans_mbox , USBH_APIWRAP_MSGID_REQ_CANCEL_DIS_ATTDET );
18:
if(retval !=
UDI_OK){
19: kernel_delete_message( &g_suspend_reqans_mbox , in_interrupt() );
20: CORE_REPORT_ERROR(
USBC_RESOURCE_UNAVAIL );
21:
return UDI_STAT_RESOURCE_UNAVAIL;
22: }
23:
24:
25: retval = kernel_receive_message(
26: &g_suspend_reqans_mbox ,
27: (T_MSG **)&rcv_msg,
28: WAITFOREVER ,
29: in_interrupt()
30: );
31:
if(retval !=
UDI_OK){
32: kernel_delete_message( &g_suspend_reqans_mbox , in_interrupt() );
33: CORE_REPORT_ERROR(
USBC_ILLEGAL_ERROR);
34:
return retval;
35: }
36:
37:
#ifdef USBH_COMMON_DISP_MESSID
38:
39: Usbh_common_DisplayMessage( (
void *)rcv_msg , "API_WR_SUSD" );
40:
#endif
41:
42: 43: retval = rcv_msg->result;
44:
45:
46: result = kernel_mem_free( &g_apiwrap_info.mpl_osc , (
void*)rcv_msg , in_interrupt() );
47:
if( result !=
UDI_OK ) {
48: CORE_REPORT_ERROR(
USBC_ILLEGAL_ERROR );
49: }
50:
51:
52: result = kernel_delete_message( &g_suspend_reqans_mbox , in_interrupt() );
53:
if(result !=
UDI_OK){
54: CORE_REPORT_ERROR(
USBC_ILLEGAL_ERROR );
55: }
56:
57:
#ifdef USBH_DBG_ADD_MESSAGE
58: uhs_debug_print( DBG_ERR, ( "Return Usbh_Api_CancelDisableAttDet (result=%d)",retval) );
59:
#endif
60:
return retval;
61: }