# limitations under the License. #
################################################################################
*******************************************************************************/
-
+#include "common_def.h"
#include "lwr_mac_upr_inf.h"
/*******************************************************************
* RFAILED - failure
*
* ****************************************************************/
-uint16_t packCrcInd(Pst *pst, CrcInd *crcInd)
+uint8_t packCrcInd(Pst *pst, CrcInd *crcInd)
{
- if((pst->selector == MAC_SELECTOR_LC) || (pst->selector == MAC_SELECTOR_LWLC))
+ if(pst->selector == ODU_SELECTOR_LWLC)
{
- return ROK;
+ Buffer *mBuf = NULLP;
+ if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+ {
+ DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packCrcInd");
+ return RFAILED;
+ }
+ CMCHKPK(oduPackPointer,(PTR)crcInd, mBuf);
+ return ODU_POST_TASK(pst, mBuf);
}
- else
+ return RFAILED;
+}
+
+/**************************************************************************
+ * @brief Function unpack crcInd
+ *
+ * @details
+ *
+ * Function : unpackCrcInd
+ *
+ * Functionality:
+ * unpacks crc indication
+ *
+ * @param[in] function pointer
+ * @param[in] Pst *pst, Post structure of the primitive.
+ * @param[in] Buffer *mBuf
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ ***************************************************************************/
+uint8_t unpackCrcInd(CrcIndFunc func, Pst *pst, Buffer *mBuf)
+{
+ if(pst->selector == ODU_SELECTOR_LWLC)
{
- return RFAILED;
+ CrcInd *crcInd = NULLP;
+
+ /* unpack the address of the structure */
+ CMCHKUNPK(oduUnpackPointer, (PTR *)&crcInd, mBuf);
+ ODU_PUT_MSG_BUF(mBuf);
+ return (*func)(pst, crcInd);
}
+ return RFAILED;
}
+
/*******************************************************************
*
* @brief Packs and Sends Rx Data Ind to MAC
* RFAILED - failure
*
* ****************************************************************/
-uint16_t packRxDataInd(Pst *pst, RxDataInd *rxDataInd)
+uint8_t packRxDataInd(Pst *pst, RxDataInd *rxDataInd)
{
- if((pst->selector == MAC_SELECTOR_LC) || (pst->selector == MAC_SELECTOR_LWLC))
+ if(pst->selector == ODU_SELECTOR_LWLC)
{
- return ROK;
+ Buffer *mBuf = NULLP;
+ if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+ {
+ DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packRxDataInd");
+ return RFAILED;
+ }
+ CMCHKPK(oduPackPointer,(PTR)rxDataInd, mBuf);
+ return ODU_POST_TASK(pst, mBuf);
}
- else
+ return RFAILED;
+}
+
+/**************************************************************************
+ * @brief Function unpack RxDataInd
+ *
+ * @details
+ *
+ * Function : unpackRxDataInd
+ *
+ * Functionality:
+ * unpacks Rx Data indication
+ *
+ * @param[in] function pointer
+ * @param[in] Pst *pst, Post structure of the primitive.
+ * @param[in] Buffer *mBuf
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ ***************************************************************************/
+uint8_t unpackRxDataInd(RxDataIndFunc func, Pst *pst, Buffer *mBuf)
+{
+ if(pst->selector == ODU_SELECTOR_LWLC)
{
- return RFAILED;
+ RxDataInd *rxDataInd = NULLP;
+
+ /* unpack the address of the structure */
+ CMCHKUNPK(oduUnpackPointer, (PTR *)&rxDataInd, mBuf);
+ ODU_PUT_MSG_BUF(mBuf);
+ return (*func)(pst, rxDataInd);
}
+ return RFAILED;
}
* RFAILED - failure
*
* ****************************************************************/
-uint16_t packRachInd(Pst *pst, RachInd *rachInd)
+uint8_t packRachInd(Pst *pst, RachInd *rachInd)
{
- if((pst->selector == MAC_SELECTOR_LC) || (pst->selector == MAC_SELECTOR_LWLC))
+ if(pst->selector == ODU_SELECTOR_LWLC)
{
- return ROK;
+ Buffer *mBuf = NULLP;
+ if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+ {
+ DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packRachInd");
+ return RFAILED;
+ }
+ CMCHKPK(oduPackPointer,(PTR)rachInd, mBuf);
+ return ODU_POST_TASK(pst, mBuf);
}
- else
+ return RFAILED;
+}
+
+/**************************************************************************
+ * @brief Function unpacks RachInd
+ *
+ * @details
+ *
+ * Function : unpackRachInd
+ *
+ * Functionality:
+ * unpacks Rach indication
+ *
+ * @param[in] function pointer
+ * @param[in] Pst *pst, Post structure of the primitive.
+ * @param[in] Buffer *mBuf
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ ***************************************************************************/
+uint8_t unpackRachInd(RachIndFunc func, Pst *pst, Buffer *mBuf)
+{
+ if(pst->selector == ODU_SELECTOR_LWLC)
{
- return RFAILED;
+ RachInd *rachInd = NULLP;
+
+ /* unpack the address of the structure */
+ CMCHKUNPK(oduUnpackPointer, (PTR *)&rachInd, mBuf);
+ ODU_PUT_MSG_BUF(mBuf);
+ return (*func)(pst, rachInd);
}
+ return RFAILED;
}
-
+
/*******************************************************************
*
- * @brief Loose coupled packing of slot indication
+ * @brief Pack and send slot indication to MAC
*
* @details
*
- * Function : packLcSlotInd
+ * Function : packSlotInd
*
* Functionality:
- * Loose coupled packing of slot indication
+ * Pack and send slot indication to MAC
*
* @params[in] Post structure
* Slot indication info
* RFAILED - failure
*
* ****************************************************************/
-S16 packLcSlotInd (Pst *pst, SlotIndInfo *slotInd)
+uint8_t packSlotInd (Pst *pst, SlotTimingInfo *slotInd)
+{
+ if(pst->selector == ODU_SELECTOR_LWLC)
+ {
+ Buffer *mBuf = NULLP;
+ if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+ {
+ DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packSlotInd");
+ return RFAILED;
+ }
+ CMCHKPK(oduPackPointer,(PTR)slotInd, mBuf);
+ return ODU_POST_TASK(pst, mBuf);
+ }
+ return RFAILED;
+}
+
+/**************************************************************************
+ * @brief Function unpacks slot indication
+ *
+ * @details
+ *
+ * Function : unpackSlotInd
+ *
+ * Functionality:
+ * unpacks slot indication
+ *
+ * @param[in] function pointer,
+ * @param[in] Pst *pst,
+ * @param[in] Buffer *mBuf
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ ***************************************************************************/
+uint8_t unpackSlotInd(SlotIndFunc func, Pst *pst, Buffer *mBuf)
+{
+ if(pst->selector == ODU_SELECTOR_LWLC)
+ {
+ SlotTimingInfo *slotInd = NULLP;
+
+ /* unpack the address of the structure */
+ CMCHKUNPK(oduUnpackPointer, (PTR *)&slotInd, mBuf);
+ ODU_PUT_MSG_BUF(mBuf);
+ return (*func)(pst, slotInd);
+ }
+ return RFAILED;
+}
+
+
+/*******************************************************************
+ *
+ * @brief Packs and Sends Stop Ind to MAC
+ *
+ * @details
+ *
+ * Function : packStopInd
+ *
+ * Functionality:
+ * Packs and Sends Stop Ind to MAC
+ *
+ * @params[in] Post structure pointer
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ * ****************************************************************/
+uint8_t packStopInd(Pst *pst, uint16_t *cellId)
{
- Buffer *mBuf = NULLP;
- if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
+ if(pst->selector == ODU_SELECTOR_LWLC)
{
- RETVALUE(RFAILED);
+ Buffer *mBuf = NULLP;
+ if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+ {
+ DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packStopInd");
+ return RFAILED;
+ }
+ CMCHKPK(oduPackPointer,(PTR)cellId, mBuf);
+ return ODU_POST_TASK(pst, mBuf);
}
-
- /* pack SFN and slot value */
- CMCHKPK(SPkU16,slotInd->sfn, mBuf);
- CMCHKPK(SPkU16,slotInd->slot, mBuf);
-
- RETVALUE(SPstTsk(pst,mBuf));
+ return RFAILED;
}
-
+
+/**************************************************************************
+ * @brief Function unpack stop indication
+ *
+ * @details
+ *
+ * Function : unpackStopInd
+ *
+ * Functionality:
+ * unpacks stop indication
+ *
+ * @param[in] function pointer
+ * @param[in] Pst *pst,
+ * @param[in] Buffer *mBuf
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ ***************************************************************************/
+uint8_t unpackStopInd(StopIndFunc func, Pst *pst, Buffer *mBuf)
+{
+ if(pst->selector == ODU_SELECTOR_LWLC)
+ {
+ uint16_t *cellId = NULLP;
+
+ /* unpack the address of the structure */
+ CMCHKUNPK(oduUnpackPointer, (PTR *)&cellId, mBuf);
+ ODU_PUT_MSG_BUF(mBuf);
+ return (*func)(pst, cellId);
+ }
+ return RFAILED;
+}
+
/*******************************************************************
*
- * @brief Light weight loose coupled packing of slot indication
+ * @brief Packs and Sends UCI Ind to MAC
*
* @details
*
- * Function : packLwlcSlotInd
+ * Function : packUciInd
*
* Functionality:
- * Light weight loose coupled packing of slot indication
+ * Packs and Sends Uci Ind to MAC
*
- * @params[in] Post structure
- * Slot indication info
+ * @params[in] Post structure pointer
* @return ROK - success
* RFAILED - failure
*
* ****************************************************************/
-S16 packLwlcSlotInd (Pst *pst, SlotIndInfo *slotInd)
+uint8_t packUciInd(Pst *pst, UciInd *uciInd)
+{
+ if(pst->selector == ODU_SELECTOR_LWLC)
+ {
+ Buffer *mBuf = NULLP;
+ if(ODU_GET_MSG_BUF(pst->region, pst->pool, &mBuf) != ROK)
+ {
+ DU_LOG("\nERROR --> LWR_MAC: Memory allocation failed in packUciInd");
+ return RFAILED;
+ }
+ CMCHKPK(oduPackPointer,(PTR)uciInd, mBuf);
+ return ODU_POST_TASK(pst, mBuf);
+ }
+ return RFAILED;
+}
+
+/**************************************************************************
+ * @brief Function unpack UCI indication
+ *
+ * @details
+ *
+ * Function : unpackUciInd
+ *
+ * Functionality:
+ * unpacks UCI indication
+ *
+ * @param[in] function pointer
+ * @param[in] Pst *pst,
+ * @param[in] Buffer *mBuf
+ * @return ROK - success
+ * RFAILED - failure
+ *
+ ***************************************************************************/
+uint8_t unpackUciInd(UciIndFunc func, Pst *pst, Buffer *mBuf)
{
- return ROK;
+ if(pst->selector == ODU_SELECTOR_LWLC)
+ {
+ UciInd *uciInd = NULLP;
+
+ /* unpack the address of the structure */
+ CMCHKUNPK(oduUnpackPointer, (PTR *)&uciInd, mBuf);
+ ODU_PUT_MSG_BUF(mBuf);
+ return (*func)(pst, uciInd);
+ }
+ return RFAILED;
}
+
/**********************************************************************
- End of file
-**********************************************************************/
+ End of file
+ **********************************************************************/