-
-\f
-/**
- * @brief Scheduler instance Configuration Handler.
- *
- * @details
- *
- * Function : SchInstCfg
- *
- * This function in called by HandleSchGenCfgReq(). It handles the
- * general and SAP configurations of the scheduler instance. It initializes
- * the hash lists of rgSchCb. Returns
- * reason for success/failure of this function.
- *
- * @param[in] RgCfg *cfg, the Configuaration information
- * @return U16
- * -# LCM_REASON_NOT_APPL
- * -# LCM_REASON_INVALID_MSGTYPE
- * -# LCM_REASON_MEM_NOAVAIL
- **/
-#ifdef ANSI
-PUBLIC U16 SchInstCfg
-(
-RgCfg *cfg, /* Configuaration information */
-Inst dInst
-)
-#else
-PUBLIC U16 SchInstCfg(cfg,dInst)
-RgCfg *cfg; /* Configuaration information */
-Inst dInst;
-#endif
-{
- U16 ret = LCM_REASON_NOT_APPL;
- Inst inst = (dInst - SCH_INST_START);
-
- TRC2(SchInstCfg)
-
- printf("\nEntered SchInstCfg()");
- /* Check if Instance Configuration is done already */
- if (rgSchCb[inst].rgSchInit.cfgDone == TRUE)
- {
- RETVALUE(LCM_REASON_INVALID_MSGTYPE);
- }
- if ((cfg->s.schInstCfg.genCfg.lmPst.selector != LRG_SEL_TC) &&
- (cfg->s.schInstCfg.genCfg.lmPst.selector != LRG_SEL_LC))
- {
- RLOG_ARG0(L_ERROR,DBG_INSTID,inst, "SchInstCfg(): unsupported "
- "Selector value for lmPst.");
- RETVALUE(LCM_REASON_INVALID_PAR_VAL);
- }
- /* Update the Pst structure for LM interface */
- cmMemcpy((U8 *)&rgSchCb[inst].rgSchInit.lmPst,
- (U8 *)&cfg->s.schInstCfg.genCfg.lmPst,
- sizeof(Pst));
-
- rgSchCb[inst].rgSchInit.inst = inst;
- rgSchCb[inst].rgSchInit.lmPst.srcProcId = rgSchCb[inst].rgSchInit.procId;
- rgSchCb[inst].rgSchInit.lmPst.srcEnt = rgSchCb[inst].rgSchInit.ent;
- rgSchCb[inst].rgSchInit.lmPst.srcInst = rgSchCb[inst].rgSchInit.inst +
- SCH_INST_START;
- rgSchCb[inst].rgSchInit.lmPst.event = EVTNONE;
-
- rgSchCb[inst].rgSchInit.region = cfg->s.schInstCfg.genCfg.mem.region;
- rgSchCb[inst].rgSchInit.pool = cfg->s.schInstCfg.genCfg.mem.pool;
- rgSchCb[inst].genCfg.tmrRes = cfg->s.schInstCfg.genCfg.tmrRes;
-#ifdef LTE_ADV
- rgSchCb[inst].genCfg.forceCntrlSrbBoOnPCel = cfg->s.schInstCfg.genCfg.forceCntrlSrbBoOnPCel;
- rgSchCb[inst].genCfg.isSCellActDeactAlgoEnable = cfg->s.schInstCfg.genCfg.isSCellActDeactAlgoEnable;
-#endif
- rgSchCb[inst].genCfg.startCellId = cfg->s.schInstCfg.genCfg.startCellId;
-
-/* Not adding any SAPs towards SCH now */
-#if 0
- /* allocate RGR saps */
- if (SGetSBuf(rgSchCb[inst].rgSchInit.region,
- rgSchCb[inst].rgSchInit.pool,
- (Data **)&rgSchCb[inst].rgrSap,
- (sizeof(RgSchUpSapCb) * cfg->s.schInstCfg.numSaps)) != ROK)
- {
- RLOG_ARG0(L_ERROR,DBG_INSTID,inst, "SchInstCfg: SGetSBuf for "
- "RGR saps failed");
- RETVALUE(RFAILED);
- }
- /* allocate RGM saps */
- if (SGetSBuf(rgSchCb[inst].rgSchInit.region,
- rgSchCb[inst].rgSchInit.pool,
- (Data **)&rgSchCb[inst].rgmSap,
- (sizeof(RgSchUpSapCb) * cfg->s.schInstCfg.numSaps)) != ROK)
- {
- RLOG_ARG0(L_ERROR,DBG_INSTID,inst, "SchInstCfg: SGetSBuf for "
- "RGM saps failed");
- RETVALUE(RFAILED);
- }
-
-
- /* allocate TFU saps */
- if (SGetSBuf(rgSchCb[inst].rgSchInit.region,
- rgSchCb[inst].rgSchInit.pool,
- (Data **)&rgSchCb[inst].tfuSap,
- (sizeof(RgSchLowSapCb) * cfg->s.schInstCfg.numSaps)) != ROK)
- {
- RLOG_ARG0(L_ERROR,DBG_INSTID,inst, "SchInstCfg: SGetSBuf for TFU "
- "saps failed");
- RETVALUE(RFAILED);
- }
-
- /* allocate for bndCfmResponses */
- if (SGetSBuf(rgSchCb[inst].rgSchInit.region,
- rgSchCb[inst].rgSchInit.pool,
- (Data **)&rgSchCb[inst].genCfg.bndCfmResp,
- (sizeof(RgSchLmResponse) * cfg->s.schInstCfg.numSaps)) != ROK)
- {
- RLOG_ARG0(L_ERROR,DBG_INSTID,inst, "SchInstCfg: SGetSBuf for bind"
- " confirm responses failed");
- RETVALUE(RFAILED);
- }
-#ifdef LTE_ADV
- rgSCHLaaInitEnbCb(&rgSchCb[inst]);