summaryrefslogtreecommitdiff
path: root/network/wlan/WDI/COMMON/P2P_SendMgnt.c
diff options
context:
space:
mode:
authorDaiqian Hu <[email protected]>2016-11-21 08:54:24 +0800
committerDaiqian Hu <[email protected]>2016-11-21 08:54:24 +0800
commita95eaad088f61aa55da9d73015cf1ed86e64a67e (patch)
tree15b498a08a4aee4b7f8b1627d39c965b3aa3ba98 /network/wlan/WDI/COMMON/P2P_SendMgnt.c
parent1aa0338ec5418345ea0c383e92b4fa19f7c98425 (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.c58
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