/* This file contains APIs to send/receive messages from PHY */
-#include <stdio.h>
-#include <stdint.h>
-
-#include "envdep.h"
-#include "gen.h"
-#include "ssi.h"
-#include "gen.x"
-#include "rg.h"
+#include "common_def.h"
+#include "lrg.h"
+#include "lrg.x"
+#include "du_app_mac_inf.h"
+#include "mac_sch_interface.h"
+#include "lwr_mac_upr_inf.h"
+#include "mac.h"
#include "lwr_mac_phy.h"
#include "lwr_mac_fsm.h"
+#include "mac_utils.h"
#ifdef INTEL_WLS
#include "wls_lib.h"
#endif
-EXTERN S16 rgClHndlCfgReq ARGS((void *msg));
-EXTERN void processFapiRequest ARGS((uint8_t msgType, uint32_t msgLen, void *msg));
+EXTERN uint8_t rgClHndlCfgReq ARGS((void *msg));
+EXTERN void l1ProcessFapiRequest ARGS((uint8_t msgType, uint32_t msgLen, void *msg));
#ifdef INTEL_WLS
void *wlsHdlr;
WLS_MEM_ALLOC(memPtr, LWR_MAC_WLS_BUF_SIZE);
-
+
if(memPtr)
{
wlsHdlr = mtGetWlsHdl();
-
+
/* allocate blocks for UL transmittion */
while(WLS_EnqueueBlock(wlsHdlr, WLS_VA2PA(wlsHdlr, memPtr)))
{
- WLS_MEM_ALLOC(memPtr, LWR_MAC_WLS_BUF_SIZE);
- if(!memPtr)
- break;
+ WLS_MEM_ALLOC(memPtr, LWR_MAC_WLS_BUF_SIZE);
+ if(!memPtr)
+ break;
}
-
+
// free not enqueued block
if(memPtr)
{
- WLS_MEM_FREE(memPtr, LWR_MAC_WLS_BUF_SIZE);
+ WLS_MEM_FREE(memPtr, LWR_MAC_WLS_BUF_SIZE);
}
}
}/* LwrMacEnqueueWlsBlock */
{
void *memPtr;
void *wlsHdlr; /* WLS handler */
-
+
wlsHdlr = mtGetWlsHdl();
while(numBlocks)
{
WLS_MEM_ALLOC(memPtr, LWR_MAC_WLS_BUF_SIZE);
if(memPtr)
{
- WLS_EnqueueBlock(wlsHdlr, WLS_VA2PA(wlsHdlr, memPtr));
+ WLS_EnqueueBlock(wlsHdlr, WLS_VA2PA(wlsHdlr, memPtr));
}
}
- RETVALUE(ROK);
+ return ROK;
}/* enqueueNBlocks */
/*******************************************************************
MAC_ALLOC(node, sizeof(CmLList));
if(node)
{
- block->ptr = msg;
- block->size = msgLen;
+ block->ptr = msg;
+ block->size = msgLen;
- node->node = (PTR)block;
- cmLListAdd2Tail(&wlsBlockToFreeList[idx], node);
+ node->node = (PTR)block;
+ cmLListAdd2Tail(&wlsBlockToFreeList[idx], node);
}
}
}/* addWlsBlockToFree */
CM_LLIST_FIRST_NODE(&wlsBlockToFreeList[idx], node);
while(node)
{
- block = (WlsBlockToFree *)node->node;
- cmLListDelFrm(&wlsBlockToFreeList[idx], node);
- WLS_MEM_FREE(block->ptr, block->size);
- MAC_FREE(block, sizeof(WlsBlockToFree));
- MAC_FREE(node, sizeof(CmLList));
- node = NULL;
- CM_LLIST_FIRST_NODE(&wlsBlockToFreeList[idx], node);
+ block = (WlsBlockToFree *)node->node;
+ cmLListDelFrm(&wlsBlockToFreeList[idx], node);
+ WLS_MEM_FREE(block->ptr, block->size);
+ MAC_FREE(block, sizeof(WlsBlockToFree));
+ MAC_FREE(node, sizeof(CmLList));
+ node = NULL;
+ CM_LLIST_FIRST_NODE(&wlsBlockToFreeList[idx], node);
}
}
}
if(WLS_Ready(wlsHdlr))
{
numToGet = WLS_Wait(wlsHdlr);
-
+
numL1Msg = numToGet;
while(numToGet)
{
- l1Msg = (uint64_t) NULL;
- l1Msg = WLS_Get(wlsHdlr, &msgSize, &msgType, &flag);
- if(l1Msg)
- {
- l1MsgPtr = WLS_PA2VA(wlsHdlr, l1Msg);
- handlePhyMessages(msgType, msgSize, l1MsgPtr);
- }
- numToGet--;
+ l1Msg = (uint64_t) NULL;
+ l1Msg = WLS_Get(wlsHdlr, &msgSize, &msgType, &flag);
+ if(l1Msg)
+ {
+ l1MsgPtr = WLS_PA2VA(wlsHdlr, l1Msg);
+ procPhyMessages(msgType, msgSize, l1MsgPtr);
+ }
+ numToGet--;
}
-
+
if(numL1Msg)
{
- enqueueNBlocks(numL1Msg);
+ enqueueNBlocks(numL1Msg);
}
}
*
* *****************************************************************/
-PUBLIC uint16_t LwrMacSendToPhy(uint8_t msgType, uint32_t msgLen, void *msg)
+uint8_t LwrMacSendToPhy(uint8_t msgType, uint32_t msgLen, void *msg)
{
#ifdef INTEL_WLS
- int ret;
+ uint8_t ret;
unsigned long long pMsg;
-
+
pMsg = WLS_VA2PA(mtGetWlsHdl(), msg);
ret = WLS_Put(mtGetWlsHdl(), pMsg, msgLen, msgType, 0);
if(ret != 0)
{
printf("\nFailure in sending message to PHY");
- WLS_MEM_FREE(msg, msgLen);
+ WLS_MEM_FREE(msg, msgLen);
return RFAILED;
}
else
addWlsBlockToFree(msg, msgLen, (slotIndIdx-1));
}
#else
- processFapiRequest(msgType, msgLen, msg);
+ l1ProcessFapiRequest(msgType, msgLen, msg);
#endif
return ROK;
} /* LwrMacSendToPhy */
/**********************************************************************
- End of file
-**********************************************************************/
+ End of file
+ **********************************************************************/