1: uhs_status_t Usbh_Hid_Exit(
void* stCallback)
2: {
3: ((
void)stCallback);
4:
5: HID_FUNC_STATUS nRetval;
6: uhs_boolean_t bRetval;
7:
8:
9:
10:
11: IAPI_HID_REPORT_MILESTONE( USBHID_CHKPOINTS_API_FINALIZE );
12:
13:
14:
15:
16:
if( g_pHidDriver == NULL ) {
17: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_NOT_INIT );
18:
return(
UDI_STAT_DATA_ERROR );
19: }
20:
21:
22:
23:
24: nRetval = Usbh_Hid_Boot_Finalize();
25:
if( nRetval != HID_FUNC_STATUS_SUCCESS ) {
26: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_FAILED_BOOT_EXIT );
27: (
void)Usbh_Hid_DeleteHidDriver( );
28: (
void)HidUtils_Free(g_pHidDriver);
29: g_pHidDriver = NULL;
30:
return(
UDI_STAT_DATA_ERROR );
31: }
32:
33:
34:
35:
36:
37: nRetval = Usbh_Hid_DeleteHidDriver();
38:
if( nRetval != HID_FUNC_STATUS_SUCCESS ) {
39: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_FAILED_DEL_HIDD );
40: (
void)HidUtils_Free(g_pHidDriver);
41: g_pHidDriver = NULL;
42:
return(
UDI_STAT_DATA_ERROR );
43: }
44:
45: bRetval = HidUtils_Free(g_pHidDriver);
46: g_pHidDriver = NULL;
47:
if( bRetval != TRUE ) {
48: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_SYS_OUT_OF_RESOURCE );
49:
return(
UDI_STAT_RESOURCE_UNAVAIL );
50: }
51:
52:
53:
54:
55: IAPI_HID_REPORT_MILESTONE( USBHID_CHKPOINTS_API_FINALIZE_FINISH );
56:
57:
return(
UDI_OK );
58: }