本文整理汇总了C++中WDI_DS_ClientDataType::txCompleteCB方法的典型用法代码示例。如果您正苦于以下问题:C++ WDI_DS_ClientDataType::txCompleteCB方法的具体用法?C++ WDI_DS_ClientDataType::txCompleteCB怎么用?C++ WDI_DS_ClientDataType::txCompleteCB使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WDI_DS_ClientDataType
的用法示例。
在下文中一共展示了WDI_DS_ClientDataType::txCompleteCB方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WDTS_TxPacketComplete
/* DTS Tx packet complete function.
* This function should be invoked by the transport device to indicate
* transmit complete for a frame.
* Parameters:
* pContext:Cookie that should be passed back to the caller
* pFrame:Refernce to PAL frame.
* Return Value: SUCCESS Completed successfully.
* FAILURE_XXX Request was rejected due XXX Reason.
*
*/
wpt_status WDTS_TxPacketComplete(void *pContext, wpt_packet *pFrame, wpt_status status)
{
WDI_DS_ClientDataType *pClientData = (WDI_DS_ClientDataType*)(pContext);
WDI_DS_TxMetaInfoType *pTxMetadata;
void *pvBDHeader, *physBDHeader;
wpt_uint8 staIndex;
// Do Sanity checks
if(NULL == pContext || NULL == pFrame){
return eWLAN_PAL_STATUS_E_FAILURE;
}
// extract metadata from PAL packet
pTxMetadata = WDI_DS_ExtractTxMetaData(pFrame);
pTxMetadata->txCompleteStatus = status;
// Free BD header from pool
WDI_GetBDPointers(pFrame, &pvBDHeader, &physBDHeader);
switch(pTxMetadata->frmType)
{
case WDI_MAC_DATA_FRAME:
/* note that EAPOL frame hasn't incremented ReserveCount. see
WDI_DS_TxPacket() in wlan_qct_wdi_ds.c
*/
#ifdef FEATURE_WLAN_TDLS
/* I utilizes TDLS mgmt frame always sent at BD_RATE2. (See limProcessTdls.c)
Assumption here is data frame sent by WDA_TxPacket() <- HalTxFrame/HalTxFrameWithComplete()
should take managment path. As of today, only TDLS feature has special data frame
which needs to be treated as mgmt.
*/
if((!pTxMetadata->isEapol) &&
((pTxMetadata->txFlags & WDI_USE_BD_RATE2_FOR_MANAGEMENT_FRAME) != WDI_USE_BD_RATE2_FOR_MANAGEMENT_FRAME))
#else
if(!pTxMetadata->isEapol)
#endif
{
/* SWAP BD header to get STA index for completed frame */
WDI_SwapTxBd(pvBDHeader);
staIndex = (wpt_uint8)WDI_TX_BD_GET_STA_ID(pvBDHeader);
WDI_DS_MemPoolFree(&(pClientData->dataMemPool), pvBDHeader, physBDHeader);
WDI_DS_MemPoolDecreaseReserveCount(&(pClientData->dataMemPool), staIndex);
break;
}
// intentional fall-through to handle eapol packet as mgmt
case WDI_MAC_MGMT_FRAME:
WDI_DS_MemPoolFree(&(pClientData->mgmtMemPool), pvBDHeader, physBDHeader);
break;
}
WDI_SetBDPointers(pFrame, 0, 0);
// Invoke Tx complete callback
pClientData->txCompleteCB(pClientData->pCallbackContext, pFrame);
return eWLAN_PAL_STATUS_SUCCESS;
}
示例2: WDTS_TxPacketComplete
/* DTS Tx packet complete function.
* This function should be invoked by the transport device to indicate
* transmit complete for a frame.
* Parameters:
* pContext:Cookie that should be passed back to the caller
* pFrame:Refernce to PAL frame.
* Return Value: SUCCESS Completed successfully.
* FAILURE_XXX Request was rejected due XXX Reason.
*
*/
wpt_status WDTS_TxPacketComplete(void *pContext, wpt_packet *pFrame, wpt_status status)
{
WDI_DS_ClientDataType *pClientData = (WDI_DS_ClientDataType*)(pContext);
WDI_DS_TxMetaInfoType *pTxMetadata;
void *pvBDHeader, *physBDHeader;
wpt_uint8 staIndex;
// Do Sanity checks
if(NULL == pContext || NULL == pFrame){
return eWLAN_PAL_STATUS_E_FAILURE;
}
// extract metadata from PAL packet
pTxMetadata = WDI_DS_ExtractTxMetaData(pFrame);
pTxMetadata->txCompleteStatus = status;
// Free BD header from pool
WDI_GetBDPointers(pFrame, &pvBDHeader, &physBDHeader);
switch(pTxMetadata->frmType)
{
case WDI_MAC_DATA_FRAME:
/* SWAP BD header to get STA index for completed frame */
WDI_SwapTxBd(pvBDHeader);
staIndex = (wpt_uint8)WDI_TX_BD_GET_STA_ID(pvBDHeader);
WDI_DS_MemPoolFree(&(pClientData->dataMemPool), pvBDHeader, physBDHeader);
WDI_DS_MemPoolDecreaseReserveCount(&(pClientData->dataMemPool), staIndex);
break;
case WDI_MAC_MGMT_FRAME:
WDI_DS_MemPoolFree(&(pClientData->mgmtMemPool), pvBDHeader, physBDHeader);
break;
}
WDI_SetBDPointers(pFrame, 0, 0);
// Invoke Tx complete callback
pClientData->txCompleteCB(pClientData->pCallbackContext, pFrame);
return eWLAN_PAL_STATUS_SUCCESS;
}