#include "du_app_mac_inf.h"
#include "rg.x" /* typedefs for MAC */
-#include "mac_sch_interface.h"
-/* local defines */
+#include "mac_upr_inf_api.h"
+#include "mac.h"
-/* local typedefs */
-
/* local externs */
-#ifdef UNUSE_FUN
+#ifdef UNUSED_FUNC
PRIVATE S16 rgLIMValidateSap ARGS((Inst inst,SuId suId));
#endif
PRIVATE Void rgLIMUtlFreeDatIndEvnt ARGS((TfuDatIndInfo *datInd,
* -# ROK
* -# RFAILED
*/
-#ifdef UNUSE_FUN
+#ifdef UNUSED_FUNC
#ifdef ANSI
PRIVATE S16 rgLIMValidateSap
(
} /* rgLIMTfuDatReq*/
#endif /*L2_OPTMZ */
+/*******************************************************************
+ *
+ * @brief Fills post structure
+ *
+ * @details
+ *
+ * Function : fillMacToSchPst
+ *
+ * Functionality:
+ * Fills post structure to be used when sending msg from
+ * MAC to SCH
+ *
+ * @params[in] Post structure pointer
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+void fillMacToSchPst(Pst *pst)
+{
+ pst->srcProcId = 0;
+ pst->dstProcId = 0;
+ pst->srcEnt = ENTRG;
+ pst->dstEnt = ENTRG;
+ pst->srcInst = 0;
+ pst->dstInst = 1;
+ pst->region = 0;
+ pst->pool = 0;
+ pst->selector = MAC_SELECTOR_TC;
+}
+
+/*******************************************************************
+ *
+ * @brief MAC handler for config response from PHY
+ *
+ * @details
+ *
+ * Function : fapiMacConfigRsp
+ *
+ * Functionality:
+ * Processes config response from PHY and sends cell config
+ * confirm to DU APP
+ *
+ * @params[in]
+ * @return void
+ *
+ * ****************************************************************/
+void fapiMacConfigRsp()
+{
+ /* TODO : Processing of config response from PHY */
+
+ /* Send cell config cfm to DU APP */
+ MacSendCellCfgCfm(RSP_OK);
+}
+
/**
* @brief Transmission time interval indication from PHY.
*
**/
int sendSlotIndMacToSch(SlotIndInfo *slotInd)
{
- int ret = ROK;
/* fill Pst structure to send to lwr_mac to MAC */
Pst pst;
- pst.srcProcId = 0;
- pst.dstProcId = 0;
- pst.srcEnt = ENTRG;
- pst.dstEnt = ENTRG;
- pst.srcInst = 0;
- pst.dstInst = 1;
+
+ fillMacToSchPst(&pst);
pst.event = EVENT_SLOT_IND_TO_SCH;
- pst.region = 0;
- pst.pool = 0;
- pst.selector = MAC_SELECTOR_TC;
return(*macSchSlotIndOpts[pst.selector])(&pst,slotInd);
}
-/**
- * @brief Transmission time interval indication from PHY.
+
+/*******************************************************************
+ *
+ * @brief Send slot indication to DU APP
*
* @details
*
- * Function : fapiMacSlotInd
- *
- * This API is invoked by PHY to indicate TTI indication to MAC for a cell.
- *
- * @param[in] Pst *pst
- * @param[in] SuId suId
- * @param[in] SlotIndInfo *slotInd
- * @return S16
- * -# ROK
- * -# RFAILED
- **/
-PUBLIC S16 fapiMacSlotInd
-(
-Pst *pst,
-SlotIndInfo *slotInd
-)
+ * Function : sendSlotIndMacToDuApp
+ *
+ * Functionality:
+ * Send slot indication to DU APP
+ *
+ * @params[in] Slot indication info
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+int sendSlotIndMacToDuApp(SlotIndInfo *slotInd)
{
- S16 ret;
- VOLATILE U32 startTime=0;
- Inst inst;
-
- RG_IS_INST_VALID(pst->dstInst);
- inst = pst->dstInst - RG_INST_START;
- /*starting Task*/
- SStartTask(&startTime, PID_MAC_TTI_IND);
+ Pst pst;
+ uint16_t ret;
+ SlotInfo *slotInfo;
- /* send slot indication to scheduler */
- ret = sendSlotIndMacToSch(slotInd);
- if(ret != ROK)
+ /* Allocate sharable memory */
+ MAC_ALLOC_SHRABL_BUF(slotInfo, sizeof(SlotInfo));
+ if(!slotInfo)
{
- DU_LOG("\nsending of slot ind msg from MAC to SCH failed");
- RETVALUE(ret);
+ DU_LOG("\nMAC : Slot Indication memory allocation failed");
+ return RFAILED;
}
- /* Now call the TOM (Tfu ownership module) primitive to process further */
- ret = macProcessSlotInd(inst,*slotInd);
+ slotInfo->cellId = macCb.macCell->cellId;
+ slotInfo->sfn = slotInd->sfn;
+ slotInfo->slot = slotInd->slot;
+
+ /* Fill Pst */
+ pst.selector = DU_MAC_LWLC;
+ pst.srcEnt = ENTRG;
+ pst.dstEnt = ENTDUAPP;
+ pst.dstInst = 0;
+ pst.srcInst = macCb.macInst;
+ pst.dstProcId = rgCb[pst.srcInst].rgInit.procId;
+ pst.srcProcId = rgCb[pst.srcInst].rgInit.procId;
+ pst.region = MAC_MEM_REGION;
+ pst.pool = MAC_POOL;
+ pst.event = EVENT_MAC_SLOT_IND;
+ pst.route = 0;
+ pst.prior = 0;
+ pst.intfVer = 0;
+
+ ret = MacDuAppSlotInd(&pst, slotInfo);
if(ret != ROK)
{
- DU_LOG("\nmacProcessSlotInd failed");
- RETVALUE(ret);
+ DU_LOG("\nMAC: Failed to send slot indication to DU APP");
+ MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, slotInfo, sizeof(SlotInfo));
}
-
-
- /*stoping Task*/
- SStopTask(startTime, PID_MAC_TTI_IND);
-
- RETVALUE(ret);
-} /* fapiMacSlotInd */
+
+ return ret;
+}
#if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD)
/**