diff options
| author | karlf <[email protected]> | 2016-08-11 13:28:13 -0700 |
|---|---|---|
| committer | karlf <[email protected]> | 2016-08-11 13:28:13 -0700 |
| commit | 96eb96dfb613e4c745db6bd1f53a92fe7e2290fc (patch) | |
| tree | ad5f3ede5cbcd6b598677ce41bcf8318471bdd92 /network/wlan/WDI/COMMON/P2PSvc_ActionInfo.c | |
| parent | 687b274aa38fd05c8c26e3068932121876d7f745 (diff) | |
Updated for "Windows 10 Anniversary Update" (Version 1607)
Diffstat (limited to 'network/wlan/WDI/COMMON/P2PSvc_ActionInfo.c')
| -rw-r--r-- | network/wlan/WDI/COMMON/P2PSvc_ActionInfo.c | 523 |
1 files changed, 0 insertions, 523 deletions
diff --git a/network/wlan/WDI/COMMON/P2PSvc_ActionInfo.c b/network/wlan/WDI/COMMON/P2PSvc_ActionInfo.c deleted file mode 100644 index 6b116700..00000000 --- a/network/wlan/WDI/COMMON/P2PSvc_ActionInfo.c +++ /dev/null @@ -1,523 +0,0 @@ -#include "Mp_Precomp.h" - -#include "P2PSvc_Internal.h" - -#if (P2P_SUPPORT == 1) - -#if (P2PSVC_SUPPORT == 1) - -//----------------------------------------------------------------------------- -// Local -//----------------------------------------------------------------------------- - -// -// Description: -// Add the req info (obj hdr + obj list) to the info list. -// Assume the req info has been validated by P2PSvc_ValidateReqInfo -// -RT_STATUS -p2psvc_AddReqInfoToList( - IN PADAPTER pAdapter, - IN PP2PSVC_INFO pP2PSvcInfo, - IN PRT_LIST_ENTRY pListHead, - IN pu4Byte pListCnt, - IN PRT_OBJECT_HEADER pObjHdr - ) -{ - RT_STATUS rtStatus = RT_STATUS_SUCCESS; - PP2PSVC_OBJ_LIST pObjList = NULL; - - P2PSVC_FUNC_IN(DBG_LOUD); - - if(!pP2PSvcInfo->bEnabled) - { - RT_TRACE_F(COMP_P2P, DBG_WARNING, ("[WARNING] P2PSvc not enabled!")); - P2PSVC_FUNC_OUT(DBG_LOUD, RT_STATUS_INVALID_STATE); - - return RT_STATUS_INVALID_STATE; - } - - do - { - u4Byte reqBufSize = 0; - u4Byte objListLen = 0; - PP2PSVC_REQ_INFO_ENTRY pReqInfoEntry = NULL; - - pObjList = (PP2PSVC_OBJ_LIST)(pObjHdr->Value); - objListLen = P2PSVC_OBJ_LIST_LEN(pObjList); - reqBufSize = FIELD_OFFSET(P2PSVC_REQ_INFO_ENTRY, objList) + objListLen; - - if(RT_STATUS_SUCCESS != (rtStatus = P2PSvc_AllocMem(pAdapter, &pReqInfoEntry, reqBufSize))) - { - RT_TRACE_F(COMP_OID_SET | COMP_WFD, DBG_WARNING, ("[WARNING] Failed to allocate memory for req info\n")); - rtStatus = RT_STATUS_RESOURCE; - break; - } - - // Construct req info entry - pReqInfoEntry->P2PSvcReqId = pObjHdr->Id; - PlatformMoveMemory(&pReqInfoEntry->objList, pObjList, objListLen); - - // Add to the list - PLATFORM_ACQUIRE_RT_SPINLOCK(pP2PSvcInfo->lock); - RTInsertTailListWithCnt(pListHead, &pReqInfoEntry->List, pListCnt); - PLATFORM_RELEASE_RT_SPINLOCK(pP2PSvcInfo->lock); - - RT_PRINT_DATA(COMP_P2P, DBG_LOUD, "p2psvc_AddReqInfoToList(): add req info:\n", &pReqInfoEntry->objList, objListLen); - }while(FALSE); - - P2PSVC_FUNC_OUT(DBG_LOUD, rtStatus); - - return rtStatus; -} - -//----------------------------------------------------------------------------- -// Exported -//----------------------------------------------------------------------------- -BOOLEAN -P2PSvc_Free_AdvSvcList( - IN PRT_LIST_ENTRY pListHead, - IN pu4Byte pListCnt, - IN u4Byte advId - ) -{ - PRT_LIST_ENTRY pEntry = NULL; - BOOLEAN bFreeAll = (0 == advId) ? (TRUE) : (FALSE); - BOOLEAN bFreed = FALSE; - - for(pEntry = RTGetHeadList(pListHead); pEntry != pListHead; pEntry = RTNextEntryList(pEntry)) - { - PP2PSVC_REQ_INFO_ENTRY pInfoEntry = (PP2PSVC_REQ_INFO_ENTRY)pEntry; - PP2PSVC_OBJ_LIST pAdvSvcObjList = &pInfoEntry->objList; - PRT_OBJECT_HEADER pAdvIdObj = NULL; - u4Byte curAdvId = 0; - BOOLEAN bFree = FALSE; - - P2PSVC_CHECK_NULL(pEntry); - if(!pEntry) break; - - pAdvIdObj = P2PSvc_GetParam(pAdvSvcObjList, P2PSVC_OBJ_HDR_ID_DATA_ADV_ID, 0); - curAdvId = *(pu4Byte)pAdvIdObj->Value; - - // Assume that cancel advertising advId 0 (ASP) is to cancel ALL services - - if(bFreeAll) - { - bFree = TRUE; - } - else - { - if(advId == curAdvId) bFree = TRUE; - } - - if(bFree) - { - PRT_LIST_ENTRY pForeEntry = RTForeEntryList(pEntry); - - RTRemoveEntryListWithCnt(pEntry, pListCnt); - P2PSvc_FreeMem(pEntry, FIELD_OFFSET(P2PSVC_REQ_INFO_ENTRY, objList) + P2PSVC_OBJ_LIST_LEN(pAdvSvcObjList)); - - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("svc with id: %u canceled, pEntry is: %p\n", curAdvId, pEntry)); - - pEntry = pForeEntry; - - bFreed = TRUE; - } - - if(!bFreeAll && bFree) break; - } - - return bFreed; -} - -BOOLEAN -P2PSvc_Free_SeekReqList( - IN PRT_LIST_ENTRY pListHead, - IN pu4Byte pListCnt, - IN u1Byte seekId - ) -{ - PRT_LIST_ENTRY pEntry = NULL; - BOOLEAN bFreeAll = (0 == seekId) ? (TRUE) : (FALSE); - BOOLEAN bFreed = FALSE; - - for(pEntry = RTGetHeadList(pListHead); pEntry != pListHead; pEntry = RTNextEntryList(pEntry)) - { - PP2PSVC_REQ_INFO_ENTRY pInfoEntry = (PP2PSVC_REQ_INFO_ENTRY)pEntry; - PP2PSVC_OBJ_LIST pSeekObjList = &pInfoEntry->objList; - PRT_OBJECT_HEADER pSeekIdObj = NULL; - u4Byte curSeekId = 0; - BOOLEAN bFree = FALSE; - - P2PSVC_CHECK_NULL(pEntry); - if(!pEntry) break; - - pSeekIdObj = P2PSvc_GetParam(pSeekObjList, P2PSVC_OBJ_HDR_ID_DATA_SEARCH_ID, 0); - curSeekId = *(pu1Byte)pSeekIdObj->Value; - - // Assume that cancel searchId 0 (ASP) is to cancel ALL seek requests - - //RT_TRACE_F(COMP_P2P, DBG_LOUD, ("cur search ID: %u search ID to cancel: %u\n", curSeekId, seekId)); - - if(bFreeAll) - { - bFree = TRUE; - } - else - { - if(seekId == curSeekId) bFree = TRUE; - } - - if(bFree) - { - PRT_LIST_ENTRY pForeEntry = RTForeEntryList(pEntry); - - RTRemoveEntryListWithCnt(pEntry, pListCnt); - P2PSvc_FreeMem(pEntry, FIELD_OFFSET(P2PSVC_REQ_INFO_ENTRY, objList) + P2PSVC_OBJ_LIST_LEN(&pInfoEntry->objList)); - - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("seek req of ID: %u canceled, pEntry is: %p\n", curSeekId, pEntry)); - - pEntry = pForeEntry; - - bFreed = TRUE; - } - - if(!bFreeAll && bFree) break; - } - - return bFreed; -} - -RT_STATUS -P2PSvc_Set_AdvSvc( - IN PADAPTER pAdapter, - IN PVOID infoBuf, - IN u4Byte inBufLen, - IN u4Byte outBufLen, - OUT pu4Byte pBytesWritten, - OUT pu4Byte pBytesRead, - OUT pu4Byte pBytesNeeded - ) -{ - RT_STATUS rtStatus = RT_STATUS_SUCCESS; - PP2PSVC_INFO pP2PSvcInfo = P2PSVC_GET_INFO(pAdapter); - - P2PSVC_FUNC_IN(DBG_LOUD); - - do - { - PRT_OBJECT_HEADER pObjHdr = (PRT_OBJECT_HEADER)(infoBuf); - - if(RT_STATUS_SUCCESS != (rtStatus = p2psvc_AddReqInfoToList(pAdapter, pP2PSvcInfo, &pP2PSvcInfo->advSvcList, &pP2PSvcInfo->advSvcListCnt, pObjHdr))) - { - break; - } - }while(FALSE); - - P2PSVC_FUNC_OUT(DBG_LOUD, rtStatus); - - return rtStatus; -} - -RT_STATUS -P2PSvc_Set_CancelAdvSvc( - IN PADAPTER pAdapter, - IN PVOID infoBuf, - IN u4Byte inBufLen, - IN u4Byte outBufLen, - OUT pu4Byte pBytesWritten, - OUT pu4Byte pBytesRead, - OUT pu4Byte pBytesNeeded - ) -{ - RT_STATUS rtStatus = RT_STATUS_SUCCESS; - PP2PSVC_INFO pP2PSvcInfo = P2PSVC_GET_INFO(pAdapter); - - P2PSVC_FUNC_IN(DBG_LOUD); - - do - { - PRT_OBJECT_HEADER pObjHdr = (PRT_OBJECT_HEADER)(infoBuf); - PP2PSVC_OBJ_LIST pObjList = (PP2PSVC_OBJ_LIST)(pObjHdr->Value); - - PRT_OBJECT_HEADER pAdvIdObj = NULL; - u4Byte advIdToCancel = 0; - - pAdvIdObj = P2PSvc_GetParam(pObjList, P2PSVC_OBJ_HDR_ID_DATA_ADV_ID, 0); - advIdToCancel = *(pu4Byte)pAdvIdObj->Value; - - if(!P2PSvc_Free_AdvSvcList(&pP2PSvcInfo->advSvcList, &pP2PSvcInfo->advSvcListCnt, advIdToCancel)) - { - rtStatus = RT_STATUS_INVALID_DATA; - break; - } - }while(FALSE); - - P2PSVC_FUNC_OUT(DBG_LOUD, rtStatus); - - return rtStatus; -} - -RT_STATUS -P2PSvc_Set_SvcStatus( - IN PADAPTER pAdapter, - IN PVOID infoBuf, - IN u4Byte inBufLen, - IN u4Byte outBufLen, - OUT pu4Byte pBytesWritten, - OUT pu4Byte pBytesRead, - OUT pu4Byte pBytesNeeded - ) -{ - RT_STATUS rtStatus = RT_STATUS_SUCCESS; - PP2PSVC_INFO pP2PSvcInfo = P2PSVC_GET_INFO(pAdapter); - - P2PSVC_FUNC_IN(DBG_LOUD); - - do - { - PRT_OBJECT_HEADER pObjHdr = (PRT_OBJECT_HEADER)(infoBuf); - PP2PSVC_OBJ_LIST pObjList = (PP2PSVC_OBJ_LIST)(pObjHdr->Value); - - PRT_OBJECT_HEADER pAdvIdObj = NULL; - PRT_OBJECT_HEADER pSvcStatusObj = NULL; - - u4Byte advIdToSet = 0; - u1Byte svcStatusToSet = 0; - - PRT_LIST_ENTRY pEntry = NULL; - - // Get adv-id and svc-status to set - pAdvIdObj = P2PSvc_GetParam(pObjList, P2PSVC_OBJ_HDR_ID_DATA_ADV_ID, 0); - advIdToSet = *(pu4Byte)pAdvIdObj->Value; - - pSvcStatusObj = P2PSvc_GetParam(pObjList, P2PSVC_OBJ_HDR_ID_DATA_SVC_STATUS, 0); - svcStatusToSet = *(pu1Byte)pSvcStatusObj->Value; - - for(pEntry = RTGetHeadList(&pP2PSvcInfo->advSvcList); pEntry != &pP2PSvcInfo->advSvcList; pEntry = RTNextEntryList(pEntry)) - { - PP2PSVC_REQ_INFO_ENTRY pInfoEntry = (PP2PSVC_REQ_INFO_ENTRY)pEntry; - PP2PSVC_OBJ_LIST pAdvSvcObjList = &pInfoEntry->objList; - u4Byte curAdvId = 0; - - // Get current adv svc's adv id for matching - pAdvIdObj = P2PSvc_GetParam(pAdvSvcObjList, P2PSVC_OBJ_HDR_ID_DATA_ADV_ID, 0); - curAdvId = *(pu4Byte)pAdvIdObj->Value; - - if(curAdvId == advIdToSet) - { - pu1Byte pCurSvcStatus = NULL; - - pSvcStatusObj = P2PSvc_GetParam(pAdvSvcObjList, P2PSVC_OBJ_HDR_ID_DATA_SVC_STATUS, 0); - pCurSvcStatus = (pu1Byte)pSvcStatusObj->Value; - *pCurSvcStatus = svcStatusToSet; - - break; - } - } - - if(pEntry == &pP2PSvcInfo->advSvcList) - { - rtStatus = RT_STATUS_INVALID_PARAMETER; - break; - } - }while(FALSE); - - P2PSVC_FUNC_OUT(DBG_LOUD, rtStatus); - - return rtStatus; -} - -RT_STATUS -P2PSvc_Set_Seek( - IN PADAPTER pAdapter, - IN PVOID infoBuf, - IN u4Byte inBufLen, - IN u4Byte outBufLen, - OUT pu4Byte pBytesWritten, - OUT pu4Byte pBytesRead, - OUT pu4Byte pBytesNeeded - ) -{ - RT_STATUS rtStatus = RT_STATUS_SUCCESS; - PP2PSVC_INFO pP2PSvcInfo = P2PSVC_GET_INFO(pAdapter); - - P2PSVC_FUNC_IN(DBG_LOUD); - - do - { - PRT_OBJECT_HEADER pObjHdr = (PRT_OBJECT_HEADER)(infoBuf); - - if(RT_STATUS_SUCCESS != (rtStatus = p2psvc_AddReqInfoToList(pAdapter, pP2PSvcInfo, &pP2PSvcInfo->seekReqList, &pP2PSvcInfo->seekReqListCnt, pObjHdr))) - { - break; - } - }while(FALSE); - - P2PSVC_FUNC_OUT(DBG_LOUD, rtStatus); - - return rtStatus; - -} - -RT_STATUS -P2PSvc_Set_CancelSeek( - IN PADAPTER pAdapter, - IN PVOID infoBuf, - IN u4Byte inBufLen, - IN u4Byte outBufLen, - OUT pu4Byte pBytesWritten, - OUT pu4Byte pBytesRead, - OUT pu4Byte pBytesNeeded - ) -{ - RT_STATUS rtStatus = RT_STATUS_SUCCESS; - PP2PSVC_INFO pP2PSvcInfo = P2PSVC_GET_INFO(pAdapter); - - P2PSVC_FUNC_IN(DBG_LOUD); - - do - { - PRT_OBJECT_HEADER pObjHdr = (PRT_OBJECT_HEADER)(infoBuf); - PP2PSVC_OBJ_LIST pObjList = (PP2PSVC_OBJ_LIST)(pObjHdr->Value); - - PRT_OBJECT_HEADER pSearchIdObj = NULL; - u1Byte searchIdToCancel = 0; - - pSearchIdObj = P2PSvc_GetParam(pObjList, P2PSVC_OBJ_HDR_ID_DATA_SEARCH_ID, 0); - searchIdToCancel = *(pu1Byte)pSearchIdObj->Value; - - if(!P2PSvc_Free_SeekReqList(&pP2PSvcInfo->seekReqList, &pP2PSvcInfo->seekReqListCnt, searchIdToCancel)) - { - rtStatus = RT_STATUS_INVALID_DATA; - break; - } - }while(FALSE); - - P2PSVC_FUNC_OUT(DBG_LOUD, rtStatus); - - return rtStatus; - -} - -RT_STATUS -P2PSvc_Set_ConnCap( - IN PADAPTER pAdapter, - IN PVOID infoBuf, - IN u4Byte inBufLen, - IN u4Byte outBufLen, - OUT pu4Byte pBytesWritten, - OUT pu4Byte pBytesRead, - OUT pu4Byte pBytesNeeded - ) -{ - RT_STATUS rtStatus = RT_STATUS_SUCCESS; - - P2PSVC_FUNC_IN(DBG_LOUD); - - do - { - PP2PSVC_INFO pP2PSvcInfo = P2PSVC_GET_INFO(pAdapter); - PRT_OBJECT_HEADER pObjHdr = NULL; - PP2PSVC_OBJ_LIST pObjList = NULL; - PRT_OBJECT_HEADER pConnCapObj = NULL; - - pObjHdr = (PRT_OBJECT_HEADER)infoBuf; - pObjList = (PP2PSVC_OBJ_LIST)(pObjHdr->Value); - - pConnCapObj = P2PSvc_GetParam(pObjList, P2PSVC_OBJ_HDR_ID_DATA_CONN_CAP, 0); - - PLATFORM_ACQUIRE_RT_SPINLOCK(pP2PSvcInfo->lock); - { - pP2PSvcInfo->connCap = *(pu1Byte)pConnCapObj->Value; - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("conn cap set to: %u\n", pP2PSvcInfo->connCap)); - } - PLATFORM_RELEASE_RT_SPINLOCK(pP2PSvcInfo->lock); - }while(FALSE); - - P2PSVC_FUNC_OUT(DBG_LOUD, rtStatus); - - return rtStatus; -} - -RT_STATUS -P2PSvc_Set_PDReq( - IN PADAPTER pAdapter, - IN PVOID infoBuf, - IN u4Byte inBufLen, - IN u4Byte outBufLen, - OUT pu4Byte pBytesWritten, - OUT pu4Byte pBytesRead, - OUT pu4Byte pBytesNeeded - ) -{ - RT_STATUS rtStatus = RT_STATUS_SUCCESS; - - P2PSVC_FUNC_IN(DBG_LOUD); - - do - { - if(RT_STATUS_SUCCESS != (rtStatus = P2PSvc_AddPDInitorData(pAdapter, infoBuf, inBufLen, outBufLen))) - { - break; - } - }while(FALSE); - - P2PSVC_FUNC_OUT(DBG_LOUD, rtStatus); - - return rtStatus; -} - -RT_STATUS -P2PSvc_Set_RspdorFOPDReq( - IN PADAPTER pAdapter, - IN PVOID infoBuf, - IN u4Byte inBufLen, - IN u4Byte outBufLen, - OUT pu4Byte pBytesWritten, - OUT pu4Byte pBytesRead, - OUT pu4Byte pBytesNeeded - ) -{ - RT_STATUS rtStatus = RT_STATUS_SUCCESS; - PP2PSVC_INFO pP2PSvcInfo = P2PSVC_GET_INFO(pAdapter); - - P2PSVC_FUNC_IN(DBG_LOUD); - - PLATFORM_ACQUIRE_RT_SPINLOCK(pP2PSvcInfo->lock); - - do - { - PRT_OBJECT_HEADER pObjHdr = NULL; - PP2PSVC_OBJ_LIST pObjList = NULL; - PRT_OBJECT_HEADER pObj = NULL; - BOOLEAN bUserAccepted = FALSE; - PP2PSVC_PD_ENTRY pPDEntry = NULL; - - pObjHdr = (PRT_OBJECT_HEADER)infoBuf; - pObjList = (PP2PSVC_OBJ_LIST)(pObjHdr->Value); - - pObj = P2PSvc_GetParam(pObjList, P2PSVC_OBJ_HDR_ID_DATA_USER_ACCEPTED, 0); - bUserAccepted = *((PBOOLEAN)pObj->Value); - - if(P2PSvc_PDSessionInProgress(pP2PSvcInfo, &pPDEntry)) - { - P2PSvc_RspdorSetFOPDReq(pP2PSvcInfo, pPDEntry, bUserAccepted); - } - else - { - rtStatus = RT_STATUS_INVALID_STATE; - RT_TRACE_F(COMP_P2P, DBG_LOUD, ("No PD session in progress\n")); - break; - } - }while(FALSE); - - PLATFORM_RELEASE_RT_SPINLOCK(pP2PSvcInfo->lock); - - P2PSVC_FUNC_OUT(DBG_LOUD, rtStatus); - - return rtStatus; -} - -#endif // #if (P2PSVC_SUPPORT == 1) -#endif // #if (P2P_SUPPORT == 1) |
