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

GET_CONFIGURATION を発行

Syntax
C++
uhs_status_t Usbh_Api_GetConfiguration(struct usb_control_block* ucb, struct usbd_usb_deviceinfo* usbdev, void * buf);
引数 
説明 
struct usb_control_block* ucb 
[in] USB コントロールブロック 
struct usbd_usb_deviceinfo* usbdev 
[in] USB デバイス構造体 
void * buf 
[out] 結果(1byte)を取得するバッファへのポインタ 

GET_CONFIGURATION の発行結果

返値の詳細 
説明 
正常終了 
状態異常 
パラメータ異常 
リソース不足 
USBリクエストの受付に失敗(キューフル等) 

GET_CONFIGURATION の発行を行います。

buf は非キャッシュ領域を指定して下さい。 

CALLBACK関数内から本関数を呼び出すと、転送処理は行われますがタイムアウトによるエラーリターンします。 

SUSPEND/RESUME中に呼び出すとエラーリターンします。

1: uhs_status_t Usbh_Api_GetConfiguration( 2: struct usb_control_block* ucb, 3: struct usbd_usb_deviceinfo* usbdev, 4: void *buf 5: ) 6: { 7: uhs_status_t retval = UDI_OK; 8: 9: 10: if( Usbh_susres_get_state() != USBH_SUSRES_STS_IDLE ){ 11: uhs_debug_print (DBG_ERR, ("ERROR : Don't Call Current State!!")); 12: CORE_REPORT_ERROR( USBC_ILLEGAL_ERROR ); 13: return UDI_STAT_INVALID_STATE; 14: } 15: 16: if (( ucb == NULL ) || ( usbdev == NULL ) || ( buf == NULL )) { 17: CORE_REPORT_ERROR( USBC_INVALID_PARAMETER ); 18: return UDI_STAT_DATA_ERROR; 19: } 20: 21: 22: Usbh_Api_FixupPipeInfo( 23: &ucb->pipe, 24: ucb->usbdev->usbdev_DevNum, 25: USB_DEFAULT_EP_NUM, 26: USB_PACKETID_IN, 27: USB_TRANS_CONTROL, 28: ucb->usbdev->usbdev_EpMaxpktOut[USB_DEFAULT_EP_NUM] 29: ); 30: 31: retval = Usbh_Api_SyncControlMsg( 32: ucb, 33: USB_DEVICE_REQUEST_TYPE_DEVICE_TO_HOST | 34: USB_DEVICE_REQUEST_TYPE_STANDARD_TYPE | 35: USB_DEVICE_REQUEST_TYPE_DEVICE_RECIPIENT, 36: USB_DEVICE_REQUEST_GET_CONFIGURATION, 37: 0, 38: 0, 39: 0, 40: 0, 41: buf, 42: 1 ); 43: 44: if( retval != UDI_OK) { 45: CORE_REPORT_WARNING(USBC_ILLEGAL_ERROR); 46: } 47: 48: return retval; 49: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.