Inst inst = (instId - SCH_INST_START);
/* Initialize the MAC TskInit structure to zero */
- cmMemset ((uint8_t *)&schCb[inst], 0, sizeof(schCb));
+ memset ((uint8_t *)&schCb[inst], 0, sizeof(schCb));
/* Initialize the MAC TskInit with received values */
schCb[inst].schInit.ent = entity;
* -# LCM_REASON_INVALID_MSGTYPE
* -# LCM_REASON_MEM_NOAVAIL
**/
-PUBLIC U16 SchInstCfg(RgCfg *cfg, Inst dInst)
+PUBLIC uint8_t SchInstCfg(RgCfg *cfg, Inst dInst)
{
uint16_t ret = LCM_REASON_NOT_APPL;
Inst inst = (dInst - SCH_INST_START);
return LCM_REASON_INVALID_MSGTYPE;
}
/* Update the Pst structure for LM interface */
- cmMemcpy((U8 *)&schCb[inst].schInit.lmPst,
- (U8 *)&cfg->s.schInstCfg.genCfg.lmPst,
+ memcpy((uint8_t *)&schCb[inst].schInit.lmPst,
+ (uint8_t *)&cfg->s.schInstCfg.genCfg.lmPst,
sizeof(Pst));
schCb[inst].schInit.inst = inst;
schCb[inst].genCfg.startCellId = cfg->s.schInstCfg.genCfg.startCellId;
#if 0
/* Initialzie the timer queue */
- cmMemset((U8 *)&schCb[inst].tmrTq, 0, sizeof(CmTqType)*RGSCH_TQ_SIZE);
+ memset((uint8_t *)&schCb[inst].tmrTq, 0, sizeof(CmTqType)*RGSCH_TQ_SIZE);
/* Initialize the timer control point */
- cmMemset((U8 *)&schCb[inst].tmrTqCp, 0, sizeof(CmTqCp));
+ memset((uint8_t *)&schCb[inst].tmrTqCp, 0, sizeof(CmTqCp));
schCb[inst].tmrTqCp.tmrLen = RGSCH_TQ_SIZE;
/* SS_MT_TMR needs to be enabled as schActvTmr needs instance information */
/* Timer Registration request to SSI */
- if (SRegTmrMt(schCb[inst].schInit.ent, dInst,
- (S16)schCb[inst].genCfg.tmrRes, schActvTmr) != ROK)
+ if (ODU_REG_TMR_MT(schCb[inst].schInit.ent, dInst,
+ (int)schCb[inst].genCfg.tmrRes, schActvTmr) != ROK)
{
RLOG_ARG0(L_ERROR,DBG_INSTID,inst, "SchInstCfg(): Failed to "
"register timer.");
- RETVALUE(LCM_REASON_MEM_NOAVAIL);
+ return (LCM_REASON_MEM_NOAVAIL);
}
#endif
/* Set Config done in TskInit */
* @return S16
* -# ROK
**/
-int SchProcGenCfgReq(Pst *pst, RgMngmt *cfg)
+uint8_t SchProcGenCfgReq(Pst *pst, RgMngmt *cfg)
{
- uint16_t ret = LCM_PRIM_OK;
+ uint8_t ret = LCM_PRIM_OK;
uint16_t reason = LCM_REASON_NOT_APPL;
RgMngmt cfm;
Pst cfmPst;
memset(&cfmPst, 0 , sizeof(Pst));
SchFillCfmPst(pst, &cfmPst, cfg);
- cmMemset((U8 *)&cfm, 0, sizeof(RgMngmt));
+ memset((uint8_t *)&cfm, 0, sizeof(RgMngmt));
#ifdef LMINT3
cfm.hdr.transId =
*
* @details
*
- * Function : macSchSlotInd
+ * Function : MacSchSlotInd
*
* This API is invoked by PHY to indicate slot indication to Scheduler for
* a cell.
* -# ROK
* -# RFAILED
**/
-uint8_t macSchSlotInd(Pst *pst, SlotIndInfo *slotInd)
+uint8_t MacSchSlotInd(Pst *pst, SlotIndInfo *slotInd)
{
Inst inst = pst->dstInst-SCH_INST_START;
schProcessSlotInd(slotInd, inst);
return ROK;
-} /* macSchSlotInd */
+} /* MacSchSlotInd */
/*******************************************************************
*
*
* @details
*
- * Function : macSchRachInd
+ * Function : MacSchRachInd
*
* Functionality:
* Processes Rach indication from MAC
* RFAILED - failure
*
* ****************************************************************/
-uint8_t macSchRachInd(Pst *pst, RachIndInfo *rachInd)
+uint8_t MacSchRachInd(Pst *pst, RachIndInfo *rachInd)
{
Inst inst = pst->dstInst-SCH_INST_START;
DU_LOG("\nSCH : Received Rach indication");
*
* @details
*
- * Function : macSchCrcInd
+ * Function : MacSchCrcInd
*
* Functionality:
* Processes CRC indication from MAC
* RFAILED - failure
*
* ****************************************************************/
-uint8_t macSchCrcInd(Pst *pst, CrcIndInfo *crcInd)
+uint8_t MacSchCrcInd(Pst *pst, CrcIndInfo *crcInd)
{
switch(crcInd->crcInd[0])
{
*
* @details
*
- * Function : InitSchCellCb
+ * Function : schInitCellCb
*
* This API is invoked after receiving schCellCfg
*
* -# ROK
* -# RFAILED
**/
-int InitSchCellCb(Inst inst, SchCellCfg *schCellCfg)
+uint8_t schInitCellCb(Inst inst, SchCellCfg *schCellCfg)
{
SchCellCb *cell;
SCH_ALLOC(cell, sizeof(SchCellCb));
if(!cell)
{
- DU_LOG("\nMemory allocation failed in InitSchCellCb");
+ DU_LOG("\nMemory allocation failed in schInitCellCb");
return RFAILED;
}
SCH_ALLOC(schDlSlotInfo, sizeof(SchDlSlotInfo));
if(!schDlSlotInfo)
{
- DU_LOG("\nMemory allocation failed in InitSchCellCb");
+ DU_LOG("\nMemory allocation failed in schInitCellCb");
return RFAILED;
}
SCH_ALLOC(schUlSlotInfo, sizeof(SchUlSlotInfo));
if(!schUlSlotInfo)
{
- DU_LOG("\nMemory allocation failed in InitSchCellCb");
+ DU_LOG("\nMemory allocation failed in schInitCellCb");
return RFAILED;
}
- memset(schDlSlotInfo, 0, sizeof(SchDlSlotInfo));
- memset(schUlSlotInfo, 0, sizeof(SchUlSlotInfo));
-
- schDlSlotInfo->totalPrb = schUlSlotInfo->totalPrb = MAX_NUM_RB;
-
- for(uint8_t itr=0; itr<SCH_SYMBOL_PER_SLOT; itr++)
- {
- schDlSlotInfo->assignedPrb[itr] = 0;
- schUlSlotInfo->assignedPrb[itr] = 0;
- }
- schUlSlotInfo->schPuschInfo = NULLP;
-
- for(uint8_t itr=0; itr<MAX_SSB_IDX; itr++)
- {
- memset(&schDlSlotInfo->ssbInfo[itr], 0, sizeof(SsbInfo));
- }
+ schInitDlSlot(schDlSlotInfo);
+ schInitUlSlot(schUlSlotInfo);
cell->schDlSlotInfo[idx] = schDlSlotInfo;
cell->schUlSlotInfo[idx] = schUlSlotInfo;
bwp->cyclicPrefix = 0; /* normal */
/* fill the PDCCH PDU */
- pdcch->coreset0Cfg.coreSet0Size = numRbs;
+ pdcch->coreset0Cfg.coreSetSize = numRbs;
pdcch->coreset0Cfg.startSymbolIndex = firstSymbol;
pdcch->coreset0Cfg.durationSymbols = numSymbols;
memcpy(pdcch->coreset0Cfg.freqDomainResource,FreqDomainResource,6);
Pst rspPst;
Inst inst = pst->dstInst-1;
- InitSchCellCb(inst, schCellCfg);
+ schInitCellCb(inst, schCellCfg);
cellCb = schCb[inst].cells[inst]; //cells is of MAX_CELLS, why inst
cellCb->macInst = pst->srcInst;
*
* @details
*
- * Function : macSchDlRlcBoInfo
+ * Function : MacSchDlRlcBoInfo
*
* Functionality:
* Processes DL RLC BO info from MAC
* RFAILED - failure
*
* ****************************************************************/
-uint8_t macSchDlRlcBoInfo(Pst *pst, DlRlcBOInfo *dlBoInfo)
+uint8_t MacSchDlRlcBoInfo(Pst *pst, DlRlcBOInfo *dlBoInfo)
{
uint16_t lcIdx;
Inst inst = pst->dstInst-SCH_INST_START;
return ROK;
}
+/*******************************************************************
+ *
+ * @brief Processes BSR indiation from MAC
+ *
+ * @details
+ *
+ * Function : MacSchBsr
+ *
+ * Functionality:
+ * Processes DL BSR from MAC
+ *
+ * @params[in] Pst pst
+ * UlBufferStatusRptInd bsrInd
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t MacSchBsr(Pst *pst, UlBufferStatusRptInd *bsrInd)
+{
+ Inst schInst = pst->dstInst-SCH_INST_START;
+ SchCellCb *cellCb = NULLP;
+ SchUeCb *ueCb = NULLP;
+ uint8_t lcgIdx;
+
+ DU_LOG("\nSCH : Received BSR");
+
+ cellCb = schCb[schInst].cells[schInst];
+ ueCb = schGetUeCb(cellCb, bsrInd->crnti);
+
+ /* store dataVolume per lcg in uecb */
+ for(lcgIdx = 0; lcgIdx < bsrInd->numLcg; lcgIdx++)
+ {
+ ueCb->bsrInfo[lcgIdx].priority = 1; //TODO: determining LCG priority?
+ ueCb->bsrInfo[lcgIdx].dataVol = bsrInd->dataVolInfo[lcgIdx].dataVol;
+ }
+ return ROK;
+}
+
+/*******************************************************************
+ *
+ * @brief Processes SR UCI indication from MAC
+ *
+ * @details
+ *
+ * Function : MacSchSrUciInd
+ *
+ * Functionality:
+ * Processes SR UCI indication from MAC
+ *
+ * @params[in] Post structure
+ * UCI Indication
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t MacSchSrUciInd(Pst *pst, SrUciIndInfo *uciInd)
+{
+ Inst inst = pst->dstInst-SCH_INST_START;
+
+ SchUeCb *ueCb;
+ SchCellCb *cellCb = schCb[inst].cells[inst];
+
+ DU_LOG("\nSCH : Received SR");
+ ueCb = schGetUeCb(cellCb, uciInd->crnti);
+
+ if(uciInd->numSrBits)
+ {
+ ueCb->srRcvd = true;
+ }
+ return ROK;
+}
/**********************************************************************
End of file
**********************************************************************/