Addressed comments in lower Mac
[o-du/l2.git] / src / 5gnrmac / rg_lim.c
index 424180b..a1a7ff1 100755 (executable)
@@ -700,10 +700,11 @@ int sendSlotIndMacToSch(SlotIndInfo *slotInd)
 int sendSlotIndMacToDuApp(SlotIndInfo *slotInd)
 {
    Pst pst;
+   uint16_t ret;
    SlotInfo  *slotInfo;
-  
-   /* Send Slot Indication to DU APP */
-   MAC_ALLOC(slotInfo, sizeof(SlotInfo));
+
+   /*  Allocate sharable memory */
+   MAC_ALLOC_SHRABL_BUF(slotInfo, sizeof(SlotInfo));
    if(!slotInfo)
    {
       DU_LOG("\nMAC : Slot Indication memory allocation failed");
@@ -729,73 +730,71 @@ int sendSlotIndMacToDuApp(SlotIndInfo *slotInd)
    pst.prior = 0;
    pst.intfVer = 0;
  
-   return MacDuAppSlotInd(&pst, slotInfo);
-  
+   ret = MacDuAppSlotInd(&pst, slotInfo);
+   if(ret != ROK)
+   {
+          DU_LOG("\nMAC: Failed to send slot indication to DU APP");
+      MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, slotInfo, sizeof(SlotInfo));
+   }
+   
+   return ret;
 }
 
-/**
- * @brief Transmission time interval indication from PHY.
+/*******************************************************************
+ *
+ * @brief Send stop 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 : sendStopIndMacToDuApp
+ *
+ *    Functionality:
+ *       Send stop indication to DU APP
+ *
+ * @params[in] Pst info 
+ * @return ROK     - success
+ *         RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t sendStopIndMacToDuApp()
 {
-   S16              ret;
-   VOLATILE U32     startTime=0;
-   Inst             inst;
-
-   DU_LOG("\nMAC : Slot Indication received");
-   
-   RG_IS_INST_VALID(pst->dstInst);
-   inst = pst->dstInst - RG_INST_START;
-   /*starting Task*/
-   SStartTask(&startTime, PID_MAC_TTI_IND);
+   Pst pst;
+   uint8_t ret = ROK;
 
-   /* send slot indication to scheduler */
-   ret = sendSlotIndMacToSch(slotInd);
-   if(ret != ROK)
+   MacCellStopInfo *cellStopId; 
+  
+   /*  Allocate sharable memory */
+   MAC_ALLOC_SHRABL_BUF(cellStopId, sizeof(MacCellStopInfo));
+   if(!cellStopId)
    {
-      DU_LOG("\nMAC : Sending of slot ind msg from MAC to SCH failed");
-      RETVALUE(ret);
+      DU_LOG("\nMAC : Stop Indication memory allocation failed");
+      return RFAILED;
    }
+   cellStopId->cellId = macCb.macCell->cellId;
 
-   /* Now call the TOM (Tfu ownership module) primitive to process further */
-   ret = macProcessSlotInd(inst,*slotInd);
-   if(ret != ROK)
-   {
-      DU_LOG("\nMAC : macProcessSlotInd failed");
-      RETVALUE(ret);
-   }
+   /* 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_STOP_IND;
+   pst.route = 0;
+   pst.prior = 0;
+   pst.intfVer = 0;
 
-   /* send slot indication to du app */
-   ret = sendSlotIndMacToDuApp(slotInd);
+   ret = MacDuAppStopInd(&pst, cellStopId);
    if(ret != ROK)
    {
-      DU_LOG("\nMAC :Sending of slot ind msg from MAC to DU APP failed");
-      RETVALUE(ret);
+      DU_LOG("\nMAC: Failed to send stop indication to DU APP");
+      MAC_FREE_SHRABL_BUF(MAC_MEM_REGION, MAC_POOL, cellStopId, sizeof(MacCellStopInfo));
    }
-
-   /*stoping Task*/
-   SStopTask(startTime, PID_MAC_TTI_IND);
-
-   RETVALUE(ret);
-}  /* fapiMacSlotInd */
-
+   return ROK;
+}
 #if defined(TENB_T2K3K_SPECIFIC_CHANGES) && defined(LTE_TDD)
  /**
  * @brief Transmission of non-rt indication from CL.