本文整理汇总了C++中WDI_DS_ClientDataType类的典型用法代码示例。如果您正苦于以下问题:C++ WDI_DS_ClientDataType类的具体用法?C++ WDI_DS_ClientDataType怎么用?C++ WDI_DS_ClientDataType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了WDI_DS_ClientDataType类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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;
}
开发者ID:NikitaProAndroid,项目名称:android_kernel_lge_l70pds,代码行数:66,代码来源:wlan_qct_wdi_dts.c
示例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;
}
开发者ID:JmzTaylor,项目名称:Evita-Jellybean,代码行数:49,代码来源:wlan_qct_wdi_dts.c
示例3: WDTS_OOResourceNotification
/* DTS Out of Resource packet function.
* This function should be invoked by the transport device to indicate
* the device is out of resources.
* Parameters:
* pContext:Cookie that should be passed back to the caller
* priority: indicates which channel is out of resource.
* Return Value: SUCCESS Completed successfully.
* FAILURE_XXX Request was rejected due XXX Reason.
*/
wpt_status WDTS_OOResourceNotification(void *pContext, WDTS_ChannelType channel, wpt_boolean on)
{
WDI_DS_ClientDataType *pClientData =
(WDI_DS_ClientDataType *) pContext;
static wpt_uint8 ac_mask = 0x1f;
// Do Sanity checks
if(NULL == pContext){
return eWLAN_PAL_STATUS_E_FAILURE;
}
if(on){
ac_mask |= channel == WDTS_CHANNEL_TX_LOW_PRI? 0x0f : 0x10;
} else {
ac_mask &= channel == WDTS_CHANNEL_TX_LOW_PRI? 0x10 : 0x0f;
}
// Invoke OOR callback
pClientData->txResourceCB(pClientData->pCallbackContext, ac_mask);
return eWLAN_PAL_STATUS_SUCCESS;
}
开发者ID:NikitaProAndroid,项目名称:android_kernel_lge_l70pds,代码行数:32,代码来源:wlan_qct_wdi_dts.c
示例4: WDTS_RxPacket
/* DTS Rx packet function.
* This function should be invoked by the transport device to indicate
* reception of 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_RxPacket (void *pContext, wpt_packet *pFrame, WDTS_ChannelType channel)
{
WDI_DS_ClientDataType *pClientData =
(WDI_DS_ClientDataType*)(pContext);
wpt_boolean bASF, bFSF, bLSF, bAEF;
wpt_uint8 ucMPDUHOffset, ucMPDUHLen, ucTid;
wpt_uint8 *pBDHeader;
wpt_uint16 usMPDUDOffset, usMPDULen;
WDI_DS_RxMetaInfoType *pRxMetadata;
wpt_uint8 isFcBd = 0;
tpSirMacFrameCtl pMacFrameCtl;
// Do Sanity checks
if(NULL == pContext || NULL == pFrame){
return eWLAN_PAL_STATUS_E_FAILURE;
}
/*------------------------------------------------------------------------
Extract BD header and check if valid
------------------------------------------------------------------------*/
pBDHeader = (wpt_uint8*)wpalPacketGetRawBuf(pFrame);
if(NULL == pBDHeader)
{
DTI_TRACE( DTI_TRACE_LEVEL_ERROR,
"WLAN TL:BD header received NULL - dropping packet");
wpalPacketFree(pFrame);
return eWLAN_PAL_STATUS_E_FAILURE;
}
WDI_SwapRxBd(pBDHeader);
ucMPDUHOffset = (wpt_uint8)WDI_RX_BD_GET_MPDU_H_OFFSET(pBDHeader);
usMPDUDOffset = (wpt_uint16)WDI_RX_BD_GET_MPDU_D_OFFSET(pBDHeader);
usMPDULen = (wpt_uint16)WDI_RX_BD_GET_MPDU_LEN(pBDHeader);
ucMPDUHLen = (wpt_uint8)WDI_RX_BD_GET_MPDU_H_LEN(pBDHeader);
ucTid = (wpt_uint8)WDI_RX_BD_GET_TID(pBDHeader);
/* If RX thread drain small size of frame from HW too fast
* Sometimes HW cannot handle interrupt fast enough
* And system crash might happen
* To avoid system crash, input 1usec delay each frame draining
* within host side, if frame size is smaller that threshold.
* This is SW work around, to fix HW problem
* Throughput and SnS test done successfully */
if (usMPDULen < DTS_RX_DELAY_FRAMESIZE_THRESHOLD)
{
wpalBusyWait(1);
}
/*------------------------------------------------------------------------
Gather AMSDU information
------------------------------------------------------------------------*/
bASF = WDI_RX_BD_GET_ASF(pBDHeader);
bAEF = WDI_RX_BD_GET_AEF(pBDHeader);
bFSF = WDI_RX_BD_GET_ESF(pBDHeader);
bLSF = WDI_RX_BD_GET_LSF(pBDHeader);
isFcBd = WDI_RX_FC_BD_GET_FC(pBDHeader);
DTI_TRACE( DTI_TRACE_LEVEL_INFO,
"WLAN TL:BD header processing data: HO %d DO %d Len %d HLen %d"
" Tid %d BD %d",
ucMPDUHOffset, usMPDUDOffset, usMPDULen, ucMPDUHLen, ucTid,
WDI_RX_BD_HEADER_SIZE);
if(!isFcBd)
{
if(usMPDUDOffset <= ucMPDUHOffset || usMPDULen < ucMPDUHLen) {
DTI_TRACE( DTI_TRACE_LEVEL_ERROR,
"WLAN TL:BD header corrupted - dropping packet");
/* Drop packet ???? */
wpalPacketFree(pFrame);
return eWLAN_PAL_STATUS_SUCCESS;
}
if((ucMPDUHOffset < WDI_RX_BD_HEADER_SIZE) && (!(bASF && !bFSF))){
/* AMSDU case, ucMPDUHOffset = 0 it should be hancdled seperatly */
/* Drop packet ???? */
wpalPacketFree(pFrame);
return eWLAN_PAL_STATUS_SUCCESS;
}
/* AMSDU frame, but not first sub-frame
* No MPDU header, MPDU header offset is 0
* Total frame size is actual frame size + MPDU data offset */
if((ucMPDUHOffset < WDI_RX_BD_HEADER_SIZE) && (bASF && !bFSF)){
ucMPDUHOffset = usMPDUDOffset;
}
if(VPKT_SIZE_BUFFER < (usMPDULen+ucMPDUHOffset)){
DTI_TRACE( DTI_TRACE_LEVEL_FATAL,
"Invalid Frame size, might memory corrupted");
//.........这里部分代码省略.........
开发者ID:NikitaProAndroid,项目名称:android_kernel_lge_l70pds,代码行数:101,代码来源:wlan_qct_wdi_dts.c
示例5: WDTS_RxPacket
/* DTS Rx packet function.
* This function should be invoked by the transport device to indicate
* reception of 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_RxPacket (void *pContext, wpt_packet *pFrame, WDTS_ChannelType channel)
{
WDI_DS_ClientDataType *pClientData =
(WDI_DS_ClientDataType*)(pContext);
wpt_boolean bASF, bFSF, bLSF, bAEF;
wpt_uint8 ucMPDUHOffset, ucMPDUHLen, ucTid;
wpt_uint8 *pBDHeader;
wpt_uint16 usMPDUDOffset, usMPDULen;
WDI_DS_RxMetaInfoType *pRxMetadata;
wpt_uint8 isFcBd = 0;
tpSirMacFrameCtl pMacFrameCtl;
// Do Sanity checks
if(NULL == pContext || NULL == pFrame){
return eWLAN_PAL_STATUS_E_FAILURE;
}
/*------------------------------------------------------------------------
Extract BD header and check if valid
------------------------------------------------------------------------*/
pBDHeader = (wpt_uint8*)wpalPacketGetRawBuf(pFrame);
if(NULL == pBDHeader)
{
DTI_TRACE( DTI_TRACE_LEVEL_ERROR,
"WLAN TL:BD header received NULL - dropping packet");
wpalPacketFree(pFrame);
return eWLAN_PAL_STATUS_E_FAILURE;
}
WDI_SwapRxBd(pBDHeader);
ucMPDUHOffset = (wpt_uint8)WDI_RX_BD_GET_MPDU_H_OFFSET(pBDHeader);
usMPDUDOffset = (wpt_uint16)WDI_RX_BD_GET_MPDU_D_OFFSET(pBDHeader);
usMPDULen = (wpt_uint16)WDI_RX_BD_GET_MPDU_LEN(pBDHeader);
ucMPDUHLen = (wpt_uint8)WDI_RX_BD_GET_MPDU_H_LEN(pBDHeader);
ucTid = (wpt_uint8)WDI_RX_BD_GET_TID(pBDHeader);
/*------------------------------------------------------------------------
Gather AMSDU information
------------------------------------------------------------------------*/
bASF = WDI_RX_BD_GET_ASF(pBDHeader);
bAEF = WDI_RX_BD_GET_AEF(pBDHeader);
bFSF = WDI_RX_BD_GET_ESF(pBDHeader);
bLSF = WDI_RX_BD_GET_LSF(pBDHeader);
isFcBd = WDI_RX_FC_BD_GET_FC(pBDHeader);
DTI_TRACE( DTI_TRACE_LEVEL_INFO,
"WLAN TL:BD header processing data: HO %d DO %d Len %d HLen %d"
" Tid %d BD %d",
ucMPDUHOffset, usMPDUDOffset, usMPDULen, ucMPDUHLen, ucTid,
WDI_RX_BD_HEADER_SIZE);
if(!isFcBd)
{
if(usMPDUDOffset <= ucMPDUHOffset || usMPDULen < ucMPDUHLen) {
DTI_TRACE( DTI_TRACE_LEVEL_ERROR,
"WLAN TL:BD header corrupted - dropping packet");
/* Drop packet ???? */
wpalPacketFree(pFrame);
return eWLAN_PAL_STATUS_SUCCESS;
}
if((ucMPDUHOffset < WDI_RX_BD_HEADER_SIZE) && (!(bASF && !bFSF))){
/* AMSDU case, ucMPDUHOffset = 0 it should be hancdled seperatly */
/* Drop packet ???? */
wpalPacketFree(pFrame);
return eWLAN_PAL_STATUS_SUCCESS;
}
/* AMSDU frame, but not first sub-frame
* No MPDU header, MPDU header offset is 0
* Total frame size is actual frame size + MPDU data offset */
if((ucMPDUHOffset < WDI_RX_BD_HEADER_SIZE) && (bASF && !bFSF)){
ucMPDUHOffset = usMPDUDOffset;
}
if(VPKT_SIZE_BUFFER < (usMPDULen+ucMPDUHOffset)){
DTI_TRACE( DTI_TRACE_LEVEL_FATAL,
"Invalid Frame size, might memory corrupted");
wpalPacketFree(pFrame);
return eWLAN_PAL_STATUS_SUCCESS;
}
wpalPacketSetRxLength(pFrame, usMPDULen+ucMPDUHOffset);
wpalPacketRawTrimHead(pFrame, ucMPDUHOffset);
pRxMetadata = WDI_DS_ExtractRxMetaData(pFrame);
pRxMetadata->fc = isFcBd;
pRxMetadata->staId = WDI_RX_BD_GET_STA_ID(pBDHeader);
//.........这里部分代码省略.........
开发者ID:JmzTaylor,项目名称:Evita-Jellybean,代码行数:101,代码来源:wlan_qct_wdi_dts.c
注:本文中的WDI_DS_ClientDataType类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论