1: uhs_status_t Usbh_Cdc_Exit(
void* stCallback)
2: {
3: ((
void)stCallback);
4:
5: CDC_FUNC_STATUS nRetval;
6: uhs_boolean_t bRetval;
7:
8:
9:
10:
11: IAPI_CDC_REPORT_MILESTONE( USBCDC_CHKPOINTS_API_FINALIZE );
12:
13:
14:
15:
16:
if( g_pCdcDriver == NULL ) {
17: IAPI_CDC_REPORT_SUMMARY( USBCDC_LOG_NOT_INIT );
18:
return(
UDI_STAT_DATA_ERROR );
19: }
20:
21:
22:
23:
24: nRetval = Usbh_Cdc_Acm_Finalize();
25:
if( nRetval != CDC_FUNC_STATUS_SUCCESS ) {
26: IAPI_CDC_REPORT_SUMMARY( USBCDC_LOG_FAILED_CBI_EXIT );
27: (
void)Usbh_Cdc_DeleteCdcDriver( );
28: (
void)CdcUtils_Free(g_pCdcDriver);
29: g_pCdcDriver = NULL;
30:
return(
UDI_STAT_DATA_ERROR );
31: }
32:
33:
34:
35:
36:
37: nRetval = Usbh_Cdc_DeleteCdcDriver();
38:
if( nRetval != CDC_FUNC_STATUS_SUCCESS ) {
39: IAPI_CDC_REPORT_SUMMARY( USBCDC_LOG_FAILED_DEL_CDCD );
40: (
void)CdcUtils_Free(g_pCdcDriver);
41: g_pCdcDriver = NULL;
42:
return(
UDI_STAT_DATA_ERROR );
43: }
44:
45: bRetval = CdcUtils_Free(g_pCdcDriver);
46: g_pCdcDriver = NULL;
47:
if( bRetval != TRUE ) {
48: IAPI_CDC_REPORT_SUMMARY( USBCDC_LOG_SYS_OUT_OF_RESOURCE );
49:
return(
UDI_STAT_RESOURCE_UNAVAIL );
50: }
51:
52:
53:
54:
55: IAPI_CDC_REPORT_MILESTONE( USBCDC_CHKPOINTS_API_FINALIZE_FINISH );
56:
57:
return(
UDI_OK );
58: }