--- /dev/null
+/*******************************************************************************
+################################################################################
+# Copyright (c) [2017-2019] [Radisys] #
+# #
+# Licensed under the Apache License, Version 2.0 (the "License"); #
+# you may not use this file except in compliance with the License. #
+# You may obtain a copy of the License at #
+# #
+# http://www.apache.org/licenses/LICENSE-2.0 #
+# #
+# Unless required by applicable law or agreed to in writing, software #
+# distributed under the License is distributed on an "AS IS" BASIS, #
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
+# See the License for the specific language governing permissions and #
+# limitations under the License. #
+################################################################################
+*******************************************************************************/
+
+/********************************************************************20**
+
+ Name: PDCP Layer Management interface
+
+ Type: C source file
+
+ Desc: This file contains source code for RLC layer management
+ interface primitives. It includes the definition of the
+ following functions and their portable function
+ definitions.
+ -- PjMiLpjCfgCfm
+ -- PjMiLpjCntrlCfm
+ -- PjMiLpjStaInd
+
+
+ File: pj_ptmi.c
+
+*********************************************************************21*/
+
+\f
+/* header (.h) include files */
+#include "envopt.h" /* environment options */
+#include "envdep.h" /* environment dependent */
+#include "envind.h" /* environment independent */
+
+#include "gen.h" /* general */
+#include "ssi.h" /* system services */
+#include "cm5.h" /* common timer defines */
+#include "cm_tkns.h" /* common tokens defines */
+#include "cm_mblk.h" /* common memory allocation library defines */
+#include "cm_llist.h" /* common link list defines */
+#include "cm_hash.h" /* common hash list defines */
+#include "cm_lte.h" /* common LTE defines */
+#include "lpj.h" /* LPJ defines */
+
+
+/* extern (.x) include files */
+#include "gen.x" /* general */
+#include "ssi.x" /* system services */
+
+#include "cm5.x" /* common timer library */
+#include "cm_tkns.x" /* common tokens */
+#include "cm_mblk.x" /* common memory allocation */
+#include "cm_llist.x" /* common link list */
+#include "cm_hash.x" /* common hash list */
+#include "cm_lte.x" /* common LTE includes */
+#include "cm_lib.x" /* common memory allocation library */
+#include "lpj.x" /* LPJ */
+
+
+/* local defines */
+#ifndef LCPJMILPJ
+#define PTPJLPJ
+#endif
+
+#ifndef SM
+#define PTPJLPJ
+#endif
+
+
+#ifdef PTPJLPJ
+
+EXTERN S16 PtMiLpjCfgCfm ARGS((Pst * pst, PjMngmt * cfgCfm));
+
+EXTERN S16 PtMiLpjCntrlCfm ARGS((Pst * pst, PjMngmt * cntlCfm));
+
+EXTERN S16 PtMiLpjStaInd ARGS((Pst * pst, PjMngmt * staInd));
+
+EXTERN S16 PtMiLpjStaCfm ARGS((Pst * pst, PjMngmt * staCfm));
+
+EXTERN S16 PtMiLpjStsCfm ARGS((Pst * pst, Action actn, PjMngmt * stsCfm));
+
+EXTERN S16 PtMiLpjTrcInd ARGS((Pst * pst, PjMngmt * trc, Buffer * mBuf));
+
+/* kw005.201 added support for L2 Measurement */
+#ifdef LTE_L2_MEAS
+EXTERN S16 PtMiLpjL2MeasCfm ARGS((Pst *pst, PjL2MeasCfmEvt *measEvt));
+PRIVATE S16 PtMiLpjL2MeasStopCfm ARGS((Pst *pst, U16 measType,U8 status));
+#endif /* LTE_L2_MEAS */
+
+#endif /*--#ifdef PTPJLPJ--*/
+
+/*********************************************************************
+ * Primitives for LPJ interface
+ ********************************************************************/
+PRIVATE CONSTANT LpjCfgCfm PjMiLpjCfgCfmMt[] =
+{
+#ifdef LCPJMILPJ
+ cmPkLpjCfgCfm,
+#else
+ PtMiLpjCfgCfm,
+#endif
+#ifdef SM
+ SmMiLpjCfgCfm,
+#else
+ PtMiLpjCfgCfm,
+#endif
+};
+
+
+PRIVATE CONSTANT LpjCntrlCfm PjMiLpjCntrlCfmMt[] =
+{
+#ifdef LCPJMILPJ
+ cmPkLpjCntrlCfm,
+#else
+ PtMiLpjCntrlCfm,
+#endif
+#ifdef SM
+ SmMiLpjCntrlCfm,
+#else
+ PtMiLpjCntrlCfm,
+#endif
+};
+
+
+PRIVATE CONSTANT LpjStaInd PjMiLpjStaIndMt[] =
+{
+#ifdef LCPJMILPJ
+ cmPkLpjStaInd,
+#else
+ PtMiLpjStaInd,
+#endif
+#ifdef SM
+ SmMiLpjStaInd,
+#else
+ PtMiLpjStaInd,
+#endif
+};
+
+
+PRIVATE CONSTANT LpjStaCfm PjMiLpjStaCfmMt[] =
+{
+#ifdef LCPJMILPJ
+ cmPkLpjStaCfm,
+#else
+ PtMiLpjStaCfm,
+#endif
+#ifdef SM
+ SmMiLpjStaCfm,
+#else
+ PtMiLpjStaCfm,
+#endif
+};
+
+
+PRIVATE CONSTANT LpjStsCfm PjMiLpjStsCfmMt[] =
+{
+#ifdef LCPJMILPJ
+ cmPkLpjStsCfm,
+#else
+ PtMiLpjStsCfm,
+#endif
+#ifdef SM
+ SmMiLpjStsCfm,
+#else
+ PtMiLpjStsCfm,
+#endif
+};
+
+
+PRIVATE CONSTANT LpjTrcInd PjMiLpjTrcIndMt[] =
+{
+#ifdef LCPJMILPJ
+ cmPkLpjTrcInd,
+#else
+ PtMiLpjTrcInd,
+#endif
+#ifdef SM
+ SmMiLpjTrcInd,
+#else
+ PtMiLpjTrcInd,
+#endif
+};
+
+/* kw005.201 added support for L2 Measurement */
+#ifdef LTE_L2_MEAS
+PRIVATE CONSTANT LpjL2MeasCfm PjMiLpjL2MeasCfmMt[] =
+{
+#ifdef LCPJMILPJ
+ cmPkLpjL2MeasCfm,
+#else
+ PtMiLpjL2MeasCfm,
+#endif
+#ifdef SM
+ SmMiLpjL2MeasCfm,
+#else
+ PtMiLpjL2MeasCfm,
+#endif
+};
+PRIVATE CONSTANT LpjL2MeasStopCfm PjMiLpjL2MeasStopCfmMt[] =
+{
+#ifdef LCPJMILPJ
+ cmPkLpjL2MeasStopCfm,
+#else
+ PtMiLpjL2MeasStopCfm,
+#endif
+#ifdef SM
+ SmMiLpjL2MeasStopCfm,
+#else
+ PtMiLpjL2MeasStopCfm,
+#endif
+};
+#endif /* LTE_L2_MEAS */
+
+/****************************************************************************
+ * LPJ Interface Mt functions
+ ***************************************************************************/
+#ifdef ANSI
+PUBLIC S16 PjMiLpjCfgCfm
+(
+Pst * pst,
+PjMngmt * cfgCfm
+)
+#else
+PUBLIC S16 PjMiLpjCfgCfm(pst, cfgCfm)
+Pst * pst;
+PjMngmt * cfgCfm;
+#endif
+{
+
+ TRC3(PjMiLpjCfgCfm)
+
+ (*PjMiLpjCfgCfmMt[pst->selector])(pst, cfgCfm);
+
+ RETVALUE(ROK);
+
+}
+
+
+#ifdef ANSI
+PUBLIC S16 PjMiLpjCntrlCfm
+(
+Pst * pst,
+PjMngmt * cntlCfm
+)
+#else
+PUBLIC S16 PjMiLpjCntrlCfm(pst, cntlCfm)
+Pst * pst;
+PjMngmt * cntlCfm;
+#endif
+{
+
+ TRC3(PjMiLpjCntrlCfm)
+
+ (*PjMiLpjCntrlCfmMt[pst->selector])(pst, cntlCfm);
+
+ RETVALUE(ROK);
+
+}
+
+
+#ifdef ANSI
+PUBLIC S16 PjMiLpjStaInd
+(
+Pst * pst,
+PjMngmt * staInd
+)
+#else
+PUBLIC S16 PjMiLpjStaInd(pst, staInd)
+Pst * pst;
+PjMngmt * staInd;
+#endif
+{
+
+ TRC3(PjMiLpjStaInd)
+
+ (*PjMiLpjStaIndMt[pst->selector])(pst, staInd);
+
+ RETVALUE(ROK);
+
+}
+
+
+#ifdef ANSI
+PUBLIC S16 PjMiLpjStaCfm
+(
+Pst * pst,
+PjMngmt * staCfm
+)
+#else
+PUBLIC S16 PjMiLpjStaCfm(pst, staCfm)
+Pst * pst;
+PjMngmt * staCfm;
+#endif
+{
+
+ TRC3(PjMiLpjStaCfm)
+
+ (*PjMiLpjStaCfmMt[pst->selector])(pst, staCfm);
+
+ RETVALUE(ROK);
+
+}
+
+
+#ifdef ANSI
+PUBLIC S16 PjMiLpjStsCfm
+(
+Pst * pst,
+Action actn,
+PjMngmt * stsCfm
+)
+#else
+PUBLIC S16 PjMiLpjStsCfm(pst, actn, stsCfm)
+Pst * pst;
+Action actn;
+PjMngmt * stsCfm;
+#endif
+{
+
+ TRC3(PjMiLpjStsCfm)
+
+ (*PjMiLpjStsCfmMt[pst->selector])(pst, actn, stsCfm);
+
+ RETVALUE(ROK);
+
+}
+
+
+#ifdef ANSI
+PUBLIC S16 PjMiLpjTrcInd
+(
+Pst * pst,
+PjMngmt * trc,
+Buffer * mBuf
+)
+#else
+PUBLIC S16 PjMiLpjTrcInd(pst, trc, mBuf)
+Pst * pst;
+PjMngmt * trc;
+Buffer * mBuf;
+#endif
+{
+
+ TRC3(PjMiLpjTrcInd)
+
+ (*PjMiLpjTrcIndMt[pst->selector])(pst, trc, mBuf);
+
+ RETVALUE(ROK);
+
+}
+
+/* kw005.201 added support for L2 Measurement */
+#ifdef LTE_L2_MEAS
+#ifdef ANSI
+PUBLIC S16 PjMiLpjL2MeasCfm
+(
+Pst * pst,
+PjL2MeasCfmEvt *measEvt
+)
+#else
+PUBLIC S16 PjMiLpjL2MeasCfm(pst, trc, mBuf)
+Pst * pst;
+PjL2MeasCfmEvt *measEvt;
+#endif
+{
+
+ TRC3(PjMiLpjL2MeasCfm)
+
+ (*PjMiLpjL2MeasCfmMt[pst->selector])(pst, measEvt);
+
+ RETVALUE(ROK);
+
+}
+#ifdef ANSI
+PUBLIC S16 PjMiLpjL2MeasStopCfm
+(
+Pst *pst,
+U16 measType,
+U8 status
+)
+#else
+PUBLIC S16 PjMiLpjL2MeasStopCfm(pst, measType,status)
+Pst *pst;
+U16 measType;
+U8 status;
+#endif
+{
+
+ TRC3(PjMiLpjL2MeasStopCfm)
+
+ (*PjMiLpjL2MeasStopCfmMt[pst->selector])(pst, measType,status);
+
+ RETVALUE(ROK);
+
+}
+#endif /* LTE_L2_MEAS */
+
+
+#ifdef PTPJLPJ
+
+
+#ifdef ANSI
+PUBLIC S16 PtMiLpjCfgCfm
+(
+Pst * pst,
+PjMngmt * cfgCfm
+)
+#else
+PUBLIC S16 PtMiLpjCfgCfm(pst, cfgCfm)
+Pst * pst;
+PjMngmt * cfgCfm;
+#endif
+{
+
+ TRC3(PtMiLpjCfgCfm)
+
+ UNUSED(pst);
+ UNUSED(cfgCfm);
+
+ RETVALUE(ROK);
+
+}
+
+
+#ifdef ANSI
+PUBLIC S16 PtMiLpjCntrlCfm
+(
+Pst * pst,
+PjMngmt * cntlCfm
+)
+#else
+PUBLIC S16 PtMiLpjCntrlCfm(pst, cntlCfm)
+Pst * pst;
+PjMngmt * cntlCfm;
+#endif
+{
+
+ TRC3(PtMiLpjCntrlCfm)
+
+ UNUSED(pst);
+ UNUSED(cntlCfm);
+
+ RETVALUE(ROK);
+
+}
+
+
+#ifdef ANSI
+PUBLIC S16 PtMiLpjStaInd
+(
+Pst * pst,
+PjMngmt * staInd
+)
+#else
+PUBLIC S16 PtMiLpjStaInd(pst, staInd)
+Pst * pst;
+PjMngmt * staInd;
+#endif
+{
+
+ TRC3(PtMiLpjStaInd)
+
+ UNUSED(pst);
+ UNUSED(staInd);
+
+ RETVALUE(ROK);
+
+}
+
+
+#ifdef ANSI
+PUBLIC S16 PtMiLpjStaCfm
+(
+Pst * pst,
+PjMngmt * staCfm
+)
+#else
+PUBLIC S16 PtMiLpjStaCfm(pst, staCfm)
+Pst * pst;
+PjMngmt * staCfm;
+#endif
+{
+
+ TRC3(PtMiLpjStaCfm)
+
+ UNUSED(pst);
+ UNUSED(staCfm);
+
+ RETVALUE(ROK);
+
+}
+
+
+#ifdef ANSI
+PUBLIC S16 PtMiLpjStsCfm
+(
+Pst * pst,
+Action actn,
+PjMngmt * stsCfm
+)
+#else
+PUBLIC S16 PtMiLpjStsCfm(pst, actn, stsCfm)
+Pst * pst;
+Action actn;
+PjMngmt * stsCfm;
+#endif
+{
+
+ TRC3(PtMiLpjStsCfm)
+
+ UNUSED(pst);
+ UNUSED(actn);
+ UNUSED(stsCfm);
+
+ RETVALUE(ROK);
+
+}
+
+
+#ifdef ANSI
+PUBLIC S16 PtMiLpjTrcInd
+(
+Pst * pst,
+PjMngmt * trc,
+Buffer * mBuf
+)
+#else
+PUBLIC S16 PtMiLpjTrcInd(pst, trc, mBuf)
+Pst * pst;
+PjMngmt * trc;
+Buffer * mBuf;
+#endif
+{
+
+ TRC3(PtMiLpjTrcInd)
+
+ UNUSED(pst);
+ UNUSED(trc);
+ UNUSED(mBuf);
+
+ RETVALUE(ROK);
+
+}
+
+/* kw005.201 added support for L2 Measurement */
+#ifdef LTE_L2_MEAS
+#ifdef ANSI
+PUBLIC S16 PtMiLpjL2MeasCfm
+(
+Pst * pst,
+PjL2MeasCfmEvt * measEvt
+)
+#else
+PUBLIC S16 PtMiLpjL2MeasCfm(pst, measEvt)
+Pst * pst;
+PjL2MeasCfmEvt * measEvt;
+#endif
+{
+
+ TRC3(PtMiLpjL2MeasCfm)
+
+ UNUSED(pst);
+ UNUSED(measEvt);
+
+ RETVALUE(ROK);
+
+}
+#ifdef ANSI
+PRIVATE S16 PtMiLpjL2MeasStopCfm
+(
+Pst * pst,
+U16 measType,
+U8 status
+)
+#else
+PRIVATE S16 PtMiLpjL2MeasStopCfm(pst, measType,status)
+Pst * pst;
+U16 measType;
+U8 status;
+#endif
+{
+
+ TRC3(PtMiLpjL2MeasStopCfm)
+
+ UNUSED(pst);
+ UNUSED(measType);
+ UNUSED(status);
+
+ RETVALUE(ROK);
+
+}
+#endif /* LTE_L2_MEAS */
+#endif /*--ifdef PTPJLPJ--*/
+
+/********************************************************************30**
+
+ End of file
+**********************************************************************/