1 /*******************************************************************************
2 ################################################################################
3 # Copyright (c) [2017-2019] [Radisys] #
5 # Licensed under the Apache License, Version 2.0 (the "License"); #
6 # you may not use this file except in compliance with the License. #
7 # You may obtain a copy of the License at #
9 # http://www.apache.org/licenses/LICENSE-2.0 #
11 # Unless required by applicable law or agreed to in writing, software #
12 # distributed under the License is distributed on an "AS IS" BASIS, #
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
14 # See the License for the specific language governing permissions and #
15 # limitations under the License. #
16 ################################################################################
17 *******************************************************************************/
20 /************************************************************************
26 Desc: C source code for packing/unpacking of RGM interface
31 **********************************************************************/
34 @brief This file contains the packing/unpacking code for the RGM interface
38 /* header include files (.h) */
39 #include "common_def.h"
40 #include "rgm.h" /* RGM Interface defines */
41 /* header/extern include files (.x) */
42 #include "rgm.x" /* RGM Interface includes */
48 * @brief Request from RRM to MAC to bind the interface saps
52 * Function : cmPkLwLcRgmBndReq
55 * @param[in] SuId suId
56 * @param[in] SpId spId
68 S16 cmPkLwLcRgmBndReq(pst, suId, spId)
76 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
81 if (SPkS16(spId, mBuf) != ROK)
87 if (SPkS16(suId, mBuf) != ROK)
93 pst->event = (Event) EVTRGMBNDREQ;
94 return (SPstTsk(pst,mBuf));
99 * @brief Request from RRM to MAC to bind the interface saps
103 * Function : cmUnpkLwLcRgmBndReq
105 * @param[in] Pst* pst
106 * @param[in] SuId suId
107 * @param[in] SpId spId
112 S16 cmUnpkLwLcRgmBndReq
119 S16 cmUnpkLwLcRgmBndReq(func, pst, mBuf)
130 if (SUnpkS16(&suId, mBuf) != ROK)
136 if (SUnpkS16(&spId, mBuf) != ROK)
142 ret = ((*func)(pst, suId, spId));
150 * @brief Request from RRM to MAC to Unbind the interface saps
154 * Function : cmPkLwLcRgmUbndReq
156 * @param[in] Pst* pst
157 * @param[in] SpId spId
158 * @param[in] Reason reason
163 S16 cmPkLwLcRgmUbndReq
170 S16 cmPkLwLcRgmUbndReq(pst, spId, reason)
176 Buffer *mBuf = NULLP;
178 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
182 if (SPkS16(reason, mBuf) != ROK)
187 if (SPkS16(spId, mBuf) != ROK)
193 pst->event = (Event) EVTRGMUBNDREQ;
194 return (SPstTsk(pst,mBuf));
198 * @brief Confirmation from MAC to RRM for the bind/Unbind
199 * request for the interface saps
203 * Function : cmPkLwLcRgmBndCfm
205 * @param[in] Pst* pst
206 * @param[in] SuId suId
207 * @param[in] U8 status
212 S16 cmPkLwLcRgmBndCfm
219 S16 cmPkLwLcRgmBndCfm(pst, suId, status)
225 Buffer *mBuf = NULLP;
227 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
232 if (SPkS16(suId, mBuf) != ROK)
238 if (oduUnpackUInt8(status, mBuf) != ROK)
244 pst->event = (Event) EVTRGMBNDCFM;
245 return (SPstTsk(pst,mBuf));
250 * @brief Confirmation from MAC to RRM for the bind/Unbind
251 * request for the interface saps
255 * Function : cmUnpkLwLcRgmBndCfm
257 * @param[in] Pst* pst
258 * @param[in] SuId suId
259 * @param[in] U8 status
264 S16 cmUnpkLwLcRgmBndCfm
271 S16 cmUnpkLwLcRgmBndCfm(func, pst, mBuf)
281 if (oduPackUInt8(&status, mBuf) != ROK)
287 if (SUnpkS16(&suId, mBuf) != ROK)
293 return ((*func)(pst, suId, status));
298 * @brief Configure the PRB Report Preparation Start/Stop from RRM to MAC
302 * Function : cmPkLwLcRgmCfgPrbRprt
304 * @param[in] Pst* pst
305 * @param[in] SpId spId
306 * @param[in] RgmPrbRprtCfg * prbRprtCfg
311 S16 cmPkLwLcRgmCfgPrbRprt
315 RgmPrbRprtCfg * prbRprtCfg
318 S16 cmPkLwLcRgmCfgPrbRprt(pst, spId, prbRprtCfg)
321 RgmPrbRprtCfg * prbRprtCfg;
324 Buffer *mBuf = NULLP;
325 U32 len = sizeof(RgmPrbRprtCfg);
327 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
329 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtCfg, sizeof(RgmPrbRprtCfg));
333 if(oduPackPointer((PTR)prbRprtCfg, mBuf) != ROK)
336 SPutSBuf(pst->region, pst->pool, (Data*)prbRprtCfg, len);
340 if (SPkS16(spId, mBuf) != ROK)
342 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtCfg, sizeof(RgmPrbRprtCfg));
347 pst->event = (Event) EVTRGMCFGPRBRPRT;
348 return (SPstTsk(pst,mBuf));
353 * @brief Configure the PRB Report Preparation Start/Stop from RRM to MAC
357 * Function : cmUnpkLwLcRgmCfgPrbRprt
359 * @param[in] Pst* pst
360 * @param[in] SpId spId
361 * @param[in] RgmPrbRprtCfg * prbRprtCfg
366 S16 cmUnpkLwLcRgmCfgPrbRprt
368 RgmCfgPrbRprtFptr func,
373 S16 cmUnpkLwLcRgmCfgPrbRprt(func, pst, mBuf)
374 RgmCfgPrbRprtFptr func;
381 RgmPrbRprtCfg *prbRprtCfg;
384 if (SUnpkS16(&spId, mBuf) != ROK)
390 if (oduUnpackPointer((PTR *)&prbRprtCfg, mBuf) != ROK)
393 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtCfg, sizeof(RgmPrbRprtCfg));
397 ret = ((*func)(pst, spId, prbRprtCfg));
405 * @brief PRB Usage Report Indication from MAC to RRM
409 * Function : cmPkLwLcRgmPrbRprtInd
411 * @param[in] Pst* pst
412 * @param[in] SuId suId
413 * @param[in] RgmPrbRprtInd * prbRprtInd
418 S16 cmPkLwLcRgmPrbRprtInd
422 RgmPrbRprtInd * prbRprtInd
425 S16 cmPkLwLcRgmPrbRprtInd(pst, suId, prbRprtInd)
428 RgmPrbRprtInd * prbRprtInd;
431 Buffer *mBuf = NULLP;
434 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
435 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtInd, sizeof(RgmPrbRprtInd));
439 if(oduPackPointer((PTR)prbRprtInd, mBuf) != ROK)
441 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtInd, sizeof(RgmPrbRprtInd));
446 if (SPkS16(suId, mBuf) != ROK)
448 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtInd, sizeof(RgmPrbRprtInd));
453 pst->event = (Event) EVTRGMCFGPRBRPRT;
454 return (SPstTsk(pst,mBuf));
459 * @brief PRB Usage Report Indication from MAC to RRM
463 * Function : cmUnpkLwLcRgmPrbRprtInd
465 * @param[in] Pst* pst
466 * @param[in] SuId suId
467 * @param[in] RgmPrbRprtInd * prbRprtInd
472 S16 cmUnpkLwLcRgmPrbRprtInd
474 RgmPrbRprtIndFptr func,
479 S16 cmUnpkLwLcRgmPrbRprtInd(func, pst, mBuf)
480 RgmPrbRprtIndFptr func;
486 RgmPrbRprtInd *prbRprtInd;
490 if (SUnpkS16(&suId, mBuf) != ROK)
496 if (oduUnpackPointer((PTR *)&prbRprtInd, mBuf) != ROK)
499 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtInd, sizeof(RgmPrbRprtInd));
504 ret = ((*func)(pst, suId, prbRprtInd));
514 * @brief Request from RRM to MAC to bind the interface saps
518 * Function : cmPkRgmBndReq
520 * @param[in] Pst* pst
521 * @param[in] SuId suId
522 * @param[in] SpId spId
534 S16 cmPkRgmBndReq(pst, suId, spId)
540 Buffer *mBuf = NULLP;
542 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
547 if (SPkS16(spId, mBuf) != ROK)
553 if (SPkS16(suId, mBuf) != ROK)
559 pst->event = (Event) EVTRGMBNDREQ;
560 return (SPstTsk(pst,mBuf));
565 * @brief Request from RRM to MAC to bind the interface saps
569 * Function : cmUnpkRgmBndReq
571 * @param[in] Pst* pst
572 * @param[in] SuId suId
573 * @param[in] SpId spId
585 S16 cmUnpkRgmBndReq(func, pst, mBuf)
596 if (SUnpkS16(&suId, mBuf) != ROK)
602 if (SUnpkS16(&spId, mBuf) != ROK)
608 ret = ((*func)(pst, suId, spId));
616 * @brief Request from RRM to MAC to Unbind the interface saps
620 * Function : cmPkRgmUbndReq
622 * @param[in] Pst* pst
623 * @param[in] SpId spId
624 * @param[in] Reason reason
636 S16 cmPkRgmUbndReq(pst, spId, reason)
642 Buffer *mBuf = NULLP;
644 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
648 if (SPkS16(reason, mBuf) != ROK)
653 if (SPkS16(spId, mBuf) != ROK)
659 pst->event = (Event) EVTRGMUBNDREQ;
660 return (SPstTsk(pst,mBuf));
666 * @brief Request from RRM to MAC to Unbind the interface saps
670 * Function : cmUnpkRgmUbndReq
672 * @param[in] Pst* pst
673 * @param[in] SpId spId
674 * @param[in] Reason reason
686 S16 cmUnpkRgmUbndReq(func, pst, mBuf)
696 if (SUnpkS16(&spId, mBuf) != ROK)
701 if (SUnpkS16(&reason, mBuf) != ROK)
707 return ((*func)(pst, spId, reason));
712 * @brief Confirmation from MAC to RRM for the bind/Unbind
713 * request for the interface saps
717 * Function : cmPkRgmBndCfm
719 * @param[in] Pst* pst
720 * @param[in] SuId suId
721 * @param[in] U8 status
733 S16 cmPkRgmBndCfm(pst, suId, status)
739 Buffer *mBuf = NULLP;
741 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
746 if (SPkS16(suId, mBuf) != ROK)
752 if (oduUnpackUInt8(status, mBuf) != ROK)
758 pst->event = (Event) EVTRGMBNDCFM;
759 return (SPstTsk(pst,mBuf));
764 * @brief Confirmation from MAC to RRM for the bind/Unbind
765 * request for the interface saps
769 * Function : cmUnpkRgmBndCfm
771 * @param[in] Pst* pst
772 * @param[in] SuId suId
773 * @param[in] U8 status
785 S16 cmUnpkRgmBndCfm(func, pst, mBuf)
795 if (oduPackUInt8(&status, mBuf) != ROK)
801 if (SUnpkS16(&suId, mBuf) != ROK)
807 return ((*func)(pst, suId, status));
814 * @brief Configure the PRB Report Preparation Start/Stop from RRM to MAC
818 * Function : cmPkCfgPrbRprt
820 * @param[in] RgmPrbRprtCfg *prbRprtCfg
821 * @param[in] Buffer *mBuf
828 RgmPrbRprtCfg * prbRprtCfg,
832 S16 cmPkCfgPrbRprt(prbRprtCfg, mBuf)
833 RgmPrbRprtCfg * prbRprtCfg;
837 CMCHKPK(oduUnpackUInt16, prbRprtCfg->usPrbAvgPeriodicty, mBuf);
838 CMCHKPK(oduUnpackUInt8, prbRprtCfg->bConfigType, mBuf);
839 CMCHKPK(oduUnpackUInt8, prbRprtCfg->bCellId, mBuf);
843 * @brief Configure the PRB Report Preparation Start/Stop from RRM to MAC
847 * Function : cmUnPkCfgPrbRprt
849 * @param[in] RgmPrbRprtCfg *prbRprtCfg
850 * @param[in] Buffer *mBuf
857 RgmPrbRprtCfg * prbRprtCfg,
861 S16 cmUnPkCfgPrbRprt(prbRprtCfg, mBuf)
862 RgmPrbRprtCfg * prbRprtCfg;
866 CMCHKUNPK(oduPackUInt8, &prbRprtCfg->bCellId, mBuf);
867 CMCHKUNPK(oduPackUInt8, &prbRprtCfg->bConfigType, mBuf);
868 CMCHKUNPK(oduPackUInt16, &prbRprtCfg->usPrbAvgPeriodicty, mBuf);
876 * @brief Configure the PRB Report Preparation Start/Stop from RRM to MAC
880 * Function : cmPkRgmCfgPrbRprt
882 * @param[in] Pst* pst
883 * @param[in] SpId spId
884 * @param[in] RgmPrbRprtCfg *prbRprtCfg
889 S16 cmPkRgmCfgPrbRprt
893 RgmPrbRprtCfg * prbRprtCfg
896 S16 cmPkRgmCfgPrbRprt(pst, spId, prbRprtCfg)
899 RgmPrbRprtCfg * prbRprtCfg;
902 Buffer *mBuf = NULLP;
903 U32 len = sizeof(RgmPrbRprtCfg);
905 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK)
907 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtCfg, sizeof(RgmPrbRprtCfg));
911 if(cmPkCfgPrbRprt(prbRprtCfg, mBuf) != ROK)
914 SPutSBuf(pst->region, pst->pool, (Data*)prbRprtCfg, len);
918 if (SPkS16(spId, mBuf) != ROK)
920 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtCfg, sizeof(RgmPrbRprtCfg));
925 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtCfg, sizeof(RgmPrbRprtCfg));
927 pst->event = (Event) EVTRGMCFGPRBRPRT;
928 return (SPstTsk(pst,mBuf));
934 * @brief Configure the PRB Report Preparation Start/Stop from RRM to MAC
938 * Function : cmUnpkRgmCfgPrbRprt
940 * @param[in] Pst* pst
941 * @param[in] SpId spId
942 * @param[in] RgmPrbRprtCfg * prbRprtCfg
947 S16 cmUnpkRgmCfgPrbRprt
949 RgmCfgPrbRprtFptr func,
954 S16 cmUnpkRgmCfgPrbRprt(func, pst, mBuf)
955 RgmCfgPrbRprtFptr func;
961 RgmPrbRprtCfg *prbRprtCfg;
963 if ((SGetSBuf(pst->region, pst->pool, (Data **)&prbRprtCfg, sizeof(RgmPrbRprtCfg))) != ROK)
969 if (SUnpkS16(&spId, mBuf) != ROK)
975 if (cmUnPkCfgPrbRprt(prbRprtCfg, mBuf) != ROK)
982 return ((*func)(pst, spId, prbRprtCfg));
987 * @brief Packing of PRB Usage Report for qci for sending
992 * Function : cmPkRgmPrbQciRpt
994 * @param[in] RgmPrbRptPerQci * qciPrbRprt
995 * @param[out] Buffer *mBuf
1000 S16 cmPkRgmPrbQciRpt
1002 RgmPrbRptPerQci *qciPrbRprt,
1006 S16 cmPkRgmPrbQciRpt(qciPrbRprt, mBuf)
1007 RgmPrbRptPerQci *qciPrbRprt;
1008 Buffer *mBuf = NULLP;
1011 CMCHKPK(oduUnpackUInt8, qciPrbRprt->bQci, mBuf);
1012 CMCHKPK(oduUnpackUInt8, qciPrbRprt->bAvgPrbUlUsage, mBuf);
1013 CMCHKPK(oduUnpackUInt8, qciPrbRprt->bAvgPrbDlUsage, mBuf);
1019 * @brief Unpacking of PRB Usage Report for qci received from MAC
1023 * Function : cmUnpkRgmPrbQciRpt
1025 * @param[out] RgmPrbRptPerQci * qciPrbRprt
1026 * @param[in] Buffer *mBuf
1031 S16 cmUnpkRgmPrbQciRpt
1033 RgmPrbRptPerQci *qciPrbRprt,
1037 S16 cmUnpkRgmPrbQciRpt(qciPrbRprt, mBuf)
1038 RgmPrbRptPerQci *qciPrbRprt;
1039 Buffer *mBuf = NULLP;
1042 CMCHKUNPK(oduPackUInt8, &qciPrbRprt->bAvgPrbDlUsage, mBuf);
1043 CMCHKUNPK(oduPackUInt8, &qciPrbRprt->bAvgPrbUlUsage, mBuf);
1044 CMCHKUNPK(oduPackUInt8, &qciPrbRprt->bQci, mBuf);
1051 * @brief PRB Usage Report Indication from MAC to RRM
1055 * Function : cmPkPrbRprtInd
1057 * @param[in] RgmPrbRprtInd * prbRprtInd
1058 * @param[in] Buffer *mBuf
1065 RgmPrbRprtInd * prbRprtInd,
1069 S16 cmPkPrbRprtInd(prbRprtInd, mBuf)
1070 RgmPrbRprtInd * prbRprtInd;
1071 Buffer *mBuf = NULLP;
1078 for(idx = RGM_MAX_QCI_REPORTS-1; idx >= 0; idx--)
1080 CMCHKPK(cmPkRgmPrbQciRpt, &prbRprtInd->stQciPrbRpts[idx], mBuf);
1082 CMCHKPK(oduUnpackUInt8, prbRprtInd->bPrbUsageMask, mBuf);
1083 CMCHKPK(oduUnpackUInt8, prbRprtInd->bCellId, mBuf);
1089 * @brief PRB Usage Report Indication from MAC to RRM
1093 * Function : cmUnpkPrbRprtInd
1095 * @param[in] RgmPrbRprtInd * prbRprtInd
1096 * @param[in] Buffer *mBuf
1101 S16 cmUnpkPrbRprtInd
1103 RgmPrbRprtInd * prbRprtInd,
1107 S16 cmUnpkPrbRprtInd(prbRprtInd, mBuf)
1108 RgmPrbRprtInd * prbRprtInd;
1116 CMCHKUNPK(oduPackUInt8, &prbRprtInd->bCellId, mBuf);
1117 CMCHKUNPK(oduPackUInt8, &prbRprtInd->bPrbUsageMask, mBuf);
1118 for(idx = 0; idx < RGM_MAX_QCI_REPORTS; idx++)
1120 CMCHKUNPK(cmUnpkRgmPrbQciRpt, &prbRprtInd->stQciPrbRpts[idx], mBuf);
1130 * @brief PRB Usage Report Indication from MAC to RRM
1134 * Function : cmPkRgmPrbRprtInd
1136 * @param[in] Pst* pst
1137 * @param[in] SuId suId
1138 * @param[in] RgmPrbRprtInd * prbRprtInd
1143 S16 cmPkRgmPrbRprtInd
1147 RgmPrbRprtInd * prbRprtInd
1150 S16 cmPkRgmPrbRprtInd(pst, suId, prbRprtInd)
1153 RgmPrbRprtInd * prbRprtInd;
1156 Buffer *mBuf = NULLP;
1159 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1160 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtInd, sizeof(RgmPrbRprtInd));
1164 if(cmPkPrbRprtInd(prbRprtInd, mBuf) != ROK)
1166 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtInd, sizeof(RgmPrbRprtInd));
1171 if (SPkS16(suId, mBuf) != ROK)
1173 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtInd, sizeof(RgmPrbRprtInd));
1178 SPutSBuf(pst->region, pst->pool, (Data *)prbRprtInd, sizeof(RgmPrbRprtInd));
1180 pst->event = (Event) EVTRGMPRBRPRTIND;
1181 return (SPstTsk(pst,mBuf));
1184 * @brief PRB Usage Report Indication from MAC to RRM
1188 * Function : cmUnpkRgmPrbRprtInd
1190 * @param[in] Pst* pst
1191 * @param[in] SuId suId
1192 * @param[in] RgmPrbRprtInd * prbRprtInd
1197 S16 cmUnpkRgmPrbRprtInd
1199 RgmPrbRprtIndFptr func,
1204 S16 cmUnpkRgmPrbRprtInd(func, pst, mBuf)
1205 RgmPrbRprtIndFptr func;
1211 RgmPrbRprtInd prbRprtInd;
1214 if (SUnpkS16(&suId, mBuf) != ROK)
1220 if (cmUnpkPrbRprtInd(&prbRprtInd, mBuf) != ROK)
1227 return ((*func)(pst, suId, &prbRprtInd));
1231 * @brief Transmission Mode Change Indication from MAC to RRM
1235 * Function : cmPkTransModeInd
1237 * @param[in] RgmTransModeInd *transModeInd
1238 * @param[in] Buffer *mBuf
1243 S16 cmPkTransModeInd
1245 RgmTransModeInd *transModeInd,
1249 S16 cmPkTransModeInd(transModeInd, mBuf)
1250 RgmTransModeInd *transModeInd;
1254 CMCHKPK(oduUnpackUInt32, transModeInd->eMode, mBuf);
1255 CMCHKPK(oduUnpackUInt16, transModeInd->usCrnti, mBuf);
1256 CMCHKPK(oduUnpackUInt8, transModeInd->bCellId, mBuf);
1261 * @brief Transmission Mode Change Indication from MAC to RRM
1265 * Function : cmUnpkTransModeInd
1267 * @param[in] RgmTransModeInd *transModeInd
1268 * @param[in] Buffer *mBuf
1273 S16 cmUnpkTransModeInd
1275 RgmTransModeInd *transModeInd,
1279 S16 cmUnpkTransModeInd(transModeInd, mBuf)
1280 RgmTransModeInd *transModeInd;
1285 CMCHKUNPK(oduPackUInt8, &transModeInd->bCellId, mBuf);
1286 CMCHKUNPK(oduPackUInt16, &transModeInd->usCrnti, mBuf);
1287 CMCHKUNPK(oduPackUInt32, (U32 *)&tmpModeEnum, mBuf);
1288 transModeInd->eMode = (RgmTxnMode)tmpModeEnum;
1292 * @brief Transmission Mode Change Indication from MAC to RRM
1296 * Function : cmPkRgmTransModeInd
1298 * @param[in] Pst* pst
1299 * @param[in] SuId suId
1300 * @param[in] RgmTransModeInd *transModeInd
1305 S16 cmPkRgmTransModeInd
1309 RgmTransModeInd *transModeInd
1312 S16 cmPkRgmTransModeInd(pst, suId, transModeInd)
1315 RgmTransModeInd *transModeInd;
1318 Buffer *mBuf = NULLP;
1321 if (SGetMsg(pst->region, pst->pool, &mBuf) != ROK) {
1322 SPutSBuf(pst->region, pst->pool, (Data *)transModeInd, sizeof(RgmTransModeInd));
1326 if(cmPkTransModeInd(transModeInd, mBuf) != ROK)
1328 SPutSBuf(pst->region, pst->pool, (Data *)transModeInd, sizeof(RgmTransModeInd));
1333 if (SPkS16(suId, mBuf) != ROK)
1335 SPutSBuf(pst->region, pst->pool, (Data *)transModeInd, sizeof(RgmTransModeInd));
1340 SPutSBuf(pst->region, pst->pool, (Data *)transModeInd, sizeof(RgmTransModeInd));
1342 pst->event = (Event) EVTRGMTRANSMODEIND;
1343 return (SPstTsk(pst,mBuf));
1346 * @brief Transmission Mode Change Indication from MAC to RRM
1350 * Function : cmUnpkRgmTransModeInd
1352 * @param[in] Pst* pst
1353 * @param[in] SuId suId
1354 * @param[in] RgmTransModeInd *transModeInd
1359 S16 cmUnpkRgmTransModeInd
1361 RgmTransModeIndFptr func,
1366 S16 cmUnpkRgmTransModeInd(func, pst, mBuf)
1367 RgmTransModeIndFptr func;
1373 RgmTransModeInd transModeInd;
1376 if (SUnpkS16(&suId, mBuf) != ROK)
1382 if (cmUnpkTransModeInd(&transModeInd, mBuf) != ROK)
1389 return ((*func)(pst, suId, &transModeInd));
1391 /**********************************************************************
1395 **********************************************************************/