?? hoststack.h
字號:
********************************************************************************************************/
__inline endpoint_info * find_endport_number(device_instance *dviPtr, unsigned char endport_number,
unsigned char endport_direction)
{
return (endpoint_info *)SwiHandle(0x117, dviPtr, endport_number, endport_direction);
}
/*********************************************************************************************************
** Function name: Get_bInterfaceProtocol
** Descriptions: 獲取接口協議代碼
** Input:*dvi_ptr: 設備描述信息結構指針
** Output : 接口協議代碼
** Created by:
** Created Date:
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__inline uint8 Get_bInterfaceProtocol(device_instance *dvi_ptr)
{
return SwiHandle(0x118, dvi_ptr);
}
/*********************************************************************************************************
** Function name: Get_bInterfaceSubClass
** Descriptions: 獲取接口子類代碼
** Input:*dvi_ptr: 設備描述信息結構指針
** Output :接口子類代碼
** Created by:
** Created Date:
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__inline uint8 Get_bInterfaceSubClass(device_instance *dvi_ptr)
{
return SwiHandle(0x119, dvi_ptr);
}
/*********************************************************************************************************
** Function name: atl_open_transfer_instance
** Descriptions: 在傳描述符數據結構列表中,查找空閑的傳輸描述符數據結構
** Input: epi_ptr,端點描述數據結構
** Output : 正常返回:transfer_instance指針
** 出錯返回:ATL_ENDPOINT_ERR
** NO_OPEN_ATL_TRANSFER
** Created by:
** Created Date:
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#define NO_OPEN_ATL_TRANSFER (void *)0xFFFFFFFF
#define ATL_ENDPOINT_ERR NO_OPEN_ATL_TRANSFER
__inline transfer_instance *atl_open_transfer_instance( endpoint_info * epi_ptr)
{
return (transfer_instance *)SwiHandle(0x11a, epi_ptr);
}
/*********************************************************************************************************
** Function name: atl_close_transfer_instance
** Descriptions: 通過atl_open_transfer_instance()申請的資源,通過該函數釋放.
** Input: tr_instance_ptr,傳輸描述符數據結構指針
** Output : 無
** Created by:
** Created Date:
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__inline void atl_close_transfer_instance(transfer_instance *tr_instance_ptr)
{
SwiHandle(0x11b, tr_instance_ptr);
}
/*********************************************************************************************************
** Function name: h_get_epi_from_tr
** Descriptions: 從傳輸描述符中獲取端點描述信息
** Input:*tr_ptr: 傳輸描述信息結構指針
** Output :端點描述信息數據結構指針
** Created by:
** Created Date:
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__inline endpoint_info *h_get_epi_from_tr(transfer_instance *tr_ptr)
{
return (endpoint_info *)SwiHandle(0x11c, tr_ptr);
}
/*******************************************************************************************************
** 控制傳輸\批量傳輸\中斷傳輸 使用的宏
********************************************************************************************************/
#define CompletionCode_NoEror 0x0
#define CompletionCode_CRC 0x1
#define CompletionCode_BitStuffing 0x2
#define CompletionCode_DataToggleMismatch 0x3
#define CompletionCode_Stall 0x4
#define CompletionCode_DeviceNotResponding 0x5
#define CompletionCode_PIDCheckFailure 0x6
#define CompletionCode_UnexpectedPID 0x7
#define CompletionCode_DataOverrun 0x8
#define CompletionCode_DataUnderrun 0x9
#define CompletionCode_BufferOverrun 0xC
#define CompletionCode_BufferUnderrun 0xD
#define DirectionPID_OUT 1 // 傳輸方向,主機到設備
#define DirectionPID_IN 2 // 傳輸方向,設備到主機
#define NoDirection_Just_Hold 3 // 中斷傳輸時使用,無數據傳輸
/*******************************************************************************************************
** 控制傳輸 使用的數據結構
********************************************************************************************************/
typedef struct req {
unsigned char bmRequestType;
unsigned char bRequest;
unsigned short wValue;
unsigned short wIndex;
unsigned short wLength;
}
USB_Device_Request;
/*********************************************************************************************************
** Function name: control_transfer
** Descriptions: 通過該函數處理控制傳輸。
** Input: *dev_req,設備請求數據結構指針
** *dvi_ptr,設備描述結構指針
** *data_ptr, 數據傳輸指針
** Output :正常返回0,出錯返回:
** error @ SETUP 0x-0--
** error @ DataStage 0x-1--
** error @ StatusStage 0x-2--
** error @ CC 0x--CC (CC=value 0x01-0x0D)
** retry over 0x--FF
** data short 0x8000 | (0x7FFF & DataLength)
** Created by:
** Created Date:
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__inline unsigned short control_transfer(USB_Device_Request *dev_req,
device_instance *dvi_ptr,
unsigned char *data_ptr)
{
return SwiHandle(0x11d, dev_req, dvi_ptr, data_ptr);
}
/*********************************************************************************************************
** Function name: bulk_transaction
** Descriptions: 批量傳輸處理函數
** Input: direction,傳輸方向(DirectionPID_OUT,DirectionPID_IN)
** *data_ptr,傳輸數據緩沖區指針
** *size_ptr,傳輸數據長度變量指針
** *hTrInstance,傳輸描述符數據結構指針
** Output : 正常返回0,
** 出錯返回非0,如:completion_code,完成代碼
** Created by:
** Created Date:
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__inline unsigned char bulk_transaction( unsigned char direction, unsigned char *data_ptr,
unsigned short *size_ptr, transfer_instance *hTrInstance)
{
return SwiHandle(0x11e, direction, data_ptr, size_ptr, hTrInstance);
}
/*********************************************************************************************************
** Function name: interrupt_transaction
** Descriptions: 中斷傳輸處理函數
** Input: direction,傳輸方向(DirectionPID_OUT,DirectionPID_IN)
** *data_ptr,傳輸數據緩沖區指針
** *size_ptr,傳輸數據長度變量指針
** *hTrInstance,傳輸描述符數據結構指針
** Output : 正常返回0,
** 出錯返回非0,如:completion_code,完成代碼
** Created by:
** Created Date:
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__inline unsigned char interrupt_transaction(unsigned char direction, unsigned char *data_ptr,
unsigned short *size_ptr, transfer_instance *hTrInstance)
{
return SwiHandle(0x11f, direction, data_ptr, size_ptr, hTrInstance);
}
/*********************************************************************************************************
** Function name: ClearEndpointSTALL
** Descriptions: 清除端點停止狀態
** Input: dvi_ptr,USB設備描述信息數據結構
** epi_ptr,端點描述信息數據結構
** FALSE,出錯返回。
** Created by:
** Created Date:
**-------------------------------------------------------------------------------------------------------
** Modified by:
** Modified Date:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
__inline unsigned char ClearEndpointSTALL(device_instance *dvi_ptr, endpoint_info *epi_ptr)
{
return SwiHandle(0x120, dvi_ptr, epi_ptr);
}
#ifdef __cplusplus
}
#endif
#endif
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -