AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
1: uhs_status_t Usbh_Hid_RestartIntIN(void* pContext) 2: { 3: PHID_DEVICE pHidDevice; 4: uhs_status_t nRetvalResorce; 5: HID_FUNC_STATUS nRetval; 6: uhs_ubit8_t u8CntDeviceId; 7: uhs_status_t nRetStatus; 8: 9: 10: 11: 12: if( pContext == NULL ) { 13: CIAPI_HID_REPORT_SUMMARY( USBHID_LOG_SYS_PARAM_ERROR ); 14: return( USBHID_API_PARAM_ERROR ); 15: } 16: 17: 18: 19: 20: if( g_pHidDriver == NULL ) { 21: CIAPI_HID_REPORT_SUMMARY( USBHID_LOG_NOT_INIT ); 22: return( USBHID_API_SYS_SYSTEM_ERROR ); 23: } 24: 25: 26: 27: 28: 29: nRetStatus = Usbh_Hid_CheckDeviceStatus(pContext, &pHidDevice, &u8CntDeviceId, ID_API_DET); 30: if(nRetStatus != USBHID_API_SUCCESS){ 31: CIAPI_HID_REPORT_SUMMARY( USBHID_LOG_SYS_SYSTEM_ERROR ); 32: return(nRetStatus); 33: } 34: 35: 36: 37: 38: nRetvalResorce = HidUtils_AcquisitionSemaphore(pHidDevice->pIntInExecuteLock, WAITFOREVER); 39: if( nRetvalResorce != TRUE ){ 40: 41: 42: 43: (void)HidUtils_ReleaseSemaphore( g_pHidDriver->pApiDetAccessLock[u8CntDeviceId] ); 44: CIAPI_HID_REPORT_SUMMARY( USBHID_LOG_SYS_OUT_OF_RESOURCE ); 45: return( USBHID_API_SYS_OUT_OF_RESOURCE ); 46: } 47: 48: 49: 50: 51: if( pHidDevice->nDeviceStat == HID_DEVICE_STAT_CONNECTING ) { 52: 53: 54: (void)HidUtils_ReleaseSemaphore( pHidDevice->pIntInExecuteLock ); 55: (void)HidUtils_ReleaseSemaphore( g_pHidDriver->pApiDetAccessLock[u8CntDeviceId] ); 56: CIAPI_HID_REPORT_SUMMARY( USBHID_LOG_NOT_USE ); 57: return( USBHID_API_NOT_READY ); 58: } 59: else if( pHidDevice->nDeviceStat == HID_DEVICE_STAT_NO_SUPPORT ) { 60: 61: 62: (void)HidUtils_ReleaseSemaphore( pHidDevice->pIntInExecuteLock ); 63: (void)HidUtils_ReleaseSemaphore( g_pHidDriver->pApiDetAccessLock[u8CntDeviceId] ); 64: CIAPI_HID_REPORT_SUMMARY( USBHID_LOG_NO_SUPPORT ); 65: return( USBHID_API_NO_SUPPORT ); 66: } 67: else { 68: ; 69: } 70: 71: 72: if( pHidDevice->pIntInBuff->isIntINUserFlag == TRUE ) { 73: 74: 75: (void)HidUtils_ReleaseSemaphore( pHidDevice->pIntInExecuteLock ); 76: 77: 78: 79: (void)HidUtils_ReleaseSemaphore( g_pHidDriver->pApiDetAccessLock[u8CntDeviceId] ); 80: 81: 82: CIAPI_HID_REPORT_SUMMARY( USBHID_LOG_ALREADY_START_INTIN ); 83: return( USBHID_API_ALREADY_START_INTIN ); 84: } 85: 86: 87: 88: 89: nRetval = Usbh_Hid_IssueIntInMsg(pHidDevice); 90: if(nRetval != HID_FUNC_STATUS_SUCCESS ) { 91: 92: 93: (void)HidUtils_ReleaseSemaphore( pHidDevice->pIntInExecuteLock ); 94: 95: 96: 97: (void)HidUtils_ReleaseSemaphore( g_pHidDriver->pApiDetAccessLock[u8CntDeviceId] ); 98: 99: 100: CIAPI_HID_REPORT_SUMMARY( USBHID_LOG_FAILED_INTERRUPT ); 101: return( USBHID_API_TRANS_INT_FAILED ); 102: } 103: 104: 105: 106: 107: pHidDevice->pIntInBuff->isIntINUserFlag = TRUE; 108: 109: 110: 111: 112: nRetvalResorce = HidUtils_ReleaseSemaphore( pHidDevice->pIntInExecuteLock ); 113: if(nRetvalResorce != TRUE){ 114: 115: 116: (void)HidUtils_ReleaseSemaphore( g_pHidDriver->pApiDetAccessLock[u8CntDeviceId] ); 117: 118: 119: CIAPI_HID_REPORT_SUMMARY( USBHID_LOG_SYS_OUT_OF_RESOURCE ); 120: return( USBHID_API_SYS_OUT_OF_RESOURCE ); 121: } 122: 123: 124: 125: 126: nRetvalResorce = HidUtils_ReleaseSemaphore( g_pHidDriver->pApiDetAccessLock[u8CntDeviceId] ); 127: if(nRetvalResorce != TRUE){ 128: 129: CIAPI_HID_REPORT_SUMMARY( USBHID_LOG_SYS_OUT_OF_RESOURCE ); 130: return( USBHID_API_SYS_OUT_OF_RESOURCE ); 131: } 132: 133: return( USBHID_API_SUCCESS ); 134: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.