AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
Usb_HubApi_RESET_TT 関数

ResetTTの発行

Syntax
C++
uhs_status_t Usb_HubApi_RESET_TT(struct usb_hub_info* hub_info, uhs_ubit16_t tt_port);
引数 
説明 
struct usb_hub_info* hub_info 
[in] HUBデバイス情報構造体用ポインタ 
uhs_ubit16_t tt_port 
[in] TTポート番号 

ResetTTの発行結果

返値の詳細 
説明 
正常終了 
ステートエラー 
パラメータエラー 

対象HUBの指定TTに対して、ResetTTリクエストを発行します。

1: uhs_status_t Usb_HubApi_RESET_TT( struct usb_hub_info* hub_info, uhs_ubit16_t tt_port ) 2: { 3: uhs_status_t retval = UDI_OK; 4: uhs_status_t result = UDI_OK; 5: 6: 7: 8: 9: if( ( g_usb_hub_stat != USB_HUB_IDLE ) && ( g_usb_hub_stat != USB_HUB_RUN ) ){ 10: uhs_debug_print( DBG_ERR, ( "Usb_HubApi_ClearTTBuffer: status error" ) ); 11: HUB_REPORT_ERROR( USBCLS_HUB_INVALID_STATUS, 0 ); 12: return UDI_STAT_INVALID_STATE; 13: } 14: 15: 16: 17: 18: if( hub_info == NULL ){ 19: uhs_debug_print( DBG_ERR, ( "Usb_HubApi_ClearTTBuffer: parameter error" ) ); 20: HUB_REPORT_ERROR( USBCLS_HUB_INVALID_PARAMETER, 0 ); 21: return UDI_STAT_DATA_ERROR; 22: } 23: if( (hub_info->port_num < 1) || (hub_info->port_num > HUB_MAX_PORT_NUM) ){ 24: uhs_debug_print( DBG_ERR, ( "Usb_HubApi_ClearTTBuffer: parameter error" ) ); 25: HUB_REPORT_ERROR( USBCLS_HUB_INVALID_PARAMETER, 0 ); 26: return UDI_STAT_DATA_ERROR; 27: } 28: 29: 30: 31: 32: retval = kernel_acquisition_semaphore( &(hub_info->hub_info_sem), USB_HOST_SEMTIMEOUT, in_interrupt() ); 33: if( retval != UDI_OK ){ 34: uhs_debug_print( DBG_ERR, ( "Usb_HubApi_ClearTTBuffer: semaphore error" ) ); 35: HUB_REPORT_WARNING( USBCLS_HUB_RESOURCE_UNAVAIL, 0 ); 36: return retval; 37: } 38: 39: 40: 41: 42: #ifdef USBH_DBG_ADD_MESSAGE 43: uhs_debug_print( DBG_ERR, ( "RESET_TT called by external module( Usb_HubApi_RESET_TT() )" ) ); 44: #endif 45: result = Usb_Hub_RESET_TT( hub_info, tt_port ); 46: if( result != UDI_OK ){ 47: uhs_debug_print( DBG_ERR, ( "Usb_HubApi_PortDevDttached: PortDevDetach error" ) ); 48: HUB_REPORT_WARNING( USBCLS_HUB_ILLEGAL_ERROR, 0 ); 49: } 50: 51: 52: 53: 54: retval = kernel_release_semaphore( &(hub_info->hub_info_sem), in_interrupt() ); 55: if( retval != UDI_OK ){ 56: uhs_debug_print( DBG_ERR, ( "Usb_HubApi_ClearTTBuffer: semaphore error" ) ); 57: HUB_REPORT_ERROR( USBCLS_HUB_RESOURCE_UNAVAIL, 0 ); 58: 59: if( result == UDI_OK ){ 60: return retval; 61: } 62: } 63: 64: return result; 65: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.