-/**
- * @brief Handler to process PDU received from MAC
- *
- * @details
- * This function receives the PDU from MAC.
- * seggregates common and dedicated logical channel
- * PDU and call respective handler.
- *
- * @param[in] pst Post structure
- * @param[in] suId Service User ID
- * @param[in] datInd Data Indication Information
- *
- * @return S16
- * -# ROK
- * -# RFAILED
- *
-*/
-
-#ifdef ANSI
-PUBLIC S16 RlcMacProcUlData
-(
-Pst* pst,
-SuId suId,
-RlcMacData *ulData
-)
-#else
-PUBLIC S16 RlcMacProcUlData(pst, suId, ulData)
-Pst* pst;
-SuId suId;
-RlcMacData *ulData;
-#endif
-{
- U8 idx;
- U8 lcId; /* Logical Channel */
- U8 numDLch = 0; /* Number of dedicated logical channel */
- Bool dLchPduPres; /* PDU received on dedicated logical channel */
- RguLchDatInd dLchData[RGU_MAX_LC]; /* PDU info on dedicated logical channel */
- RguDDatIndInfo dLchUlDat; /* UL data on dedicated logical channel */
- RguCDatIndInfo cLchUlDat; /* UL data on common logical channel */
-
- /* Initializing dedicated logical channel Database */
- for(idx = 0; idx < RGU_MAX_LC; idx++)
- {
- dLchData[idx].lcId = idx;
- dLchData[idx].pdu.numPdu = 0;
- }
-
- dLchPduPres = FALSE;
-
- /* Seggregate PDUs received on common and dedicated channels
- * and call common channel's handler */
- for(idx = 0; idx< ulData->nmbPdu; idx++)
- {
- if(ulData->pduInfo[idx].commCh)
- {
- cmMemset((U8*)&cLchUlDat, (U8)0, sizeof(RguCDatIndInfo));
-
- cLchUlDat.cellId = ulData->cellId;
- cLchUlDat.rnti = ulData->rnti;
- cLchUlDat.lcId = ulData->pduInfo[idx].lcId;
- cLchUlDat.pdu = ulData->pduInfo[idx].pduBuf;
-
- KwLiRguCDatInd(pst, suId, &cLchUlDat);
- }
- else
- {
- if(!dLchPduPres)
- {
- dLchPduPres = TRUE;
- }
-
- lcId = ulData->pduInfo[idx].lcId;
- dLchData[lcId].pdu.mBuf[dLchData[lcId].pdu.numPdu] = ulData->pduInfo[idx].pduBuf;
- dLchData[lcId].pdu.numPdu++;
- }
- }
-
- /* If any PDU received on dedicated logical channel, copy into RguDDatIndInfo
- * and call its handler */
- if(dLchPduPres)
- {
- dLchUlDat.cellId = ulData->cellId;
- dLchUlDat.rnti = ulData->rnti;
-
- for(idx = 0; idx < RGU_MAX_LC; idx++)
- {
- if(dLchData[idx].pdu.numPdu)
- {
- cmMemcpy((U8 *)&dLchUlDat.lchData[numDLch], (U8 *)&dLchData[idx], sizeof(RguLchDatInd));
- numDLch++;
- }
- }
- dLchUlDat.numLch = numDLch;
- KwLiRguDDatInd(pst, suId, &dLchUlDat);
- }
-
- RETVALUE(ROK);
-
-}/* End of RlcMacProcUlData */
-
-PUBLIC int rlcDDatIndRcvd;
-PUBLIC int rlcCDatIndRcvd;