AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
1: uhs_status_t Usbh_Api_DriverRegister(struct class_driver_reginfo * driver_info) 2: { 3: uhs_status_t retval = UDI_OK; 4: 5: 6: if( Usbh_susres_get_state() != USBH_SUSRES_STS_IDLE ){ 7: uhs_debug_print (DBG_ERR, ("ERROR : Don't Call Current State!!")); 8: CORE_REPORT_ERROR( USBC_ILLEGAL_ERROR ); 9: return UDI_STAT_INVALID_STATE; 10: } 11: 12: if ( driver_info == NULL ) { 13: CORE_REPORT_ERROR(USBC_INVALID_PARAMETER); 14: return UDI_STAT_DATA_ERROR; 15: } 16: 17: 18: retval = kernel_acquisition_semaphore( 19: &(g_apiwrap_info.drvinfo_semid), 20: USB_HOST_SEMTIMEOUT, 21: in_interrupt()); 22: if ( retval != UDI_OK ) { 23: 24: 25: 26: CORE_REPORT_ERROR( USBC_ILLEGAL_ERROR ); 27: 28: return UDI_STAT_INVALID_STATE; 29: } 30: 31: if ( g_apiwrap_info.apiwrap_stat != USBWRAP_STAT_USBD_INITCOMP ) { 32: 35: 36: 37: lists_addition_ListTail( 38: &g_apiwrap_info.tmp_drvlist, 39: driver_info ); 40: 41: } else { 42: 45: retval = Usbh_DriverRegister( driver_info ); 46: if ( retval != UDI_OK ) { 47: CORE_REPORT_ERROR( USBC_ILLEGAL_ERROR ); 48: 49: 50: retval = kernel_release_semaphore(&(g_apiwrap_info.drvinfo_semid), in_interrupt()); 51: if( retval !=UDI_OK ) { 52: CORE_REPORT_ERROR(USBC_ILLEGAL_ERROR); 53: } 54: 55: return UDI_STAT_INVALID_STATE; 56: } 57: } 58: 59: 60: retval = kernel_release_semaphore(&(g_apiwrap_info.drvinfo_semid), in_interrupt()); 61: if( retval !=UDI_OK ) { 62: CORE_REPORT_ERROR(USBC_ILLEGAL_ERROR); 63: return UDI_STAT_INVALID_STATE; 64: } 65: 66: return UDI_OK; 67: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.