diff options
| author | Daiqian Hu <[email protected]> | 2016-11-21 08:54:24 +0800 |
|---|---|---|
| committer | Daiqian Hu <[email protected]> | 2016-11-21 08:54:24 +0800 |
| commit | a95eaad088f61aa55da9d73015cf1ed86e64a67e (patch) | |
| tree | 15b498a08a4aee4b7f8b1627d39c965b3aa3ba98 /network/wlan/WDI/COMMON/P2P_SendMgnt.c | |
| parent | 1aa0338ec5418345ea0c383e92b4fa19f7c98425 (diff) | |
Re-submit for WDI sample driver to GitHub
Submit WDI sample driver to GitHub for RS1.
Diffstat (limited to 'network/wlan/WDI/COMMON/P2P_SendMgnt.c')
| -rw-r--r-- | network/wlan/WDI/COMMON/P2P_SendMgnt.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/network/wlan/WDI/COMMON/P2P_SendMgnt.c b/network/wlan/WDI/COMMON/P2P_SendMgnt.c new file mode 100644 index 00000000..b465d459 --- /dev/null +++ b/network/wlan/WDI/COMMON/P2P_SendMgnt.c @@ -0,0 +1,58 @@ +#include "Mp_Precomp.h" + +#if WPP_SOFTWARE_TRACE +#include "P2P_SendMgnt.tmh" +#endif + +#include "P2P_Internal.h" + +#if (P2P_SUPPORT == 1) + +//----------------------------------------------------------------------------- +// Local +//----------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +// Exported +//----------------------------------------------------------------------------- + +VOID +p2p_Send_ProbeRsp( + IN P2P_INFO *pP2PInfo, + IN const u1Byte *da, + IN RT_RFD *rfdProbeReq, + IN OCTET_STRING *posProbeReq, + IN OCTET_STRING *posAttrs + ) +{ + PRT_TCB pTcb; + PRT_TX_LOCAL_BUFFER pBuf; + u1Byte dataRate = P2P_LOWEST_RATE; + + PlatformAcquireSpinLock(pP2PInfo->pAdapter, RT_TX_SPINLOCK); + + if(MgntGetBuffer(pP2PInfo->pAdapter, &pTcb, &pBuf)) + { + FRAME_BUF fbuf; + + FrameBuf_Init(pP2PInfo->pAdapter->MAX_TRANSMIT_BUFFER_SIZE, 0, pBuf->Buffer.VirtualAddress, &fbuf); + + if(p2p_Construct_ProbeRsp(&fbuf, pP2PInfo, da, rfdProbeReq, posProbeReq, posAttrs)) + { + pTcb->PacketLength = FrameBuf_Length(&fbuf); + MgntSendPacket(pP2PInfo->pAdapter, pTcb, pBuf, pTcb->PacketLength, NORMAL_QUEUE, dataRate); + } + else + { + pTcb->BufferType = RT_TCB_BUFFER_TYPE_LOCAL; + pTcb->BufferList[0] = pBuf->Buffer; + pTcb->Reserved = pBuf; + ReturnTCB(pP2PInfo->pAdapter, pTcb, RT_STATUS_SUCCESS); + } + } + + PlatformReleaseSpinLock(pP2PInfo->pAdapter, RT_TX_SPINLOCK); +} + +#endif |
