Merge "[Epic-ID: ODUHIGH-461][Task-ID: ODUHIGH-468]Unused files and functions removed...
[o-du/l2.git] / src / 5gnrsch / rg_sch.x
diff --git a/src/5gnrsch/rg_sch.x b/src/5gnrsch/rg_sch.x
deleted file mode 100755 (executable)
index 4540097..0000000
+++ /dev/null
@@ -1,5560 +0,0 @@
-/*******************************************************************************
-################################################################################
-#   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.                                             #
-################################################################################
-*******************************************************************************/
-
-/**********************************************************************
-
-    Name:   LTE MAC layer
-
-    Type:   C include file
-
-    Desc:   Defines required by LTE MAC
-
-    File:  rg_sch.x
-
-**********************************************************************/
-/** @file rg_sch.x
-@brief This file contains basic data structures for the scheuler.
-*/
-
-#ifdef TENB_STATS
-#include "pj_tenb_stats.x"   
-#endif
-
-#ifndef __SCH__
-#define __SCH__
-
-#ifdef TENB_STATS
-#include "l2_tenb_stats.x"   
-#endif
-
-#ifdef EMTC_ENABLE
-#include "rg_sch_emtc.x"
-#endif
-
-
-typedef struct rgSchHistNode
-{
-   uint32_t line;
-   S8* file;
-   const S8* func;
-   Void * dbgVal; /* This is specific to the data struct being debug
-                     for example if the debugging is done fo list
-                     then this should contain the node address */
-   uint32_t action;
-}RgSchHistNode;
-
-#define MAX_HIST_NODES    50
-
-#define RGSCH_ACTION_ADD  11
-#define RGSCH_ACTION_DEL  12
-
-typedef struct rgSchHistInfo
-{
-   uint32_t histCount;
-   RgSchHistNode hist[MAX_HIST_NODES];
-}RgSchHistInfo;
-
-#define RG_SCH_RECORD(_histInfo,_action,_dbgVal)\
-{\
-   (_histInfo)->hist[(_histInfo)->histCount%MAX_HIST_NODES].file = __FILE__;\
-   (_histInfo)->hist[(_histInfo)->histCount%MAX_HIST_NODES].func = __FUNCTION__;\
-   (_histInfo)->hist[(_histInfo)->histCount%MAX_HIST_NODES].line = __LINE__;\
-   (_histInfo)->hist[(_histInfo)->histCount%MAX_HIST_NODES].action = _action;\
-   (_histInfo)->hist[(_histInfo)->histCount%MAX_HIST_NODES].dbgVal = _dbgVal;\
-   (_histInfo)->histCount++;\
-}
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-typedef TfuDciFormat1aInfo RgDciFmt1AInfo;
-typedef TfuRaReqInfo       RgTfuRaReqInfo;
-typedef TfuSubbandCqiInfo  RgSchSubbandCqiInfo;
-typedef TfuHqIndInfo       RgTfuHqIndInfo;
-typedef TfuHqInfo          RgTfuHqInfo;
-typedef TfuCntrlReqInfo    RgTfuCntrlReqInfo;
-
-/* Forward declarations for some structures */
-#ifdef LTE_L2_MEAS
-typedef struct rgSchL2MeasCb     RgSchL2MeasCb;
-#endif /* LTE_L2_MEAS */
-typedef struct rgSchQciCb        RgSchQciCb;
-typedef struct rgSchUeCb         RgSchUeCb;
-typedef struct rgSchCellCb       RgSchCellCb;
-typedef struct rgSchErrInfo      RgSchErrInfo;
-typedef struct rgSchUlAlloc      RgSchUlAlloc;
-typedef struct rgSchUlRetxAlloc  RgSchUlRetxAlloc;
-typedef struct rgSchUlHqProcCb   RgSchUlHqProcCb;
-typedef struct rgSchDlHqProcCb   RgSchDlHqProcCb;
-/* Changes for MIMO feature addition */
-/* Removed dependency on MIMO compile-time flag */
-typedef struct rgSchDlHqTbCb     RgSchDlHqTbCb;
-typedef struct rgSchLcgCb        RgSchLcgCb;
-typedef struct rgSchDlHqEnt      RgSchDlHqEnt;
-typedef struct rgSchRaCb         RgSchRaCb;
-typedef struct _rgSchCb          RgSchCb;
-typedef struct rgSchUlLcCb       RgSchUlLcCb;
-typedef struct rgSchDlLcCb       RgSchDlLcCb;
-typedef struct _rgSchdApis       RgSchdApis;
-#ifdef LTE_TDD
-typedef struct rgSchTddPhichOffInfo    RgSchTddPhichOffInfo;
-typedef uint8_t RgSchTddNpValTbl[RGSCH_TDD_MAX_P_PLUS_ONE_VAL];
-#endif
-/* Added support for SPS*/
-#ifdef LTEMAC_SPS
-typedef struct rgSchDlSfAllocInfo RgSchDlSfAllocInfo;
-#endif
-
-typedef struct rgSchUeCellInfo RgSchUeCellInfo;
-/**
-  * @brief
-  * Scheduler APIs
-  */
-struct _rgSchdApis
-{
-   S16 (*rgSCHRgrUeCfg) ARGS((RgSchCellCb *cell, RgSchUeCb *ue, RgrUeCfg *cfg,
-            RgSchErrInfo *err));
-   S16 (*rgSCHRgrUeRecfg) ARGS((RgSchCellCb *cell, RgSchUeCb *ue, RgrUeRecfg *recfg,
-            RgSchErrInfo *err));
-   Void (*rgSCHFreeUe) ARGS((RgSchCellCb *cell, RgSchUeCb *ue));
-   S16 (*rgSCHRgrCellCfg) ARGS((RgSchCellCb *cell, RgrCellCfg *cfg,
-            RgSchErrInfo *err));
-   S16 (*rgSCHRgrCellRecfg) ARGS((RgSchCellCb *cell, RgrCellRecfg *recfg,
-            RgSchErrInfo *err));
-   Void (*rgSCHFreeCell) ARGS((RgSchCellCb *cell));
-   S16 (*rgSCHRgrLchCfg) ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-            RgSchDlLcCb *dl, RgrLchCfg *cfg, RgSchErrInfo *errInfo));
-   S16 (*rgSCHRgrLcgCfg) ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-            RgSchLcgCb *lcg, RgrLcgCfg *cfg, RgSchErrInfo *errInfo));
-   S16 (*rgSCHRgrLchRecfg) ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-            RgSchDlLcCb *dl, RgrLchRecfg *recfg,
-            RgSchErrInfo *errInfo));
-   S16 (*rgSCHRgrLcgRecfg) ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-            RgSchLcgCb *lcg, RgrLcgRecfg *recfg, RgSchErrInfo *errInfo));
-   Void (*rgSCHFreeDlLc) ARGS((RgSchCellCb *cell, RgSchUeCb *ue, RgSchDlLcCb *dlLc));
-   Void (*rgSCHFreeLcg) ARGS((RgSchCellCb *cell, RgSchUeCb *ue, RgSchLcgCb *lcg));
-   S16 (*rgSCHRgrLchDel) ARGS((RgSchCellCb *cell, RgSchUeCb *ue,CmLteLcId lcId, \
-                             uint8_t lcgId));
-   Void (*rgSCHActvtUlUe) ARGS((RgSchCellCb *cell, RgSchUeCb *ue));
-   Void (*rgSCHActvtDlUe) ARGS((RgSchCellCb *cell, RgSchUeCb *ue));
-   Void (*rgSCHHdlUlTransInd) ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-            CmLteTimingInfo timingInfo));
-   Void (*rgSCHUeReset) ARGS((RgSchCellCb *cell, RgSchUeCb *ue));
-   S16 (*rgSCHUpdBsrShort) ARGS((RgSchCellCb *cell, RgSchUeCb *ue, RgSchLcgCb *ulLcg, uint8_t bsr, RgSchErrInfo *err));
-   S16 (*rgSCHUpdBsrTrunc) ARGS((RgSchCellCb *cell, RgSchUeCb *ue, RgSchLcgCb *ulLcg, uint8_t bsr, RgSchErrInfo *err));
-   S16 (*rgSCHUpdBsrLong) ARGS((RgSchCellCb *cell, RgSchUeCb *ue, uint8_t bsArr[], RgSchErrInfo *err));
-   S16 (*rgSCHUpdPhr) ARGS((RgSchCellCb *cell, RgSchUeCb *ue, uint8_t phr, RgSchErrInfo *err));
-   S16 (*rgSCHUpdExtPhr) ARGS((RgSchCellCb *cell, RgSchUeCb *ue, RgInfExtPhrCEInfo * extPhr, RgSchErrInfo *err));
-#ifdef RG_UNUSED
-   S16 (*rgSCHUpdUlHqProc) ARGS((RgSchCellCb *cell, RgSchUlHqProcCb *curProc,
-            RgSchUlHqProcCb *oldProc));
-#endif
-   S16 (*rgSCHContResUlGrant) ARGS((RgSchCellCb *cell, RgSchUeCb *ue, RgSchErrInfo *err));
-   S16 (*rgSCHSrRcvd) ARGS((RgSchCellCb *cell, RgSchUeCb *ue, CmLteTimingInfo, RgSchErrInfo *err));
-   S16 (*rgSCHTti) ARGS((RgSchCellCb *cell, RgSchErrInfo *err));
-   Void (*rgSCHUlCqiInd) ARGS(( RgSchCellCb *cell, RgSchUeCb *ue, TfuUlCqiRpt *ulCqiInfo));
-   Void (*rgSCHPucchDeltaPwrInd) ARGS(( RgSchCellCb *cell,
-            RgSchUeCb *ue, S8 delta));
-   S16 (*rgSCHlUeReset) ARGS(( RgSchCellCb *cell, RgSchUeCb *ue));
-   Void (*rgSCHDlDedBoUpd) ARGS((RgSchCellCb *cell, RgSchUeCb *ue, RgSchDlLcCb *svc));
-   /* ccpu00105914: PHR handling for MSG3 */
-   Void (*rgSCHUlRecMsg3Alloc) ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-            RgSchRaCb *raCb));
-   Void (*rgSCHUlHqProcForUe) ARGS((RgSchCellCb *cell, CmLteTimingInfo frm,
-            RgSchUeCb *ue, RgSchUlHqProcCb  **procRef));
-   RgSchUlAlloc *(*rgSCHFirstRcptnReq) ARGS((RgSchCellCb *cell));
-   RgSchUlAlloc *(*rgSCHNextRcptnReq) ARGS((RgSchCellCb *cell,
-            RgSchUlAlloc *alloc));
-   RgSchUlAlloc *(*rgSCHFirstHqFdbkAlloc) ARGS((RgSchCellCb *cell, uint8_t idx));
-   RgSchUlAlloc *(*rgSCHNextHqFdbkAlloc) ARGS((RgSchCellCb *cell,
-            RgSchUlAlloc *alloc,uint8_t idx));
-   Void (*rgSCHDlProcAddToRetx) ARGS((RgSchCellCb *cell,RgSchDlHqProcCb *hqP));
-   Void (*rgSCHDlCqiInd) ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-            Bool isPucchInfo, Void *dlCqi, CmLteTimingInfo timingInfo));
-/* Added changes of TFU_UPGRADE */
-#ifdef TFU_UPGRADE
-Void (*rgSCHSrsInd) ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         TfuSrsRpt* srsInd, CmLteTimingInfo timingInfo));
-#endif
-
-   Void (*rgSCHDlTARpt) ARGS((RgSchCellCb *cell, RgSchUeCb *ue));
-   /* Changes for MIMO feature addition */
-   /* Removed dependency on MIMO compile-time flag */
-   Void (*rgSCHDlRlsSubFrm) ARGS((RgSchCellCb *cell, CmLteTimingInfo subFrm));
-   /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   Void (*rgSCHHdlCrntiCE) ARGS((RgSchCellCb *cell, RgSchUeCb * ue));
-   Void (*rgSCHDlProcAck) ARGS((RgSchCellCb *cell, RgSchDlHqProcCb *hqP));
-   Void (*rgSCHDlProcDtx) ARGS((RgSchCellCb *cell, RgSchDlHqProcCb *hqP));
-   Void (*rgSCHDlRelPdcchFbk) ARGS((RgSchCellCb *cell, RgSchUeCb * ue,
-            uint8_t isAck));
-   Void (*rgSCHUlSpsRelInd) ARGS((RgSchCellCb *cell, RgSchUeCb * ue,
-            Bool isExplRel));
-
-   Void (*rgSCHUlSpsActInd) ARGS((RgSchCellCb *cell, RgSchUeCb * ue,
-            uint16_t sduSuze));
-
-   Void (*rgSCHUlCrcFailInd) ARGS((RgSchCellCb *cell, RgSchUeCb * ue,
-           CmLteTimingInfo    crcTime));
-   Void (*rgSCHUlCrcInd) ARGS((RgSchCellCb *cell, RgSchUeCb * ue,
-           CmLteTimingInfo    crcTime));
-#endif /* LTEMAC_SPS */
-   Void (*rgSCHDrxStrtInActvTmrInUl) ARGS((RgSchCellCb *cell));
-   Void (*rgSCHUpdUeDataIndLcg) ARGS((RgSchCellCb *cell, RgSchUeCb * ue, RgInfUeDatInd  *datInd));
-#ifdef LTE_ADV
-   S16 (*rgSCHRgrSCellUeCfg) ARGS((RgSchCellCb *cell, RgSchUeCb *ue ,RgrUeSecCellCfg  *sCellInfoCfg, 
-            RgSchErrInfo *err));
-   S16 (*rgSCHRgrSCellUeDel) ARGS((RgSchUeCellInfo *sCellInfo, RgSchUeCb *ue));
-#endif
-#ifdef EMTC_ENABLE
-   Void (*rgSCHUlProcAddToRetx) ARGS((RgSchCellCb *cell,RgSchUlHqProcCb *hqP));
-#endif
-};
-
-/* Added changes of TFU_UPGRADE */
-#ifdef TFU_UPGRADE
-
-/**
-* @brief Periodic CQI/PMI/RI configuration parameters information
-*/
-typedef RgrUePrdDlCqiCfg RgSchUeDlPCqiCfg;
-
-/**
-* @brief Periodic CQI Setup configuration parameters information
-*/
-/* Reference: 36.313: CQI-ReportPeriodic */
-typedef RgrUeDlPCqiSetup RgSchUeDlPCqiSetup;
-
-/**
-* @brief SRS configuration parameters information
-*/
-/* Reference 36.313 SoundingRS-UL-Config */
-
-typedef RgrUeUlSrsCfg RgSchUeUlSrsCfg;
-
-
-/**
-* @brief SRS configuration setup parameters information
-*/
-/* Reference 36.313 SoundingRS-UL-Config */
-
-typedef RgrUeUlSrsSetupCfg RgSchUeSrsUlSetupCfg;
-
-/**
-* @brief SR configuration parameters information
-*/
-
-typedef RgrUeSrCfg RgSchUeSrCfg;
-
-/**
-* @brief SR Setup configuration parameters information
-*/
-
-typedef RgrUeSrSetupCfg RgSchUeSrSetupCfg;
-
-#define IOT_INVALID_FREQSTART 0xffffffff
-#define IOT_INFINITE_SIZE 0xffffffff
-#define RGSCH_IOT_PDCCH_POOLSZ 100
-#define RGSCH_IOT_PDSCH_POOLSZ 100
-#define RGSCH_IOT_PUSCH_POOLSZ 100
-#define RGSCH_IOT_PUCCH_POOLSZ 100
-#define RGSCH_IOT_SCHED_POOLSZ 100
-/* TODO: Minimum Delta between CRNT Time and TX time */
-#define RGSCH_IOT_PDCCH_DELTA  RG_SCH_CMN_DL_DELTA  
-#define RGSCH_IOT_PDSCH_DELTA  RG_SCH_CMN_DL_DELTA - 1  /* UL_CNTRL_DELTA value is 2*/
-#define RGSCH_IOT_PUCCH_DELTA  6
-#define RGSCH_IOT_PUSCH_DELTA  6
-#define RGSCH_IOT_PDCCH_MAXFREQSZ 24  /* MAX num of eCCEs per SF */ 
-#define RGSCH_IOT_PDSCH_MAXFREQSZ 100 /* MAX num of PDSCH RB per SF */
-#define RGSCH_IOT_PUCCH_MAXFREQSZ 2048  /* MAx num of PUCCH resource per SF */
-#define RGSCH_IOT_PUSCH_MAXFREQSZ 100 /* MAx num of PUSCh RB per SF */
-#define RGSCH_IOT_SCHED_MAXFREQSZ 1 /*Resource only in Time domain */
-#define RGSCH_IOT_PUCCH_INVALID_FREQ 2049
-/**
-  * @brief
-  * IoT PDCCH/PDSCH/PUSCH/PUCCH resource definition.
-  * For Iot Devices resource can span multiple subframes
-  * Hence resource is defined as a set of freq resources 
-  * over a set of consecutive valid subframes
- */
-typedef struct rgSchIotRes
-{
-   uint32_t                   resType;
-   PTR                   allctdBy;
-   CmLteTimingInfo       timeStart;
-   CmLteTimingInfo       timeEnd;
-   uint32_t                   tSize;
-   uint8_t                    freqStart;
-   uint8_t                    freqEnd;
-   uint32_t                   fSize;
-   CmLList               lnk; /*!< Link to other Fragments or Allocs in resMngmt */
-   CmLList               cbLnk; /*!< Link to other allocs in a given control block (ueCb) */
-   CmLList               resLnk;/*!<Link to resList in UE*/
-} RgSchIotRes;
-
-/**
-  * @brief
-  * IoT PDCCH/PDSCH/PUSCH resource control block.
-  * Has pre-initialized pool of resources of #poolSize.
-  * allocList will hold the allocations for PDCCH/PUSCH/PDSCH
-  * fragList will hold the context of fragments in resource
- */
-typedef struct rgSchIotResCb
-{
-   uint32_t            poolSz;
-   RgSchIotRes    *resources;
-   CmLListCp      resPool;
-   uint8_t             maxFreqSz;   /*!< Max Number of RBs/SCs/CCEs per Subframe */
-   uint32_t            deltaTime;   /*!< PDCCH/PUSCH/PDSCH Delta w.r.t current time */
-   RgSchIotRes    *contRes;    /*!< Represents continuous availability of resource
-                                    in frequency and time domain */
-   CmLListCp      fragList;    /*!< Represents list of fragmented resourcesi b4
-                                    contRes, ordered in time domain */
-   CmLListCp      allocList;   /*!< Represents list of resources allocated which 
-                                    are ordered in time domain */
-} RgSchIotResCb;
-
-
-/**
-  * @brief
-  * IoT Resource Management Control Block
-  * for PDCCH, PDSCH and PUSCH resources
- */
-typedef struct rgSchIotResMngmtCb
-{
-   RgSchIotResCb pdcchResCb;
-   RgSchIotResCb pdschResCb;
-   RgSchIotResCb puschResCb;
-   RgSchIotResCb pucchHqFdbkCb;
-} RgSchIotResMngmtCb;
-
-S16 rgSCHUtlIotResPrcTti ARGS((
-RgSchCellCb *cell
-));
-
-Void rgSCHUtlIotInsAlloc2Lst ARGS((
-CmLListCp       *allocList,
-RgSchIotRes     *alloc,
-CmLList         *lnk
-));
-
-S16 rgSCHUtlIotResMngmtInit ARGS((
-   RgSchCellCb *cell,
-   uint32_t         pdcchPoolSz,
-   uint32_t         pdcchDelta,
-   uint32_t         pdcchMaxFreqSz,
-   uint32_t         pdschPoolSz,
-   uint32_t         pdschDelta,
-   uint32_t         pdschMaxFreqSz,
-   uint32_t         puschPoolSz,
-   uint32_t         puschDelta,
-   uint32_t         puschMaxFreqSz
-   ));
-
-Void rgSCHUtlIotResMngmtDeinit ARGS((
-   RgSchCellCb *cell
-   ));
-
-RgSchIotRes *rgSCHUtlIotAllocRes ARGS((
-   RgSchIotResCb   *resCb,
-   uint32_t             fStart,
-   uint32_t             fSize,
-   CmLteTimingInfo tStart,
-   uint32_t             tSize,
-   Bool            isForEnable
-   ));
-
-RgSchIotRes *rgSCHUtlIotFirstAllocForTx ARGS((
-   RgSchIotResCb   *resCb,
-   CmLteTimingInfo txTime
-   ));
-
-RgSchIotRes *rgSCHUtlIotNextAllocForTx ARGS((
-   RgSchIotResCb   *resCb,
-   RgSchIotRes     *prevAlloc,
-   CmLteTimingInfo txTime
-   ));
-
-Void rgSCHUtlIotAllocRls ARGS((
-   RgSchIotResCb   *resCb,
-   RgSchIotRes     *alloc
-   ));
-
-RgSchIotRes *rgSCHUtlEmtcAllocRes ARGS((
-   RgSchIotResCb   *resCb,
-   uint32_t             *fStart,
-   uint32_t             *fEnd,
-   CmLteTimingInfo tStart,
-   uint32_t             tSize,
-   uint32_t             numPrb,
-   Bool            isRetx
-   ));
-
-S16 rgSCHUtlEmtcResPrcTti ARGS((
-   RgSchCellCb *cell
-   ));
-
-S16 rgSCHUtlEmtcResMngmtInit ARGS((
-   RgSchCellCb *cell,
-   uint32_t         pdschPoolSz,
-   uint32_t         pdschDelta,
-   uint32_t         pdschMaxFreqSz,
-   uint32_t         puschPoolSz,
-   uint32_t         puschDelta,
-   uint32_t         puschMaxFreqSz,
-   uint32_t         pucchPoolSz,
-   uint32_t         pucchDelta,
-   uint32_t         pucchMaxFreqSz
-   ));
-
-Void rgSCHUtlEmtcResMngmtDeinit ARGS((
-   RgSchCellCb *cell
-   ));
-
-#ifdef RG_5GTF
-RgSchUlHqProcCb* rgSCHUhmGetUlProcByTime ARGS((
-RgSchCellCb      *cell,
-RgSchUeCb        *ue, 
-CmLteTimingInfo  frm
-));
-S16 rgSCHUhmGetAvlHqProc ARGS((
-RgSchCellCb           *cell,
-RgSchUeCb               *ue,
-RgSchUlHqProcCb         **hqP
-));
-#endif
-/**
-* @brief Store Periodic CQI, SRS and SR tranmission instances list
-* */
-
-typedef struct rgSchPerPucchCb
-{
-   CmLListCp         srLst;
-   CmLListCp         srsLst;
-   CmLListCp         cqiLst;
-   CmLListCp         riLst;
-}RgSchPerPucchCb;
-
-/**
-  @brief   UE Specific SRS Periodicity   and Subframe Offset Configuration FDD */
-
-typedef struct rgSchUePCqiSrsSrCfgIdxTbl
-{
-   uint16_t     min;          /*!< start ISRB Index */
-   uint16_t     max;          /*!< end ISRB Index */
-   uint16_t     peri;         /*!< SRS Periodicity in ms */
-   uint16_t     offset;        /*!< Offset with ISRB value */
-}RgSchUePCqiSrsSrCfgIdxTbl;
-
-/**
-  @brief   UE Specific SRS Periodicity   and Subframe Offset Configuration TDD */
-
-/* Ref: Table 8.2-2: UE Specific SRS Periodicity */
-
-typedef struct rgSchUeSrsCfgIdxTbl
-{
-   uint16_t     min;      /*!< start ISRB Index */
-   uint16_t     max;      /*!< end ISRB Index */
-   uint16_t     peri;    /*!< SRS Periodicity in ms */
-   uint16_t     offset1;  /*!< Offset with ISRB value */
-   uint16_t     offset2;  /*!< Offset with ISRB value */
-
-}RgSchUeSrsCfgIdxTbl;
-
-#ifdef RG_5GTF
-/*
-typedef enum rgSchSfType
-{
-   RG_SCH_SF_DLCNTRL_DLDATA = 0,
-   RG_SCH_SF_DLCNTRL_DLDATA_ULCNTRL,
-   RG_SCH_SF_DLCNTRL_ULDATA,
-   RG_SCH_SF_DLCNTRL_ULDATA_ULCNTRL
-}RgSchSfType;
-*/
-/**
-@brief Per UE Group Info 
-*/
-typedef struct rgSchUeGrp
-{
-   uint8_t      beamBitMask;    /*!<  Beam bit mask */
-   //uint8_t      numUe;       /*!<  Ue present in Group */
-}RgSchUeGrp;
-
-/**
-@brief 5gtf Cell Info 
-*/
-typedef struct rgSch5gtfCellCb
-{
-   RgSchUeGrp      ueGrp5gConf[MAX_5GTF_GROUP];   /*!<  Contains all the group configured */
-   RgSchSfType     dynConfig[MAX_5GTF_SUBFRAME_INFO];  /*!<  Get config from config file as of now */
-   uint8_t              numUes;
-   uint8_t              uePerGrpPerTti; /*!< Num of UEs to be scheduled in a group per TTI */
-   uint8_t              ueGrpPerTti;   /*!< Num of Groups to ne scheduled per Tti */
-   uint8_t              numCCs;
-   uint8_t              bwPerCC;
-   uint8_t              cfi;
-   uint8_t              totVrbg;
-}RgSch5gtfCellCb;
-
-#endif // 5GTF
-
-/**
-  @brief   UE Specific SRS Control Block */
-
-typedef struct rgSchUeSrsCb
-{
-    RgSchUeUlSrsCfg     srsCfg;     /*!< SRS Specific configuration */
-    uint16_t                 peri;       /*!< Periodicity */
-    uint16_t                  offset;     /*!< subframe Offset */
-    uint16_t                  nSrsTrIdx;
-                                   /*!< Next Tranmission instance
-                                       Referenence: 36.213 Section:8.2
-                                      ((10*sfn +sf-sfOffset))/mod(peri))  */
-    CmLList             srsLstEnt;      /*!< SRS List for next tranmission instance subframe */
-    uint8_t                selectedAnt;    /*!< Selected Antenna for SRS Reception*/
-    uint16_t                 srsDist;    /*!<  crnt Distance to get RI Transmission */
-    Bool                srsRecpPrcsd; /*!< SRS Recpeption processed as part of PUCCH
-                                          // or PUSCH processing in current TTI or not */
-
-}RgSchUeSrsCb;
-
-/**
-@brief  Periodic CQI/PMI Reporting configuration using PUCCH */
-
-
-
-/**
-@brief Subband Size (k) and Bandwidth Parts (J) vs. DL sys BW */
-
-typedef struct rgSchUeBwSubSzBwParts
-{
-   uint8_t rbStart;   /* RB Start */
-   uint8_t rbEnd;     /* RB End */
-   uint8_t subSize;   /* k */
-   uint8_t bwParts;   /* J */
-
-}RgSchUeBwSubSzBwParts;
-
-#ifdef LTE_ADV
-/**
-  * @brief
-  * Enum for specifying priority level of various PUCCH report types
-  * RG_SCH_CQI_PRIO_LVL_0 :PUCCH Report type 1,1a 
-  * RG_SCH_CQI_PRIO_LVL_1 :PUCCH Report type 2,2b,2c,4
-  * RG_SCH_CQI_PRIO_LVL_2 :PUCCH Report type 2a,3,5,6
-  */
-typedef enum
-{
-   RG_SCH_CQI_PRIO_LVL_0,
-   RG_SCH_CQI_PRIO_LVL_1,
-   RG_SCH_CQI_PRIO_LVL_2, 
-   RG_SCH_CQI_PRIO_LVL_INVALID
-}RgSchCqiPrioLvl;
-#endif
-
-
-/**
-@brief Periodic CQI/PMI/RI Control Block */
-
-typedef struct rgSchUePCqiCb
-{
-   RgrUePrdDlCqiCfg     cqiCfg;        /*!< Cqi Pmi Configuration */
-   uint16_t                  cqiPeri;       /*!< Periodicity */
-   uint16_t                  cqiOffset;     /*!< CQI offset */
-   uint16_t                  riOffset;      /*!< RI Offset */
-   uint16_t                  riPeri;        /*!< RI periodicity */
-   uint16_t                  nCqiTrIdx;
-                                      /*!< Next Active Tranmission instace index ,
-                                          precompute CQI/PMI
-                                          Transmission Instance
-                                          Referenence: 36.213 Section:8.2 */
-
-   /* 1.  where wideband CQI/PMI reporting is configured
-         (Mode: 1-0 or 1-1)
-          10*sfn+floor(subframe/2)-Noffsetcqi )Mod(Nperiod)=0
-      2.  where both wideband CQI/PMI and subband CQI reporting are configured
-         (Mode: 2-0 or 2-1)
-             10*sfn+floor(subframe/2)-Noffsetcqi )Mod(Nperiod)=0
-             only the few occasations will be used for WB and
-             few will be used for subbands.
-   */
-
-   uint16_t                nRiTrIdx;      /*!< Next Active Transmission instance for RI
-                                          Transmission Instance Referenence:
-                                          36.213 Section:8.2 */
-   uint16_t                riDist;        /*!<  crnt Distance to get RI Transmission */
-   uint16_t                h;             /*!< Precompute and store H */
-   uint8_t                 riNumBits;     /*Precomputed value as it doesn't change
-                                        on-the-fly */
-   /* 1. In the case where wideband RI reporting is configured
-         (Mode 1-0 or  1-1)
-         (10*sfn+floor(subframe)-Noffsetcqi-NoffsetRI )Mod(NCqiperiod * 
-          MriPeriod)=0
-
-      2. Where Widesband and Subband RI reporting is configured
-         (Mode 2-0 or 2-1 )
-          (10*sfn+floor(subframe)-Noffsetcqi-NoffsetRI )
-          Mod(H. NCqiperiod *MriPeriod )=0
-          where H= J * K +1;  J=Number of bandwidth parts(BW/subsize). K is RGR
-          interf input */
-   Bool               isWb;    /*! < Is True when a WideBand CQI is to be
-                                    Transmitted in a SubBand CQI Config*/
-   uint8_t                 bpIdx;   /*Index of the Bandwidth Part*/
-   uint8_t                 label;   /*Label L associated */
-   uint8_t                 J;       /*Number of Bandwidth Parts*/
-
-   CmLList            cqiLstEnt;/*!< List CQI UEs for next transmission
-                                     instance */
-   CmLList            riLstEnt; /*!< List RI UEs for next transmission
-                                     instance */
-   Bool               invalidateCqi; /*!< If TRUE, ignore the WB/SB CQI report*/
-   uint8_t                 perRiVal;      /*!< Latest Periodic RI value reported */
-   Bool               riRecpPrcsd;   /*!< RI Recpeption processed as part of
-                                          PUCCH or PUSCH processing in current
-                                          TTI or not */
-#ifdef LTE_ADV
-   RgSchCqiPrioLvl   prioLvl;   /* Priority lvl set based on the PUCCH Report
-                                   type */
-   Bool              isCqiIgnoByCollsn; /*!< Is this CQI type being ignored for
-                                             this reporting instance due to
-                                             collision with higher priority
-                                             CQI type */
-   Bool              isRiIgnoByCollsn; /*!< Is this CQI type being ignored for
-                                            this reporting instance due to
-                                            collision with higher priority CQI
-                                            type */
-#endif
-   RgSchUeCellInfo  *servCellInfo;     /*!< Access to the serving cell of this
-                                            CQI CB */
-   RgSchHistInfo     histElem;
-#ifdef EMTC_ENABLE
-   uint8_t                  rgSchPucchRepNumCount;  /*!< CQI repetition count for CATM1 */
-#endif
-}RgSchUePCqiCb;
-
-
-
-/**
-@brief SR Configuration Index */
-
-typedef struct rgSchUeSrCfgIdx
-{
-   uint16_t     sIsr;      /*!< Start ISR Index */
-   uint16_t     eIsr;      /*!< End   ISR Index */
-   uint16_t     peri;      /*!< SR Periodicity */
-   uint16_t     offset;    /*!< offset */
-}RgSchUeSrCfgIdx;
-#ifdef RG_UNUSED
-/* Reference : 36.213 Table 10.1-5 */
-/* Note: SR is same table for TDD and FDD */
-RgSchUeSrCfgIdx  schUeSrCfgIdx[RG_SCH_ISR_INDX_MAX]=
-{
- { 0,4,   5, 0 },
- { 5,14,   10, 5 },
- { 15,34,  20,15 },
- { 35,74, 40,35},
- { 75,154, 80, 75},
- /* RESERVED: Configuration should not allow Res values */
-};
-#endif
-/**
-@brief SR Control block */
-
-typedef struct rgSchUeSrCb
-{
-    RgSchUeSrCfg         srCfg;    /*!< SR configuration */
-    uint16_t                  offset;   /*!< SR offset */
-    uint16_t                  peri;     /*!< SR periodicity */
-
-    uint16_t                  nSrTrIdx;    /*!< Next Active Tranmission Instance Index ,
-                                     Referenence: 36.213 Section:10.1 */
-
-   /*
-      ((10*sfn+floor(sf)-srOffset)Mod(srPeriodcity))
-   */
-
-#ifdef EMTC_ENABLE
-   uint8_t                  rgSchPucchRepNumCount;  /*!< SR repetition count for CATM1 */
-#endif
-   CmLList           srLstEnt;      /*!< Next Transmission instance SR UE list */
-
-}RgSchUeSrCb;
-
-/**
-  * @enum rgSchCqiReqField
-  * Enumeration of CSI Request Field (Table 7.2.1-1A 36.213).
-  * "00"    No aperiodic CSI report is triggered
-  * "01"  Aperiodic CSI report is triggered for serving cell  c
-  * "10"  Aperiodic CSI report is triggered for a 1st set of 
-  *          serving cells configured by higher layers
-  * "11"  Aperiodic CSI report is triggered for a 2nd  set of 
-  *       serving cells configured by higher layers
-  *
-  */
-typedef enum rgSchCqiReqField 
-{
-   RG_SCH_APCQI_NO = 0,
-   RG_SCH_APCQI_SERVING_CC,
-   RG_SCH_APCQI_1ST_SERVING_CCS_SET,
-   RG_SCH_APCQI_2ND_SERVING_CCS_SET
-}RgSchCqiReqField;
-
-/**
-@brief  APeriodic CQI Control Block */
-typedef struct rgSchUeACqiCb
-{
- RgrUeAprdDlCqiCfg aCqiCfg;/*!< Cqi Pmi Configuration */
- uint8_t                L; /*Unique Label through which positioning of Subbands
-                        will be conveyed by the UE */
- uint8_t                N;  /*Total Bandwidth / Num of Subbands*/
- uint8_t                M; /*Number of Selected Subbands*/
- uint8_t                riNumBits;
- uint8_t                k; /*k - SB size. 36.213 Tables:7.2.1-3, 7.2.1-5*/
- uint8_t                cqiPmiSzR1;  /*CQIPMI Size for Rank =1*/
- uint8_t                cqiPmiSzRn1; /*CQIPMI Size for Rank > 1*/
- uint32_t               aCqiTrigWt;  /* Metric to track Aperiodic CQI Trigger occassion */ 
- RgSchCqiReqField  cqiReqField; /* Cqi Request field. This Value can be 00 01 10 11, based upon 
-                                   the cell present in which trigger list form App */ 
-}RgSchUeACqiCb;
-
-typedef enum
-{
-   RG_SCH_FDD_PCQI_TBL = 0,
-   RG_SCH_TDD_PCQI_TBL,
-   RG_SCH_RI_TBL,
-   RG_SCH_FDD_SRS_TBL,
-   RG_SCH_TDD_SRS_TBL,
-   RG_SCH_SR_TBL
-} RgSchPerTbl;
-
-/*ccpu00116923 - ADD - SRS present support*/
-#ifdef LTE_TDD
-typedef uint8_t RgSchTddCellSpSrsSubfrmTbl[RGSCH_CELLSP_SRS_SF_CONFIGS][RGSCH_NUM_SUB_FRAMES];
-#else
-typedef uint8_t RgSchFddCellSpSrsSubfrmTbl[RGSCH_CELLSP_SRS_SF_CONFIGS][RGSCH_NUM_SUB_FRAMES];
-#endif
-
-
-#endif
-
-
-
-#ifdef LTE_TDD
-/**
-  * @brief
-  * Enum to define the type of Downlink subframe.
-  */
-typedef enum 
-{
-  RG_SCH_SPL_SF_NO_DATA = 0,
-  RG_SCH_SPL_SF_DATA,
-  RG_SCH_DL_SF_0,
-  RG_SCH_DL_SF
-}RgSchTddSfType;
-/**
-  * @brief
-  * TDD UE specific PUCCH recpetion information.
-  */
-typedef struct rgSchUePucchRecpInfo
-{
-   CmHashListEnt     hashLstEnt;     /*!< List of PUCCH for receiving
-                                          ACK/NACK feedback information */
-   TfuUeRecpReqInfo  *pucchRecpInfo; /*!< UE PUCCH Reception information */
-} RgSchUePucchRecpInfo;
-
-/**
-  * @brief
-  * TDD switch point information.
-  */
-typedef struct rgSchTddSubfrmInfo
-{
-   uint8_t switchPoints;     /*!< Number of DL-UL switch points */
-   uint8_t numFrmHf1;        /*!< Number of subframes for half frame 1
-                             Present for both 5ms and 10ms periodicity */
-   uint8_t numFrmHf2;        /*!< Number of subframes for half frame 2
-                             Present only for 5ms periodicity */
-} RgSchTddSubfrmInfo;
-
-/**
-  * @brief
-  * TDD DL Association Set information.
-  */
-typedef struct rgSchTddDlAscSetIdxK
-{
-   uint8_t numFdbkSubfrms;                        /*!< Number of Feedbacks for DL Subframes */
-   uint8_t subfrmNum[RGSCH_NUM_SUB_FRAMES-1];     /*!< List of Subframe Number */
-} RgSchTddDlAscSetIdxK;
-
-/** @brief PRACH Information for a frequency resource. */
-typedef struct rgrSchTddPrachInfo
-{
-   uint8_t     freqIdx;          /*!< Frequency Index */
-   uint8_t     sfn;              /*!< Even/Odd/All Radio Frames */
-   uint8_t     halfFrm;          /*!< First/Second Half Frame */
-   uint8_t     ulStartSfIdx;     /*!< Uplink Start Subframe Index*/
-} RgSchTddPrachInfo;
-
-/** @brief PRACH resource Information for each of the
- *  frequency resources. */
-typedef struct rgrSchTddPrachRscInfo
-{
-   uint8_t                 numRsc;                             /*!< Number of frequency resources*/
-   RgSchTddPrachInfo  prachInfo[RGSCH_TDD_MAX_FREQ_RSRC]; /*!< PRACH Information */
-} RgSchTddPrachRscInfo;
-
-/**
-  * @brief
-  * TDD Special subframe configuration information.
-  */
-struct rgSchTddSplSubfrmInfo
-{
-   uint8_t   norDlDwPts;        /*!< DL Normal CP: DwPTS in Ts */
-   uint8_t   norDlNorUpPts;     /*!< DL Normal CP: UL Normal CP:UpPTS in Ts */
-   uint8_t   norDlExtUpPts;     /*!< DL Normal CP: UL Extended CP: UpPTS in Ts */
-   uint8_t   extDlDwPts;        /*!< DL Extended CP: DwPTS in Ts */
-   uint8_t   extDlNorUpPts;     /*!< DL Extended CP: UL Normal CP:UpPTS in Ts */
-   uint8_t   extDlExtUpPts;     /*!< DL Extended CP: UL Extended CP: UpPTS in Ts */
-};
-
-/**
-  * @brief
-  * RACH response awaiting scheduling from the current time is
-  * identified with sfn offset and subframe.
-  */
-typedef struct rgSchTddRachRspInfo
-{
-   uint8_t    sfnOffset;                    /*!< SFN offset with respect to
-                                             expected RACH available for
-                                             scheduling */
-   uint8_t    numSubfrms;                   /* Number of subframes present */
-   uint8_t    subframe[RGSCH_NUM_SUB_FRAMES];  /*!< List of Subframe numbers */
-} RgSchTddRachRspInfo;
-
-typedef RgSchTddRachRspInfo RgSchTddRachDelInfo;
-
-/**
-  * @brief
-  * List of awaiting RACH responses for scheduling across radio frames.
-  *
-  */
-typedef struct rgSchTddRachRspLst
-{
-   uint8_t                   numRadiofrms;   /*!< Number of radio frames */
-   RgSchTddRachRspInfo  rachRsp[2];     /*!< RACH Occasions for which response
-                                          can be sent */
-   RgSchTddRachDelInfo  delInfo;        /*!< Previous RACH responses for
-                                          which the scheduling deadline
-                                          has expired. So those responses
-                                          can be deleted */
-} RgSchTddRachRspLst;
-
-/**
-  * @brief
-  * Uplink association index information indicates the SFN offset and
-  * subframe in which DL HARQ ACK/NACK is expected.
-  */
-typedef struct rgSchTddUlAscInfo
-{
-   uint8_t    subframe;         /*!< Subframe number */
-   uint8_t    sfnOffset;        /*!< SFN offset with respect to expected
-                                UL data reception time */
-} RgSchTddUlAscInfo;
-
-/**
-  * @brief
-  * PUSCH information indicates the SFN offset and
-  * subframe in which UL data is scheduled.
-  */
-typedef struct rgSchTddPuschOffInfo
-{
-   uint8_t    subframe;         /*!< Subframe number */
-   uint8_t    sfnOffset;        /*!< SFN offset with respect to expected
-                                UL data reception time */
-} RgSchTddPuschOffInfo;
-
-/**
-  * @brief
-  * PHICH information indicates the SFN offset and
-  * subframe for which PHICH should be sent.
-  */
-struct rgSchTddPhichOffInfo
-{
-   uint8_t    numSubfrms;       /*!< Number of subframes */
-/* ACC-TDD */
-   uint8_t    subframe;         /*!< The Uplink Subframe number corresponding
-                                to the phich */
-   uint8_t    sfnOffset;        /*!< SFN offset with respect to expected
-                                UL data reception time */
-};
-
-/**
-  * @brief
-  * DL feedback reception information indicates the SFN offset
-  * and subframe at which feedback is expected.
-  */
-typedef struct rgSchTddDlFdbkInfo
-{
-   uint8_t    subframe;      /*!< Subframe number */
-   uint8_t    sfnOffset;     /*!< SFN offset with respect to current
-                             scheduled time */
-   uint8_t    m;             /*!< m factor used in Downlink Association
-                             Set Index */
-#ifdef LTE_ADV /*Naw:: This is not correct */
-   CmLListCp n1PucchResLst;        /*!< List for storing the used N1 resource */
-#endif
-} RgSchTddDlFdbkInfo;
-
-
-/**
-  * @brief
-  * Special subframe configuration index.
-  */
-typedef struct rgSchTddSplSubfrmCfg
-{
-   uint16_t   dwPts;      /*!< DwPTS in OFDM Symbol Duration */
-   uint16_t   upPts;      /*!< UpPTS in OFDM Symbol Duration */
-   Bool  isDlDataAllowed; /*!< To allow scheduling of DL data on 
-                               special subframe */
-} RgSchTddSplSubfrmCfg;
-
-/**
-  * @brief
-  * ACK/NACK information to be used for ACK/NACK bundling mode.
-  */
-typedef struct rgSchTddANInfo
-{
-   uint16_t    sfn;           /*!< ACK/NACK is sent for PDU in this SFN */
-   uint8_t     subframe;      /*!< ACK/NACK is sent for PDU in this subframe */
-   uint8_t     dlDai;         /*!< Downlink Assignment Index for
-                                                    UL-DL Configuration 1-6 */
-   uint8_t     ulDai;         /*!< DAI for uplink */
-   uint8_t     latestMIdx;    /*!< Last transmitted DL subframe 'm' index */
-   uint8_t     n1ResTpcIdx;    /*!< N1 Res idx for scell assigned in TPC command */
-   Bool   isSpsOccasion; /*!< To indicate the presence of SPS occasion */
-#ifdef LTE_ADV
-   uint8_t     wUlDai;        /*!< Max Ul dai in all the cells */
-#endif
-} RgSchTddANInfo;
-#endif
-
-/**
-  * @brief
-  * Information about one MCS entry.
-  */
-typedef struct rgSchUlIMcsInfo
-{
-   uint8_t qm;
-   uint8_t iTbs;
-} RgSchUlIMcsTbl[29];
-RgSchUlIMcsTbl rgUlIMcsTbl;
-
-typedef struct rgSchUeCatTbl
-{
-   uint32_t    maxUlBits;/*Maximum number of
-                      bits of an UL-SCH
-                      transport block
-                      transmitted within a
-                      TTI*/
-   uint32_t    maxDlBits[4];/*Maximum number of 
-                      bits of a DLSCH
-                      transport block 
-                      received within a TTI*/
-/* correcting DL harq softbuffer limitation logic */
-   uint32_t    maxSftChBits;/*Total number of soft channel bits*/
-   Bool   ul64qamSup;/*Support for 64QAM in UL*/
-/* Changes for MIMO feature addition */
-/* Removed dependency on MIMO compile-time flag */
-   uint32_t    maxDlTbBits;/*Maximum number of DL-SCH 
-                        transport block bits 
-                        received within a TTI*/
-   uint8_t     maxTxLyrs;/*Maximum number of supported 
-                      layers for spatial multiplexing 
-                      in DL*/
-} RgSchUeCatTbl[CM_MAX_UE_CAT_SUPP + 1];
-RgSchUeCatTbl rgUeCatTbl;
-
-/* Changes for MIMO feature addition */
-/* Removed dependency on MIMO compile-time flag */
-typedef uint32_t RgSchTbSzTbl[RGSCH_MAX_NUM_LYR_PERCW][RGSCH_NUM_ITBS][RGSCH_MAX_NUM_RB];
-
-#ifdef LTE_TDD
-typedef uint8_t RgSchRaPrmblToRaFrmTbl[RGSCH_MAX_TDD_RA_PREAMBLE_FMT+1];
-#else
-/* Added matrix 'rgRaPrmblToRaFrmTbl' for computation of RA
-   sub-frames from preamble format */
-typedef uint8_t RgSchRaPrmblToRaFrmTbl[RGSCH_MAX_RA_PREAMBLE_FMT+1];
-#endif
-RgSchRaPrmblToRaFrmTbl rgRaPrmblToRaFrmTbl;
-
-uint8_t rgRvTable[4];
-
-typedef struct rgDciFmt
-{
-   uint8_t            dciType;
-   union
-   {
-      RgDciFmt1AInfo   dci1a;
-   } dci;
-} RgDciFmt;
-
-typedef enum rgSchPdcchSearchSpace
-{
-   RG_SCH_UE_SPECIFIC_SEARCH_SPACE,
-   RG_SCH_CMN_SEARCH_SPACE,
-}RgSchPdcchSearchSpace;
-
-/**
-  * @brief
-  * Information about one PDCCH.
-  */
-typedef struct rgSchPdcch {
-   uint8_t             nCce;    /*!< CCE index */
-   CmLteAggrLvl   aggrLvl; /*!< Aggregation level */
-   TfuDciInfo     dci;     /*!< PDCCH format */
-   uint16_t            rnti;    /*!< RNTI to who the PDCCH is allocated */
-#if (defined (LTE_TDD))
-   uint8_t                dlDai;          /*!< DAI associated with this PDCCH.
-                                          THis is used for F1BCS resource calulcation */
-#endif
-  /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   CmLteTimingInfo relFbkTiming; /*!< Feebback timing information for release
-                                   PDCCH */
-   Bool           isSpsRnti; /*!< TRUE if rnti is SPS RNTI */
-   uint16_t            crnti;    /*!< CRNTI to who the PDCCH is allocated */
-#endif
-   CmLList        lnk;     /*!< To link PDCCHs in a subframe */
-#ifdef EMTC_ENABLE   
-   Void           *emtcPdcch;
-#endif   
-   RgSchUeCb      *ue;     /*!< Pointer to the UE Control Block */
-   RgSchPdcchSearchSpace pdcchSearchSpace; /*!< Search Space from this PDCCH allocated */
-   uint8_t             dciNumOfBits; /*!< Size of DCI in bits */
-} RgSchPdcch;
-
-/**
-  * @brief
-  * PDCCH information for cell.
-  */
-typedef struct rgSchPdcchInfo {
-   uint8_t             *map;    /*!< Bit map of PDCCHs */
-   uint8_t             currCfi;       /*!< Number of CCEs */
-   uint16_t            nCce;    /*!< Total CCEs */
-   CmLListCp      pdcchs;  /*!< List of RgSchPdcch */
-} RgSchPdcchInfo;
-
-typedef struct rgSchPhich
-{
-   CmLList        lnk;        /*!< To link PHICHs in a subframe */
-   uint8_t             hqFeedBack; /*!< Harq Feed Back */
-   uint8_t             rbStart;    /*!< Starting RB */
-   uint8_t             nDmrs;      /*!< 3 bits for DMRS cyclic shift */
-   /* changes for passing iphich at TFU;*/
-   Bool           isForMsg3;  /*! < Phich Ack/Nack conveyed for MSG 3 */
-#ifdef LTE_TDD
-   uint8_t             iPhich;     /*!< For determining phich group */
-#endif
-} RgSchPhich;
-
-typedef struct rgSchPhichInfo
-{
-   CmLListCp      phichs;  /*!< List of RgSchPhich */
-} RgSchPhichInfo;
-
-typedef struct rgSchBcchTb
-{
-   RgSchPdcch     *pdcch;
-   Buffer         *tb;
-   uint16_t            tbSize;
-} RgSchBcchTb;
-
-typedef struct rgSchPcchTb
-{
-   RgSchPdcch     *pdcch;
-   Buffer         *tb;
-   uint16_t            tbSize;
-} RgSchPcchTb;
-
-typedef struct rgSchRaRspAlloc
-{
-   uint16_t            raRnti;
-   uint32_t            tbSz;
-   TknUInt8          backOffInd; /*!< Backoff index value */
-   CmLListCp      raRspLst;   /*!< List of RaCbs */
-   CmLListCp      contFreeUeLst; /*! List of HandOver or PdcchOrder UEs */
-   RgSchPdcch     *pdcch;     /*!< NULLP if no Rsp allocation done for raRnti*/
-}RgSchRaRspAlloc;
-
-typedef struct rgSchBchTb
-{
-   Buffer         *tb;    /*!< BCH data for this frame */
-   uint16_t            tbSize; /*!< Non-Zero if bch data is scheduled for this SF */
-}RgSchBchTb;
-
-/* Added support for SPS*/
-#ifdef LTEMAC_SPS
-/**
-  * TODO: check compilation
-  @brief Downlink Resource allocation type information. */
-struct rgSchDlSfAllocInfo
-{
-  uint32_t raType0Mask;       /*!< RBG allocation mask for type 0*/
-  uint32_t raType1Mask[RG_SCH_NUM_RATYPE1_32BIT_MASK]; /*!< RA Type 1
-                                                    allocation mask */
-  uint32_t raType1UsedRbs[RG_SCH_NUM_RATYPE1_32BIT_MASK];/*!< RA Type 1 Used RBs
-                                                     per subset */
-  uint32_t nxtRbgSubset;     /*!< Next RBG subset to be used for allocation */
-  uint32_t raType2Mask[RG_SCH_NUM_RATYPE2_32BIT_MASK];
-                        /*!< Mask for resource allocation type 2 */
-};
-#endif /* LTEMAC_SPS */
-
-/* LTE_ADV_FLAG_REMOVED_START */
-/**
-  @brief RGR RB range for SFR */
-typedef struct rgrPwrHiCCRange
-{
-   uint8_t   startRb;  /*<! Start RB for power high cell centre user */
-   uint8_t   endRb;    /*<! End RB for power high cell centre user */
-} RgrPwrHiCCRange;
-
-typedef struct rgSchSFRTotalPoolInfo
-{
-   CmLListCp       ccPool;            /*Dynamic Variable, It will change when BW is assigned. 
-                                        Initially assigned to 0 */
-   Bool            ccBwFull;          /*If BW is full*/
-   CmLListCp       cePool;            /*Dynamic Variable, It will change when BW is assigned. 
-                                        Initially assigned to 0 */
-   Bool            ceBwFull;          /*If BW is full*/
-   Bool            isUeCellEdge;
-   Bool            CERetx;            /* to check if there is any CE retransmission */ 
-   Bool            CCRetx;            /* to check if there is any CC retransmission */
-   Bool            CC1;               /* Cell centre pool 1 */  
-   Bool            CC2;               /* cell centre pool 2 */
-   uint8_t              CCPool1BwAvlbl;    /* Cell Centre Bw available for Pool1 */  
-   uint8_t              CCPool2BwAvlbl;    /* Cell Centre Bw available for Pool2 */
-   uint8_t              CEPoolBwAvlbl;     /* Cell Edge Bw available for CE Pool */
-}RgSchSFRTotalPoolInfo;
-
-typedef struct rgSchSFRPoolInfo
-{
-   /*Fixed RB Range of the Pool. Fixed by user configuration*/
-   uint16_t               poolstartRB;
-   uint16_t               poolendRB;                                                             
-   uint16_t               bw;         /*!< Number of RBs in the pool */
-   /*Dynamic Values */
-   uint8_t                type2Start; /*!< Start RB for the next type 2 allocation */
-   uint8_t                type2End;   /*!< End position of Type2 allocation with  in the bit mask */
-   uint8_t                type0End;   /*!< End position of Type0 allocation with   in the bit mask */
-
-   uint16_t               bwAlloced;  /*!< Number of RBs already allocated by DLFS */
-   Bool              CCPool2Exists;  /*!< To check if the last pool in the RB allocation is a CC pool */  
-   struct rgSchSFRPoolInfo * adjCCPool; /*!< The CC pool adjacent to this CE Pool SFR_FIX */
-   RgrPwrHiCCRange   pwrHiCCRange; /*!< Power High Range which can be used by CC user based on RNTP info */
-}RgSchSFRPoolInfo;
-/* LTE_ADV_FLAG_REMOVED_END */
-                
-typedef struct rgSchPuschBwInfo
-{
-   uint8_t numSb;         /*!< PUSCH BW in subbands */
-   uint8_t startRb;       /*!< Starting RB for PUSCH BW */
-}RgSchPuschBwInfo; 
-typedef struct rgSchDynCfiCb
-{
-   uint8_t               isDynCfiEnb;     /*!< Dynamic CFI feature Flag */
-   uint8_t               maxCfi;          /*!< max possible CFI in the cell */ 
-   uint8_t               switchOvrWinLen; /*!< Length of Switchover window */
-   uint16_t              cceFailCnt;      /*!< Number of CCE allocation Failures in a 
-                                           CCE failure sample period */            
-   uint16_t              *cceFailSamples; /*!< Array holding samples of Avg number 
-                                           of CCE allocation failures */
-   uint16_t              cceFailSum;      /*!< Moving sum of the CCE faliures of 
-                                          N samples */
-   uint16_t              cfiStepUpTtiCnt; /*!< No.of TTIs to take decision for CFI 
-                                          step Up */
-   uint16_t              cceUsed;         /*!< Total CCEs used in current monitoring 
-                                          interval */
-   uint16_t              lowCceCnt;       /*!< Number of TTI in which CCEs used is 
-                                          less than available CCEs in 
-                                          lower CFI */
-   uint16_t              cfiStepDownTtiCnt; /*!< No.of TTIs to take decision for CFI 
-                                            step Down */
-   uint32_t              cfiSwitches;     /*!< Total number of CFI switches */       
-   uint32_t              cfiIncr;         /*!< Total number of CFI increments */
-   uint32_t              cfiDecr;         /*!< Total number of CFI decrements */
-                                     /*!< Total CCE per CFI */ 
-   uint8_t               cfi2NCceTbl[RG_SCH_MAX_MPHICH][RG_SCH_CMN_MAX_CFI]; 
-                                                               
-   uint8_t               numFailSamples;    /*!< Number of CCE Allocation Failure 
-                                            samples */
-   uint16_t              failSamplePrd;     /*!< Failure Sample Period */
-   uint16_t              ttiCnt;            /*!< TTI count to track monitoring period
-                                            and sample period expiry */  
-   RgSchPuschBwInfo bwInfo[RG_SCH_CMN_MAX_CFI]; /*!< PUSCH BW info */ 
-   uint8_t               pdcchSfIdx;        /*!< Subframe Idx for CFI applying */
-   uint8_t               prevCceFailIdx;   /*!< To maintain Previous Index of 
-                                           CCE failure array */  
-   Bool             switchOvrInProgress; /*!< Switchover is in progress */
-   Bool             dynCfiRecfgPend; /*!< Flag for pending dynamic cfi reconfig */    
-}RgSchDynCfiCb;    
-
-#ifdef RG_5GTF
-
-/**
-  * @brief
-  * Beam information for a subframe
-  */
-typedef struct rgSchSfBeamInfo
-{
-   uint16_t      totVrbgAvail;        /*!< Total VRBG available */
-       //uint16_t      totRb;               /*!<  Total RB per Beam */
-       uint16_t      totVrbgRequired;     /*!<  total Rbs requested for beam */
-   uint16_t      totVrbgAllocated;    /*!<  total Rbs allocated for beam */
-   uint16_t      vrbgStart;           /*!<  VRBG start for beam */
-} RgSchSfBeamInfo;
-#endif
-
-typedef struct rgSchDlSf
-{
-   uint8_t                cceCnt;       /*!< Number of CCEs used in the subframe */
-   Bool              isCceFailure; /*!< TRUE if PDCCH allocation is failed for 
-                                        this subframe */
-   uint8_t                dlUlBothCmplt; /*!< To track that DL and UL both scheduling
-                                         is done */
-   uint8_t                sfNum;      /*!< Number of the subframe */
-   uint16_t               bw;         /*!< Number of RBs in the cell */
-   uint16_t               bwAlloced;  /*!< Number of RBs already allocated by DLFS */
-   uint16_t               bwAssigned; /*!< Number of RBs already allocated by scheduler */
-/* LTE_ADV_FLAG_REMOVED_START */
-   RgSchSFRTotalPoolInfo  sfrTotalPoolInfo; /* SFR Pool Info*/
-   TknStrOSXL        rntpInfo;   /* RNTP Info for the complete subframe*/
-/* LTE_ADV_FLAG_REMOVED_END */
-
-   uint8_t                type2Start; /*!< Start RB for the next type 2 allocation */
-   uint8_t                type2End;   /*!< End position of Type2 allocation with
-                                      in the bit mask */
-   uint8_t                type0End;   /*!< End position of Type0 allocation with
-                                      in the bit mask */
-   uint8_t                lstRbgDfct; /*!< The last RBG deficit RBs, Ex. if DLBW = 97,
-                                  * RBGsz = 4, lstRbgDfct = 3 */
-   Bool              txDone;     /*!< Flag to indicate if transmission is done*/
-   uint32_t               numDlActvUes; /* 4UE_TTI_DELTA: num of active Ues */
-   RgSchBchTb        bch;        /*!< BCH data for this frame */
-   RgSchBcchTb       bcch;       /*!< BCCH allocation for this frame */
-   RgSchPcchTb       pcch;       /*!< PCCH allocation for this frame */
-   RgSchPdcchInfo    pdcchInfo;  /*!< PDCCH info */
-   RgSchPhichInfo    phichInfo;  /*!< PHICH info */
-   /* CA dev Start */
-   
-   CmLListCp         ueLst;        /*!< UE List which are scheduled in Perticular SF */
-   Void              *laaCb;
-   CmLListCp         msg4HqPLst;   /*!< Msg4 Hq Procs that are scheduled in Perticular SF */
-   /* CA dev End */
-   uint8_t                remUeCnt;   /*!< Remaining number of UEs that can be scheduled */
-   Bool              schdAmbrNxt;/*!< Flag indicates to pick an AMBR LC after GBR LC */
-   /*[ccpu00138609]-ADD- Counter to track the number of Msg4/DL CCCH UEs */ 
-   uint8_t                schdCcchUe; /*!< Num of Msg4/DL CCCH UEs scheduled in 
-                                      the DL Sf */ 
-#ifdef LTE_TDD
-   uint8_t                   nCce;       /*!< Number of CCEs */
-   RgSchTddPhichOffInfo phichOffInfo;  /*!< PHICH Information */
-   RgSchTddDlFdbkInfo   dlFdbkInfo; /*!< HARQ Ack/Nack feedback expected time */
-   RgSchTddUlAscInfo    ulAscInfo;  /*!< UL Association set Information */
-   RgSchRaRspAlloc      raRsp[RGSCH_MAX_TDD_RA_RSP_ALLOC]; /* Array of list
-                                                 of Ra Rsp
-                                                 Allocations for each rarnti */
-   RgSchTddSfType       sfType;    /*!< Stores the enum value for SF type */                                               
-#else
-   RgSchRaRspAlloc   raRsp[RGSCH_MAX_RA_RSP_ALLOC]; /* Array of list of Ra Rsp
-                                                 Allocations for each rarnti */
-#endif
-   Void              *dlfsSf;     /*!< DLFS specific information per sub-frame */
-   CmLListCp         ackNakRepQ;  /*!< ACK NACK repetition queue */
-   /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   Bool              isSPSOcc;    /*!< TRUE if this SF has SPS Occasion allocation */
-   RgSchDlSfAllocInfo dlSfAllocInfo;/*!< Allocation information for DL SF */
-   uint32_t               spsAllocdBw;   /*!< Number of RBs allocated for SPS */
-   RgSchPdcch        *relPdcch;     /*!< Only one release PDCCH scheduled per
-                                      sub-frame */
-#ifdef LTE_TDD
-   struct
-   {
-      CmLteRnti         crnti;       /*!< UE's C-RNTI (not SPS RNTI) */
-      RgrTddAckNackMode ackNackMode; /*!< Ack/nack mode */
-   } relPdcchInfo;                  /*!< Info required for receiving Hq fdbk
-                                     *   for release PDCCH (DL) */
-#endif
-#endif
-   uint32_t      schedLcCount;          /*!< Num of LCs scheduled in this TTI */
-   uint32_t      totalLcCntOfSlctdUes;  /*!< total Lc count of all UE's selected in 
-                                    *   this TTI*/
-   uint32_t      totPrbReq;             /*!< Sum of PRBs required by selected UEs
-                                        in this subframe */
-#ifdef BEST_EFFORT_2_UE_PER_TTI
-  uint32_t       beTotPrbReq;
-#endif
-                                    
-  /* CA dev Start */
-   uint8_t      dlIdx;
-  /* CA dev Start */
-#ifdef LTE_ADV
-   CmLListCp n1PucchResLst;        /*!< List for storing the used N3 resource */
-   CmLListCp n3PucchResLst;        /*!< List for storing the used N1 resource */
-#endif
-#ifdef RG_5GTF
-   RgSchSfBeamInfo  sfBeamInfo[MAX_5GTF_BEAMS];      /*!< Per info Beam per sf*/
-   uint8_t               numGrpPerTti;     /*!< number of Group per TTI*/
-       uint8_t               numUePerGrp;      /*!< number of UE per group in TTI*/
-#endif
-} RgSchDlSf;
-
-/* Data Structures used for DL Allocations by Schedulers */
-/**
-  @brief Downlink Resource allocation type 0 information. */
-typedef struct rgSchDlRbAllocRaType0
-{
-   uint8_t numDlAlloc;          /*!< Number of downlink allocations */
-   uint32_t dlAllocBitMask;     /*!< Downlink allocations done for the UE */
-} RgSchDlRbAllocRaType0;
-
-/* Added support for SPS*/
-#ifdef LTEMAC_SPS
-/**
-  @brief Downlink Resource allocation type 1 information. */
-typedef struct rgSchDlRbAllocRaType1
-{
-   uint8_t numDlAlloc;          /*!< Number of downlink allocations */
-   uint8_t shift;               /*!< Indicates if the shift is triggered in the
-                                allocation */
-   uint8_t rbgSubset;           /*!< RBG subset number selected for the allocation*/
-   uint32_t dlAllocBitMask;     /*!< Downlink allocations done for the UE */
-} RgSchDlRbAllocRaType1;
-#endif /* LTEMAC_SPS */
-/**
-  @brief Downlink Resource allocation type 2 information. */
-typedef struct rgSchDlRbAllocRaType2
-{
-   Bool        isLocal;       /*!< True if localised VRB */
-   uint8_t          rbStart;       /*!< Starting RB */
-   uint8_t          numRb;         /*!< Number of RBs */
-} RgSchDlRbAllocRaType2;
-
-
-typedef struct rgSchcmnDlGrnt
-{
-   uint16_t     schdTime;       /*!< Time at which Harq proc has been scheduled */
-   uint8_t      rbStrt;         /*!< Starting RB of the allocation */
-   uint8_t      numRb;          /*!< Number of RBs allocated */
-   uint8_t      iMcs;           /*!< Index to the MCS */
-   uint8_t      rv;             /*!< RV for HARQ (re)transmission */
-   uint8_t      rvIdx;          /*!< RVIdx for HARQ(re)transmission */
-#ifdef RG_5GTF   /* ToDo:: Anoop need to check for other fields required*/
-   uint8_t      vrbgStart;
-   uint8_t      numVrbg;
-   uint16_t     rbAssign;
-   uint8_t      xPDSCHRange;
-   uint8_t      SCID;
-   TfuDciFormat dciFormat;  /*!< DCI format for the allocation */
-       /* ToDo */
-#endif
-} RgSchDlCmnGrnt;
-
-
-/**
-  @brief Downlink allocation details per TB. */
-typedef struct rgSchDlTbAllocInfo
-{
-   Bool          schdlngForTb;/*!< Indicates if this TB has been scheduled */
-   /*ccpu00120365:-ADD-is this TB disabled. Refer to 36.213-7.1.7.2 */
-   Bool          isDisabled; /*!< Indicates if this TB is disabled */
-   uint32_t           bytesReq;    /*!< Number of bytes required to be allocated
-                                 for each TB: filled in by RR/MAX C/I/PFS */
-   uint32_t           bytesAlloc;  /*!< Num of bytes allocated for each TB */
-   uint8_t            iTbs;        /*!< Itbs for allocation for this allocation
-                               * of TB */
-   uint8_t            imcs;        /*!< Imcs for allocation for this allocation
-                               * of TB */
-   uint8_t            noLyr;       /*!< No. of SM layers for this TB transmission */
-   RgSchDlHqTbCb *tbCb;       /*!< address of TB Control Block */
-#ifdef RG_5GTF
-   RgSchDlCmnGrnt   cmnGrnt;     /*! < Alloc info to store 5GTF RAR sched */
-#endif
-}RgSchDlTbAllocInfo;
-
-/**
-  @brief Downlink MIMO related allocation details. */
-typedef struct rgSchMimoAllocInfo
-{
-   Bool    hasNewTxData;/*!< Indicator from Specific Sched to Common.
-                         * Set, if UE has new data available for clubbing
-                         * with RETX in case of TM3 and TM4 */
-   Bool    swpFlg;      /*!< Swap Flag to indicate TB to CW association
-                         * incase of 2 TB transmission */
-   uint8_t      precIdxInfo; /*!< Precoding index information stored */
-   uint8_t      numTxLyrs;   /*!< Number of SM layers scheduled for Transmission */
-}RgSchMimoAllocInfo;
-
-
-/**
-  @brief Downlink RB allocation details. */
-typedef struct rgSchDlRbAlloc
-{
-   CmLteRnti rnti;          /*!< RNTI for allocation: used only for RARs and
-                                 dedicated transmissions */
-   uint8_t rbsReq;               /*!< Number of RBs required to be allocated:
-                                 filled in by RR/MAX C/I/PFS */
-   RgSchDlSf *dlSf;         /*!< DL sub-frame for which allocation is to be
-                                 done: filled in by RR/MAX C/I/PFS */
-   TfuDciFormat dciFormat;  /*!< DCI format for the allocation */
-   uint8_t raType;               /*!< Resource allocation Type */
-   RgSchPdcch *pdcch;       /*!< Pointer to allocated PDCCH */
-   union allocInfoU
-   {
-      RgSchDlRbAllocRaType0 raType0; /*!< Resource allocation type 0 information */
-      /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-      RgSchDlRbAllocRaType1 raType1; /*!< Resource allocation type 1
-                                       information */
-#endif
-      RgSchDlRbAllocRaType2 raType2;  /*!< Resource allocation type 2 information */
-   } allocInfo;             /*!< Resource allocation information */
-   uint8_t rbsAlloc;             /*!< Number of RBs allocated */
-   uint8_t      numRapids;       /*!< Number of RAPIDs serviced within RAR*/
-   /* Nprb indication at PHY for common Ch */
-   uint8_t      nPrb;            /*!< NPRB column num. either 2 or 3 */
-   uint32_t     raIndex;
-   Bool    schdFirst;
-   /* Add BI sub-header size to the tbSize requirement */
-   uint8_t      biEstmt;
-   RgSchMimoAllocInfo mimoAllocInfo; /*!< Mimo specific allocation params */
-   RgSchDlTbAllocInfo tbInfo[2]; /*!< Allocation information for each TB. */
-
-   /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   uint8_t      cqiForTx;     /*!< Assumed value of CQI at which transmission is
-                           scheduled */
-   RgSchDlSfAllocInfo resAllocInfo; /*!< Resource allocation information for
-                                      the current allocation for
-                                      RA type 0, 1 and 2 */
-   Bool    isSchdBySps;  /*!< Indicates if this UE is already scheduled by SPS
-                           module */
-   CmLteTimingInfo spsSchdTime; /*!< Timing info at which UE was scheduled by
-                                  SPS module */
-#endif
-   Void *              laaCb;
-#ifdef EMTC_ENABLE
-   RgSchPdcch          *mpdcch;       /*!< Pointer to allocated PDCCH */
-   RgSchEmtcDlRbAlloc  emtcAllocInfo; /*!< EMTC DL RB alloc Info */
-#endif
-#ifdef RG_5GTF
-   uint8_t                  vrbgReq;
-#endif
-} RgSchDlRbAlloc;
-
-/**
-  * @brief
-  * Uplink Grant Information per UE.
-  */
-typedef struct rgSchUlGrnt
-{
-   uint8_t           iMcs;       /*!< Original MCS index */
-   uint8_t           iMcsCrnt;   /*!< Current MCS index of the grant */
-   uint8_t           hop;        /*!< Hopping flag, set to 0 in this version */
-   uint8_t           rbStart;    /*!< Start Resource block of allocation */
-   uint8_t           numRb;      /*!< Number of resource blocks allocated */
-   uint8_t           tpc;        /*!< TPC command for the uplink grant */
-   uint8_t           nDmrs;      /*!< n1DMRS for the uplink grant */
-   uint8_t           delayBit;   /*!< Delay bit, for msg3 grant, set to 1 */
-   /* Added for Uplink Adaptive retransmission */
-   Bool         isRtx;      /*!< To indicate if this grant is for a RETX */
-   /* To include the length and ModOrder in DataRecp Req. */
-   uint16_t          datSz;      /*!< Length of the Data */
-   TfuModScheme modOdr;     /*!< Modulation order */
-#ifdef RG_5GTF
-   uint8_t           vrbgStart;
-   uint8_t           numVrbg;
-   uint16_t          rbAssign;
-   uint8_t           xPUSCHRange;
-   uint8_t           SCID;
-   uint8_t           PMI;
-   uint8_t           uciOnxPUSCH;
-   uint8_t           hqProcId;
-   Bool         ndi;
-   TfuDciFormat dciFrmt;
-   uint8_t           numLyr;
-#endif
-} RgSchUlGrnt;
-
-
-/* Added for Uplink Adaptive retransmission */
-/**
-  * @brief
-  * Uplink retransmission allocation.
-  */
-struct rgSchUlRetxAlloc
-{
-   CmLteRnti       rnti;      /*!< RNTI */
-   uint8_t              numSb;     /*!< Number of subbands */
-   uint32_t             tbSz;      /*!< Transmission Block Size */
-   uint8_t              iMcs;      /*!< Original MCS index */
-   RgSchUeCb       *ue;       /*!< UE assocated with allocation */
-   Bool            forMsg3;   /*!< If allocation is for Msg3 */
-   /* PHR handling for MSG3 */
-   RgSchRaCb       *raCb;     /*!< Pointer to RaCb, if forMsg3 = TRUE */
-#ifdef EMTC_ENABLE
-   RgSchEmtcUlGrnt  emtcGrnt;
-#endif
-#ifdef RG_5GTF
-   TfuDciFormat dciFrmt;
-   uint8_t           numLyr;
-   uint8_t           vrbgStart;
-   uint8_t           numVrbg;
-   TfuModScheme modOdr;     /*!< Modulation order */
-#endif
-};
-
-/**
-  * @brief
-  * Hole information, pertaining to uplink bandwidth
- */
-typedef struct rgSchUlHole
-{
-   uint8_t start;      /*!< Beginning of hole */
-   uint8_t num;        /*!< Number of elements making up the hole */
-   struct rgSchUlHole *prv; /*!< Previous hole */
-   struct rgSchUlHole *nxt; /*!< Next hole */
-   struct rgSchUlAlloc *nxtAlloc; /*!< Next allocation */
-   struct rgSchUlAlloc *prvAlloc; /*!< Previous allocation */
-} RgSchUlHole;
-
-/**
-  * @brief
-  * Uplink allocation
-  */
-struct rgSchUlAlloc
-{
-   RgSchUlHqProcCb *hqProc;         /*!< HARQ process */
-   CmLteRnti       rnti;            /*!< RNTI */
-   uint8_t              sbStart;         /*!< Subband start idx */
-   uint8_t              numSb;           /*!< Number of subbands */
-   RgSchUlGrnt     grnt;            /*!< Grant info */
-   /* Not keeping grant attributes now */
-   RgSchPdcch      *pdcch;          /*!< Associated PDCCH */
-   RgSchUeCb       *ue;             /*!< UE assocated with allocation */
-   Bool            forMsg3;         /*!< If allocation is for Msg3 */
-   Bool            isMsg3CCCHSdu;   /*!<Msg3 contains CCCH Sdu */
-   Bool            isMsg3CrntiCe;   /*!< Msg3 contains CRNTI CE */
-   /* PHR handling for MSG3 */
-   RgSchRaCb       *raCb;           /*!< RaCb, if forMsg3 = TRUE */
-   Bool            mrgdNewTxAlloc;  /*!< Alloc corresponding to newTx
-                                     *   that was merged in the process of
-                                     * comdining txSf and reTxSf. */
-   RgSchUlAlloc    *prv;            /*!< Previous alloc */
-   RgSchUlAlloc    *nxt;            /*!< Next alloc */
-   RgSchUlHole     *prvHole;        /*!< Next hole */
-   RgSchUlHole     *nxtHole;        /*!< Prev hole */
-   /* UL_ALLOC_CHANGES*/
-   void           *allocDbRef;     /*!< The db from which this allocation was made*/
-   void           *holeDbRef;      /*!< The db from which this allocation was made*/
-   Bool           isAdaptive;
-#ifdef EMTC_ENABLE 
-   CmLList               allocLink;
-   RgSchEmtcUlGrnt       emtcGrnt;
-   RgSchDlRbAllocRaType0 raType0;  /*!< Resource Alloction type zero for eMTC */
-#endif /* EMTC_ENABLE */
-};
-
-/**
-  * @brief
-  * Allocation free pool for an allocation db
- */
-typedef struct rgSchUlAllocMem
-{
-   uint8_t            maxAllocs;     /*!< Maximum possible allocations per subframe */
-   RgSchUlAlloc  *firstFree;    /*!< First free index */
-   RgSchUlAlloc  *allocs;       /*!< Array of 'maxAllocs' elems */
-} RgSchUlAllocMem;
-
-/**
-  * @brief
-  * Allocation information for a subframe
- */
-typedef struct rgSchUlAllocDb
-{
-   uint8_t              count;      /*!< Number of allocations */
-   RgSchUlAlloc    *first;     /*!< First allocation */
-   RgSchUlAllocMem mem;        /*!< Alloc pool management */
-} RgSchUlAllocDb;
-
-/**
-  * @brief
-  * Hole free pool for a hole db
- */
-typedef struct rgSchUlHoleMem
-{
-   uint8_t           maxHoles;     /*!< Maximum possible holes per subframe */
-   RgSchUlHole  *firstFree;    /*!< First free index */
-   RgSchUlHole  *holes;        /*!< Array of 'maxHoles' elems */
-} RgSchUlHoleMem;
-
-/**
-  * @brief
-  * Holes information for a subframe
-  */
-typedef struct rgSchUlHoleDb
-{
-   uint8_t             count;           /*!< Number of holes */
-   RgSchUlHole    *first;       /*!< First hole */
-   RgSchUlHoleMem mem;        /*!< Hole pool management */
-} RgSchUlHoleDb;
-
-/**
-  * @brief
-  * Uplink subframe information.
-  */
-typedef struct rgSchUlSf
-{
-   uint8_t               idx;      /*!< Identifier for uplink subframe (range: 0-7)
-                                - maps to HARQ proc ID */
-   CmLListCp        reTxLst;  /*!< Retransmission List*/
-#ifdef LTE_TDD
-   RgSchTddPuschOffInfo puschOffset; /*!< PUSCH offset information */
-   uint8_t               ulSfIdx;  /*!< The Uplink subframe number 
-                                   in the TDD frame. Range [2-9]
-                                   Used only in TDD Cfg 0  */ 
-#endif
-   uint32_t              totPrb;    /*!< Total PRB used in this sub frame */
-   /* ccpu00129725 -DEL- removed Platform flag */
-   /* Fix:ccpu00120610 add a counter to keep track of remaining allocations */
-   uint8_t               *allocCountRef; /*!< Allocation count in this
-                                *  subframe, it is a reference to the actual
-                                *  counter held in allocDb (no additional
-                                *  logic needed to maintain this) */
-   /* Added for Uplink Adaptive retransmission */
-   RgSchUlAllocDb   *allocDb;  /*!< Allocation info */
-   RgSchUlHoleDb    *holeDb;   /*!< Holes info */
-   uint8_t               availSubbands; /*!< Number of total available subbands
-                                    * for the current sub-frame */
-   uint8_t   numACqiCount;        /*!< Used to Restrict 2 Aperiodic cqi per TTI*/ 
-#ifdef RG_5GTF
-   RgSchSfBeamInfo  sfBeamInfo[MAX_5GTF_BEAMS];      /*!< Per info Beam per sf*/
-   uint8_t               numGrpPerTti;     /*!< number of Group per TTI*/
-       uint8_t               numUePerGrp;      /*!< number of UE per group in TTI*/
-#endif
-} RgSchUlSf;
-
-/* Nprb indication at PHY for common Ch */
-/**
-  * @brief
-  * Bo report given for common logical channel.
-  */
-typedef struct rgSchClcBoRpt
-{
-   CmLList         boLstEnt;  /*!< Linked list entity for BO list */
-   uint32_t             bo;        /*!< Bo in bytes */
-   CmLteTimingInfo timeToTx;  /*!< Time at which the BO needs to be satisfied
-                                   (data to be sent to PHY) */
-#ifdef EMTC_ENABLE
-   uint8_t              emtcDIReason;   /*!< Reason for DI message to send. */
-   uint8_t              pnb;            /*!< Paging narrowBand on which Ue performs reception of paging*/
-#endif
-   CmLteTimingInfo maxTimeToTx;
-   uint8_t              retxCnt;
-   uint16_t             i;
-   uint8_t              nPrb;      /*! NPRB column. Allowed values {2,3} */
-   /* Corrected allocation for common channels */
-   uint8_t              mcs;
-} RgSchClcBoRpt;
-
-/**
-  * @brief
-  * Logical channel control block for BCCH and PCCH channels.
-  */
-typedef struct rgSchClcDlLcCb
-{
-   uint8_t              lcId;                     /*!< Logical channel ID */
-   Bool            si;
-   CmLListCp       boLst;                    /*!< List of BOs reported (RgSchClcBoRpt) */
-} RgSchClcDlLcCb;
-
-/**
-  * @brief
-  * Transmission offset configuration for SRS.
-  */
-typedef struct rgSchSrsTxOffst
-{
-   uint8_t count;                       /*!< Number of offsets in the array */
-   uint8_t offst[RGSCH_MAX_SRS_TX_OFFSET]; /*!< SRS TX offset value */
-} RgSchSrsTxOffst;
-
-/**
-  * @brief
-  * Cell Control block per cell.
-  */
-typedef struct rgSchSrsCfg
-{
-   /*ccpu00130768 - ADD - SRS CFG Present flag to enable/disable cell specific SRS*/
-   Bool            isSrsCfgPres;  /*!< cell specific SRS CFG enable/disable flag */
-   RgrSrsCfgPrd    srsCfgPrdEnum; /*!< SRS configuration period (in subframes) */
-   RgrSrsBwCfg     srsBwEnum;     /*!< SRS Bandwidth configuration per cell.*/
-   RgSchSrsTxOffst srsTxOffst;    /*!< Transmission offset for SRS */
-/*ccpu00116923 - ADD - SRS present support*/
-#ifdef TFU_UPGRADE
-    uint8_t           srsSubFrameCfg;/*!< SRS subframe configuration index per cell.
-                                     Range - [0-15] */
-#endif
-} RgSchSrsCfg;
-
-
-/**
-  * @brief
-  * MAC Configuration element for CRG interface.
-  */
-typedef struct rgSchCfgElem
-{
-   CmLList         cfgReqLstEnt;  /*!< Linked list entry for cfgReqLst */
-   CmLteTimingInfo actvTime;      /*!< Activation time to apply configuration */
-   struct rgrCfgS
-   {
-      Region reg;
-      Pool   pool;
-      RgrCfgReqInfo   *rgrCfgReq;    /*!< Configuration request information from
-                                       RRM */
-      RgrCfgTransId   transId;       /*!< Transaction ID for the config request */
-   } rgrCfg;                         /*!< RGR configuration information */
-} RgSchCfgElem;
-
-
-/**
-  * @brief
-  * Configuration Control block per cell.
-  */
-typedef struct rgSchCfgCb
-{
-   CmLListCp  crntRgrCfgLst;    /*!< List of config requests recieved in the
-                                     current TTI from RRM */
-   CmLListCp  pndngRgrCfgLst;  /*!< List of pending config requests recieved in the
-                                     previous TTIs from RRM */
-} RgSchCfgCfb;
-
-/**
-  * @brief
-  * Link of RNTIs managed by MAC.
-  */
-typedef struct rgSchRntiLnk
-{
-   uint16_t rnti;                /*!< RNTI */
-   /*Fix: Overcome race condition between MAC and Scheduler delete*/
-   CmLList rntiGrdPoolLnk;     /*!< Link for RNTI guard pool*/
-   struct rgSchRntiLnk *prv;   /*!< Link to previous RNTI */
-   struct rgSchRntiLnk *nxt;   /*!< Link to next RNTI */
-} RgSchRntiLnk;
-
-/**
-  * @brief
-  * Database of RNTIs managed by MAC.
-  */
-typedef struct rgSchRntiDb
-{
-   uint16_t  rntiStart;         /*!< Start RNTI */
-   uint16_t  maxRntis;          /*!< Maximum number of RNTIs managed by MAC */
-   uint16_t  count;
-   RgSchRntiLnk *freeRnti;   /*!< first free RNTI in the list */
-   RgSchRntiLnk *lastRnti;   /*!< last RNTI in the list */
-   RgSchRntiLnk *rntiPool;   /*!< Linked list of RNTIs */
-   /*Fix:Overcome Race condition between MAC and Scheduler delete*/
-   CmLListCp  rntiGuardPool; /*!< Holds guard pool for RNTIs when deleted in 
-                                  Scheduler but not deleted at MAC */
-} RgSchRntiDb;
-
-/**
-  * @brief
-  * Random access information per cell.
-  */
-typedef struct rgSchRaInfoCb
-{
-#ifdef LTE_TDD
-   uint8_t              maxRaSize;                /*!< Number of RA-RNTIs stored
-                                                  across radio frames */
-   uint8_t              lstSize;                  /*!< list size */
-   CmLListCp       *raReqLst;                 /*!< Each array elem is linked
-                                                   list of RgRaReqInfo
-                                                   (per ra-rnti) */
-#else
-   /* ccpu00132523 Doubled the array size from MAX_RARNTI because window expiry 
-    * is overlapping with newly received TACH reqs in max RAR window*/
-   /* Array Size should be more than gap towards window start */
-   CmLListCp       raReqLst[RGSCH_RAREQ_ARRAY_SIZE];  /*!< Each array elem is linked
-                                                   list of RgRaReqInfo
-                                                   (per max ra-rnti*2) */
-#endif
-   CmLListCp       raCbLst;                   /*!< List of RaCbs */
-   CmLListCp       toBeSchdLst;               /*!< List of RaCbs to be
-                                                   scheduled */
-} RgSchRaInfoCb;
-#ifdef EMTC_ENABLE
-/** @brief This structure is part of the uplink HARQ process, this structure
- * encapsulates all the DRX related information.
- */
-typedef struct rgSchDrxUlHqProcCb
-{
-   CmLList harqRTTEnt;   /*!< Entry into the HARQ RTT timer list */
-   CmLList harqRetxEnt;   /*!< Entry into the harqRetxQ */
-
-   uint16_t     rttIndx;    /*!< Current Index into HARQ RTT Q */
-   uint16_t     reTxIndx;   /*!< Current Index into Re-Tx Q */
-   uint8_t      retxTmrReduction; /*!< Due to platform specific timing diff between
-                                 UL HARQ processing and UL Scheduling, the 
-                                 drx retx timer may start at a later time, than
-                                 actual. That delay in starting the timer is 
-                                 stored in this */   
-                                     
-} RgSchDrxUlHqProcCb;
-
-#endif
-
-/**
-  * @brief
-  * Uplink HARQ process information per UE
-  */
-struct rgSchUlHqProcCb
-{
-   uint8_t                ndi;          /*!< NDI */
-   uint8_t                remTx;        /*!< Number of remaining transmissions */
-   RgSchUlAlloc      *alloc;       /*!< Uplink allocation */
-   /* Renamed rcvdDatInd to rcvdCrcInd */
-   Bool              rcvdCrcInd;   /*!< Set to true when data rcvd, false when
-                               decode failure. */
-   uint8_t                rvIdx;        /*!< Redundancy version index */
-   TknUInt8             rvIdxPhy;     /*!< Whatever is given by PHY. To be inspected in case
-                               of NACK.Always initialised to 'not present' */
-   CmLList           reTxLnk;      /*!< Retransmission List */
-   RgSchUlRetxAlloc  reTxAlloc;    /*!< Retransmission allocation
-                                        information */
-   Bool              isRetx;       /*!< Awaiting retransmission */
-   uint8_t                procId;       /*!< HARQ Process ID */
-   uint8_t                ulSfIdx;      /*!< UL Subframe Index */
-#ifdef LTE_TDD
-   /* Changes for passing iPhich at TFU*/
-   uint8_t                iPhich;       /*!< Needed to Calculate PHICH
-                                        location. For TDD only */
-#endif
-#ifdef LTEMAC_SPS
-   Bool              isSpsActvnHqP;   /*!< Set to true when this HqP is used for
-                                           UL SPS Activation */
-   Bool              isSpsOccnHqP;   /*!< Set to true when this HqP is used for
-                                           UL SPS Occasion TX */
-#endif
-   void              *hqEnt;
-#ifdef EMTC_ENABLE
-  RgSchDrxUlHqProcCb  drxCb;  
-  Bool                isDtx;
-#endif
-  /* 5gtf: TODO two links are not required */
-  CmLList             lnk;      /*!< To link to inUse/Free Pool */
-  CmLteTimingInfo     schdTime; /*!< SFN,SF of schd time */
-};
-
-/**
-  * @brief
-  * Uplink HARQ entity information per UE.
-  */
-typedef struct rgSchUlHqCb
-{
-   uint8_t           maxHqRetx;        /*!< Maximum number of harq
-                                   * re-transmissions */
-   uint8_t              numHqPrcs; /*!< Number of HARQ Processes */
-#ifdef LTE_TDD
-   RgSchUlHqProcCb *hqProcCb; /*!< Uplink harq process info */
-#else
-   RgSchUlHqProcCb hqProcCb[RGSCH_NUM_UL_HQ_PROC]; /*!< Uplink harq process info */
-#endif
-#ifdef LTE_L2_MEAS
-   uint8_t          numBusyHqProcs;    /*!< Total Num of Hq procs in use */
-#endif
-#ifdef EMTC_ENABLE
-   void       *sch;
-   RgSchUeCb  *ue;
-#endif
-   CmLListCp    free;      /*!< List of free HARQ processes */
-   CmLListCp    inUse;     /*!< List of in-use HARQ processes */
-} RgUeUlHqCb;
-
-/**
-  * @brief
-  * Logical channel group.
-  */
-#ifdef LTE_L2_MEAS
-/**
- * @brief
- * Structure to store values for Ra Preambles received values
- * */
-typedef struct rgSchRaPreambles
-{
-   uint8_t               dedPream;    /*!< Dedicated RA Preamble received */
-   uint8_t               preamGrpA;   /*!< Randomly selected preambles in low range */
-   uint8_t               preamGrpB;   /*!< Randomly selected preambles in high range */
-}RgSchRaPreambles;
-
-/**
- * @brief strutcure to store Avergae PRB usage for a given Time period in
- * Downlink.
- * */
-typedef struct rgSchAvgPrbDl
-{
-   Bool             cntActive;   /* Set to TRUE if counting activated */
-   CmLteTimingInfo  startTime;   /*!< Start Time */
-   uint8_t               timePrd;     /*!< Period For which meas to be done */
-   uint32_t              prbCount;    /*!< PRB Count Updated every Per TTI */
-} RgSchAvgPrbDl;
-
-/**
- * @brief strutcure to store Avergae PRB usage for a given Time period in
- * Uplink .
- * */
-typedef struct rgSchAvgPrbUl
-{
-   Bool             cntActive;   /*!< Set to TRUE if counting activated */
-   CmLteTimingInfo  startTime;   /*!< Start Time */
-   uint8_t               timePrd;     /*!< Period For which meas to be done */
-   uint32_t              prbCount;    /*!< PRB Count Updated every Per TTI */
-} RgSchAvgPrbUl;
-
-/** @brief
- *  L2 measurement control block.
- *  */
-struct rgSchL2MeasCb
-{
-   CmLList            measLnk;       /*!< MeasCb node */
-   LrgSchMeasReqInfo  measReq;       /*!< Request received for measurement */
-   CmLteTimingInfo    startTime;     /*!< Time at which measurement started */
-   RgInfPrbCfm        avgPrbQciUl;   /*!< Used to store result from MAC */
-   Bool               cfmRcvd;       /*!< Used to check if confirm received from MAC */
-                                     /*!< For average PRB usage in UL */
-   uint16_t                sfnCycle;      /*<! Count of Num of SFN wraps */  
-   uint32_t                dlTotalBw;     /*!< Total DL Bw between meas Req and Meas Send Req */
-   uint32_t                ulTotalBw;     /*!< Total UL Bw between meas Req and Meas Send Req */
-};
-
-typedef struct rgSchTbCnt
-{
-   uint32_t    tbTransDlTotalCnt;  /*!< Total DL TB count */
-   uint32_t    tbTransDlFaulty;    /*!< Total DL Faulty TB count */ 
-   uint32_t    tbTransUlTotalCnt;  /*!< Total UL TB count */
-   uint32_t    tbTransUlFaulty;    /*!< Total UL Faulty TB count */
-}RgSchTbCnt;   
-#endif /* LTE_L2_MEAS */
-/** @brief
- *  Control block to store measurement details per QCI.
- *  */
-struct rgSchQciCb
-{
-   uint8_t     qci;              /*!< QCI of the Logical Channel */
-   uint32_t    dlPrbCount;       /*!< Cumulative Prb Count for this QCI */
-   uint32_t    dlUeCount;        /*!<  Cumulative number of active UE's */
-   uint32_t    dlTotal_UeCount;  /*!< Cummulative count added for every sampling
-                              Occasion*/
-   uint32_t    ulUeCount;        /*!<  Cumulative number of active UE's */
-   uint32_t    ulTotal_UeCount;  /*!< Cummulative count added for every sampling
-                              Occasion*/
-};
-struct rgSchLcgCb
-{
-   /* Right now not keeping associated logical channels, searching for
-    * associated channels needed only during config */
-   uint8_t    lcgId;  /*!< Group ID */
-   Void  *sch;
-#ifdef LTE_L2_MEAS
-   uint8_t               numLch;                    /*!< Number fo LC's for this LCG*/
-   RgSchUlLcCb      *lcArray[RGSCH_MAX_LC_PER_UE]; /*!< Dedicated Uplink logical
-                                                 channel per LCG */
-#endif /* LTE_L2_MEAS */
-   /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   uint8_t    lcCnt;
-   uint8_t    lcId[RGR_MAX_SPS_LC];
-#endif
-};
-
-/**
-  * @brief
-  * Uplink Dedicated Logical channel control block.
-  */
-struct rgSchUlLcCb
-{
-   Bool          isValid; /*!< If this struct holds valid values*/
-   uint8_t            lcId;    /*!< Logical channel ID */
-   uint8_t            lcgArrIdx;    /*!< Index of this LC in the LCG Array*/
-   RgSchLcgCb    *lcg;    /*!< Logical channel group */
-   RgrLchQosCfg  ulQos;   /*!< UL Qos parameters */
-   /* After Merging from 2.1 to 2.2 */
-   RgSchQciCb   *qciCb; /* QCI Details for this LC */
-};
-
-/**
-  * @brief
-  * Ul Grnt Info for Ho/Po UE in RAR.
-  */
-typedef struct rgSchHoPoUeGrnt
-{
-   uint8_t      rapId;         /*!< dedicated rapId */
-   uint8_t      hop;           /*!< Hopping flag, set to 0 in this version */
-   uint8_t      rbStart;       /*!< Start Resource block of allocation */
-   uint8_t      numRb;         /*!< Number of resource blocks allocated */
-   uint8_t      tpc;           /*!< TPC command for the uplink grant */
-   uint8_t      iMcsCrnt;      /*!< Current MCS index of the grant */
-   TknUInt16  ta;            /*!< Timing Adjustment */
-   CmLList raRspLnk;      /*!< To link UE to RaRsp cont free list */
-   /* Added support for SPS*/
-   uint16_t     datSz;         /*!< Length of the Data */
-   Bool    cqiReqBit;     /*!< Aperiodic CQI is requested or not */
-} RgSchHoPoUeGrnt;
-
-/**
-  * @brief
-  * Uplink SPS scheduling information per UE
-  */
-typedef struct  rgSchCmnSpsUlUeSchdInfo
-{
-   uint32_t             allocBwMask[RGSCH_SPS_ULBW_MASK_LEN]; /*!< Bitmask indicating the allocation info 
-                                      for the UE. Bit set at position 'x'
-                                      indicates subband 'x' is allocated */
-   uint8_t              scaledCqi;    /*!< Assumed value of CQI for transmission */
-   uint16_t             actvSfLstIdx; /*!< Index into cell-wide UL SPS sub-frame 
-                                      table during activation */
-   CmLteTimingInfo ulSpsActvOcc; /*!< Time at which SPS is activated/reactivated
-                                      for the UE */
-   CmLteTimingInfo crntUlSpsOcc;/*!< Key into the list of UL SPS active 
-                                      UEs: next UL SPS ocassion */
-   RgSchUlAlloc    allocInfo;    /*!< Allocation information of the UE */
-   RgSchUlAlloc    *crntAlloc;   /*!< Allocation pointer in the subframe */
-   RgSchUlSf       *crntAllocSf;          /*!< sf in which crntAlloc was made */
-} RgSchCmnSpsUlUeSchdInfo;
-
-/**
-  * @brief
-  * Uplink information for SPS per UE
-  */
-typedef struct rgSchCmnUlUeSpsInfo
-{
-   CmLList                 actvUeLstEnt; /*!< Linked List entry for UL SPS
-                                              active UE list*/
-   CmLList                 pndngUeLstEnt;/*!< Linked List entry for UE list with
-                                              pending SPS action:
-                                              activation/reactivation/release */
-   Bool                    isUlSpsActv;   /*!< Indicates if UE's UL SPS is 
-                                              active currently */
-   uint8_t                      measGapMask[RGSCH_SPS_MG_MASK_LEN];  /*!< Indicates the UL sub-frames with 
-                                               ongoing measurement gap. Mask is
-                                               of size (80/8) */
-   uint8_t                      state;         /*!< State of the UE: can be one of
-                                               ACTV_REACTV_SENT (pdcch for 
-                                               (re)activation sent),REL_SENT, 
-                                               ULSPS_ACTV */
-   Bool                    pdcchToRetx;   /*!< set to TRUE if DTX occurs at the
-                                               (re)activated SPS occasion */
-   RgSchCmnSpsUlUeSchdInfo ulSpsSchdInfo; /*!< Scheduled info for UL SPS 
-                                               active UE */
-
-   uint8_t                      spsOccIdx;         /*!< N value for nxt sps occasion */
-
-   uint32_t                     packetSize;       /*!< Packet size for SPS - SPS allocation*/
-   uint32_t                     spsSduSize;       /*!< SDU Size recvd on SPS Occasion*/
-   uint32_t                     spsGrantSize;     /*!< Grant size for SPS allocation */
-
-   CmLteTimingInfo         lastSpsDatRecvdTime; /*!< timing info on which the  
-                                                     SPS data is recieved*/
-   CmLListCp               *spsList; /*!< Pointer to the SPS list of which
-                                      UE is a part */
-   uint32_t                     actPdcchCrcFailCount; /*!< Num of consecutive CRC fails for 
-                                                   SPS Activation PDCCH */
-   uint32_t                     crcFailCntSpsOcc;     /*!< Consecutive CRC fail for SPS Occasion
-                                         TX */
-   uint32_t                     relPdcchSntCnt;     /*!< Num ber Rel PDCCH sent to UE*/
-#ifdef RGSCH_SPS_STATS
-   uint32_t                     crcFailStats;
-   uint32_t                     crcPassStats;
-   uint32_t                     totalBsr;
-   uint32_t                     numBsrRpt;
-#endif
-} RgSchCmnUlUeSpsInfo;
-
-
-
-/**
-  * @brief
-  * Uplink control block for UE specific information.
-  */
-typedef struct rgSchUeUlCb
-{
-   RgSchUlLcCb      lcCb[RGSCH_MAX_LC_PER_UE]; /*!< Dedicated Uplink logical channel
-                                              information */
-   RgSchLcgCb       lcgArr[RGSCH_MAX_LCG_PER_UE]; /*!< Logical channel groups */
-   uint8_t               ulInactvMask; /*!< Bitmask indicating if UE is inactive for UL scheduling */
-   CmLList          ulInactvLnk;  /*!< Link to the inactive UE List for UL */
-   RgSchHoPoUeGrnt  rarGrnt;      /*!< UE's RAR grant Information */
-   RgrUeTxAntSelCfg ulTxAntSel;/*!< UL Transmit antenna selection Cfg Info */
-#ifdef RGR_V1
-   /*  Added periodic BSR timer */
-   RgrUeBsrTmrCfg   bsrTmrCfg;    /*!< BSR timers configuraiton for the UE */
-#endif
-   /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   RgrUeSpsUlCfg    ulSpsCfg;       /*!< UL SPS configuration information */
-   uint8_t               explicitRelCnt; /*!< Number of subframes after sending
-                                         release to consider it successful */
-   uint16_t              spsPrdcty;      /*!< Shall store the SPS periodicity of the
-                                         UE. Needed to round-off in case of
-                                         TDD */
-   CmLteTimingInfo   relPdcchSchdTime;     /*!< This field holds the scheduled time 
-                                          of SPS rel PDCCH*/
-#endif
-#ifdef LTE_L2_MEAS
-   uint32_t               nPrb;          /*!< Number of resource block allocated */
-#endif
-#ifdef TFU_UPGRADE
-   uint8_t                betaHqOffst; /*!< Delta HARQ offset used in the case where HARQ
-                             feedback is multiplexed with PUSCH data.  */
-   uint8_t                betaCqiOffst;/*!< Beta offset for CQI[0-15]. Given by RRC*/
-   uint8_t                betaRiOffst;/*!Beta offset for RI[0-15]. Given by RRC */
-#endif
-   uint32_t               cqiRiSz;   /*!<Size of Periodic/Aperiodic CQI or RI depending
-                                     on the occassion */
-   uint32_t               betaOffstVal; /*!< beta offset of CQI or RI depending 
-                                     on the occassion*/
-   uint32_t               maxBytesPerUePerTti;         /*!< Maximum bytes that can be allocated 
-                                       *   in 1 scheduling instance per UE */
-   uint32_t               minReqBytes;     /*!< The buffer amount of lcg0 */
-   uint32_t               totalBsr;        /*!< Total BSR as reported by UE (in bytes) */
-   uint32_t               nonLcg0Bs;       /*!< Total BSR for LCG1/LCG2/LCG3 */
-   uint32_t               nonGbrLcgBs;     /*!< Total BSR as reported by UE (in bytes) for non-GBR LCG's*/
-   uint32_t               effBsr;          /*!< BSR yet to be satisfied in allocations */
-
-   uint32_t               cfgdAmbr;        /*!< Byte rate of UE Ambr per Refresh Cycle */
-   uint32_t               effAmbr;         /*!< Remaining Bytes of Byte rate available in a refresh Cycle */
-   CmLteTimingInfo   ulTransTime;     /*!< Timing info of the latest reception of 
-                                     any UL data/signal from UE */
-#ifdef LTEMAC_SPS
-   RgSchCmnUlUeSpsInfo ulSpsInfo;     /*!< UL SPS information for UE */
-#endif
-   Bool              isUlCaEnabled;   /*!< If TRUE UL CA is enabled for the UE */
-   CmLteCellId       ctrlOnServCellIdx[RGSCH_ULCTRL_RECP_DIST]; /*!< 
-                                 * Serving Cell Idx on which UL CTRL INFO is to
-                                 * be received of all configured 
-                                 * serving cell */
-
-  Bool               useExtBSRSizes; /*!< If TRUE used R10 Extended BSR Size Table*/
-} RgSchUeUlCb;
-
-/**
-  * @brief
-  * Downlink CCCH Tx/Retx schedule information.
-  */
-typedef struct rgSchCcchSchdInfo
-{
-   uint32_t     totBytes;       /*!< Total bytes allocated */
-   CmLList retxLnk;        /*!< To link hqP to retx Queues */
-   uint8_t      rvIdx;          /*!< Rv Index */
-} RgSchCcchSchdInfo;
-
-/**
-  * @brief
-  * Downlink Grant Information per UE.
-  */
-typedef struct rgSchDlGrnt
-{
-   uint16_t     schdTime;       /*!< Time at which Harq proc has been scheduled */
-   uint8_t      rbStrt;         /*!< Starting RB of the allocation */
-   uint8_t      numRb;          /*!< Number of RBs allocated */
-   uint8_t      iMcs;           /*!< Index to the MCS */
-   uint8_t      rv;             /*!< RV for HARQ (re)transmission */
-   uint8_t      rvIdx;          /*!< RVIdx for HARQ(re)transmission */
-#ifdef RG_5GTF   /* ToDo:: Anoop need to check for other fields required*/
-   uint8_t      vrbgStart;
-   uint8_t      numVrbg;
-   uint16_t     rbAssign;
-   uint8_t      xPDSCHRange;
-   uint8_t      SCID;
-   TfuDciFormat dciFormat;  /*!< DCI format for the allocation */
-       /* ToDo */
-#endif
-} RgSchDlGrnt;
-
-/**
-  * @brief
-  * Logical channel data as being scheduled by the scheduler.
-  */
-typedef struct rgSchLchAllocInfo
-{
-   uint8_t       lcId;       /*!< Logical channel ID */
-   uint32_t      schdData;   /*!< Scheduled logical channel data */
-} RgSchLchAllocInfo;
-
-/** @brief This structure is part of the downlink HARQ process, this structure
- * encapsulates all the DRX related information.
- */
-typedef struct rgSchDrxDlHqProcCb
-{
-   CmLList harqRTTEnt;   /*!< Entry into the HARQ RTT timer list */
-   CmLList harqRetxEnt;   /*!< Entry into the harqRetxQ */
-
-   uint16_t     rttIndx;    /*!< Current Index into HARQ RTT Q */
-   uint16_t     reTxIndx;   /*!< Current Index into Re-Tx Q */
-   uint8_t      retxTmrReduction; /*!< Due to platform specific timing diff between
-                                 DL HARQ processing and DL Scheduling, the 
-                                 drx retx timer may start at a later time, than
-                                 actual. That delay in starting the timer is 
-                                 stored in this */   
-                                     
-
-} RgSchDrxDlHqProcCb;
-
-/** @enum TfuDciFormat
- * This Enum has values for Harq Proc TB state.
- */
-typedef enum
-{
-   HQ_TB_ACKED=0,
-   HQ_TB_NACKED,
-   HQ_TB_WAITING
-}RgSchHqTbState;
-/**
-  * @brief
-  * Downlink TB information per DL HqProc.
-  */
-struct rgSchDlHqTbCb
-{
-   uint8_t                tbIdx;          /*!< Index of this TB (0/1). Initialized
-                                          at HqEnt allocation */
-   uint32_t               tbSz;           /*!< TB size scheduled for this TB */
-   uint8_t                txCntr;         /*!< Transmission counter */
-   uint8_t                ndi;            /*!< New Data Indicator 0 or 1*/
-   TknUInt8             schdTa;      /*!< TA scheduled to be sent */
-   /* CR timer implementation changes*/
-   uint8_t                contResCe;
-   uint8_t                numLch;         /*!< No. of DL Logical Channels scheduled
-                                          for this TB */
-   CmLteTimingInfo   timingInfo;     /*!< This field holds the scheduled time */
-   RgSchLchAllocInfo lchSchdDataArr[RGSCH_MAX_NUM_DED_LC];
-   RgSchLchAllocInfo *lchSchdData;
-   RgSchCcchSchdInfo ccchSchdInfo;/*!< CCCH TX/RETX scheduler Info */
-   uint8_t                fbkRepCntr;     /*!< Counter to ANRep Feedback */
-   uint8_t                fbkRecpRepCntr; /*!< Counter to ANRep Feedback */
-   CmLList           anRepLnk[6];    /*!< Links for ANRep we need
-                                          these many links to
-                                          simultaneously hold the
-                                          hqProcs in multiple
-                                          subframes. */
-   RgSchDlSf         *crntSubfrm[6]; /*!< Pointer to subframes */
-   uint8_t          ackCount;   /*!< Counter for ACKs */
-   uint8_t          isAckNackDtx; /* ACK or NACK or DTX*/
-   uint8_t          nackCount;  /* NACK Counter */
-   uint8_t          dtxCount;   /* DTX Counter */
-   RgSchDlGrnt       dlGrnt;      /*!< Scheduler grant */
-   Bool              taSnt;       /*!< TA sent or not */
-#ifdef LTE_TDD
-   CmLteTimingInfo   fdbkTime;    /*!< Expected feedback time */
-   uint8_t                m;           /*!< Subframe Order Index within the subframe
-                                       downlink association index K */
-   RgSchTddSfType    sfType;      /*!< Identifies the first Tx subframe type */ 
-   uint8_t                pucchFdbkIdx;/*!< DL subframe idx for which fdbk is expected */
-   uint8_t                dai;          /*!< DAI associated with this TB.
-                                          THis is used for F1BCS resource calulcation */
-#ifdef XEON_TDD_SPCL
-   uint8_t                initTxNumRbs;/*!< Number of Rbs Allocated in First TX */
-#endif
-
-#endif
-   /* 3.1 MIMO */
-   uint8_t                numLyrs;     /*!< Number of layers using which this TB is
-                                       being transmitted */
-   RgSchHqTbState    state;       /*!< State of this Trasport Block */
-   RgSchDlHqProcCb   *hqP;        /*!< Reference to the TB container */
-   /* Freeing up the HARQ proc blocked for
-    * indefinite time in case of Retx */
-   uint8_t                cntrRetxAllocFail; /*!< Number of times allocation failed
-                                            for the retransmission of this TB */
-#ifdef LTE_ADV
-   TknUInt8             schdSCellActCe;   /* !< SCell Act values and whether
-                                          scheduled or not */
-#endif
-  uint32_t                firstSchedTime; /*!< First time when the TB was scheduled */
-  uint8_t                 minRlcReordrTmr; /*!< Min RLC reorder timer of all LCs
-                                        scheduled in this hqP*/
-};
-
-
-/**
-  * @brief
-  * Downlink HARQ process information per UE.
-  */
-struct rgSchDlHqProcCb
-{
-   CmLList           lnk;         /*!< To link with other HARQ processes */
-   RgSchDlHqEnt      *hqE;        /*!< HARQ entity */
-#ifdef LTE_TDD
-   uint8_t                txCntr;      /*!< Transmission counter */
-#endif
-   uint8_t                procId;      /*!< Harq process ID */
-   Void              *sch;        /*!< Cmn sched Hq control block */
-   /* 3.1 MIMO */
-   RgSchDlHqTbCb     tbInfo[2];   /*!< TB related information for 1+1(if any) TBs */
-   RgSchDrxDlHqProcCb   drxCb;   /*!< DRX control block */
-#ifdef TFU_UPGRADE
-   uint8_t                tbCnt;     /*!< Count of the number TBs being sent with a
-                                  Reception Requesti */
-#endif
-#ifdef LTEMAC_SPS
-   TknUInt16       spsN1PucchRes;   /*!< N1Pucch resource for HARQ process at SPS
-                                      ocassions: present only when HqP contains
-                                      Data without PDCCH */
-#endif
-   /* Fix: syed having a hqP added to Lists for RB assignment rather than
-    * a UE, as adding UE was limiting handling some scenarios */ 
-   CmLList reqLnk;          /*!< Link for list of UEs/RACBs to be scheduled */
-   CmLList schdLstLnk;      /*!< Link for list of scheduled/non-scheduled
-                                   allocations: used by RB allocation module*/
-   Bool hasDcch;            /*!< Set to TRUE if DCCH channel is present in 
-                                 scheduling grant over this hqProc */
-   Bool cwSwpEnabled;         /*!< Set if CW swap enabled */
-/*f1b_Sprint3*/
-   uint8_t        tpc;           /*!< TPC command to be used for Secondary cell
-                              N1PUCCH resource Index*/
-/*f1b_Sprint3*/
-   /*CA Dev Start*/
-   CmLList     hqPSfLnk;
-   /* Shifted from TbCb to HqCb*/ 
-   RgSchPdcch        *pdcch;      /*!< Pdcch Allocated for this Hq TB */
-   RgSchDlSf         *subFrm;     /*!< Subfrm for which this TB is assgnd */
-#ifdef EMTC_ENABLE
-   Void               *emtcHqInfo;/*!< emtc specfic hq info */
-#endif
-   uint8_t                dlDai;        /*!< DL DAI assosciated with this harq proc */
-   uint8_t                ulDai;        /*!< UL DAI assosciated with this harq proc */
-#ifdef BRDCM
-   /*CA Dev End*/
-   uint32_t               isPuschFdbk;
-#endif
-   Void *         laaCb;
-   CmLListCp   *hqPLst;    /*!< pointer to either inUse of free list of hqE */
-   TfuDciFormat prevDciFormat; /*!< Previous alloction DCI format used for ERR Ind prcessing */
-
-   /* LAA DBG Only */
-   uint32_t tbSizeAtEstimate[2];
-   uint32_t tbSizeAtFnlz[2];
-   uint32_t tbSizeOfMvdTb[2];
-   uint32_t itbsAtEstimate[2];
-   uint32_t prbAtEstimate;
-};
-
-/**
-  * @brief
-  * Downlink HARQ entity information per UE.
-  */
-struct rgSchDlHqEnt
-{
-   RgSchRaCb    *raCb;     /*!< Parent RACB when attached to RACB */
-   RgSchUeCb    *ue;       /*!< Parent UE */
-   CmLListCp    free;      /*!< List of free HARQ processes */
-   CmLListCp    inUse;     /*!< List of in-use HARQ processes */
-   uint8_t           maxHqTx;   /*!< Maximum number of harq transmissions */
-   RgSchDlHqProcCb *msg4Proc; /*!< Points to MSG4 HARQ process */
-#ifdef RGR_V1
-   /* CR timer changes*/
-   RgSchDlHqProcCb *ccchSduProc; /*!< Points to CCCH SDU HARQ process
-              to identify feedback for CCCH SDU
-              transmissions done without cont res CE*/
-#endif
-   uint8_t              numHqPrcs; /*!< Number of HARQ Processes */
-#ifdef LTE_TDD
-   RgSchDlHqProcCb *procs; /*!< Downlink harq processes */
-#else
-   RgSchDlHqProcCb procs[RGSCH_NUM_DL_HQ_PROC]; /*!< Downlink harq processes */
-#endif
-   Void         *sch;      /*!< Scheduler specific Info */
-   /* CA Dev Start */
-   RgSchCellCb  *cell;     /*Contains the pointer to coresponding CellCb*/
-   /* CA Dev End*/
-};
-
-
-/**
-  * @enum rgSchTaState
-  * Enumeration of time alignment states.
-  */
-typedef enum rgSchTaState
-{
-   RGSCH_TA_IDLE = 0,      /*!< TA is to be scheduled */
-   RGSCH_TA_TOBE_SCHEDULED,/*!< TA is to be scheduled */
-   RGSCH_TA_SCHEDULED      /*!< TA is scheduled */
-} RgSchTaState;
-
-/**
-  * @brief
-  * Downlink Time alignment information per UE.
-  */
-typedef struct rgSchUeDlTaCb
-{
-  uint16_t       cfgTaTmr; /*!< Configured TA timer value */
-  uint8_t        ta;       /*!< TA value for UE */
-  uint8_t        numRemSf; /*!< Number of subframes left to apply TA */
-  RgSchTaState state;    /*!< Indicates HARQ state for TA */
-  /*rg003.301[ccpu00121813] ADD added new var*/
-  Bool     outStndngTa;  /*!< if new TA is rcvd before it gets
-                               applied at UE*/
-  uint8_t       outStndngTaval; /*!< outstanding TA val */
-} RgSchUeDlTaCb;
-
-/**
-  * @brief
-  * Downlink Dedicated Logical channel control block.
-  */
-struct rgSchDlLcCb
-{
-   uint8_t            lcId;    /*!< Logical channel ID */
-   uint32_t           bo;
-   RgSchUeCb     *ue;     /* UE to which this LC belongs to */
-   /* Not validating DlQos for DCCH */
-   CmLteLcType   lcType;   /* Logical channel Type*/
-   RgSchQciCb    *qciCb;  /*!< Pointer to ACI Control Block */
-   /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   RgrLchSpsCfg   dlLcSpsCfg;  /*!< SPS configuration for DL logical channel */
-#endif
-#ifdef CCPU_OPT
-   uint16_t           estRlcHdrSz;  /*!< Estimated RLC header size */
-   Bool          staPduPrsnt;  /*!< Indicate the status pdu present or not*/
-#endif
-   uint32_t           staPduBo;     /*!< Indicate the Status PDU BO.
-                                    This amount is already included in original BO */
-   Void          *sch;        /*!< Holds Scheduler Info pointer */
-   uint32_t           prbsReqd;    /*!< PRBs reqd in DL for each UE in MUE scenario*/
-   CmLList       schdLnk;     /*!< Link to ueCb inserted in toBeSchdList in DL*/
-   uint32_t           oldestSduArrTime; /*!< oldest SDU arrival time for this LC */
-   CmLList       lcFlowCntrlEnt; /*!<link to Lc in flow Cntrl lst */
-   CmLList       lcPdbFbkLnk;  /*!<link to LC in LC flow contrl monitoring lst */
-   Bool          setMaxUlPrio; /*!<set if Poll bit is sent in the PDU */
-   Bool          setMaxDlPrio; /*!<set if there is a RLC status PDU in DL */
-   Void*         laaCb;
-
-};
-/*f1b_Sprint3*/
-
-typedef struct rgSchN1PucchResCb
-{
-   uint16_t n1PucchIdx;  /* !< N1 resource */ 
-   CmLList n1Lnk;  /* !< Link for adding into dlsf N1 used list */
-}RgSchN1PucchResCb;
-typedef struct rgSchN3PucchResCb
-{
-   uint16_t n3PucchIdx;  /* !< N3 resource */ 
-   CmLList n3Lnk;   /* !< Link for adding into dlsf N3 used list */
-   uint8_t sCellIdx;      /* !< Allocated by which scell */ 
-}RgSchN3PucchResCb;
-
-typedef struct rgSchSCellN3ResCb
-{
-  uint8_t                 antP0N3ResCount; /* !< Number of N3 res for antenna port 0*/
-  uint8_t                 antP1N3ResCount;  /* !< Number of N3 res for antenna port 0*/
-  RgSchN3PucchResCb  antP0N3Res[RG_SCH_MAX_NUM_N3PUCCH_PER_UE]; /* !< Antenna Port 0 N3 resources*/
-  RgSchN3PucchResCb  antP1N3Res[RG_SCH_MAX_NUM_N3PUCCH_PER_UE]; /* !< Antenna Port 1 N3 resources*/
-}RgSchSCellN3ResCb;
-
-typedef struct rgSchSCellN1ResCb
-{
-  uint8_t                 cw1N1ResCount; /* !< Number of N1 res for CW 1*/
-  uint8_t                 cw2N1ResCount;  /* !< Number of N1 res for CW 2*/
-  RgSchN1PucchResCb  cw1N1Res[RG_SCH_MAX_NUM_N1PUCCH_PER_UE]; /* !< CW1 N1 resources*/
-  RgSchN1PucchResCb  cw2N1Res[RG_SCH_MAX_NUM_N1PUCCH_PER_UE];  /* !< CW2 N1 resources*/
-}RgSchSCellN1ResCb;
-/*CA Dev Start*/
-#ifdef LTE_ADV
-typedef struct rgSchN3PucchRes
-{
-   uint16_t n3PucchIdx;  /* !< N3 resource */
-   uint8_t  tpcIdx;
-}RgSchN3PucchRes;
-#endif
-typedef struct rgSchDlHqInfo
-{
-/*f1b_Sprint3*/
-#ifdef LTE_TDD
-   uint8_t                     numOfCells; /*!<This will be used to store number of unique cells in
-                                        this subframe*/
-   Bool                   isSCellPdschPres; /*!< Flag to indicate whether any PDSCH transmission
-                                             present in secondary cell. Used for CSI/HARQ collision
-                                              */
-#endif
-   Bool                   isPuschHarqRecpPres;/*!< Flag to indicate pusch recp req is pres or not */
-   RgrSchFrmt1b3TypEnum   uciFrmtTyp; /*!< Store value of format1b or format3.
-                                       */
-   uint8_t                     totalTbCnt; /*!<  This will be used to store total number of TBs 
-                                        across all harqProcs.It will be used to identify 
-                                        PUCCH format type to be used in this SF*/
-   CmLList                dlSfUeLnk; /*!< list entry into dlsf->ueLst */
-   Void *                laaCb;
-   CmLListCp              hqPLst;    /*!< This is a list of hq proc per DL  
-                                        SF which are scheduled in that SF.
-                                        The number of harq procs awaiting 
-                                        feedback for the same subframe depends on 
-                                        mode TDD or FDD and max number of Carriers 
-                                        that can be aggregated */
-#ifdef LTE_ADV
-  RgSchN3PucchRes       n3ScellPucch;
-#endif
-}RgSchDlHqInfo;
-
-/*CA Dev End*/
-/** @brief This structure contains the Measurement gap configuration for an UE.
- */
-typedef struct rgUeMeasGapCfg
-{
-   Bool isMesGapEnabled;    /*!< Is Measuremnet gap enabled or disabled */
-   uint8_t   gapPrd;             /*!< Gap period 40ms/80ms */
-   uint8_t   gapOffst;           /*!< Gap offset - Vaue is 0 to 1*/
-} RgUeMeasGapCfg;
-
-/**
-  @brief Measurement Gap related information per UE. */
-typedef struct rgSchUeMeasGapCb
-{
-   Bool              isMesGapEnabled;/*!< TRUE if Measurement gap is enabled for this UE */
-   uint8_t                isMeasuring;  /*!< Set to TRUE during measurement gap */
-   uint8_t                gapPrd;     /*!< Measurement gap period configuration for the UE */
-   uint8_t                gapOffst;   /*!< Measurement gap offset for the UE */
-   CmLList           measQLnk;   /*!< To Link to the measurement gap list */
-   CmLList           ackNakQLnk; /*!< To Link to the ACK NACK Rep list */
-   CmTimer           measGapTmr;  /*!< Timer for Measurement Gap */
-   CmTimer           measGapUlInactvTmr; /*!< UL Inactive timer for measurement gap */
-   CmTimer           measGapDlInactvTmr; /*!< DL Inactive timer for measurement gap */
-} RgSchUeMeasGapCb;
-
-/**
-  @brief ACK-NACK repetition related information per UE. */
-typedef struct rgSchUeAckNakRepCb
-{
-   Bool        isAckNackEnabled;  /*!< Is ACK/NACK Enabled*/
-   uint8_t          isAckNakRep;  /*!< Set to TRUE during ACK-NACK repetition prd */
-   uint8_t          cfgRepCnt;         /*!< Configured value for the repetition counter */
-   uint8_t          repCntr;           /*!< Actual repetition counter */
-   uint16_t         pucchRes;          /*!< PUCCH resource for repetition */
-   CmTimer     ackNakRepUlInactvTmr; /*!< UL Inactive timer for ack-nack repetition */
-   CmTimer     ackNakRepDlInactvTmr; /*!< DL Inactive timer for ack-nack repetition */
-   CmTimer     ackNakRepTmr;      /*!< Timer for ack-nack repetition */
-   CmLList     ackNakRepLnk;      /*!< ACK NACK repetition queue link */
-   CmLListCp   *prsntQ;   /*!< Pointer to the Queue that this UE is current
-                            present in. */
-} RgSchUeAckNakRepCb;
-
-/**
-  * @brief
-  * UE's MIMO specific information.
-  */
-typedef struct rgSchUeMimoInfo
-{
-   RgrTxMode          oldTMode;     /*!< UE's Previous Transmission Mode */
-   RgrTxMode          txMode;       /*!< UE's Transmission Mode */
-   TknUInt32             doa;          /*!< DOA indicator for this UE */
-   Bool               puschFdbkVld; /*!< True if Precoding Info in PDCCH has to be
-                                         in-accordance with the latest PUSCH report */
-   TfuDlCqiPuschInfo  puschPmiInfo; /*!< PUSCH report details for explicit PMI
-                                       * information to PHY during a PDSCH */
-   RgrCodeBookRstCfg  cdbkSbstRstrctn; /*!< Codebook subset restriction defined as per
-                                       * 36.331 section 6.3.2. As of now, this info
-                                       * is not processed by MAC. SCH shall use the
-                                       * PMI reported by UE unconditionally.*/
-#ifdef DL_LA
-   S32                txModUpChgFactor; /*!< tx mode chnage factor for step up*/
-   S32                txModDownChgFactor; /*!< tx mode chnage factor for step
-                                            Down*/
-#endif 
-}RgSchUeMimoInfo;
-
-/* Added changes of TFU_UPGRADE */
-#ifdef TFU_UPGRADE
-
-/** @brief This structure that stores the length of Bits that
-*     will be received over PUSCH for Aperiodic Mode 3-1.
-*/
-typedef struct rgSchCqiRawPuschMode31
-{
-   uint8_t                            wideBCqiCw0;    /*!< Length of Wideband CQI Codeword 0 */
-   uint8_t                            totLenSbDiffCqiCw0;    /*!< Length of SubBand Differential CQI Codeword 0 */
-   uint8_t                            r1WideBCqiCw1;    /*!< Length of Wideband CQI Codeword 1 for Rank =1*/
-   uint8_t                            r1TotLenSbDiffCqiCw1;    /*!< Length of SubBand Differential CQI Codeword 1 for Rank = 1*/
-   uint8_t                            rg1WideBCqiCw1;    /*!< Length of Wideband CQI Codeword 1 for Rank > 1*/
-   uint8_t                            rg1TotLenSbDiffCqiCw1;    /*!< Length of SubBand Differential CQI Codeword 1 for Rank > 1*/
-   uint8_t                            r1PmiBitLen;   /*!< Length of PMI Bits for Rank = 1*/
-   uint8_t                            rg1PmiBitLen;   /*!< Length of PMI Bits for Rank > 1*/
-} RgSchCqiRawPuschMode31;
-
-/** @brief This structure that stores the length of Bits that
-*     will be received over PUSCH for Aperiodic Mode 3-0.
-*/
-typedef struct rgSchCqiRawPuschMode30
-{
-   uint8_t                     wideBCqiCw;    /*!< Length of Wideband CQI */
-   uint8_t                     totLenSbDiffCqi;    /*!< Length of SubBand Differential CQI */
-} RgSchCqiRawPuschMode30;
-
-/** @brief This structure that stores the length of Bits that
-*     will be received over PUSCH for Aperiodic Mode 2-2.
-*/
-typedef struct rgSchCqiRawPuschMode22
-{
-   uint8_t                            wideBCqiCw0;    /*!< Length of Wideband CQI Codeword 0 */
-   uint8_t                            sBDiffCqiCw0;    /*!< Length of SubBand Differential CQI Codeword 0 */
-   uint8_t                            r1WideBCqiCw1;    /*!< Length of Wideband CQI Codeword 1  for Rank =1 */
-   uint8_t                            r1SbDiffCqiCw1;    /*!< Length of SubBand Differential CQI Codeword 1 for Rank =1*/
-   uint8_t                            rg1WideBCqiCw1;    /*!< Length of Wideband CQI Codeword 1  for Rank > 1*/
-   uint8_t                            rg1SbDiffCqiCw1;    /*!< Length of SubBand Differential CQI Codeword 1 for Rank >1*/
-   uint8_t                           posOfM;   /*!< Position of M selected SubBands */
-   uint8_t                           r1PmiBitLen;   /*!< Length of PMI Bits for Rank =1*/
-   uint8_t                           rg1PmiBitLen;   /*!< Length of PMI Bits for Rank >1*/
-} RgSchCqiRawPuschMode22;
-
-/** @brief This structure that stores the length of Bits that
-*     will be received over PUSCH for Aperiodic Mode 2-0.
-*/
-typedef struct rgSchCqiRawPuschMode20
-{
-   uint8_t                     wideBCqiCw;    /*!< Length of Wideband CQI */
-   uint8_t                     subBandDiffCqi;    /*!< Length of SubBand Differential CQI */
-   uint8_t                     posOfM;   /*!< Position of M selected SubBands */
-} RgSchCqiRawPuschMode20;
-
-/** @brief This structure that stores the length of Bits that
-*     will be received over PUSCH for Aperiodic Mode 1-2.
-*/
-typedef struct rgSchCqiRawPuschMode12
-{
-   uint8_t                     wideBCqiCw0;    /*!< Length of Wideband CQI Codeword 0 */
-   uint8_t                     r1WideBCqiCw1;    /*!< Length of Wideband CQI Codeword 1 for Rank =1*/
-   uint8_t                     rg1WideBCqiCw1;    /*!< Length of Wideband CQI Codeword for Rank > 1 */
-   uint8_t                     r1TotalPmiBitLen;   /*!< Aggregate length of PMI Bits for Rank =1 */
-   uint8_t                     rg1TotalPmiBitLen;  /*!< Aggregate length of PMI Bits for Rank > 1 */
-} RgSchCqiRawPuschMode12;
-
-
-/** @brief This structure that stores the length of Bits that
-*     will be received over PUSCH.
-*/
-typedef struct rgSchDlCqiRawPusch
-{
-   TfuDlCqiPuschMode      mode;          /*!< PUSCH CQI mode */
-   TknUInt8                  ri;            /*!< Rank Indicator for TM 3,4 */
-   union
-   {
-      RgSchCqiRawPuschMode12   mode12Info;    /*!< Mode 1-2 information */
-      RgSchCqiRawPuschMode20   mode20Info;    /*!< Mode 2-0 information */
-      RgSchCqiRawPuschMode22   mode22Info;    /*!< Mode 2-2 information */
-      RgSchCqiRawPuschMode30   mode30Info;    /*!< Mode 3-0 information */
-      RgSchCqiRawPuschMode31   mode31Info;    /*!< Mode 3-1 information */
-   }u;
-} RgSchDlCqiRawPusch;
-
-typedef struct rgSchPuschRawCqiInfoPerCell
-{
-   uint8_t                   sCellIdx;        /*!< Serving cell idx of the cell for
-                                              this cqi info*/
-   RgSchDlCqiRawPusch   puschRawCqiInfo; /*!< Raw CQI Bit Width for  PUSCH */
-} RgSchPuschRawCqiInfoPerCell;
-
-typedef struct rgSchPuschRawCqiInfoForSCells 
-{
-   uint8_t                          numOfCells;   /* Num of cells for which Apcqi is comming*/
-   RgSchPuschRawCqiInfoPerCell cqiBitWidth[CM_LTE_MAX_CELLS];
-} RgSchPuschRawCqiInfoForSCells;
-
-typedef struct rgSchPucchRawCqiInfoPerCell
-{
-  uint8_t sCellIdx;                          /*!< Serving cell idx of the cell for
-                                             this cqi info*/
-  TfuDlCqiPucch        pucchRawCqiInfo;  /*!< Raw CQI Bit Width for PUCCH */
-} RgSchPucchRawCqiInfoPerCell;
-
-typedef struct rgSchUeRawCqiBitWidthInfo
-{
-  TfuRecpReqType         type;          /*!< Type indicating PUCCH or PUSCH */
-  CmLteTimingInfo        recvTime;
-   union
-   {
-      RgSchPucchRawCqiInfoPerCell   pucch;
-      RgSchPuschRawCqiInfoForSCells pusch;
-   }u;
-} RgSchUeRawCqiBitWidthInfo;
-#endif
-
-
-/* CaDev start */
-#ifdef LTE_ADV
-
-/**
-  * @brief
-  * Enum for storing the different states of a Scell
-  * RG_SCH_SCELL_INACTIVE : SCell is added but not activate
-  * RG_SCH_SCELL_TOBE_ACTIVATED : SCell Activation trigger condition is met
-                                   Need to be scheduled.
-  * RG_SCH_SCELL_ACTVTN_IN_PROG : Waiting for Harq feedback for the scell activation
-  * RG_SCH_SCELL_ACTIVE         : SCell is activated succesfully
-  */
-typedef enum
-{
-   RG_SCH_SCELL_INACTIVE = 0,      /*!<SCELL Addition/Reset */
-   RG_SCH_SCELL_READY,             /*!<SCELL Ready is reaceived or SCell is deactivated */
-   RG_SCH_SCELL_TOBE_ACTIVATED,    /*!<Activation Trigger */
-   RG_SCH_SCELL_ACTVTN_IN_PROG,    /*<!Activation CE is sent */
-   RG_SCH_SCELL_TOBE_DEACTIVATED,  /*<!Deactivation Trigger */
-   RG_SCH_SCELL_DEACTVTN_IN_PROG,  /*<!Deactivation CE is sent */
-   RG_SCH_SCELL_ACTIVE             /*<!SCell is activated */
-}RgSCellStateEnum;
-
-/**
-  * @brief
-  * Enum to define the value of A for Format 1B with CS 
-  * in FDD Case and for M=1 in TDD Case.
-  */
-typedef enum 
-{
-  RG_SCH_A_VAL_2 = 2,
-  RG_SCH_A_VAL_3 = 3,
-  RG_SCH_A_VAL_4 = 4,
-  RG_SCH_A_VAL_INVALID = 5
-}RgSchAValue;
-
-#ifdef LTE_TDD
-/**
-  * @brief
-  * Enum to define the value of A for Format 1B with CS 
-  * in FDD Case and for M=1 in TDD Case.
-  */
-typedef enum 
-{
-  RG_SCH_M_VAL_1 = 1,
-  RG_SCH_M_VAL_2 = 2,
-  RG_SCH_M_VAL_3 = 3,
-  RG_SCH_M_VAL_4 = 4,
-  RG_SCH_M_VAL_INVALID = 5
-}RgSchMValue;
-#endif/*LTE_TDD*/
-#endif/*LTE_ADV*/
-
-/**
-  * @brief
-  * Downlink UE specific SCell information.
-  */
-struct rgSchUeCellInfo
-{
-   CmHashListEnt        ueLstEnt;  /*!< Hash List entity for UE List */
-   RgSchUeCb            *ue;        /*!< Pointer to UECB */
-#ifdef LTE_ADV
-   uint8_t                    sCellIdx;   /*!< Serving Cell Index  */
-   uint16_t                   sCellId;    /*!< Secondary Cell Id */
-   RgSCellStateEnum      sCellState; /* !< For holding the current state of the sec cell */
-   CmLList               sCellLnk;   /*!< Node for adding this UE in secondary cell */
-#endif
-   RgSchDlHqEnt          *hqEnt;        /*!< Downlink HARQ information for the UE */
-   RgSchDlRbAlloc        dlAllocCb;     /*!< RB Allocation Info for Ded Trans/Retrans */
-   RgSchCellCb           *cell;    /* !< Reference to sec Cell Cb */
-   Void                  *sch;         /*!< UE Specific Scheduler information */
-   RgrUeTxModeCfg       txMode;       /*!< UE transmission mode in Secondary */
-#ifdef LTE_TDD
-   RgSchTddANInfo       *anInfo;       /*!< ACK/NACK related Information */
-   uint8_t                   nextFreeANIdx; /*!< Next Available ANInfo Index */
-
-#endif
-   uint8_t                    reqForCqi;     /*!< set to True if Aperiodic CQI from UE is required */
-#ifdef TFU_UPGRADE
-   RgSchUeACqiCb         acqiCb;        /* ! < Aperiodic CQI Report Control Block*/
-   RgSchUePCqiCb         cqiCb;      /*!< Periodic CQI PMI RI Control Block */
-   TknUInt8      pA;                     /* PA value configured by RRM
-                                         ref: RRC 36.331, 6.3.2, PDSCH-Config*/
-   /* RgSchUeRawCqiBitWidthInfo  rawCqiBitW[MAX_CQI_RI_RPT_BUFF]; */
-#endif
-   uint8_t                   cqiRiWritIdx; /*!< write index to be used whenever CQI/RI reception
-                             request is being filled*/
-   uint8_t                   cqiRiReadIdx; /*!< Read index to be used whenevr CQI/RI indication 
-                             is recieved from PHY*/
-   CmTimer              deactTmr;        /*!< SCell deactivation timer */
-   CmTimer              actDelayTmr;        /*!< SCell  timer */
-
-};
-
-
-
-/* CaDev end */
-
-
-
-/**
-  * @brief
-  * Downlink control block for UE specific information.
-  */
-typedef struct rgSchUeDlCb
-{
-   RgSchUeDlTaCb taCb;         /*!< Downlink timing adjustment information for the
-UE */
-   RgSchDlLcCb   *lcCb[RGSCH_MAX_LC_PER_UE];/*!< Dedicated Downlink logical channels in
-UE */
-   RgrUeDlCqiCfg  ueDlCqiCfg;    /*!< UE DL CQI config */
-   uint8_t             dlInactvMask;  /*!< Bitmask indicating if UE is inactive for DL scheduling */
-   RgSchCqiReqField reqForCqi;   /*!< set to True if Aperiodic CQI from UE is required */
-   Bool             pCqiPrsnt;     /*!< set to True if periodic CQI from UE is expected */
-   Bool             acqiResGrntd;  /*!< Aperiodic CQI resources granted in RB Estimation */
-   CmLList        dlInactvLnk;   /*!< Link to the inactive UE List for DL */
-#ifdef LTE_TDD
-   RgrTddAckNackMode ackNackMode;   /*!< ACK/NACK Bundling/ ACK/NACK Multiplexing */
-#endif
-   /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   RgrUeSpsDlCfg  dlSpsCfg;         /*!< DL SPS configuration information */
-   Bool           isSpsHqPInUse;    /*!< Indicates if SPS HARQ procs are in use
-                                         or are to be used for SPS
-                                         transmissions */
-   RgSchPdcch      spsOccPdcch;      /*!< PDCCH information for SPS ocassion */
-#endif
-   /* CA dev Start */
-   uint8_t numHqDlSfInfo;
-#ifdef LTE_TDD
-   RgSchDlHqInfo *dlSfHqInfo;
-#else
-#ifdef RG_5GTF 
-   /* 5GTF TODO : Hard setting number of CCs to 3 */
-   RgSchDlHqInfo dlSfHqInfo[MAX_5GTF_CELL][RGSCH_NUM_DL_slotS];
-#else
-   RgSchDlHqInfo dlSfHqInfo[RGSCH_NUM_DL_slotS];
-#endif
-#endif  
-   /* Moved from rgSchCmnDlUe to Here, as this shouldn't be present per cell*/
-   uint32_t            ambrCfgd; /*!< UE's configured AMBR scaled to Refresh Cycle */ 
-   /* CA dev End */
-   /* Added to restrict max TB Bits in case of more than one CCs for a UE */
-   uint32_t            aggTbBits;        /*!< Aggregated Transport Block Bits this UE can receive per TTI*/
-   CmLteTimingInfo lstSchTime;      /*!< Last Time UE got Scheduled */
-
-} RgSchUeDlCb;
-
-
-
-#ifdef LTEMAC_HDFDD
-
-/******************************************************************************
- *                         Start of Data declarations                         *
- ******************************************************************************/
-/**
-  @brief Half Duplex subframtion information stored per ue. */
-
-typedef struct rgSchUeHdFddSfInfo
-{
-  uint16_t             sfn;                   /*!< Store the sfn for updated state
-                                              Default Value= 0xffff
-                                          */
-  uint8_t              subFrmDir;
-                                         /*!< 0x00= DFLT
-                                              0x01= DL DATA +(OPT:CNTRL INFO)
-                                              0x02= DL CNTRL
-                                              0x04= UL DATA+(OPT: CTNRL INFO)
-                                         */
-
-}RgSchUeHdFddSfInfo;
-
-/**
-  @brief Half Duplex control related information per ue. */
-
-typedef struct rgSchUeHdFddCb
-{
-   RgSchUeHdFddSfInfo    subfrm[RG_SCH_HDFDD_NUMSFINFO];
-
-}RgSchUeHdFddCb;
-#endif /* LTEMAC_HDFDD */
-
-
-/** @brief This structure is part of rgSchUeCb structure and stored DRX related
- * information for a UE.
- */
-typedef struct rgSchDrxUeCb
-{
-#ifdef LTEMAC_R9
-   TknS32 cqiMask;  /*!<If pres, only value supported is SETUP i.e 0 */
-#endif
-   Bool     srRcvd;   /*!< TRUE if SR is received from the UE. */
-   Bool     raRcvd;   /*!< TRUE if Random access request is received using a
-                        dedicated preamble for this UE. */
-   uint16_t      onDurTmrLen;   /*!< Length of onDuration Timer [1 - 200]. */
-   uint16_t      drxStartOffset;   /*!< Value of the DRX Starting Offset [0 - 2559]. */
-   S16      onDurExpDistance;   /*!< Keeps track of actual distance */
-
-   uint16_t       drxRetransTmrLen; /*!< Length of DRX Retransmission timer [1 - 33].*/
-
-   uint16_t      inactvtyTmrLen;   /*!< Length of drx-Inactivity Timer [1 - 2560]. */
-   S16      drxInactDistance;   /*!< Keeps track of actual distance */
-
-   Bool     isLongCycle;
-   uint16_t      longDrxCycle;   /*!< Value of the DRX long cycle [10 - 2560]. */
-
-   Bool     isShortCycleCfgd;   /*!< TRUE if short cycle is enabled. */
-   uint8_t       shortCycleTmrLen;   /*!< Value of DRX short cycle Timer [1-16]. */
-   uint16_t      shortDrxCycle;   /*!< Value of the DRX short cycle [2 - 640]. */
-   S16      drxShortCycleDistance;   /*!< Keeps track of actual distance */
-
-
-   CmLList  onDurationEnt;   /*!< Entry into the OnDuration List. */
-   CmLList  onDurationExpEnt;   /*!< Entry into the onDuration Expiry List. */
-   CmLList  inActvTmrEnt;   /*!< Entry into the inactivity Timer list.  */
-   CmLList  shortCycleEnt;   /*!< Entry into HARQ Retransmission list. */
-
-   S16      distance;   /*!< Keeps track of actual distance */
-
-/* The following elements track current indices into the drxQ present at the
- * cell level. These indicies help in fast deletion in case of UE Delete,
- * otherwise it might have required a linear search. */
-   uint16_t      onDurIndx;   /*!< The current index for onDuration Queue. */
-   uint16_t      onDurExpIndx;   /*!< The current index for onDuration Queue. */
-   uint16_t      drxInactvIndx;   /*!< The current index for drx-InactityTmr Queue. */
-   uint16_t      shortCycleIndx;   /*!< The current index for Short Cycle Queue. */
-
-   uint8_t       shortCycleTmr;   /*!< Counter to keep track of Short DRX Cycle. */
-   uint32_t      drxDlInactvMask;  /*!< Downlink Mask to track InActivity */
-   uint32_t      drxUlInactvMask;  /*!< Uplink Mask to track InActivity */
-   uint32_t      drxDlInactvMaskPerCell[CM_LTE_MAX_CELLS]; /*!< Downlink Mask to track InActivity per cell */
-   uint32_t      drxUlInactvMaskPerCell[CM_LTE_MAX_CELLS]; /*!< Uplink Mask to track InActivity per cell */
-} RgSchDrxUeCb;
-
-
-
-/* ccpu00117452 - MOD - Changed macro name from
-   RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
-#ifdef RGR_CQI_REPT
-typedef struct RgSchCqiInfo
-{
-   uint8_t        cqiCount;                  /* To keep track of CQI reports
-                                           received so far */
-   RgrUeCqiRept cqiRept[RGR_CQIRPTS_MAXN]; /* Array to maintain CQI reports */
-}RgSchCqiInfo;
-
-
-#endif
-
-/* LTE_ADV_FLAG_REMOVED_START */
-
-/* @brief Control block for LTE Advance Feature for UE */
-typedef struct rgSchLteAdvUeCb
-{
-   RgrLteAdvancedUeConfig   rgrLteAdvUeCfg;   /*< RGR Configuration of LTE Adv */
-   Bool                     isCCUePHigh;   /* CC user gets high power after RNTP info */
-} RgSchLteAdvFeatureUeCb;
-/* LTE_ADV_FLAG_REMOVED_END */
-
-/*<! Sizes of DCI 0/1/1A/2/2A */
-typedef struct rgSchUeDciSize {
-#ifdef EMTC_ENABLE   
-   uint8_t cmnSize[TFU_DCI_FORMAT_6_2+1]; /*!< DCI 0/1A/6-0A/6-1A final size in common Search Space and scrambled by C-RNTI */
-   uint8_t dedSize[TFU_DCI_FORMAT_6_2+1]; /*!< DCI 0/1/1A/2/2A/6-0A/6-1A final size in UE Search Space and scrambled by C-RNTI */
-#else   
-   uint8_t cmnSize[TFU_DCI_FORMAT_1A+1]; /*!< DCI 0/1A final size in common Search Space and scrambled by C-RNTI */
-   uint8_t dedSize[TFU_DCI_FORMAT_2A+1]; /*!< DCI 0/1/1A/2/2A final size in UE Search Space and scrambled by C-RNTI */
-#endif   
-   uint8_t noUlCcSize[TFU_DCI_FORMAT_2A+1]; /*!< DCI 1/1A final size in UE/Common Search Space when the cell 
-                                        is SCell and no corresponding UL CC configured */
-} RgSchUeDciSize;
-
-#ifdef RG_PFS_STATS
-typedef struct rgSchPerRefreshStats {
-   uint32_t  remGbr;
-   uint32_t  remDeltaMbr;
-   uint32_t  totByteSchd;
-   uint32_t  lcSchdOcc;
-}RgSchPerRefreshStats;
-
-typedef struct rgSchLcStats
-{
-   //Bool           isLcCntSet;
-   //uint32_t            schdOccCnt; 
-   uint32_t            ueSchdOcc[CM_LTE_MAX_CELLS];
-   uint32_t            gbrSatisfiedCnt;
-   Bool           ignoredFirstRefresh;
-   uint32_t            gbrRefreshCycleCnt;
-   uint32_t            totGbrBytesSchd;
-   uint32_t            totMbrBytesSchd;
-   uint32_t            achvdFracDataRate;
-   Bool           isRecvdBo;
-#define RGSCH_NUM_STATS_PER_REFRESH 50
-   uint32_t            startIdx;
-   uint32_t            lastIdx;
-   uint32_t            favCellCnt[CM_LTE_MAX_CELLS];
-   RgSchPerRefreshStats perRefresh[RGSCH_NUM_STATS_PER_REFRESH];
-}RgSchLcStats;
-
-typedef struct rgSchCqiStats
-{
-   uint32_t            totalCqiOcc;
-   uint32_t            avgCqi;
-}RgSchCqiStats;
-
-typedef struct rgSchPfsStats
-{
-   RgSchLcStats   lcStats[RGSCH_MAX_LC_PER_UE];
-   //uint32_t            ueSchdOcc[CM_LTE_MAX_CELLS];
-   uint32_t            refreshCycleCnt;
-   RgSchCqiStats  cqiStats[CM_LTE_MAX_CELLS];
-   Bool           isCaUe;
-}RgSchPfsStats;
-#endif
-
-#ifdef RG_5GTF
-/**
-  * @brief
-  * UE control block for UE specific information for 5gtf.
-  */
-typedef struct rgSch5gtfUeCb
-{
-   uint8_t              grpId;      // Group Id 
-   uint8_t              BeamId;     // Beam Id of UE
-   uint8_t              numCC;      // num Carrier configured for UE
-   uint8_t              mcs;        // MCS configured
-   uint8_t              maxPrb;     // Max Prb configured for UE 
-   CmLteTimingInfo nxtCqiRiOccn;   /*!< Next CQI RI Occn */
-   uint16_t             cqiRiPer;   /*!< CQI RI periodicity in SFs */
-   uint8_t              rank;       /*!< Latest Rank Report from UE */
-}RgSch5gtfUeCb;
-#endif
-
-/**
-  * @brief
-  * UE control block for UE specific information.
-  */
-struct rgSchUeCb
-{
-   uint32_t                  totalBo; /*!<Sum of DL BO across all logical channels*/
-   uint32_t                  totalPrbRequired;/*!<Num of PRB reqd to satisfy DL totlBo*/
-   /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   CmHashListEnt        spsUeLstEnt;  /*!< Hash List entity for UE List */
-   uint32_t                  spsOccasionCnt; /*!< Total number of SPS occasion cnt*/
-#endif
-#ifdef CQI_CONFBITMASK_DROP
-   uint8_t                   cqiConfBitMask;
-   uint8_t                   prevCqi; 
-#endif
-   RgSchRntiLnk         *rntiLnk;  /*!< Link to RNTI for the UE */
-   CmLteRnti            ueId;      /*!< UE identifier */
-   RgSchUeMimoInfo      mimoInfo;  /*!< MIMO related information for a UE */
-   /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   CmLteRnti            spsRnti;   /*!<  Configured value for spsRnti if SPg
-                                         is enabled for the UE */
-   /* TODO antz - put all relPdcch related info in a struct */
-   CmLteTimingInfo      relPdcchTxTime; /*!< Time at which release pdcch is
-                                             transmitted */
-#ifdef LTE_TDD
-   uint8_t                   relPdcchValm;   /*!< 'm' for relPdcch */
-#endif
-   CmLteTimingInfo relPdcchFbkTiming;/*!< Release PDCCH feedback timing for
-                                          the UE: value used by DHM */
-#endif
-   RgSchCellCb          *cell;     /*!< Cell to which this UE belongs */
-#ifdef XEON_SPECIFIC_CHANGES
-   Void                 *sch;      /*!< UE Specific Scheduler information */ 
-#endif
-   RgSchUeUlCb          ul;        /*!< UE Specific Uplink information */
-   RgSchUeDlCb          dl;        /*!< UE Specific Downlink information */
-   CmLteTimingInfo      datIndTime;/*!< Timing info of the last received Dat
-                                                              indication */
-   CmLteTimingInfo      macCeRptTime;/*!< Timing info of the last received
-                                       *  MAC CE (BSR/PHR) */
-   uint32_t                  y[RGSCH_NUM_SUB_FRAMES]; /*!< 'Y' values calculated 
-                                                     using C-RNTI and subframe
-                                                     no based on formula
-                                                     present in sec 9.1.1 of 
-                                                     3GPP 36.313*/
-
-   CmLList              taLnk;     /*!< To link to the taUeLst list */
-   CmLList              dlTaLnk;   /*!< To link to the Dl SCHED's taLst */
-   CmTimer              taTmr;       /*!< Timer for Timing Alignment */
-   RgSchUeMeasGapCb     measGapCb;     /*!< Measurement gap control block */
-   RgSchUeAckNakRepCb   ackNakRepCb;   /*!< Ack-Nack Repetition control block */
-#ifdef LTE_ADV
-   CmLList              sCellActLnk;   /*!< To link to the Dl SCHED's
-                                            ScellActivation List */
-#endif
-
-#ifdef RGR_V1
-   /* Added periodic BSR timer */
-   CmTimer              bsrTmr;        /*!< BSR timer expiry handling case */
-   /* CR timer implementation changes*/
-   CmLList         ccchSduLnk;       /*!< To link raCb to the "to be
-                                       scheduled"
-                                       list
-                                      */
-   struct
-   {
-      uint32_t          bo;            /*!< Buffer occupancy for
-                                    CCCH */
-   } dlCcchInfo;                  /*!< Params for DL
-                                    CCCH */
-#else
-
-   CmTimer              bsrTmr;        /*!< BSR timer expiry handling case */
-#endif
-/* Added changes of TFU_UPGRADE */
-#ifdef TFU_UPGRADE
-   CmLteUeCategory     ueCatEnum;
-   /* Moved to SCellInfo*/
-//   RgSchUeACqiCb     acqiCb;        /* ! < Aperiodic CQI Report Control Block*/
-   /* Periodic CQI/SRS/SR Report Feature */
-   RgSchUeSrsCb      srsCb;        /*!< SRS  Control Block*/
-   RgSchUeSrCb       srCb;         /*!< SR Control Block */
-#endif
-
-#ifdef LTEMAC_HDFDD
-   /* Half Duplex Feature */
-   Bool              hdFddEnbld;        /*!< Half Duplex FDD is configured TRUE=1/FALSE=0 */
-   RgSchUeHdFddCb    *hdFddCb;     /*!< Half Duplex Control Block */
-#endif  /* LTEMAC_HDFDD */
-/* Added changes of TFU_UPGRADE */
-   Bool               isDrxEnabled; /*!< isDrx Enabled for this UE?*/
-   RgSchDrxUeCb       *drxCb;       /*!< DRX control block. Allocated at time of
-                                        UE configuration. */
-   CmLList            ulDrxInactvLnk; /*!<List of UE's which become inactive for UL */
-   CmLList            dlDrxInactvLnk; /*!<List of UE's which become inactive for DL */
-
-   CmLList            ulDrxInactvTmrLnk; /*!<List of UEs on which inactivity
-                                             tmr has to be started for UL */
-   CmLList            dlDrxInactvTmrLnk; /*!<List of UEs on which inactivity
-                                             tmr has to be started for DL */
-#ifdef TFU_UPGRADE
-  
-   uint8_t     validTxAnt;  /*! < Tx Antenna selected after computing the CQI among two Antennas*/
-
-   uint8_t     cqiRiWritIdx; /*!< write index to be used whenever CQI/RI reception
-                             request is being filled*/
-   uint8_t     cqiRiReadIdx; /*!< Read index to be used whenevr CQI/RI indication 
-                             is recieved from PHY*/
-   RgSchUeRawCqiBitWidthInfo  rawCqiBitW[MAX_CQI_RI_RPT_BUFF];
-   uint8_t     initNumRbs; /* No. of RBs allocated for UL Data New Transmission */
-#endif
-
-/* ccpu00117452 - MOD - Changed macro name from
-   RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
-#ifdef RGR_CQI_REPT
-   RgrUeCqiReptCfg cqiReptCfgInfo; /* Holds static information such
-                                                 as configured values for DL
-                                                 Power Control*/
-#endif
-#ifdef TFU_UPGRADE
-#endif
-/* ccpu00117452 - MOD - Changed macro name from
-   RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
-#ifdef RGR_CQI_REPT
-   RgSchCqiInfo schCqiInfo; /* This structure is place holder for
-                               keeping all CQI reporting related information */
-#endif
-/* LTE_ADV_FLAG_REMOVED_START */
-   RgSchLteAdvFeatureUeCb   lteAdvUeCb; /* LTE-Advanced control block for UE */                                    
-/* LTE_ADV_FLAG_REMOVED_END */
-
-
-#ifdef LTE_L2_MEAS
-   uint8_t qciActiveLCs[LRG_MAX_QCI]; /* This structure has number of active LCs per 
-                                    Qci for this UE */ /* L2_COUNTERS */
-   uint16_t ulActiveLCs;     /* This is a bitmask - Each bit representing a QCI
-                           LSB - QCI 1 ... When bit is set, UE has an active
-                           LC for that QCI */
-   uint16_t lastDatIndLCs;     /* This is a bitmask - Each bit representing a QCI
-                            for which Data for received in UL 
-                           LSB - QCI 1 ... When bit is set, UE has an active
-                           LC for that QCI */
-#endif
-   Bool isMsg4PdcchWithCrnti; /* This is to aid rgNumMsg4PdcchWithCrnti counter which counts
-                                          num of PDCCH scrambled with CRNTI for CRNTI Based contention resolution */
-   Bool         isSrGrant;    /*!< This is to aid Counter to check number of successful SR Grants  SR_RACH_STATS*/
-   Bool           txModeTransCmplt; /*!< Flag to confirm TM Mode 
-                                         transition completion*/
-   CmTimer        txModeTransTmr;  /*!< Timer for TxMode transition Completion */
-#ifdef RGSCH_SPS_STATS
-   CmLteTimingInfo lastSpsLcBoRptTime; 
-   CmLteTimingInfo lastSpsLcSchedTime;
-   uint64_t             absTimeBo;
-   uint64_t             absTimeSched;
-#endif
-   uint8_t           refreshOffset; /*!< UE referesh offset */
-   uint8_t              csgMmbrSta;        /*!< CSG Membership status configured */
-#ifdef TENB_STATS
-   TSL2UeStatsCb   *tenbStats; /*!< UE Stats Holder */
-#endif
-   CmLListCp       flowCntrlLcLst;/*!< Dedicated Downlink logical channels in UE for Flow Control*/
-   CmLList         ueFlowCntrlEnt;/*!<UE lnk to the flow control Lst*/ 
-   
-   RgSchLcgCb      *repLcg;/*!<representative LCG of the UE in  UL */
-#ifdef XEON_SPECIFIC_CHANGES
-   CmLteTimingInfo riRecpTime; /*! To idnentify Ri wrap arround during PUSCH and
-                                 PUCCH reception filling      */
-#endif
-#ifdef LTE_ADV
-   TknUInt32          sCellDeactTmrVal; /* !< SCell Deactivation Timer Value */
-   uint8_t              f1bCsAVal; /* !< A value mentioned in table 10.12.2.1-1 of 36.213. This will tell
-                            the max number of tbs possible based on TM mode of each configured 
-                            scell. It is used only for F1B with channel selection*/
-#endif
-/*f1b_Sprint3*/
-   RgSchSCellN1ResCb     n1PucchF1bResCb; /*!< N1 resouurce Cb for F1b Channel selection */
-   RgSchSCellN3ResCb     n3PucchResCb;
-   RgrSchFrmt1b3TypEnum  uciFrmtTyp; /*!< Store value of format1bcs or format3.It
-                                       is updated from upper layer*/
-/*f1b_Sprint3*/
-   uint8_t             numSCells; /* !< number of configured SCells */
-   uint8_t             cellIdToCellIdxMap[CM_LTE_MAX_CELLS]; /*!< Mapping info of Cell Id to Cell Idx */
-
-   RgSchUeCellInfo *cellInfo[CM_LTE_MAX_CELLS]; /*!< DL Sec Cell Information */
-#ifdef TFU_UPGRADE
-   RgSchUePCqiCb   *nPCqiCb;  /*!< Pointer to Periodic Cqi CB for which next CQI is expected*/
-   RgSchUePCqiCb   *nPRiCb;   /*!< Pointer to Periodic Cqi CB for which next RI is expected*/
-#endif
-   uint8_t              remBoCnt;     /*!< count of occurence when BO is not fullfilled
-                                in a TTI */
-   uint8_t              *zeroBoCnt;   /*!< pointer of count of occurence when BO is
-                                   Zero */
-#ifdef LTE_ADV
-   Bool            isScellExplicitDeAct; /*!< TRUE when SCELL deactivation timer is Infinity/Not configured */
-   Bool            allocCmnUlPdcch;  /*!< If this flag is TRUE, allocate PDCCH from Common
-                                        search space */
-   uint8_t              simulAckNackCQIFormat3; /* !< Flag for simultanious A/N and CQI on PUCCH Format 3 */
-#endif
-   RgSchUeDciSize  dciSize;          /*!< DCI Sizes */
-   RgrAccessStratumRls accessStratumRls; /*!< UE Release */
-#ifdef RG_PFS_STATS
-   RgSchPfsStats   pfsStats;
-#endif
-#ifdef EMTC_ENABLE
-       Bool            isEmtcUe;            /*!< flag to check EMTC UE */
-   Void            *emtcUeInfo;        /*!< EMTC UE specific information */
-#endif
-#ifdef RG_5GTF
-   RgSch5gtfUeCb   ue5gtfCb;           /*!< UECb of 5gtf */
-#endif
-};
-
-
-/**
-  * @brief
-  * Configuration Information for Upper SAPs at RGU, CRG and RGR interfaces.
-  */
-typedef struct rgSchUpSapCfgInfo
-{
-   Pst  sapPst;              /*!< Post info associated with SAP */
-   SpId spId;                /*!< SpId associated with SAP */
-   SuId suId;                /*!< SuId associated with SAP */
-}RgSchUpSapCfgInfo;
-
-/**
-  * @brief
-  * Configuration Information for Lower SAP at TFU interface.
-  */
-typedef struct rgSchLowSapCfgInfo
-{
-   Pst    sapPst;            /*!< Post info associated with SAP */
-   SpId   spId;              /*!< SpId associated with SAP */
-   SuId   suId;              /*!< SuId associated with SAP */
-   TmrCfg bndTmr;            /*!< Bind Timer Value */
-}RgSchLowSapCfgInfo;
-
-/**
-  * @brief
-  * Control Block structure for Upper SAPs at RGU, CRG and RGR interfaces.
-  */
-typedef struct rgSchUpSapCb
-{
-   RgSchUpSapCfgInfo sapCfg;    /*!< Configuration info */
-   RgSapSta     sapSta;      /*!< SAP Status */
-   RgSchCellCb  *cell;       /*!< Cell associated with this sap */
-}RgSchUpSapCb;
-
-/**
-  * @brief
-  * Control Block structure for Lower SAP at TFU interface.
-  */
-typedef struct rgSchLowSapCb
-{
-   RgSchLowSapCfgInfo sapCfg;          /*!< SAP configuration info */
-   RgSapSta           sapSta;          /*!< SAP Status */
-   uint8_t                 numBndRetries;   /*!< Number of Bind Retries */
-   RgSchCellCb        *cell;           /*!< Cell associated with this SAP */
-   CmTimer            tmrBlk;       /*!< Timer Block associated with this SAP */
-}RgSchLowSapCb;
-
-/**
-  * @brief
-  * structure holding Layer Manager Response information cached from control
-  * request.
-  */
-typedef struct rgSchLmResponse
-{
-   TranId transId;           /*!< Transaction ID */
-   Resp   response;          /*!< Response */
-}RgSchLmResponse;
-
-/* XXX: Below structures added for PDCCH Order req for RACH Module */
-typedef enum sfnEnum
-{
-   RG_SCH_SFN_ANY,
-   RG_SCH_SFN_ODD,
-   RG_SCH_SFN_EVEN
-} SfnEnum;
-
-typedef struct rgSchConfigIdx
-{
-   uint8_t         configurationIndex; /* New RGR Cell cfg */
-   SfnEnum    sfn;
-   uint8_t         subframes[10];
-} RgSchConfigIdx;
-
-typedef struct rgSchRapId
-{
-   uint8_t                rapId;
-   CmLteTimingInfo   lastAllocPRACHMaskIdx;
-} RgSchRapId;
-
-typedef struct pdcchOrderCfg
-{
-   RgSchRapId       rapIds[RGSCH_MAX_RAPID];
-   RgSchConfigIdx   configIdx;
-} PdcchOrderCfg;
-/* XXX: End */
-
-/**
-  @brief Measurement Gap related information per cell. */
-typedef struct rgSchMeasGapCb
-{
-   CmLListCp  gapPrd40Q[RG_SCH_CMN_MEAS_GAPPRD40]; /*!< Measurement Gap queue
-                                               for UEs with 40 ms gap period */
-   CmLListCp  gapPrd80Q[RG_SCH_CMN_MEAS_GAPPRD80]; /*!< Measurement Gap queue
-                                               for UEs with 80 ms gap period */
-} RgSchMeasGapCb;
-
-/**
-  @brief ACK-NACK repetition related information per cell. */
-typedef struct rgSchAckNakRepCb
-{
-#ifdef LTE_TDD
-   CmLListCp  ackNakRepQ[2*RGSCH_NUM_SUB_FRAMES];  /*!< ACK NACK repetition queue */
-#else
-   CmLListCp  ackNakRepQ[RGSCH_NUM_SUB_FRAMES];  /*!< ACK NACK repetition queue */
-#endif
-} RgSchAckNakRepCb;
-/**
-  * @brief
-  * Structure holding RBG information for the BW
-  */
-typedef struct rgSchBwRbgInfo
-{
-   uint8_t     numRbs;        /*!< Total number of RBs for which information is
-                              stored */
-   uint8_t     numRbgs;       /*!< Number of RBGs for the BW (rounded off to the
-                              closest RBG number */
-   uint8_t     rbgSize;        /*!< RBG size */
-   uint8_t     lastRbgSize;    /*!< Last RBG size : in number of RBs */
-   uint8_t     rbgSubsetSize[RG_SCH_NUM_RATYPE1_SUBSETS]; /*!< RBG Subset 0,1,2,3
-                                                          sizes: number of RBs
-                                                      */
-}RgSchBwRbgInfo;
-/** @brief This structure is one element of the DRX Queue mainted per cell.
- * @details It is composed of a list of linked lists, each tracking a specific
- * timer as defined in the DRX functionality.
- */
-typedef struct rgSchDrxQ
-{
-   CmLListCp   onDurationQ;   /*!< Tracks the start of onDuration Timer. */
-   CmLListCp   onDurationExpQ;   /*!< Tracks the Expiry of onDuration Timer. */
-   CmLListCp   inActvTmrQ;   /*!< Tracks the Expiry of drx-InactivityTimer. */
-   CmLListCp   harqRTTQ;   /*!< Tracks the Expiry of HARQ RTT timer. */
-   CmLListCp   harqRetxQ;   /*!< Tracks the Expiry of Re-Transmission timer. */
-   CmLListCp   shortCycleQ;   /*!< Tracks the Expiry of DRX Short Cycle. */
-#ifdef EMTC_ENABLE
-   CmLListCp   ulHarqRTTQ;   /*!< Tracks the Expiry of HARQ RTT timer for Uplink transmission */
-   CmLListCp   ulHarqRetxQ;   /*!< Tracks the Expiry of Re-Transmission timer for UPLINK. */
-#endif
-} RgSchDrxQ;
-
-/** @brief This structure is part of the RgSchCellCb structure and stores the
- * DRX related information for a cell.dfort
- * The cell contains a single Array of queues, wherein UEs shall be enqueued
- * based on configured offset and periodicity and timer values. Please note the
- * same queue is utilized for Long and Short DRX cycle.
- */
-typedef struct rgSchDRXCellCb
-{
-   RgSchDrxQ   drxQ[RG_SCH_MAX_DRXQ_SIZE ]; /*!< Maintains all
-                                              the timers for DRX. */
-   Bool        delInUlScan;                 /*!< Maintains whether elements
-                                                 from timer queue should be
-                                                 removed while scanning in
-                                                 UL or DL.*/
-} RgSchDRXCellCb;
-
-
-/* Added for SI Enhancement*/
-#ifdef RGR_SI_SCH
-
-/* Sib1 info */
-typedef struct sib1Info
-{
-   Buffer *sib1;
-   uint8_t      mcs;
-   uint8_t      nPrb; 
-   MsgLen  msgLen;
-}RgSchSib1Info;
-
-/* SI info */
-typedef struct siInfo
-{
-   Buffer *si;
-   uint8_t      mcs;
-   uint8_t      nPrb; 
-   MsgLen  msgLen;
-}RgSchSiInfo;
-
-/**
-  @brief SI Configuration information per cell. */
-typedef struct rgSchSiCfgInfo
-{
-   Buffer   *mib;   /*!< MIB PDU */
-   RgSchSib1Info sib1Info;
-   RgSchSiInfo   siInfo[RGR_MAX_NUM_SI];
-}RgSchSiCfgInfo;
-
-/**
-  @brief SI Context information per SI. */
-typedef struct rgSchSiCtx
-{
-   uint8_t   siId;             /*!< SI Id */
-   CmLteTimingInfo timeToTx;   /*!< Time at which the SI for this SI
-                                    context need to be scheduled.*/
-   CmLteTimingInfo maxTimeToTx;/*!< Max Time to TX for this SI */
-   uint8_t              retxCntRem; /*!< SI retransmit count remaining */
-   uint16_t             i;          /*!< Value used to calculate the Riv of SI */
-   Bool           warningSiFlag; /*!< Flag for Warning SI */
-} RgSchSiCtx;
-
-
-/** 
- @brief Contains each PDU of Warning SI */
-typedef struct warningSiPdu
-{
-   CmLList lnk;
-   Buffer *pdu;
-   uint8_t      mcs;
-   uint8_t      nPrb; 
-   MsgLen  msgLen;
-}RgSchWarningSiPdu;
-
-
-/**
-  @brief warningSi node having multiple segments */
-typedef struct warningSiSeg
-{
-   /* ccpu00136659: CMAS ETWS design changes */
-   CmLListCp     segLstCp; /*!< LList of Warning SI Segments */
-   RgSchWarningSiPdu pduNode[RGR_MAX_WARNING_SI_SEG]; 
-   RgrCfgTransId transId;   /*!< Transaction Id */
-}RgSchWarningSiSeg;
-
-/**
-  @brief Warning SI structure per Cell. */
-typedef struct warningSi
-{
-   /* ccpu00136659: CMAS ETWS design changes */
-   RgSchWarningSiSeg      warningSiMsg;
-                          /*!< Each node contains LList of si segments. */
-   uint8_t                     siId; /*!< Warning SI ID */
-   uint8_t                     idx; /*!< Warning SI Idx in RgSchWarningSiInfo */
-}RgSchWarningSiInfo;
-
-/**
-  @brief SI Array Structure for each SI */
-typedef struct siArray
-{
-   Bool isWarningSi; /*!< Flag for Warning SI */
-   void *si;         /*!< Pointer for SI */
-}
-RgSchSiArray;
-/**
-  @brief SI Control BLock per Cell. */
-typedef struct rgSchSiCb
-{
-   Bool        siBitMask;  /*!< Bitmask to indicate which of the SI
-                                    components have been updated */
-   RgSchSiCtx  siCtx;      /*!< SI  Context */
-   RgrSiCfg    newSiCfg;   /*!< New SI Configuration, valid if the
-                                    respective bit is set in bit mask
-                                    siBitMask  */
-   S8          inWindow;  /*!< counter to indicate the start of a new 
-                                si window. Reset to siWinLen at the start
-                                of window. */
-   RgSchSiCfgInfo   crntSiInfo;/*!< PDUs for current modification period */
-   RgSchSiCfgInfo   newSiInfo; /*!< PDUs for next modification period */
-   RgSchWarningSiInfo   warningSi[RGR_MAX_NUM_WARNING_SI]; 
-                              /*!< PDUs for warning SI */
-   RgSchSiArray        siArray[RGR_MAX_NUM_SI]; /*!< Pointers for SIs */
-} RgSchSiCb;
-#endif /*RGR_SI_SCH */
-/* R8 Upgrade */
-typedef struct rgSchBiInfo
-{
-   uint16_t             prevBiTime;   /*!< Previous BI Value in ms Calculated and
-                                   Sent in Previous Response */
-   CmLteTimingInfo biTime;       /*!< Time at which previous BI sent */
-} RgSchBiInfo;
-
-/* RRM_SP1_START */
-typedef struct rgSchQciPrbUsage
-{
-   uint8_t  qci;          /*!< QCI of the Logical Channel */
-   uint32_t dlTotPrbUsed; /*!<  total PRB used for DL within one interval*/
-   uint32_t ulTotPrbUsed; /*!< total PRB used for UL within one interval*/
-}RgSchQciPrbUsage;
-
-/* RRM_SP1_END */
-
-typedef struct rgSchPrbUsage
-{
-   Bool prbRprtEnabld; /*!< reporting is enabled or not*/
-   uint16_t rprtPeriod; /*!< reporting interval to send PRB usage to the 
-                        RRM (in subframes)*/
-   CmLteTimingInfo startTime; /*!< timing information when the summation is 
-                                   started in terms of sfn and subframe*/
-/* RRM_SP1_START */
-   RgSchQciPrbUsage qciPrbRpts[RGINF_MAX_GBR_QCI_REPORTS]; /*!< toal 
-                                                             PRB usgae for GBR
-                                                             QCIs */
-/* RRM_SP1_END */
-}RgSchPrbUsage;
-
-/* LTE_ADV_FLAG_REMOVED_START */
-/* @brief  Enum to differntiate the subframe */
-/* Donot change the value of enum member - code dependency */
-typedef enum rgSchAbsSfEnum
-{
-   RG_SCH_ABS_ENABLED_NONABS_SF = 0,  /* ABS is enabled and ABS SF */
-   RG_SCH_ABS_ENABLED_ABS_SF    = 1,  /* ABS is enabled and non ABS SF */
-   RG_SCH_ABS_DISABLED          = 2   /* ABS is disabled */
-} RgSchAbsSfEnum;
-
-/* @brief Control block for LTE Advance Feature */
-typedef struct rgSchLteAdvFeatureCb
-{
-   RgrSfrConfig               sfrCfg; /*!< Configuration of SFR feature */
-   RgrDsfrConfig              dsfrCfg;  /*!< Configuration of DSFR feature */
-   RgrAbsConfig               absCfg; /*!< Configuration of ABS feature */
-   RgSchAbsSfEnum             absDlSfInfo; /*< Flag to indicate current scheduling 
-                                             DL subframe is ABS subframe or not */
-   uint8_t                         absPatternDlIdx;
-   uint32_t                        absLoadTtiCnt;                   
-   uint32_t                        absLoadInfo[RGR_ABS_PATTERN_LEN];
-} RgSchLteAdvFeatureCb;
-/* LTE_ADV_FLAG_REMOVED_END */
-
-/*<! baseSize is the fixed sizes of the respective DCIs. If no other size
- * mentioned, baseSize is the final size of the DCI */
-typedef struct rgSchCellDciSize {
-#ifdef EMTC_ENABLE   
-   uint8_t baseSize[TFU_DCI_FORMAT_6_2+1]; /*!< Fixed Base Size of DCI 0/1/1A/6-0A/6-1A/6-0B/6-1B/6-2 without any adjustment */
-   uint8_t size[TFU_DCI_FORMAT_6_2+1]; /*!< DCI 0/1A final size in common Search Space and not scrambled by C-RNTI
-                                      DCi 3/3A final sizes
-                                      DCI 2/2A final sizes 
-                                      DCI 6-0A/6-0B final sizes 
-                                      DCI 6-1A/6-1B final sizes 
-                                      DCI 6-2 final sizes */
-#else                                      
-   uint8_t baseSize[TFU_DCI_FORMAT_1A+1]; /*!< Fixed Base Size of DCI 0/1/1A without any adjustment */
-   uint8_t size[TFU_DCI_FORMAT_3A+1]; /*!< DCI 0/1A final size in common Search Space and not scrambled by C-RNTI
-                                      DCi 3/3A final sizes
-                                      DCI 2/2A final sizes */
-#endif                                      
-   uint8_t dci0HopSize;               /*!< DCI 0 Hop Size */
-} RgSchCellDciSize;
-
-/**
-  * @brief
-  * Cell level measurements
-  */
-typedef struct rgSchMeasCb
-{
-   uint32_t dlTpt; /*!< DL Bytes served in a fixed time PERIOD */
-   uint32_t dlBytesCnt; /*!< DL Bytes served from start of this time period */
-   uint32_t ulTpt; /*!< DL Bytes served in a fixed time PERIOD */
-   uint32_t ulBytesCnt; /*!< UL Bytes served from start of this time period */
-}RgSchMeasCb;
-
-/**
-  * @brief
-  * Cell level thresholds 
-  */
-typedef struct rgSchThrsldsCb
-{
-   uint8_t maxDlItbs;
-   uint8_t maxUlItbs;
-}RgSchThrsldsCb;
-/**
-  * @brief
-  * CPU Overload control state info
-  */
-typedef struct rgSchCpuOvrLdCntrlCb 
-{
-   uint8_t  cpuOvrLdIns;
-   uint32_t tgtDlTpt;
-   uint32_t tgtUlTpt;
-   uint8_t  dlNxtIndxDecNumUeTti; /*!< Total DL num UE per TTI reduction instruction applied */
-   uint8_t  ulNxtIndxDecNumUeTti; /*!< Total UL num UE per TTI reduction instruction applied */
-   uint8_t  maxUeNewTxPerTti[10]; /*!< list of subframe  where DL num UE per TTI reduction applied */
-   uint8_t  maxUeNewRxPerTti[10]; /*!< list of subframe  where UL num UE per TTI reduction applied */
-}RgSchCpuOvrLdCntrlCb; 
-
-/**
-  * @brief
-  * Cell Control block per cell.
-  */
-struct rgSchCellCb
-{
-   CmLteCellId   cellId;           /*!< Cell ID */
-   Inst          instIdx;          /*!< Index of the scheduler instance */
-   Inst          macInst;          /*!< Index of the MAC instance */
-   uint8_t            schTickDelta;     /* 4UE_TTI_DELTA */
-   Bool          stopSiSch;        /*!< If TRUE Bcch,Pcch Scheduling is not done */
-   uint8_t            stopDlSch;        /*!< If TRUE DL scheduling is not done */ 
-   Bool          stopUlSch;        /*!< If TRUE UL scheduling is not done */
-   Bool          isDlDataAllwd;    /*!< FALSE for Uplink subframes */ 
-   RgrDlHqCfg    dlHqCfg;          /*!< HARQ related configuration */
-   RgSchRntiDb   rntiDb;           /*!< RNTIs DB: range of rntis to be managed by MAC */
-   struct schdInfoS
-   {
-      Void         *sch;    /*!< Common Scheduler specific information */
-      RgSchdApis   *apis;   /*!< Common Scheduler APIs */
-   } sc;
-
-   Bool            isCpUlExtend;       /*!< Cyclic prefix : TRUE-extended/FALSE-normal */
-   Bool            isCpDlExtend;       /*!< Cyclic prefix : TRUE-extended/FALSE-normal */
-   uint8_t              numTxAntPorts;    /*!< Number of Tx antenna ports */
-   RgrBwCfg        bwCfg;            /*!< Bandwidth Configuration */
-   uint8_t              pbchRbStart;      /*!< Indicates the Start RB of the center 6 RBs of DL BW */
-   uint8_t              pbchRbEnd;        /*!< Indicates the Start RB of the center 6 RBs of DL BW */
-   uint8_t              numCellRSPerSf;   /*!< Indicates the number of cell specific
-                                          Reference symbols in a Subframe */
-   RgrPhichCfg     phichCfg;         /*!< PHICH Config Information */
-   RgrPucchCfg     pucchCfg;         /*!< PUCCH Config Information */
-   RgSchSrsCfg     srsCfg;           /*!< SRS Config Information */
-   RgrRachCfg      rachCfg;          /*!< RACH Configuration */
-   /* R8 Upgrade */
-   RgSchBiInfo     biInfo;           /* CELL wide BI Info */
-   RgrSiCfg        siCfg;            /*!< SI Configuration */
-   /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   RgrPuschCfg         puschCfg;     /*!< Cell-specific hopping configuration */
-#endif
-   RgrPreambleSetCfg macPreambleSet; /*!< Range of PDCCH Order Preamble Id's
-                                         to be managed by MAC */
-   CmLteTimingInfo crntTime;         /*!< Current frame and subframe number for
-                                          the cell */
-   CmLteTimingInfo hiDci0Time;       /*!< Scheduling SFN, SF for HIDCI-0 */
-   CmLteTimingInfo hqRlsTime;        /*!< SFN, SF for HARQ clean up */
-   CmLteTimingInfo dlSfRlsTime;      /*!< SFN, SF for Downlink subframe clean up*/
-   CmLteTimingInfo dlDciTime;        /*!< SFN, SF for DL control Request */ 
-   CmLteTimingInfo rcpReqTime;       /*!< SFN, SF for UL reception Request */ 
-   RgSchCfgCfb     rgCfgInfo;        /*!< Control block for configuration related
-                                          information  */
-   uint8_t              ulCcchId;         /*!< LcId for uplink CCCH */
-   uint8_t              dlCcchId;         /*!< LcId for downlink CCCH */
-   RgSchClcDlLcCb  cmnLcCb[RGSCH_MAX_CMN_LC_CB]; /*!< BCCH/PCCH logical channel control block */
-   CmHashListCp    ueLst;                     /*!< Hash list of UE control
-                                                   blocks: RgSchUeCb */
-   /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   CmHashListCp    spsUeLst;            /*!< Hash list of UE control blocks
-                                          for spsRnti: RgSchUeCb */
-#endif /* LTEMAC_SPS */
-   CmLListCp       taUeLst;          /*!< List of ueCbs having ta */
-#ifdef RGR_V1
-   /* CR timer changes*/
-   CmLListCp       ccchSduUeLst;     /*!< List of ueCbs scheduled for CCCH
-                  SDU */
-   CmLListCp       contResGrdTmrLst; /*!< List of raCbs whose Guard timer is
-                   running  */
-   CmLListCp       contResTmrLst;    /*!< List of raCbs whose contention
-                   resolution timer is running  */
-#endif
-   RgSchRaInfoCb   raInfo;           /*!< Random access related information for
-                                          cell */
-   CmLListCp       pdcchLst;         /*!< List of free RgSchPdcch structures */
-   CmTqCp          tqCp;
-   CmTqType        tq[RGSCH_UE_TQ_SIZE];
-   uint8_t              crntSfIdx;       /*!< Current index for allocation */
-#ifdef LTE_TDD
-   RgInfSfAlloc    sfAllocArr[RGSCH_SF_ALLOC_SIZE]; /*!< Subframe Allocation
-                                            info to be sent to MAC */
-#else
-   RgInfSfAlloc    sfAllocArr[RGSCH_NUM_SUB_FRAMES]; /*!< Subframe Allocation
-                                            info to be sent to MAC */
-#endif
-   RgInfRlsHqInfo  rlsHqArr[RGSCH_NUM_SUB_FRAMES]; /*!< Harq Release
-                                            info to be sent to MAC */
-   uint8_t              crntHqIdx;       /*!< Current index for Harq release info */
-   RgSchLowSapCb   *tfuSap;
-/* Added for sending TTI tick to RRM */
-#if (defined(RGR_RRM_TICK) || defined(RGR_CQI_REPT))
-   RgSchUpSapCb    *rgrSap;         /*!< Pointer to the cell's RGR SAP
-                                      Control Block */
-#endif
-   RgSchUpSapCb    *rgmSap;         /*!< Pointer to the cell's RGM SAP
-                                      Control Block */
-#ifdef RGR_RRM_TICK
-   uint8_t               rrmTtiIndPrd;   /*!< Periodicity of TTI indication from
-                                         MAC towards RGR user. Range [1-255]. A
-                                         value of 1 means one tick per System
-                                         Frame and 2 means one tick per 2 System
-                                         Frame, and so on. */
-#endif
-   PdcchOrderCfg   pdcchOrdCfg;
-   RgSchMeasGapCb    measGapCb;    /*!< Measurement gap control block */
-   RgSchAckNakRepCb  ackNakRepCb;  /*!< Ack-Nack Repetition control block */
-#ifdef LTE_TDD
-   RgSchTddRachRspLst   *rachRspLst;     /*!< List of awaiting RACH responses */
-   uint8_t                   numDlSubfrms;    /*!< Number of DL subframes */
-   uint8_t                   ulDlCfgIdx;      /*!< UL-DL Configuration Index */
-   uint8_t                   ackNackFdbkArrSize; /*!< Maximum Number of Ack/Nack 
-                                               feedback information to be 
-                                               stored */
-   S8                   tddHqSfnCycle;   /*!< Counter to keep track of the
-                                            number of sfn,sf wrap arounds.
-                                            This is used for UL harq
-                                            determination. It ranges from
-                                            0 to num Ul Harq-1 */
-   RgSchTddSplSubfrmCfg splSubfrmCfg;    /*!< Special subframe configuration */
-   Bool                 isDwPtsCnted;    /*!< is DwPts counted as PDCCH sf */
-   RgSchTddNpValTbl     rgSchTddNpValTbl;/*!< Mapping between 'Np' and 'p' */
-   RgSchDlSf            **subFrms;       /*!< DL subframes list */
-   RgSchTddPrachRscInfo prachCfg;        /*!< PRACH configuration */
-   CmHashListCp         ueTfuPendLst;    /*!< Used for HARQ Ack/Nack
-                                              Multiplexing */
-   /* TODO:: change to array of pointers */
-   CmLListCp         n1ResUsedLst[RGSCH_NUM_SUB_FRAMES]; /*!< For storing the used
-                                            N1 resources for scell in case of F1B CS */
-#else
-   RgSchDlSf          *subFrms[RGSCH_NUM_DL_slotS];
-   uint16_t             nCce;
-#endif
-   RgSchDynCfiCb         dynCfiCb;        /*!< Dynamic CFI control block */  
-/* Changes for MIMO feature addition */
-   uint8_t                   noOfRbgs;       /*!< Number of RBGs for this bw */
-   uint8_t                   rbgSize;        /*!< RBG Size */
-   /* Added support for SPS*/
-#ifdef LTEMAC_SPS
-   RgSchBwRbgInfo     dlBwRbgInfo; /*!< RBG information for the configured
-                                         DL BW */
-   RgrSpsCellCfg    spsCellCfg;    /*!< SPS specific configuration for
-                                                         the cell */
-   RgSchBwRbgInfo  spsBwRbgInfo;    /*!< RBG information for configured maximum
-                                        SPS bandwidth */
-#endif
-#ifdef LTE_L2_MEAS
-   RgSchRaPreambles  raPrmbs;              /*!< Different received RA preambles */
-   RgSchAvgPrbDl     avgPrbDl;             /*!< PRB usage in percentage per QCI for DL */
-   RgSchAvgPrbUl     avgPrbUl;             /*!< PRB usage in percentage per QCI for UL */
-   CmLListCp         l2mList;              /*!< List of all L2M requests
-                                           rgSchL2MeasCb */
-   RgSchQciCb        qciArray[LRG_MAX_QCI]; /*!< Array of all qci's configured
-                                            rgSchQciCb */
-   Bool              sndL2Meas;             /*!< send L2 Meas in case no le mesurement timer is running*/
-   RgSchTbCnt        dlUlTbCnt;             /*!< Count of DL and UL TB transmitteed and Faulty 
-                                              TB (for wich NACK is received) */
-#endif /* LTE_L2_MEAS */
-   uint8_t                ulAvailBw;            /*!< Total Uplink band width available
-                                              for this sub frame */
-#ifdef TFU_UPGRADE
- RgSchPerPucchCb   pCqiSrsSrLst[RG_SCH_PCQI_SRS_SR_TRINS_SIZE];
-                                /*!< To store next active Periodic CQI/PMI, RI,
-                                     SRS and SR Transmission instance */
-#endif /* TFU_UPGRADE */
-
-#ifdef LTEMAC_HDFDD
- CmLListCp         hdFddLst;   /*!< Half Duplex FDD UE list */
-#endif /* LTEMAC_HDFDD */
-   RgSchDRXCellCb    *drxCb;   /*!< Pointer to the DRX control block shall be
-                                 allocated at the time of cell configuration. */
-   /* Added for SI Enhancement*/
-#ifdef RGR_SI_SCH
-   RgSchSiCb       siCb;            /*!< SI Control Block */
-#endif /*RGR_SI_SCH */
-   RgSchPrbUsage prbUsage; /*!< measures average PRB usage for configured interval*/
-   uint16_t  t300TmrVal; /*!< t300Timer value configured in Frames */
-/* LTE_ADV_FLAG_REMOVED_START */
-   TknStrOSXL            rntpAggrInfo;    /*!< RNTP Info */
-   RgrLoadInfReqInfo     loadInfReqInfo;  /*!< Consists startRb & endRb 
-                                               location for which CC to 
-                                               be raised to P-High */
-   RgSchLteAdvFeatureCb  lteAdvCb;        /*!< Control block for LTE Adv 
-                                               features */
-/* LTE_ADV_FLAG_REMOVED_END */
-   uint32_t   dlNumUeSchedPerTti[RG_MAX_NUM_UE_PER_TTI]; /*!<DL mUe/Tti histograms*/
-   uint32_t   ulNumUeSchedPerTti[RG_MAX_NUM_UE_PER_TTI]; /*!<UL mUe/Tti histograms*/
-   Bool  overLoadBackOffEnab; /*!< Overload Rach Backoff enable/disable */
-   uint8_t    overLoadBackOffval;  /*!< Overload Rach BackOff value */
-   uint8_t    refreshUeCnt[RGSCH_MAX_REFRESH_OFFSET];  /*! To maintain number of UE refreshed per subframe */
-   uint8_t    minDlResNonCsg;     /*!< Minimum DL resources reserved for Non CSG UEs */
-   uint8_t    minUlResNonCsg;     /*!< Minimum UL resources reserved for CSG UEs */
-   Bool isAutoCfgModeEnb;     /*!< Indicates Auto config of TM mode is enabled or
-                               disabled. True - Enabled, False - Disabled */
-   CmLListCp lcMonitorLst;         /*LC Lst used for flow cntrl */
-   uint32_t       prbCnt;         /*!<PRB usage in flow control interval*/
-   uint32_t       maxPrbCnt;      /*!<Max PRB cnt after which Flow Cntrl 
-                               can be triggered */
-   RgSchCpuOvrLdCntrlCb cpuOvrLdCntrl; /*!< CPU Overload control state info */
-   RgSchMeasCb          measurements;  /*!< Cell level measurements */
-   RgSchThrsldsCb       thresholds;    /*!< Cell level thresholds */
-#ifdef TENB_STATS
-   TSL2CellStatsCb   *tenbStats; /*!< CELL Stats Holder */
-#endif
-   RgSchCellDciSize  dciSize;
-#ifdef LTE_ADV
-   CmLListCp        sCellUeLst; /*!< List of UEs for which this cell is secondary cell*/
-   Bool             isPucchFormat3Sptd;
-#endif
-#ifdef RG_PFS_STATS
-   uint32_t              totalPrb;
-   uint32_t              totalTime;
-#endif
-   Void *            laaCb;
-#ifdef EMTC_ENABLE
-   /* TODO:: Below members need to be moved
-    * to emtc specific files and have void * 
-    * here */
-   uint8_t                    emtcEnable;
-   Void                  *emtcCb;
-   RgSchRntiDb           emtcRntiDb;           /*!< RNTIs DB: range of rntis to be managed by MAC */
-#endif
-   RgSchIotResMngmtCb resMngmt;
-#ifdef RG_5GTF
-   RgSch5gtfCellCb    cell5gtfCb;
-#endif
-};
-
-/**
-  * @brief
-  * Structure holding LTE MAC's General Configuration information.
-  */
-typedef struct rgSchGenCb
-{
-   uint8_t              tmrRes;           /*!< Timer resolution */
-   RgSchLmResponse *bndCfmResp;       /*!< Respones value for Bind Confirm */
-   RgSchLmResponse ustaResp;         /*!< Respones value for Alarms */
-   uint8_t              startCellId;      /*!< Starting Cell Id */
-#ifdef LTE_ADV
-   Bool            forceCntrlSrbBoOnPCel; /*!< value 1 means force scheduling
-                                               of RLC control BO and SRB BO on
-                                               PCell. val 0 means don't force*/
-   Bool            isSCellActDeactAlgoEnable; /*!< TRUE will enable activation/deactivation algo at Schd */
-#endif
-}RgSchGenCb;
-
-#ifdef RG_5GTF
-/* 5GTF Dynamic TDD Specific defines */
-/* Number of subframes information managed */
-#define RG_SCH_DYNTDD_MAX_SFINFO   20
-
-/* Subframe Types */
-#define RG_SCH_DYNTDD_NOTDEF       0
-#define RG_SCH_DYNTDD_DLC_DLD      1 
-#define RG_SCH_DYNTDD_DLC_DLD_ULC  2       
-#define RG_SCH_DYNTDD_DLC_ULD      3
-#define RG_SCH_DYNTDD_DLC_ULD_ULC  4
-
-/* Mark the subframe */
-#define RG_SCH_DYN_TDD_MARKTYPE(_dynTdd, _sfi, _state)\
-{\
-   (_dynTdd)->sfInfo[(_sfi)].sfType = _state;\
-}
-
-/* Mark sfi as UL Subframe */
-#define RG_SCH_DYN_TDD_MARKTYPE_UL(_dynTdd, _sfi)\
-{\
-   RG_SCH_DYN_TDD_MARKTYPE(_dynTdd, _sfi, RG_SCH_DYNTDD_DLC_ULD);\
-}
-
-/* Mark sfi as DL Subframe */
-#define RG_SCH_DYN_TDD_MARKTYPE_DL(_dynTdd, _sfi)\
-{\
-   RG_SCH_DYN_TDD_MARKTYPE(_dynTdd, _sfi, RG_SCH_DYNTDD_DLC_DLD);\
-}
-
-/* Get SFI and SFN from given time and subframe offset */
-#define RG_SCH_DYN_TDD_GET_SFIDX(_sfi, _crntSfIdx, _offset)\
-          (_sfi) = (_crntSfIdx + _offset)% RG_SCH_DYNTDD_MAX_SFINFO
-
-/**
-  @brief Dynamic TDD subframe type. */
-
-typedef struct rgSchDynTddSfType
-{
-  uint8_t              sfType;  /*!< 0= NOT Defined 
-                                1= DL Cntrl + DL Data
-                                2= DL Cntrl + DL Data + UL Cntrl
-                                3= DL Cntrl + UL Data
-                                4= DL Cntrl + UL Data + UL Cntrl
-                           */ 
-
-}RgSchDynTddSfType;
-/**
-  @brief Dynamic TDD control Block */
-
-typedef struct rgSchDynTddCb
-{
-   Bool                 isDynTddEnbld; /*!< Is dynamic TDD enabled */
-   uint8_t                   crntDTddSfIdx; /*!< Pivot Index corresponding 
-                                            cell's current subframe */ 
-   RgSchDynTddSfType    sfInfo[RG_SCH_DYNTDD_MAX_SFINFO]; 
-}RgSchDynTddCb;
-
-#endif
-
-/**
-  * @brief
-  * Global Control block for LTE-MAC.
-  */
-struct _rgSchCb
-{
-   TskInit       rgSchInit;                    /*!< Task Init info */
-   RgSchGenCb    genCfg;                    /*!< General Config info */
-   uint8_t            numSaps;                   /*!< Num RGR Saps = Num TFU Saps */
-   RgSchUpSapCb  *rgrSap;                    /*!< RGR SAP Control Block */
-   RgSchLowSapCb *tfuSap;                    /*!< TFU SAP Control Block */
-   RgSchUpSapCb  *rgmSap;                    /*!< TFU SAP Control Block */
-   CmTqCp        tmrTqCp;                   /*!< Timer Task Queue Cntrl Point */
-   CmTqType      tmrTq[RGSCH_TQ_SIZE];         /*!< Timer Task Queue */
-   uint8_t            rgSchDlDelta;                /* 4UE_TTI_DELTA */
-   uint8_t            rgSchCmnDlDelta;
-   uint8_t            rgSchUlDelta;
-   RgSchCellCb   *cells[CM_LTE_MAX_CELLS];  /* Array to store cellCb ptr */  
-   RgrSchedEnbCfg rgrSchedEnbCfg;                  /*!< eNB level RR/PFS Config */
-   Void          *rgSchEnbPfsDl;             /*!< eNB level PFS DL Block */
-
-   Void *         laaCb;
-#ifdef RG_5GTF
-   RgSchDynTddCb  rgSchDynTdd;               /*!< Dynamic TDD Control Block */
-#endif
-};
-
-/* Declaration for scheduler control blocks */
-RgSchCb rgSchCb[RGSCH_MAX_INST];
-
-/*
- * Data structures for RAM
- */
-
-/**
-  * @brief
-  * Random Access Req Info to be stored in cellCb.
-  */
-typedef struct rgSchRaReqInfo
-{
-   CmLList         raReqLstEnt;  /*!< Linked list entity for RaReq List */
-   CmLteTimingInfo timingInfo;   /*!< RACHO: Time of RaReq Reception */
-   RgTfuRaReqInfo  raReq;        /*!< Random Access Request Information */
-   RgSchUeCb       *ue;          /*!< UECB if RAP ID is a dedicated one */ 
-} RgSchRaReqInfo;
-
-/**
-  * @enum rgSchRaState
-  * Enumeration of random access states.
-  */
-typedef enum rgSchRaState
-{
-   RGSCH_RA_MSG3_PENDING,   /*!< Msg3 reception pending */
-   RGSCH_RA_MSG4_PENDING,   /*!< Msg4 transmission pending */
-   RGSCH_RA_MSG4_DONE      /*!< Msg4 transmission successful */
-} RgSchRaState;
-
-/**
-  * @brief
-  * Control block for Random Access.
-  */
-struct rgSchRaCb
-{
-   CmLList         raCbLnk;       /*!< To link to the raCb list */
-   CmLList         schdLnk;       /*!< To link raCb to the "to be scheduled"
-                                       list */
-   CmLteRnti       tmpCrnti;      /*!< Temporary C-RNTI */
-   CmLteTimingInfo timingInfo;    /*!< Timing information */
-   RgSchRntiLnk    *rntiLnk;      /*!< Link to RNTI for raCb */
-   RgSchRaState    raState;       /*!< Random access state */
-   struct
-   {
-      uint32_t          bo;            /*!< Buffer occupancy for CCCH */
-   } dlCcchInfo;                  /*!< Params for DL CCCH */
-   uint8_t              msg3HqProcId;  /*!< Msg3 Harq Process ID */
-   /*ccpu00128820 - DEL - msg3HqProcRef is delete for Msg3 alloc double delete issue*/
-   RgSchUlHqProcCb msg3HqProc;    /*!< msg3HqProcRef points to this initially */
-   RgSchUeCb       *ue;           /*!< NULL initially */
-   Bool            toDel;         /*!< To delete this RaCb after msg4 reject */
-   TknUInt8           phr;           /*!< To store the PHR, if received along with
-                                       Msg3 */
-   CmLList         rspLnk;        /*!< Used to link RACB to a frame for resp */
-   uint8_t              rapId;         /*!< RAP ID */
-   TknUInt16          ta;            /*!< Timing Adjustment */
-   RgSchUlGrnt     msg3Grnt; /*!< Msg3 grant as given by the UL Sched */
-   uint32_t             y[RGSCH_NUM_SUB_FRAMES]; /*!< y values using tmpCrnti by DLSCHED */
-   RgSchDlHqEnt    *dlHqE;     /*!< DL HARQ module */
-   uint8_t              ccchCqi;     /*!< DL Cqi obtained from RaReq and Used for CCCH */
-   RgSchDlRbAlloc  rbAllocInfo; /*!< RB Allocation Info for MSG4 Trans/Retrans */
-   /* PHR handling for MSG3 */
-   CmLteTimingInfo msg3AllocTime; /*!< Allocation time for msg3 grant */
-#ifdef RGR_V1
-   /* CR timer  changes*/
-   CmLList         contResTmrLnk;       /*!< To link raCb to the
-                   Guard Timer/Contention Resolution timer list*/
-   CmLteTimingInfo expiryTime; /*!< Expiry time for Guard/Contention
-             Resolution timers */
-
-   uint32_t             ccchSduBo;   /*!<To store CCCH SDU BO if it arrives while
-              ContRes CE is transmitting or retransmitting*/
-#endif
-#ifdef EMTC_ENABLE
-   Bool            isEmtcRaCb;       /*!< 0 - Normal, 1 - EMTC */
-   Void            *emtcRaInfo;
-#endif
-};
-
-/**
-  * @brief
-  * Carries the Error information.
-  */
-struct rgSchErrInfo
-{
-   uint8_t    errType;    /*!< Error Type */
-   uint16_t   errCause;   /*!< Cause of Error */
-};
-
-/* Global Variables */
-#ifdef LTE_TDD
-
-#ifdef LTEMAC_SPS
-uint8_t rgSchTddSpsDlMaxRetxTbl[RGSCH_MAX_TDD_UL_DL_CFG]; 
-#endif
-typedef uint8_t RgSchTddUlDlSubfrmTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddUlDlSubfrmTbl rgSchTddUlDlSubfrmTbl;
-
-typedef struct rgSchTddSplSubfrmInfo RgSchTddSplSubfrmInfoTbl[RGSCH_MAX_TDD_SPL_SUBFRM_CFG];
-RgSchTddSplSubfrmInfoTbl rgSchTddSplSubfrmInfoTbl;
-
-typedef struct rgSchTddDlAscSetIdxK RgSchTddDlAscSetIdxKTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddDlAscSetIdxKTbl rgSchTddDlAscSetIdxKTbl;
-/* ccpu00132282 */
-RgSchTddDlAscSetIdxKTbl rgSchTddDlHqPucchResCalTbl;
-
-typedef uint8_t RgSchTddPhichMValTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddPhichMValTbl rgSchTddPhichMValTbl;
-
-typedef uint8_t RgSchTddKPhichTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddKPhichTbl rgSchTddKPhichTbl;
-
-typedef RgSchTddPhichOffInfo RgSchTddPhichOffInfoTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-
-typedef uint8_t RgSchTddUlAscIdxKDashTbl[RGSCH_MAX_TDD_UL_DL_CFG-1][RGSCH_NUM_SUB_FRAMES];
-RgSchTddUlAscIdxKDashTbl rgSchTddUlAscIdxKDashTbl;
-
-#ifdef LTEMAC_SPS
-typedef uint8_t RgSchTddInvDlAscSetIdxTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddInvDlAscSetIdxTbl rgSchTddInvDlAscSetIdxTbl;
-#endif
-
-typedef uint8_t RgSchTddPuschTxKTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddPuschTxKTbl rgSchTddPuschTxKTbl;
-
-typedef uint8_t RgSchTddUlNumHarqProcTbl[RGSCH_MAX_TDD_UL_DL_CFG];
-RgSchTddUlNumHarqProcTbl rgSchTddUlNumHarqProcTbl;
-
-typedef uint8_t RgSchTddDlNumHarqProcTbl[RGSCH_MAX_TDD_UL_DL_CFG];
-RgSchTddDlNumHarqProcTbl rgSchTddDlNumHarqProcTbl;
-
-/* Number of ACK/NACK Feedback to be stored based on UL-DL Configuration Index */
-typedef uint8_t RgSchTddANFdbkMapTbl[RGSCH_MAX_TDD_UL_DL_CFG];
-RgSchTddANFdbkMapTbl rgSchTddANFdbkMapTbl;
-
-/* Number of UL subframes */
-typedef RgSchTddSubfrmInfo RgSchTddMaxUlSubfrmTbl[RGSCH_MAX_TDD_UL_DL_CFG];
-RgSchTddMaxUlSubfrmTbl rgSchTddMaxUlSubfrmTbl;
-
-/* Number of UL subframes */
-typedef uint8_t RgSchTddNumUlSubfrmTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddNumUlSubfrmTbl rgSchTddNumUlSubfrmTbl;
-
-/* Number of low UL subframes Indices*/
-typedef uint8_t RgSchTddLowUlSubfrmIdxTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddLowUlSubfrmIdxTbl rgSchTddLowUlSubfrmIdxTbl;
-
-/* Number of high UL subframes Indices*/
-typedef uint8_t RgSchTddHighUlSubfrmIdxTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddHighUlSubfrmIdxTbl rgSchTddHighUlSubfrmIdxTbl;
-
-/* Number of low DL subframes Indices*/
-typedef uint8_t RgSchTddLowDlSubfrmIdxTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddLowDlSubfrmIdxTbl rgSchTddLowDlSubfrmIdxTbl;
-
-/* Number of high DL subframes Indices*/
-typedef uint8_t RgSchTddHighDlSubfrmIdxTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddHighDlSubfrmIdxTbl rgSchTddHighDlSubfrmIdxTbl;
-
-/* Number of DL subframes and Special subframes with DwPTS */
-typedef uint8_t RgSchTddNumDlSubfrmTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddNumDlSubfrmTbl rgSchTddNumDlSubfrmTbl;
-
-/* Number of DL subframes and Special subframes with DwPTS */
-typedef RgSchTddSubfrmInfo RgSchTddMaxDlSubfrmTbl[RGSCH_MAX_TDD_UL_DL_CFG];
-RgSchTddMaxDlSubfrmTbl rgSchTddMaxDlSubfrmTbl;
-
-typedef uint8_t RgSchTddMsg3SubfrmTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddMsg3SubfrmTbl rgSchTddMsg3SubfrmTbl;
-#ifdef LTEMAC_SPS
-typedef RgSchTddMsg3SubfrmTbl RgSchTddSpsUlRsrvTbl;
-RgSchTddMsg3SubfrmTbl rgSchTddSpsUlRsrvTbl;
-#endif
-
-typedef uint8_t RgSchTddRlsDlSubfrmTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-RgSchTddRlsDlSubfrmTbl rgSchTddRlsDlSubfrmTbl;
-
-
-uint8_t rgSchTddPucchTxTbl[RGSCH_MAX_TDD_UL_DL_CFG][RGSCH_NUM_SUB_FRAMES];
-
-#endif
-#ifdef LTE_ADV
-RgSchCellCb* rgSchUtlGetCellCb ARGS((
-Inst         inst,
-uint16_t          cellId
-));
-
-Void rgSCHSCellDlUeReset ARGS((
-RgSchCellCb                *cell,
-RgSchUeCb                  *ue
-));
-
-Void rgSCHSCellDlLcCfg ARGS((
-RgSchCellCb                *cell,
-RgSchUeCb                  *ue,
-RgSchDlLcCb                *svc
-));
-
-Void rgSCHSCellDlLcDel ARGS((
-RgSchCellCb                *cell,
-RgSchUeCb                  *ue,
-RgSchDlLcCb                *svc
-));
-
-Void rgSCHSCellDlDedBoUpd ARGS((
-RgSchCellCb                *cell,
-RgSchUeCb                  *ue,
-RgSchDlLcCb                *svc
-));
-
-Void rgSCHSCellSchdActDeactCe ARGS((
-RgSchUeCb         *ueCb,
-RgSchDlHqTbCb     *tbInfo
-));
-
-Void rgSCHSCellAddToActDeactLst ARGS((
-RgSchCellCb                *cell,
-RgSchUeCb                  *ue
-));
-
-Void rgSCHSCellRmvFrmActLst ARGS((
-RgSchCellCb                *cell,
-RgSchUeCb                  *ue
-));
-S16 rgSCHSCellIsActive ARGS((
-RgSchCellCb                *cell,
-RgSchUeCb                  *ue
-));
-
-
-
-Void rgSCHSCellHndlFdbkInd ARGS((
-RgSchDlHqProcCb   *hqP,
-uint8_t                tbIdx,
-uint8_t                fdbk,
-Bool              maxHqRetxReached
-));
-
-Void rgSCHSCellDeactTmrExpry ARGS((
-RgSchUeCellInfo *sCell
-));
-
-S16 rgSCHSCellTrigActDeact ARGS((
-RgSchCellCb  *cell,
-RgSchUeCb    *ueCb,
-uint8_t            sCellIdx,
-uint8_t            action
-));
-
-S16 rgSCHSCellDelUe ARGS((
-RgSchCellCb  *cellCb,
-RgSchUeCb    *ueCb
-));
-
-Bool rgSCHIsActvReqd ARGS ((
-RgSchCellCb    *cell,
-RgSchUeCb      *ue
-));
-
-Void rgSCHSCellSelectAndActDeAct ARGS ((
-RgSchCellCb  *PCell,
-RgSchUeCb    *ueCb,
-uint8_t           action
-));
-
-S16 rgSCHSCellPCqiCfg ARGS((
-RgSchCellCb  *priCellCb,
-RgSchCellCb  *secCellCb,
-RgSchUeCb    *ueCb,
-RgrUePrdDlCqiCfg  *cqiCfg,
-CmLteUeCategory   ueCat,
-uint8_t            sCellIdx
-));
-
-Void rgSCHUtlSndUeSCellDel2Mac ARGS ((
-RgSchCellCb    *cell,
-CmLteRnti      rnti
-));
-
-uint8_t rgSCHUtlGetMaxTbSupp ARGS ((
-RgrTxMode txMode
-));
-#endif/*LTE_ADV*/
-
-/* APIs exposed by TMR module */
-Void rgSCHTmrStartTmr ARGS((
-         RgSchCellCb *cellCb,
-         Ptr         cb,
-         S16         tmrEvnt,
-         uint32_t    tmrVal));
-
-Void rgSCHTmrStopTmr ARGS((
-         RgSchCellCb *cellCb,
-         S16         tmrEvnt,
-         Ptr         cb));
-
-Void rgSCHTmrProcTmr ARGS((
-         Ptr         cb,
-         S16         tmrEvnt));
-
-/* APIs exposed by TOM */
-
-S16 rgSCHTomRaReqInd ARGS((
-         RgSchCellCb     *cell,
-         TfuRaReqIndInfo *raReqInd));
-
-S16 rgSCHTomPucchDeltaPwrInd ARGS((
-         RgSchCellCb           *cell,
-         TfuPucchDeltaPwrIndInfo *pucchDeltaPwr));
-
-S16 rgSCHTomUlCqiInd ARGS((
-         RgSchCellCb     *cell,
-         TfuUlCqiIndInfo *ulCqiInd));
-
-S16 rgSCHTomSrInd ARGS((
-         RgSchCellCb     *cell,
-         TfuSrIndInfo    *srInd));
-
-S16 rgSCHTomDlCqiInd ARGS((
-         RgSchCellCb     *cell,
-         TfuDlCqiIndInfo *dlCqiInd));
-/* Added changes of TFU_UPGRADE */
-#ifdef TFU_UPGRADE
-S16 rgSCHTomRawCqiInd ARGS
-((
-RgSchCellCb     *cell,
-TfuRawCqiIndInfo* rawCqiInd
-));
-
-S16 rgSCHTomSrsInd ARGS
-((
-RgSchCellCb     *cell,
-TfuSrsIndInfo* srsInd
-));
-
-#endif
-
-S16 rgSCHTomDoaInd ARGS((
-         RgSchCellCb     *cell,
-         TfuDoaIndInfo   *doaInd));
-S16 rgSCHTomCrcInd ARGS((
-         RgSchCellCb       *cell,
-         TfuCrcIndInfo *crcInd));
-
-S16 rgSCHTomHarqAckInd ARGS((
-         RgSchCellCb       *cell,
-         TfuHqIndInfo      *harqAckInd));
-
-S16 rgSCHTomTimingAdvInd ARGS((
-         RgSchCellCb         *cell,
-         TfuTimingAdvIndInfo *timingAdvInd));
-
-
-/*
- * APIs exposed by LMM
- */
-S16 rgSCHLmmStartTmr ARGS ((Inst instId, S16 tmrEvnt,
-         uint32_t tmrVal, PTR cb));
-S16 rgSCHLmmStopTmr ARGS((Inst instId, S16 tmrEvnt, PTR cb));
-S16 rgSCHLmmTmrExpiry ARGS((PTR cb, S16 tmrEvnt));
-/* This function invokes a Control Confirmation to the LM from scheduler. */
-S16 rgSCHLmmBndCfm ARGS((Pst *pst, SuId suId, uint8_t status));
-S16 schActvTmr ARGS((Ent entity, Inst inst));
-/* To send a Unsolicited Status Indication to Layer Manager */
-S16 rgSCHLmmStaInd ARGS((Inst instId, uint16_t category, uint16_t event,
-                          uint16_t cause, RgUstaDgn *dgn));
-S16 schActvTsk ARGS((Pst *pst, Buffer *mBuf));
-Void SchFillCfmPst ARGS((Pst    *reqPst,Pst *cfmPst,RgMngmt  *cfm));
-uint16_t SchInstCfg ARGS((RgCfg    *cfg, Inst inst));
-Void printSchCellInfo ARGS((Void));
-Void rgSCHLmmGenCntrl ARGS((RgMngmt *cntrl,RgMngmt  *cfm,Pst *cfmPst));
-Void rgSCHLmmSapCntrl ARGS((RgMngmt *cntrl,RgMngmt *cfm,Pst *cfmPst));
-
-#ifdef EMTC_ENABLE
-S16 rgSCHCfgEmtcCellCfg ARGS ((RgSchCellCb   *cell,
-         RgrEmtcCellCfg *emtcCellCfg));
-S16 rgSCHCfgVldtRgrEmtcCellCfg ARGS ((RgrCellCfg *cellCfg));
-
-Void rgSchTomTtiEmtcSched ARGS((RgSchCellCb        *cell));
-S16 rgSCHCfgVldtEmtcUeCfg ARGS((RgSchCellCb *cell, RgrUeEmtcCfg *emtcUeCfg));
-S16 rgSCHUtlUpdUeEmtcInfo ARGS((RgSchCellCb *cell, RgrUeCfg *ueCfg, RgSchUeCb *ueCb));
-S16 rgSCHEmtcCellDel ARGS((RgSchCellCb        *cell));
-S16 rgSCHEmtcUeDel ARGS((RgSchCellCb *cell, RgSchUeCb *ue));
-S16 rgSCHEmtcHdFddUeCfg ARGS((RgSchCellCb  *cellCb,RgSchUeCb *ueCb,Bool hdFddEnbl));
-
-#endif
-/*
- * APIs exposed by CFG module
- */
-S16 rgSCHCfgVldtRgrCellCfg ARGS((Inst inst, RgrCellCfg  *cellCfg,
-      RgSchCellCb *cell, RgSchErrInfo *errInfo));
-S16 rgSCHCfgRgrCellCfg ARGS((RgSchCb *instCb, SpId spId,
-      RgrCellCfg *cellCfg, RgSchErrInfo *errInfo));
-S16 rgSCHCfgRgrSchedEnbCfg ARGS((Inst inst, SpId spId,
-      RgrSchedEnbCfg *schedEnbCfg, RgSchErrInfo *errInfo));
-S16 rgSCHCfgVldtRgrCellRecfg ARGS((Inst inst, RgrCellRecfg *cellRecfg,
-      RgSchCellCb  **cell, RgSchErrInfo *errInfo));
-S16 rgSCHCfgRgrCellRecfg ARGS((RgSchCellCb *cell, RgrCellRecfg *cellRecfg,
-      RgSchErrInfo *errInfo));
-
-S16 rgSCHCfgVldtRgrUeCfg ARGS((Inst inst, RgrUeCfg  *ueCfg,
-      RgSchCellCb  **cell, RgSchErrInfo *errInfo));
-S16 rgSCHCfgRgrUeCfg ARGS((RgSchCellCb  *cell, RgrUeCfg  *ueCfg,
-      RgSchErrInfo  *errInfo));
-S16 rgSCHCfgVldtRgrUeRecfg ARGS((Inst inst, RgrUeRecfg *ueRecfg,
-      RgSchCellCb **cell, RgSchUeCb **ue, RgSchErrInfo *errInfo));
-S16 rgSCHCfgRgrUeRecfg ARGS((RgSchCellCb *cell, RgSchUeCb *ue, RgrUeRecfg
-      *ueRecfg, RgSchErrInfo *errInfo));
-
-S16 rgSCHCfgVldtRgrLcCfg ARGS((Inst inst, RgrLchCfg *lcCfg,
-      RgSchCellCb **cell, RgSchUeCb **ue, RgSchErrInfo  *errInfo));
-S16 rgSCHCfgRgrLchCfg ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-      RgrLchCfg *lcCfg, RgSchErrInfo *errInfo));
-S16 rgSCHCfgVldtRgrLchRecfg ARGS((Inst inst, RgrLchRecfg *lcRecfg,
-      RgSchCellCb **cell, RgSchUeCb **ue, RgSchDlLcCb **dlLc,
-      RgSchErrInfo *errInfo));
-S16 rgSCHCfgRgrLchRecfg ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         RgSchDlLcCb *dlLc, RgrLchRecfg *lcRecfg, RgSchErrInfo *errInfo));
-
-S16 rgSCHCfgVldtRgrLcgRecfg ARGS ((Inst inst,RgrLcgRecfg *lcgRecfg,
-         RgSchCellCb *cell,RgSchUeCb **ue,RgSchErrInfo *errInfo ));
-S16 rgSCHCfgVldtRgrLcgCfg ARGS ((Inst inst,RgrLcgCfg *lcgCfg,
-         RgSchCellCb **cell,RgSchUeCb **ue,RgSchErrInfo *errInfo ));
-S16 rgSCHCfgVldtRgrSchedEnbCfg ARGS ((Inst inst, 
-         RgrSchedEnbCfg *schedEnbCfg, RgSchErrInfo *errInfo ));
-S16 rgSCHCfgRgrLcgCfg ARGS ((RgSchCellCb *cell,RgSchUeCb *ue,
-         RgrLcgCfg *lcgCfg,RgSchErrInfo *errInfo ));
-S16 rgSCHCfgRgrLcgRecfg ARGS ((RgSchCellCb *cell,RgSchUeCb *ue,
-         RgrLcgRecfg *lcgRecfg,RgSchErrInfo *errInfo));
-
-S16 rgSCHCfgVldtRgrUeReset ARGS((Inst inst, RgrRst *reset, RgSchCellCb *cell,
-         RgSchUeCb **ue,RgSchErrInfo     *errInfo));
-S16 rgSCHCfgRgrUeReset ARGS((RgSchCellCb *cell,RgSchUeCb *ue,RgrRst *reset,
-         RgSchErrInfo   *errInfo));
-
-S16 rgSCHCfgRgrCellDel ARGS((RgSchCellCb *cell, RgrDel *cellDelInfo,
-      RgSchErrInfo *errInfo));
-S16 rgSCHCfgRgrUeDel ARGS((RgSchCellCb *cell, RgrDel *ueDelInfo,
-      RgSchErrInfo *errInfo));
-S16 rgSCHCfgRgrLcDel ARGS((RgSchCellCb *cell, RgrDel *lcDelInfo,
-      RgSchErrInfo *errInfo));
-S16 rgSCHCfgRgrLcgDel ARGS ((RgSchCellCb *cell,RgrDel *lcDelInfo,
-         RgSchErrInfo *errInfo));
-Void rgSCHCfgFreeCellCb ARGS((RgSchCellCb *cell));
-/* Added for SI Enhancement*/
-#ifdef RGR_SI_SCH
-S16 rgSCHCfgVldtRgrSiCfg ARGS(( Inst inst, RgrSiCfgReqInfo *siCfg,
-                    RgSchCellCb      *cell, RgSchErrInfo *errInfo));
-S16 rgSCHGomHndlSiCfg ARGS(( Region   reg, Pool   pool,
-                  RgSchCb       *instCb, SpId    spId,
-                  RgrCfgTransId transId, RgrSiCfgReqInfo *cfgReqInfo));
-S16 rgSCHUtlRgrSiCfgCfm ARGS ((Inst inst, SpId spId,
-                                  RgrCfgTransId transId,uint8_t status));
-
-S16 rgSCHGomHndlWarningSiCfg ARGS(( Region   reg, Pool   pool,
-                  RgSchCb       *instCb, SpId    spId, RgrCfgTransId transId,
-                  RgrWarningSiCfgReqInfo *warningSiCfgReqInfo));
-
-Void rgSCHGomHndlWarningSiStopReq ARGS(( Region   reg, Pool   pool,
-                  RgSchCb       *instCb, uint8_t            siId, 
-                  RgrCfgTransId transId, SpId    spId));
-
-S16 rgSCHUtlRgrWarningSiCfgCfm ARGS ((Inst inst, SpId spId, uint8_t siId,
-                                  RgrCfgTransId transId,uint8_t status));
-#endif /* RGR_SI_SCH */
-/* LTE_ADV_FLAG_REMOVED_START */
-S16 rgSchDSFRRntpInfoInit ARGS ((TknStrOSXL *rntpPtr, RgSchCellCb  *cell,
-                                           uint16_t bw));
-S16 rgSchDSFRRntpInfoFree ARGS ((TknStrOSXL *rntpPtr, RgSchCellCb  *cell,
-                                           uint16_t bw));
-S16 rgSchUpdtRNTPInfo ARGS ((RgSchCellCb *cell, RgSchDlSf  *sf,
-                                RgrLoadInfReqInfo       *loadInfReq));
-S16 rgSCHCfgVldtRgrLoadInf ARGS(( Inst inst, RgrLoadInfReqInfo *loadInfReq,
-                    RgSchCellCb      *cell, RgSchErrInfo *errInfo));
-S16 rgSCHGomHndlLoadInf ARGS(( Region   reg, Pool   pool,
-                    RgSchCb       *instCb, SpId    spId,
-                    RgrCfgTransId transId, RgrLoadInfReqInfo *cfgReqInfo));
-/* LTE_ADV_FLAG_REMOVED_END */
-
-/*
- * APIs exposed by GOM module
- */
-S16 rgSCHGomHndlCfg ARGS((Pst *pst, RgSchCb *instCb,
-                            RgrCfgTransId transId, RgrCfgReqInfo *cfgReqInfo));
-S16 rgSCHGomTtiHndlr ARGS((RgSchCellCb *cell, SpId spId));
-
-
-/*
- * APIs exposed by RAM module
- */
-S16 rgSCHRamVldtUeCfg ARGS((
-RgSchCellCb  *cell,
-RgrUeCfg     *ueCfg
-));
-S16 rgSCHRamProcRaReq     ARGS((uint8_t raReqCnt, RgSchCellCb *cell, CmLteRnti raRnti,
-                                    TfuRachInfo  *raReqInd,
-                                    CmLteTimingInfo timingInfo, 
-                                    RgSchUeCb *ue,
-                                    RgSchErrInfo *err));
-S16 rgSCHRamCreateRaCb ARGS((RgSchCellCb *cell, RgSchRaCb **raCb,
-                                    RgSchErrInfo *err));
-S16 rgSCHRamRgrUeCfg      ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-                                    RgSchRaCb *raCb, RgSchErrInfo *err));
-S16 rgSCHRamProcMsg3      ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-                                    RgSchRaCb *raCb, RgInfUeDatInd  *pdu,
-                                    RgSchErrInfo *err));
-S16 rgSCHRamUpdtBo        ARGS((RgSchCellCb *cell, RgSchRaCb *raCb,
-                                    RgInfCmnBoRpt *staRsp));
-S16 rgSCHRamMsg3DatInd   ARGS((RgSchRaCb *raCb));
-S16 rgSCHRamMsg3FailureInd   ARGS((RgSchRaCb *raCb));
-S16 rgSCHRamMsg4FdbkInd   ARGS((RgSchRaCb *raCb));
-S16 rgSCHRamMsg4Done      ARGS((RgSchCellCb *cell, RgSchRaCb *raCb));
-S16 rgSCHRamDelRaCb       ARGS((RgSchCellCb *cell, RgSchRaCb *raCb,
-                                    Bool rlsRnti));
-S16 rgSCHRamFreeCell      ARGS((RgSchCellCb *cell));
-S16 rgSCHRamTtiHndlr      ARGS((RgSchCellCb *cell));
-Void rgSCHCmnUlSch ARGS((RgSchCellCb *cell));
-Void rgSCHCmnDlCommonChSch ARGS ((RgSchCellCb  *cell));
-#ifdef RGR_V1
-/* Added periodic BSR timer */
-S16 rgSCHCmnBsrTmrExpry ARGS(( RgSchUeCb  *ueCb));
-#endif
-#ifdef LTE_TDD
-S16 rgSCHRamDelRaReq      ARGS((RgSchCellCb *cell,
-                                       CmLteTimingInfo timingInfo,
-                                       uint8_t raIdx));
-#endif
-S16 rgSCHRamAddToRaInfoSchdLst(RgSchCellCb   *cell, RgSchRaCb *raCb);
-
-S16 rgSCHRamRmvFrmRaInfoSchdLst(RgSchCellCb   *cell, RgSchRaCb   *raCb);
-
-/* APIs exposed by UHM */
-/* Added for Uplink Adaptive retransmission */
-Void rgSCHUhmNonadapRetx ARGS((RgSchUlHqProcCb *hqProc));
-S16 rgSCHUhmHqEntInit ARGS ((RgSchCellCb       *cellCb, RgSchUeCb *ueCb));
-#ifndef MAC_SCH_STATS
-Void rgSCHUhmProcDatInd ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         CmLteTimingInfo frm));
-#else /* MAC_SCH_STATS */
-Void rgSCHUhmProcDatInd ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         CmLteTimingInfo frm, uint8_t cqi));
-#endif
-Void rgSCHUhmProcMsg3DatInd ARGS((RgSchUlHqProcCb *hqProc));
-Void rgSCHUhmProcMsg3Failure ARGS((RgSchUlHqProcCb *hqProc));
-#ifndef MAC_SCH_STATS
-Void rgSCHUhmProcHqFailure ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         CmLteTimingInfo frm, TknUInt8 rv));
-#else /* MAC_SCH_STATS */
-Void rgSCHUhmProcHqFailure ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         CmLteTimingInfo frm, TknUInt8 rv, uint8_t cqi));
-#endif
-RgSchUlHqProcCb* rgSCHUhmGetUlHqProc ARGS((RgSchCellCb      *cell, RgSchUeCb *ue,
-         uint8_t idx));
-Void rgSCHUhmNewTx ARGS((RgSchUlHqProcCb *hqProc, uint8_t maxHqRetx,
-         RgSchUlAlloc *alloc));
-Void rgSCHUhmFreeProc ARGS((RgSchUlHqProcCb *hqProc,
-         RgSchCellCb      *cell));
-Void rgSCHUhmRetx ARGS((RgSchUlHqProcCb *hqProc, RgSchUlAlloc *alloc));
-Void rgSCHUhmRgrUeCfg ARGS(( RgSchCellCb *cellCb, RgSchUeCb *ueCb,
-          RgrUeCfg *ueCfg));
-Void rgSCHUhmRgrUeRecfg ARGS(( RgSchCellCb *cellCb, RgSchUeCb *ueCb,
-          RgrUeRecfg *ueRecfg));
-Void rgSCHUhmFreeUe ARGS(( RgSchCellCb *cellCb, RgUeUlHqCb *hqEnt));
-S16 rgSCHUhmAppendPhich ARGS(( RgSchCellCb *cellCb,
-          CmLteTimingInfo frm, uint8_t idx));
-
-/* APIs exposed by DBM */
-S16 rgSCHDbmInitCell ARGS((RgSchCellCb *cellCb));
-S16 rgSCHDbmDeInitUeCbLst ARGS(( RgSchCellCb *cellCb));
-#ifdef LTE_TDD
-S16 rgSCHDbmDeInitUeTfuPendLst ARGS(( RgSchCellCb *cellCb));
-#endif
-S16 rgSCHDbmInsUeCb ARGS(( RgSchCellCb *cellCb, RgSchUeCb *ueCb));
-RgSchUeCb* rgSCHDbmGetUeCb ARGS(( RgSchCellCb *cellCb, CmLteRnti ueId));
-RgSchUeCb* rgSCHDbmGetNextUeCb ( RgSchCellCb *cellCb, RgSchUeCb *ueCb);
-S16 rgSCHDbmDelUeCb ARGS(( RgSchCellCb *cellCb, RgSchUeCb *ueCb));
-#ifdef LTE_L2_MEAS
-S16 rgSCHDbmDelL2MUe ARGS(( RgSchCellCb *cellCb, RgSchUeCb *ueCb));
-#endif
-S16 rgSCHDbmInitUe ARGS((RgSchUeCb *ueCb));
-Void rgSCHDbmInsDlDedLcCb ARGS((RgSchUeCb *ueCb, RgSchDlLcCb *dlLcCb));
-Void rgSCHDbmDelDlDedLcCb ARGS((RgSchUeCb *ueCb, RgSchDlLcCb *dlLcCb));
-RgSchDlLcCb* rgSCHDbmGetDlDedLcCb ARGS(( RgSchUeCb *ueCb, CmLteLcId idx));
-RgSchDlLcCb* rgSCHDbmGetFirstDlDedLcCb ARGS((RgSchUeCb *ueCbb));
-RgSchDlLcCb* rgSCHDbmGetNextDlDedLcCb ARGS((RgSchUeCb *ueCb, RgSchDlLcCb *lcCb));
-RgSchClcDlLcCb* rgSCHDbmGetCmnLcCb ARGS(( RgSchCellCb *cellCb, CmLteLcId lcId));
-RgSchClcDlLcCb* rgSCHDbmGetBcchOnBch ARGS(( RgSchCellCb *cellCb ));
-RgSchClcDlLcCb* rgSCHDbmGetFirstBcchOnDlsch ARGS(( RgSchCellCb *cellCb));
-RgSchClcDlLcCb* rgSCHDbmGetSecondBcchOnDlsch ARGS(( RgSchCellCb *cellCb));
-RgSchClcDlLcCb* rgSCHDbmGetPcch ARGS(( RgSchCellCb *cellCb));
-Void rgSCHDbmInsBcchOnBch ARGS(( RgSchCellCb *cellCb, RgSchClcDlLcCb *cmnDlLcCb));
-Void rgSCHDbmInsBcchOnDlsch ARGS(( RgSchCellCb *cellCb, RgSchClcDlLcCb *cmnDlLcCb));
-Void rgSCHDbmInsPcch ARGS(( RgSchCellCb *cellCb, RgSchClcDlLcCb *cmnDlLcCb));
-
-Void rgSCHDbmInitCmnLcBoLst ARGS(( RgSchClcDlLcCb *cmnDlLcCb));
-Void rgSCHDbmInsCmnLcBoRpt ARGS(( RgSchClcDlLcCb *cmnDlLcCb,
-                                    RgSchClcBoRpt *cmnBoRpt));
-RgSchRaCb* rgSCHDbmGetRaCb ARGS(( RgSchCellCb *cellCb, CmLteRnti key));
-Void rgSCHDbmInsCrntRgrCfgElem ARGS(( RgSchCellCb *cellCb,
-                                          RgSchCfgElem *cfgElem));
-Void rgSCHDbmInsPndngRgrCfgElem ARGS(( RgSchCellCb *cellCb,
-                                          RgSchCfgElem *cfgElem));
-RgSchCfgElem* rgSCHDbmGetNextCrntRgrCfgElem ARGS(( RgSchCellCb *cellCb,
-                                                   RgSchCfgElem *cfgElem));
-RgSchCfgElem* rgSCHDbmGetNextPndngRgrCfgElem ARGS(( RgSchCellCb *cellCb,
-                                                   RgSchCfgElem *cfgElem));
-RgSchCfgElem* rgSCHDbmGetPndngRgrCfgElemByKey ARGS(( RgSchCellCb *cellCb,
-                                                   CmLteTimingInfo key));
-RgSchCfgElem* rgSCHDbmDelCrntRgrCfgElem ARGS(( RgSchCellCb *cellCb,
-                                                RgSchCfgElem *cfgElem));
-RgSchCfgElem* rgSCHDbmDelPndngRgrCfgElem ARGS(( RgSchCellCb *cellCb,
-                                                RgSchCfgElem *cfgElem));
-
-S16 rgSCHDbmRntiDbInit ARGS(( RgSchCellCb *cellCb, uint16_t rntiStart, uint16_t maxRntis));
-Void rgSCHDbmRntiDbDeInit ARGS(( RgSchCellCb *cellCb));
-RgSchRntiLnk* rgSCHDbmGetRnti ARGS(( RgSchCellCb *cellCb));
-Void rgSCHDbmRlsRnti ARGS(( RgSchCellCb *cellCb, RgSchRntiLnk *rntiLnk));
-/* Fix : syed HO UE does not have a valid ue->rntiLnk */
-Void rgSCHUtlIndRntiRls2Mac ARGS(( RgSchCellCb *cell, CmLteRnti rnti,
-                                          Bool ueIdChng, CmLteRnti newRnti));
-
-/*rg008.201 - Added support for SPS*/
-#ifdef LTEMAC_SPS
-S16 rgSCHDbmDeInitSpsUeCbLst ARGS((RgSchCellCb *cellCb));
-S16 rgSCHDbmInsSpsUeCb ARGS((RgSchCellCb *cellCb, RgSchUeCb *ueCb));
-RgSchUeCb* rgSCHDbmGetSpsUeCb ARGS((RgSchCellCb *cellCb, CmLteRnti ueId));
-RgSchUeCb* rgSCHDbmGetNextSpsUeCb ARGS((RgSchCellCb *cellCb, RgSchUeCb *ueCb));
-S16 rgSCHDbmDelSpsUeCb ARGS((RgSchCellCb *cellCb,RgSchUeCb *ueCb));
-#endif /* LTEMAC_SPS */
-
-#ifdef LTE_L2_MEAS
-/*
- * L2M APIs
- */
-S16 rgSchL2mMeasReq ARGS ((
-         RgSchCellCb       *cell,
-         LrgSchMeasReqInfo *measInfo,
-         RgSchErrInfo      err));
-S16 RgSchMacL2MeasSend ARGS
-((
-Pst*                pst,
-RgInfL2MeasSndReq *measInfo
-));
-
-S16 RgSchMacL2MeasStop ARGS
-((
-Pst*                pst,
-RgInfL2MeasStopReq *measInfo
-));
-#endif /* LTE_L2_MEAS */
-/*
- * DHM APIs
- */
-/* LTE_ADV_FLAG_REMOVED_START */
-S16 rgSchSFRTotalPoolInit ARGS((RgSchCellCb *cell, RgSchDlSf *sf));
-/* LTE_ADV_FLAG_REMOVED_END */
-Void rgSCHDhmHqPAdd2FreeLst ARGS (( RgSchDlHqProcCb *hqP));
-Void rgSCHDhmHqPAdd2InUseLst ARGS (( RgSchDlHqProcCb *hqP));
-Void rgSCHDhmHqPDelFrmFreeLst ARGS (( RgSchDlHqProcCb *hqP));
-Void rgSCHDhmHqPDelFrmInUseLst ARGS (( RgSchDlHqProcCb *hqP));
-
-RgSchDlHqEnt *rgSCHDhmHqEntInit ARGS((RgSchCellCb *cell));
-S16 rgSCHDhmGetAvlHqProc ARGS((RgSchCellCb *cell, RgSchUeCb *ue, CmLteTimingInfo timingInfo,
-                                   RgSchDlHqProcCb **hqP));
-Void rgSCHDhmHqRetx ARGS((RgSchDlHqEnt *hqE, CmLteTimingInfo timeInfo,
-                                   RgSchDlHqProcCb *hqP));
-RgSchDlHqProcCb * rgSCHDhmLastSchedHqProc ARGS((RgSchDlHqEnt *hqE));
-/* CR timer changes*/
-S16 rgSCHDhmGetCcchSduHqProc ARGS((RgSchUeCb *ueCb, CmLteTimingInfo timeInfo, 
-                                          RgSchDlHqProcCb **hqP));
-S16 rgSCHDhmGetMsg4HqProc ARGS((RgSchRaCb *raCb, CmLteTimingInfo timeInfo));
-Void rgSCHDhmRlsHqProc ARGS((RgSchDlHqProcCb *hqP));
-/* ccpu00118350 : Correcting NDI manipulation of Harq */
-Void rgSCHDhmRlsHqpTb ARGS((RgSchDlHqProcCb *hqP, uint8_t tbIdx, Bool togNdi));
-Void rgSCHUtlDlHqPTbAddToTx ARGS((RgSchDlSf *subFrm,
-RgSchDlHqProcCb *hqP, uint8_t tbIdx ));
-Void rgSCHDhmHqTbRetx ARGS(( RgSchDlHqEnt *hqE,
-CmLteTimingInfo timingInfo, RgSchDlHqProcCb *hqP, uint8_t tbIdx));
-Void rgSCHUtlDlHqPTbAddToTx ARGS((RgSchDlSf *subFrm,
-RgSchDlHqProcCb *hqP, uint8_t tbIdx ));
-Void rgSCHDhmHqTbRetx ARGS(( RgSchDlHqEnt *hqE,
-CmLteTimingInfo timingInfo, RgSchDlHqProcCb *hqP, uint8_t tbIdx));
-#ifdef RG_UNUSED
-S16 rgSCHDhmGetHqProcFrmId ARGS((RgSchCellCb *cell, RgSchUeCb *ue, uint8_t idx,
-                                    RgSchDlHqProcCb **hqP));
-#endif
-/* Changes for MIMO feature addition */
-Void rgSCHDhmSchdTa ARGS((RgSchUeCb *ueCb, RgSchDlHqTbCb *tbInfo));
-S16 rgSCHDhmHqFdbkInd ARGS((Void *cb, uint8_t cbType, RgSchCellCb *cellCb,
-                     CmLteTimingInfo timingInfo, RgTfuHqInfo *fdbk, RgInfRlsHqInfo
-                                    *rlsHqBufs,RgSchErrInfo *err));
-#ifdef EMTC_ENABLE
-S16 rgSCHDhmEmtcHqFdbkInd ARGS((Void *cb, uint8_t cbType, RgSchCellCb *cellCb,
-                     CmLteTimingInfo timingInfo, RgTfuHqInfo *fdbk, RgInfRlsHqInfo
-                                    *rlsHqBufs,RgSchErrInfo *err));
-S16 rgSCHUtlAddToResLst 
-(
- CmLListCp   *cp, 
- RgSchIotRes *iotRes
- );
-#endif
-/*CA Dev Start */
-S16 rgSCHDhmPrcFdbkForTb(RgSchCellCb *cell,RgSchUeCb  *ue,
-                               RgSchDlHqProcCb *hqP,RgSchDlSf *sf,Bool isMsg4,
-                               uint16_t rnti,uint8_t tbCnt,CmLteTimingInfo timingInfo, uint8_t isAck,
-                               RgInfRlsHqInfo *rlsHqBufs,RgSchErrInfo *err
-                               );
-/*CA Dev End */
-Void rgSCHDhmRgrUeCfg ARGS((RgSchCellCb *cellCb, RgSchUeCb *ueCb,
-                                    RgrUeCfg *ueCfg, RgSchErrInfo *err));
-Void rgSCHDhmRgrUeRecfg ARGS((RgSchCellCb *cellCb, RgSchUeCb *ueCb,
-                                    RgrUeRecfg *ueCfg, RgSchErrInfo *err));
-Void rgSCHDhmRgrCellCfg ARGS((RgSchCellCb *cellCb, RgrCellCfg *cellCfg,
-                                    RgSchErrInfo *err));
-Void rgSCHDhmRgrCellRecfg ARGS((RgSchCellCb *cellCb, RgrCellRecfg
-                                    *cellRecfg, RgSchErrInfo *err));
-Void rgSCHDhmFreeUe ARGS((RgSchUeCb *ueCb));
-Void rgSCHDhmUpdTa ARGS((RgSchCellCb *cellCb, RgSchUeCb *ueCb, uint8_t ta));
-Void rgSCHDhmProcTAExp ARGS((RgSchUeCb *ue));
-/* Changes for MIMO feature addition */
-S16 rgSCHDhmAddLcData ARGS((Inst inst, RgSchLchAllocInfo *lchData,
-                                    RgSchDlHqTbCb *tbInfo));
-S16 rgSCHDhmRlsDlsfHqProc ARGS((RgSchCellCb *cellCb, CmLteTimingInfo
-timingInfo));
-
-#ifdef LTE_TDD
-S16 rgSCHDhmTddRlsSubFrm ARGS((RgSchCellCb *cell, CmLteTimingInfo uciTimingInfo));
-S16 rgSCHCfgVldtTddDrxCycCfg ARGS((RgSchCellCb  *cell, uint16_t drxCycle, 
-                                    uint8_t onDurTmr, uint16_t offSet));
-#endif
-/* Added support for SPS*/
-#ifdef LTEMAC_SPS
-S16 rgSCHDhmGetHqProcFrmId ARGS((
-RgSchCellCb           *cell,
-RgSchUeCb             *ue,
-uint8_t               idx,
-RgSchDlHqProcCb       **hqP
-));
-#endif /* LTEMAC_SPS */
-/* Freeing up the HARQ proc blocked for
- * indefinite time in case of Retx */
-S16 rgSCHDhmDlRetxAllocFail ARGS((
-RgSchUeCb        *ue,
-RgSchDlHqProcCb  *proc
-));
-/* MS_WORKAROUND for ccpu00122893 temp fix Incorrect HqProc release was done instead of
- * a Harq Entity reset. Fixing the same */
-Void rgSCHDhmHqEntReset ARGS((
-   RgSchDlHqEnt      *hqE
-));
-/* Measurement GAP and ACK NACK */
-
-S16 rgSCHMeasGapANRepUeCfg ARGS((
-RgSchCellCb         *cell,
-RgSchUeCb           *ue,
-RgrUeCfg            *ueCfg
-));
-S16 rgSCHMeasGapANRepUeRecfg ARGS((
-RgSchCellCb         *cell,
-RgSchUeCb           *ue,
-RgrUeRecfg          *ueRecfg
-));
-/* ccpu00133470- Added extra argument to identify UE DEL*/
-Void rgSCHMeasGapANRepUeDel ARGS((
-RgSchCellCb         *cell,
-RgSchUeCb           *ue,
-Bool                isUeDel
-));
-S16 rgSCHMeasGapANRepTtiHndl ARGS((
-RgSchCellCb         *cell
-));
-S16 rgSCHMeasGapANRepGetDlInactvUe ARGS((
-RgSchCellCb         *cell,
-CmLListCp           *dlInactvUeLst
-));
-S16 rgSCHMeasGapANRepGetUlInactvUe ARGS((
-RgSchCellCb         *cell,
-CmLListCp           *ulInactvUeLst
-));
-Void rgSCHMeasGapANRepDlInactvTmrExpry ARGS((
-RgSchUeCb           *ue,
-uint8_t              tmrEvnt
-));
-Void rgSCHMeasGapANRepUlInactvTmrExpry ARGS((
-RgSchUeCb           *ue,
-uint8_t             tmrEvnt
-));
-Void rgSCHMeasGapANRepTmrExpry ARGS((
-RgSchUeCb           *ue
-));
-Void rgSCHAckNakRepTmrExpry ARGS((
-RgSchUeCb           *ue
-));
-Void rgSCHAckNakRepSndHqFbkRcpReq ARGS((
-RgSchCellCb         *cell,
-RgSchDlSf           *dlSf,
-CmLteTimingInfo     timingInfo));
-
-Void rgSCHAckNakRepAddToQ ARGS((
-RgSchCellCb       *cell,
-RgSchDlSf         *crntDlSf));
-
-/*
- * SCH Util APIs
- */
-#ifdef LTEMAC_SPS
-Void rgSCHUtlHdlCrcInd ARGS((
-RgSchCellCb     *cell,
-RgSchUeCb       *ue,
-CmLteTimingInfo timingInfo
-));
-#endif
-
-#ifdef LTE_L2_MEAS
- S16 rgSCHUtlValidateMeasReq ARGS ((RgSchCellCb *cellCb,
-         LrgSchMeasReqInfo *schL2MeasInfo,
-         RgSchErrInfo      *err
-         ));
-S16 rgSchL2mSndCfm ARGS((Pst   *pst,
-         RgSchL2MeasCb   *measCb,
-         LrgSchMeasReqInfo *measInfo,
-         Bool              isErr
-));
- S16 rgSchFillL2MeasCfm ARGS((
-         RgSchCellCb       *cell,
-         RgSchL2MeasCb     *measCb,
-         LrgSchMeasCfmInfo *cfm,
-         uint32_t          measTime
-));
-Void rgSchL2mFillCfmPst ARGS((
-         Pst    *pst,
-         Pst    *cfmPst,
-         LrgSchMeasReqInfo *measInfo
-));
-S16 rgSCHL2Meas ARGS((
-         RgSchCellCb  *cell,
-         uint8_t      isCalrCrcInd
-));
-#endif /* LTE_L2_MEAS */
-/* Added changes of TFU_UPGRADE */
-#ifdef TFU_UPGRADE
-F64 rgSCHUtlPower ARGS
-((
-F64 x,
-F64 n
-));
-
- uint32_t rgSCHUtlParse ARGS
-  ((
- uint8_t *buff,
- uint8_t startPos,
- uint8_t endPos,
- uint8_t buffSize
- ));
-
-  uint8_t rgSCHUtlFindDist ARGS
-((
-uint16_t    crntTime,
-uint16_t    tempIdx
-));
-#endif
-Bool rgSCHUtlPdcchAvail ARGS((RgSchCellCb *cell, RgSchPdcchInfo
-        *pdcchInfo, CmLteAggrLvl aggrLvl, RgSchPdcch **pdcch));
-Void rgSCHUtlPdcchPut ARGS((RgSchCellCb *cell, RgSchPdcchInfo *pdcchInfo,
-        RgSchPdcch *pdcch));
-#ifdef LTE_TDD
-/* Changes for passing iPhich at TFU interface*/
-S16 rgSCHUtlAddPhich  ARGS((RgSchCellCb *cellCb, CmLteTimingInfo frm,
-         uint8_t hqFeedBack, uint8_t nDmrs, uint8_t rbStart, uint8_t iPhich));
-#else
-S16 rgSCHUtlAddPhich  ARGS((RgSchCellCb *cellCb, CmLteTimingInfo frm,
-         uint8_t hqFeedBack, uint8_t nDmrs, uint8_t rbStart,Bool isForMsg3));
-#endif
-RgSchDlSf* rgSCHUtlSubFrmGet ARGS((RgSchCellCb *cell,
-         CmLteTimingInfo frm));
-Void rgSCHUtlSubFrmPut ARGS((RgSchCellCb *cell, RgSchDlSf *sf));
-uint8_t rgSCHUtlLog32bitNbase2 ARGS((uint32_t n));
-/* Added support for SPS*/
-
-
-#ifdef LTEMAC_SPS
-RgSchDlHqProcCb * rgSCHDhmSpsDlGetHqProc ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-CmLteTimingInfo  timingInfo));
-#endif
-#ifdef LTE_TDD
-uint8_t rgSCHUtlCalcNCce ARGS((uint8_t bw, RgrPhichNg ng, uint8_t cfi, uint8_t mPhich,
-                                 uint8_t numAntna, Bool isEcp));
-#else
-uint8_t rgSCHUtlCalcNCce ARGS((uint8_t bw, RgrPhichNg ng, uint8_t cfi, uint8_t numAntna, Bool
-isEcp));
-#endif
-#ifdef LTE_TDD
-/* Changes for passing iPhich at TFU interface*/
-S16 rgSCHUtlGetPhichInfo ARGS((RgSchUlHqProcCb *hqProc, uint8_t *rbStartRef,
-         uint8_t *nDmrsRef, uint8_t *iPhich));
-#else
-S16 rgSCHUtlGetPhichInfo ARGS((RgSchUlHqProcCb *hqProc, uint8_t *rbStartRef,
-         uint8_t *nDmrsRef));
-#endif
-/*  Added changes of TFU_UPGRADE */
-#ifndef TFU_UPGRADE
-/* To include the length and ModOrder in DataRecp Req. */
-/* Updating NDI and HARQ proc Id */
-S16 rgSCHUtlAllocRcptInfo ARGS((RgSchUlAlloc *alloc, CmLteRnti *rnti,
-           uint8_t *iMcsRef, uint8_t *rbStartRef, uint8_t *numRbRef, uint8_t *rvRef, uint16_t *size,
-           TfuModScheme *modType,Bool *isRtx,
-uint8_t *nDmrs,
-Bool *ndi,
-uint8_t *hqPId));
-#else
-S16 rgSCHUtlAllocRcptInfo ARGS((
-         RgSchCellCb             *cell,
-         RgSchUlAlloc            *alloc,
-         CmLteTimingInfo         *timeInfo,
-         TfuUeUlSchRecpInfo      *recpReq
-         ));
-#endif /* TFU_UPGRADE */
-
-S16 rgSCHUtlRgrCellCfg ARGS((RgSchCellCb *cell, RgrCellCfg *cellCfg,
-         RgSchErrInfo *errInfo));
-S16 rgSCHUtlRgrCellRecfg ARGS((RgSchCellCb *cell, RgrCellRecfg *recfg,
-         RgSchErrInfo *errInfo));
-S16 rgSCHUtlFreeCell ARGS((RgSchCellCb *cell));
-S16 rgSCHUtlRgrUeCfg ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         RgrUeCfg *cfg, RgSchErrInfo *err));
-S16 rgSCHUtlRgrLcCfg ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         RgSchDlLcCb *dl, RgrLchCfg *cfg,RgSchErrInfo *errInfo));
-S16 rgSCHUtlRgrLcDel ARGS((RgSchCellCb *cell, RgSchUeCb *ue, 
-         CmLteLcId lcId, uint8_t lcgId));
-S16 rgSCHUtlRgrLcRecfg ARGS ((RgSchCellCb *cell,RgSchUeCb *ue,
-      RgSchDlLcCb *dlLc,RgrLchRecfg *recfg,RgSchErrInfo *err));
-S16 rgSCHUtlRgrLcgCfg ARGS ((RgSchCellCb *cell,RgSchUeCb *ue,
-         RgrLcgCfg *cfg,RgSchErrInfo *errInfo));
-S16 rgSCHUtlRgrLcgRecfg ARGS ((RgSchCellCb *cell,RgSchUeCb *ue,
-         RgrLcgRecfg *recfg,RgSchErrInfo *err));
-Void rgSCHUtlRgrLcgDel ARGS ((RgSchCellCb *cell,RgSchUeCb *ue,
-         uint8_t lcgId));
-Void rgSCHUtlDlCqiInd ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         TfuDlCqiRpt *dlCqiInd, CmLteTimingInfo timingInfo));
-
-/* Added changes of TFU_UPGRADE */
-#ifdef TFU_UPGRADE
-Void rgSCHUtlRawCqiInd ARGS
-((
-RgSchCellCb        *cell,
-RgSchUeCb          *ue,
-TfuRawCqiRpt*     rawCqiRpt,
-CmLteTimingInfo    timingInfo
-));
-
-Void rgSCHUtlSrsInd ARGS
-((
-RgSchCellCb        *cell,
-RgSchUeCb          *ue,
-TfuSrsRpt*     srsRpt,
-CmLteTimingInfo    timingInfo
-));
-S16 rgSCHUtlGetCfgPerOff ARGS
-((
-RgSchPerTbl     tbl,
-uint16_t        cfgIdx, 
-uint16_t        *peri, 
-uint16_t        *offset
-));
-#endif
-
-Void rgSCHUtlDoaInd ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         TfuDoaRpt *doaInd));
-Void rgSCHUtlDlTARpt ARGS((RgSchCellCb *cell, RgSchUeCb *ue));
-/* Changes for MIMO feature addition */
-Void rgSCHUtlDlRlsSubFrm ARGS((RgSchCellCb *cell, CmLteTimingInfo subFrm));
-Void rgSCHUtlDlProcAddToRetx ARGS((RgSchCellCb *cell,
-         RgSchDlHqProcCb *hqP));
-S16 rgSCHUtlRegSch ARGS((uint8_t schIdx, RgSchdApis *apis));
-Void rgSCHUtlDlHqProcAddToTx ARGS((RgSchDlSf *subFrm, RgSchDlHqProcCb *hqP));
-/* Changes for MIMO feature addition */
-Void rgSCHUtlDlHqPTbRmvFrmTx ARGS((RgSchDlSf *subFrm,
-         RgSchDlHqProcCb *hqP, uint8_t tbIdx, Bool isRepeating));
-S16 rgSCHUtlRgrUeRecfg ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         RgrUeRecfg *recfg, RgSchErrInfo *err));
-Void rgSCHUtlFreeDlLc ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         RgSchDlLcCb *dlLc));
-Void rgSCHUtlFreeUlLc ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         RgSchUlLcCb *ulLc));
-Void rgSCHUtlFreeUe ARGS((RgSchCellCb *cell, RgSchUeCb *ue));
-Void rgSCHUtlDlDedBoUpd ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         RgSchDlLcCb *svc));
-#ifdef RG_UNUSED
-S16 rgSCHUtlUpdUlHqProc ARGS((RgSchCellCb *cell, RgSchUlHqProcCb *curProc,
-         RgSchUlHqProcCb *oldProc));
-#endif
-/* PHR handling for MSG3 */
-Void rgSCHUtlRecMsg3Alloc ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         RgSchRaCb *raCb));
-S16 rgSCHUtlContResUlGrant ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         RgSchErrInfo *err));
-S16 rgSCHUtlSrRcvd ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         CmLteTimingInfo, RgSchErrInfo *err));
-Void rgSCHUtlUpdBsrShort ARGS((RgSchCellCb *cell, RgSchUeCb *ue, uint8_t lcgId,
-         uint8_t bsr, RgSchErrInfo *err));
-Void rgSCHUtlUpdBsrTrunc ARGS((RgSchCellCb *cell, RgSchUeCb *ue, uint8_t lcgId,
-         uint8_t bsr, RgSchErrInfo *err));
-Void rgSCHUtlUpdBsrLong ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         uint8_t bsr1,uint8_t bsr2,uint8_t bsr3,uint8_t bsr4, RgSchErrInfo *err));
-S16 rgSCHUtlUpdPhr ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-         uint8_t phr, RgSchErrInfo *err));
-S16 rgSCHUtlUpdExtPhr ARGS(( RgSchCellCb  *cell, RgSchUeCb *ue,
-RgInfExtPhrCEInfo * extPhr, RgSchErrInfo *err));
-S16 rgSCHUtlDataRcvd ARGS((RgSchCellCb *cell, RgSchUeCb *ue, uint8_t numLc,
-         RgSchUlLcCb *lcArr[], uint16_t bytesArr[], RgSchErrInfo *err));
-Void rgSCHUtlUlCqiInd ARGS(( RgSchCellCb *cell, RgSchUeCb *ue,
-                                    TfuUlCqiRpt *ulCqiInfo));
-Void rgSCHUtlPucchDeltaPwrInd ARGS(( RgSchCellCb *cell, RgSchUeCb *ue,
-         S8 delta));
-Void rgSCHUtlUeReset ARGS(( RgSchCellCb *cell, RgSchUeCb *ue));
-Void rgSCHUtlUlHqProcForUe ARGS((RgSchCellCb *cell, CmLteTimingInfo frm,
-         RgSchUeCb *ue, RgSchUlHqProcCb **procRef));
-RgSchUlAlloc *rgSCHUtlFirstRcptnReq ARGS((RgSchCellCb *cell));
-RgSchUlAlloc *rgSCHUtlNextRcptnReq ARGS((RgSchCellCb *cell,
-         RgSchUlAlloc *alloc));
-RgSchUlAlloc *rgSCHUtlFirstHqFdbkAlloc ARGS((RgSchCellCb *cell, uint8_t idx));
-RgSchUlAlloc *rgSCHUtlNextHqFdbkAlloc ARGS((RgSchCellCb *cell,
-         RgSchUlAlloc *alloc, uint8_t idx));
-S16 rgSCHUtlTfuBndReq ARGS((Inst inst, SuId suId, SpId spId));
-S16 rgSCHUtlTfuUBndReq ARGS((Inst inst, RgSchLowSapCfgInfo sapCfg, Reason reason));
-#ifdef EMTC_ENABLE
-S16 rgSCHEmtcUtlResetSfAlloc ARGS((RgInfSfAlloc *sfAlloc,
-            Bool resetCmnLcInfo, Bool restAlloc));
-#endif
-S16 rgSCHUtlResetSfAlloc ARGS((RgInfSfAlloc *sfAlloc,
-            Bool resetCmnLcInfo, Bool restAlloc));
-S16 rgSCHUtlGetSfAlloc ARGS((RgSchCellCb *cell));
-S16 rgSCHUtlPutSfAlloc ARGS((RgSchCellCb *cell));
-S16  rgSCHUtlAllocSBuf  ARGS((Inst inst, Data **pData, Size size));
-/* ccpu00117052 - MOD - Passing double pointer
-for proper NULLP assignment*/
-Void rgSCHUtlFreeSBuf   ARGS((Inst inst, Data **data, Size size));
-Void rgSCHUtlFillDgnParams ARGS((Inst inst, RgUstaDgn *dgn,uint8_t dgnType));
-Void rgSCHUtlGetPstToLyr ARGS((Pst *pst,RgSchCb *schCb,Inst macInst));
-S16 rgSCHUtlFillRgInfCmnLcInfo ARGS((RgSchDlSf *sf,RgInfSfAlloc *sfAlloc,
-                                 CmLteLcId lcId, Bool sendInd));
-S16 rgSCHUtlFillRgInfRarInfo ARGS((RgSchDlSf *sf,RgInfSfAlloc *sfAlloc,RgSchCellCb *cell));
-S16 rgSCHUtlFillPdschDciInfo ARGS((TfuPdschDciInfo *pdschDci,TfuDciInfo
-        *pdcchDci));
-  /* CA dev Start */
-Void rgSCHUtlFillRgInfUeInfo ARGS((RgSchDlSf*, RgSchCellCb *cell, CmLListCp *dlDrxInactvTmrLst,
-                                          CmLListCp *dlInActvLst, CmLListCp *ulInActvLst));
-  /* CA dev End */
-S16 rgSCHUtlUpdSch ARGS((RgInfSfDatInd *subfrmInfo, RgSchCellCb *cellCb,
-               RgSchUeCb *ueCb, RgInfUeDatInd *pdu,RgSchErrInfo *err));
-S16 rgSCHUtlHndlCcchBoUpdt ARGS((RgSchCellCb *cell,RgInfCmnBoRpt *boRpt));
-S16 rgSCHUtlHndlBcchPcchBoUpdt ARGS((RgSchCellCb *cell,RgInfCmnBoRpt
-        *boUpdt));
-S16 rgSCHUtlRgrBndCfm ARGS ((Inst inst, SuId suId,uint8_t status));
-/* Added for sending TTI tick to RRM */
-#ifdef RGR_RRM_TICK
-S16 rgSCHUtlRgrTtiInd ARGS ((RgSchCellCb *cell, RgrTtiIndInfo *ttiInd));
-#endif
-S16 schSendCfgCfm ARGS ((Region reg, Pool pool, \
-         RgrCfgTransId transId, uint8_t status));
-S16 rgSCHUtlProcMsg3 ARGS((RgInfSfDatInd *subfrmInfo, RgSchCellCb  *cellCb,
-            RgSchUeCb   *ueCb, CmLteRnti  rnti,RgInfUeDatInd  *pdu,
-            RgSchErrInfo *err ));
-#ifdef RG_PHASE_2
-S16 rgSCHUtlTfuGrpPwrCntrlReq ARGS((Inst inst,S16  sapId,
-         TfuGrpPwrCntrlReqInfo *grpPwrCntrlReq));
-#endif
-S16 rgSCHUtlTfuCntrlReq ARGS((Inst  inst, S16 sapId,
-         TfuCntrlReqInfo *cntrlReq));
-S16 rgSCHUtlTfuRecpReq ARGS((Inst inst, S16  sapId,
-         TfuRecpReqInfo *recpReq));
-S16 rgSCHUtlValidateTfuSap ARGS((Inst  inst,SuId  suId));
-S16 rgSCHUtlAllocEventMem ARGS((Inst  inst,Ptr  *memPtr,Size  memSize));
-S16 rgSCHUtlGetEventMem ARGS((Ptr *ptr,Size  len,Ptr   memCpa));
-S16 rgSCHUtlGetRlsHqAlloc ARGS((RgSchCellCb *cell));
-S16 rgSCHUtlPutRlsHqAlloc ARGS((RgSchCellCb *cell));
-
-S16 rgSCHUtlDlActvtUe ARGS((RgSchCellCb *cell, RgSchUeCb *ue));
-S16 rgSCHUtlUlActvtUe ARGS((RgSchCellCb *cell, RgSchUeCb *ue));
-Void rgSCHUtlHdlUlTransInd ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-                                   CmLteTimingInfo timingInfo));
-#ifdef TFU_UPGRADE
-Void rgSCHUtlUpdACqiTrigWt ARGS((RgSchUeCb *ue,RgSchUeCellInfo *sCellInfo, uint8_t isAck));
-#endif
-/* Nprb indication at PHY for common Ch */
-/* Corrected allocation for common channels */
-S32 rgSCHUtlGetAllwdCchTbSz ARGS((uint32_t bo, uint8_t *nPrb, uint8_t *mcs
-));
-/* CR timer changes*/
-S16 rgSCHUtlUpdtBo ARGS((RgSchCellCb  *cell,
-                               RgInfCmnBoRpt     *staRsp));
-S16 rgSCHUtlAddUeToCcchSduLst ARGS(
-                          (RgSchCellCb       *cell,
-                            RgSchUeCb         *ueCb));
-#ifdef EMTC_ENABLE
-S16 rgSCHUtlAddUeToEmtcCcchSduLst ARGS(
-      (RgSchCellCb       *cell,
-       RgSchUeCb         *ueCb));
-
-S16 rgSCHRamRmvFrmEmtcRaInfoSchdLst ARGS((RgSchCellCb   *cell, RgSchRaCb *raCb));
-Void rgSCHRamEmtcDelRaCb ARGS((RgSchCellCb *cell, RgSchRaCb *raCb));
-S16 rgSCHRamEmtcUpdtBo        ARGS((RgSchCellCb *cell, RgSchRaCb *raCb,
-                                    RgInfCmnBoRpt *staRsp));
-#endif
-/* Added for SI Enhancement*/
-#ifdef RGR_SI_SCH
-Void rgSCHUtlPutSiInfo ARGS((RgSchCellCb *cell));
-Void rgSCHUtlFreeWarningSiSeg  ARGS((Region reg,Pool pool,
-                                            CmLListCp *siPduLst));
-Void rgSCHUtlFreeWarningSiPdu  ARGS((RgSchCellCb *cell));
-Buffer *rgSCHUtlGetWarningSiPdu ARGS((RgSchCellCb *cell));
-S16 rgSCHUtlGetMcsAndNPrb ARGS((RgSchCellCb *cell, uint8_t *nPrb, uint8_t *mcs, MsgLen *msgLen));
-S16 rgSCHUtlCalMcsAndNPrb ARGS((RgSchCellCb *cell, uint8_t cfgType, MsgLen msgLen, uint8_t siId));
-#endif/*RGR_SI_SCH*/
-
-#ifdef LTE_TDD
-S16 rgSCHUtlAllocUeANFdbkInfo ARGS((RgSchUeCb *ue,uint8_t servCellIdx));
-Void rgSCHUtlDelUeANFdbkInfo ARGS((RgSchUeCb *ue,uint8_t servCellIdx));
-S16 rgSCHUtlInitUeANFdbkInfo ARGS((RgSchTddANInfo *anInfo));
-RgSchTddANInfo* rgSCHUtlGetUeANFdbkInfo ARGS((RgSchUeCb *ueCb, CmLteTimingInfo *timeInfo,uint8_t servCellIdx));
-uint8_t  rgSCHUtlGetDlSfIdx ARGS((RgSchCellCb *cell, CmLteTimingInfo *timeInfo));
-Void rgSCHUtlPrachCfgInit ARGS((RgSchCellCb *cell, RgrCellCfg *cellCfg ));
-Void rgSCHUtlGetNxtDlSfInfo ARGS((CmLteTimingInfo curDlTime, RgSchCellCb  *cell, RgSchDlSf *dlSf, RgSchDlSf **nxtDlsf, CmLteTimingInfo *nxtDlTime));
-Void rgSCHUtlGetPrevDlSfInfo ARGS((RgSchCellCb * cell, CmLteTimingInfo curDlTime, CmLteTimingInfo *prevDlTime, uint8_t *numSubfrm));
-#endif
-Void rgSCHCmnDlSch ARGS
-((
-RgSchCellCb        *cell
-));
-Void rgSCHCmnSndCnsldtInfo ARGS
-((
-RgSchCellCb  *cell
-));
-Void rgSCHCmnCnsldtSfAlloc ARGS
-((
-RgSchCellCb  *cell
-));
-
-/* Added support for SPS*/
-Void rgSCHCmnDlAllocFnlz ARGS
-((
-RgSchCellCb  *cell
-));
-
-#ifdef LTEMAC_SPS
-Void rgSCHUtlDlRelPdcchFbk ARGS((
-RgSchCellCb        *cell,
-RgSchUeCb          *ue,
-Bool               isAck
-));
-
-Void rgSCHUtlDlProcAck ARGS((
-RgSchCellCb        *cell,
-RgSchDlHqProcCb    *hqP
-));
-S16 rgSCHUtlSpsRelInd ARGS((
-RgSchCellCb        *cellCb,
-RgSchUeCb          *ueCb,
-Bool               isExplRel
-));
-
-Void rgSCHCmnDlSch ARGS
-((
-RgSchCellCb        *cell
-));
-
-S16 rgSCHUtlSpsActInd ARGS((
-RgSchCellCb        *cellCb,
-RgSchUeCb          *ueCb,
-uint16_t           spsSduSize
-));
-
-Void rgSCHUtlHdlCrcFailInd ARGS((
-RgSchCellCb     *cell,
-RgSchUeCb       *ue,
-CmLteTimingInfo timingInfo
-));
-
-Void rgSCHUtlHdlCrntiCE ARGS((
-RgSchCellCb     *cell,
-RgSchUeCb       *ue
-));
-
-#endif /* LTEMAC_SPS*/
-
-/******* </AllocHolesMemMgmnt>: START *****/
-S16 rgSCHUtlUlSfInit ARGS((
-         RgSchCellCb  *cell,
-         RgSchUlSf    *sf,
-         uint8_t      idx,
-         uint8_t      maxUePerSf
-         ));
-Void rgSCHUtlUlSfDeinit ARGS((
-         RgSchCellCb *cell,
-         RgSchUlSf   *sf
-         ));
-RgSchUlAlloc *rgSCHUtlUlAllocGetHole ARGS((
-         RgSchUlSf *sf,
-         uint8_t numRb,
-         RgSchUlHole *hole
-         ));
-RgSchUlAlloc *rgSCHUtlUlAllocGetCompHole ARGS((
-         RgSchUlSf *sf,
-         RgSchUlHole *hole
-         ));
-RgSchUlAlloc *rgSCHUtlUlAllocGetPartHole ARGS((
-         RgSchUlSf *sf,
-         uint8_t numRb,
-         RgSchUlHole *hole
-         ));
-Void rgSCHUtlUlAllocRls ARGS((
-         RgSchUlSf *sf,
-         RgSchUlAlloc *alloc
-         ));
-
-/* UL_ALLOC_ENHANCEMENT */
-Void rgSCHUtlUlAllocRelease ARGS((
-         RgSchUlAlloc *alloc
-         ));
-RgSchUlAlloc *rgSCHUtlUlAllocFirst ARGS((
-         RgSchUlSf *sf
-         ));
-RgSchUlAlloc *rgSCHUtlUlAllocNxt ARGS((
-         RgSchUlSf *sf,
-         RgSchUlAlloc *alloc
-         ));
-RgSchUlHole *rgSCHUtlUlHoleFirst ARGS((
-         RgSchUlSf *sf
-         ));
-RgSchUlHole *rgSCHUtlUlHoleNxt ARGS((
-         RgSchUlSf *sf,
-         RgSchUlHole *hole
-         ));
-RgSchUlAlloc *rgSCHUtlUlAllocGetAdjNxt ARGS((
-         RgSchUlAllocDb *db,
-         RgSchUlAlloc *prv
-         ));
-RgSchUlAlloc *rgSCHUtlUlAllocGetFirst ARGS((
-         RgSchUlAllocDb *db
-         ));
-Void rgSCHUtlUlHoleAddAlloc ARGS((
-         RgSchUlSf *sf,
-         RgSchUlAlloc *alloc
-         ));
-/* UL_ALLOC_ENHANCEMENT */
-Void rgSCHUtlUlHoleAddAllocation ARGS((
-         RgSchUlAlloc *alloc
-         ));
-
-Void rgSCHUtlUlHoleJoin ARGS((
-         RgSchUlHoleDb *db,
-         RgSchUlHole *prv,
-         RgSchUlHole *nxt,
-         RgSchUlAlloc *alloc
-         ));
-Void rgSCHUtlUlHoleExtndRight ARGS((
-         RgSchUlHoleDb *db,
-         RgSchUlHole *prv,
-         RgSchUlAlloc *alloc
-         ));
-Void rgSCHUtlUlHoleExtndLeft ARGS((
-         RgSchUlHoleDb *db,
-         RgSchUlHole *nxt,
-         RgSchUlAlloc *alloc
-         ));
-Void rgSCHUtlUlHoleNew ARGS((
-         RgSchUlHoleDb *db,
-         RgSchUlAlloc *alloc
-         ));
-Void rgSCHUtlUlHoleUpdAllocLnks ARGS((
-         RgSchUlHole *hole,
-         RgSchUlAlloc *prvAlloc,
-         RgSchUlAlloc *nxtAlloc
-         ));
-Void rgSCHUtlUlHoleIns ARGS((
-         RgSchUlHoleDb *db,
-         RgSchUlHole *hole
-         ));
-Void rgSCHUtlUlHoleIncr ARGS((
-         RgSchUlHoleDb *db,
-         RgSchUlHole *hole
-         ));
-Void rgSCHUtlUlHoleDecr ARGS((
-         RgSchUlHoleDb *db,
-         RgSchUlHole *hole
-         ));
-Void rgSCHUtlUlHoleRls ARGS((
-         RgSchUlHoleDb *db,
-         RgSchUlHole *hole
-         ));
-S16 rgSCHUtlUlAllocMemInit ARGS((
-         RgSchCellCb     *cell,
-         RgSchUlAllocMem *mem,
-         uint8_t maxAllocs
-         ));
-Void rgSCHUtlUlAllocMemDeinit ARGS((
-         RgSchCellCb     *cell,
-         RgSchUlAllocMem *mem
-         ));
-S16 rgSCHUtlUlHoleMemInit ARGS((
-         RgSchCellCb    *cell,
-         RgSchUlHoleMem *mem,
-         uint8_t maxHoles,
-         RgSchUlHole **holeRef
-         ));
-Void rgSCHUtlUlHoleMemDeinit ARGS((
-         RgSchCellCb    *cell,
-         RgSchUlHoleMem *mem
-         ));
-RgSchUlAlloc *rgSCHUtlUlAllocMemGet ARGS((
-         RgSchUlAllocMem *mem
-         ));
-Void rgSCHUtlUlAllocMemRls ARGS((
-         RgSchUlAllocMem *mem,
-         RgSchUlAlloc *alloc
-         ));
-RgSchUlHole *rgSCHUtlUlHoleMemGet ARGS((
-         RgSchUlHoleMem *mem
-         ));
-Void rgSCHUtlUlHoleMemRls ARGS((
-         RgSchUlHoleMem *mem,
-         RgSchUlHole *hole
-         ));
-RgSchUlAlloc *rgSCHUtlUlGetSpfcAlloc ARGS((
-         RgSchUlSf       *sf,
-         uint8_t         startSb,
-         uint8_t         numSb
-));
-/******* </AllocHolesMemMgmnt>: END *****/
-
-/* DRX function declarations */
-S16 rgSCHDrxCellCfg ARGS((RgSchCellCb *cell, RgrCellCfg *cellCfg));
-Void rgSCHDrxCellDel ARGS((RgSchCellCb *cell));
-S16 rgSCHDrxUeCfg ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-                              RgrUeCfg *ueCfg));
-#ifdef RGR_V2
-S16 rgSCHDrxUeReCfg ARGS((RgSchCellCb *cell, RgSchUeCb *ue,
-                              RgrUeRecfg *ueCfg));
-#endif
-S16 rgSCHDrxUeDel ARGS((RgSchCellCb *cell,RgSchUeCb *ue));
-Void rgSCHDrxTtiInd ARGS ((RgSchCellCb *cell));
-
-S16 rgSCHDrxSfAlloc ARGS ((RgSchCellCb *cellCb, RgSchDlSf
-                           *dlSf));
-S16 rgSCHDrxDlTrnsFail ARGS((RgSchCellCb *cell, RgSchDlHqProcCb
-                             *dlHq));
-Void rgSCHDrxDedRa ARGS((RgSchCellCb *cellCb, RgSchUeCb* ueCb));
-S16 rgSCHDrxSrInd ARGS((RgSchCellCb *cell,RgSchUeCb *ue));
-
-Void rgSCHDrxStrtInActvTmr ARGS((RgSchCellCb *cell,
-                                       CmLListCp *ueLst,
-                                       uint8_t direction));
-S16 rgSCHUtlGetDrxSchdUesInDl ARGS((RgSchCellCb *cellCb,
-                                        RgSchUeCb       *ueCb,
-                                        RgSchDlHqProcCb *dlHq,
-                                        RgInfUeAlloc    *allocInfo,
-                                        CmLListCp       *dlDrxInactvTmrLst,
-                                        CmLListCp       *dlInActvLst,
-                                        CmLListCp       *ulInActvLst));
-Void rgSCHDrxStartHarqRTTTmr ARGS((RgSchCellCb     *cell,
-                                          RgSchDlHqProcCb *hqP,
-                                          uint8_t              tbCnt));
-Void rgSCHDrxUeHqReset ARGS((RgSchCellCb   *cell,
-                                   RgSchUeCb     *ue,
-                                   RgSchDlHqEnt  *hqE,
-                                   uint8_t       cellIdx));
-
-#ifdef TFU_UPGRADE
-#ifdef LTE_TDD
-const RgSchTddCellSpSrsSubfrmTbl rgSchTddCellSpSrsSubfrmTbl;
-#else
-const RgSchFddCellSpSrsSubfrmTbl rgSchFddCellSpSrsSubfrmTbl;
-#endif
-#endif
-
-#ifdef LTEMAC_HDFDD
-S16 rgSCHHdFddUeCfg ARGS((
-         RgSchCellCb  *cellCb,
-         RgSchUeCb *ueCb,
-         Bool hdFdd));
-S16 rgSCHHdFddUeDel  ARGS((
-         RgSchCellCb *cellCb,
-         RgSchUeCb *ueCb));
-Void rgSCHCmnHdFddPtUlMrk ARGS((
-         RgSchCellCb *cellCb));
-Void rgSCHCmnHdFddChkUlAllow ARGS((
-         RgSchCellCb *cellCb,
-         RgSchUeCb *ueCb,
-         uint8_t *flag));
-Void rgSCHCmnHdFddChkDlAllow ARGS((
-         RgSchCellCb *cellCb,
-         RgSchUeCb *ueCb,
-         Bool *flag));
-Void rgSCHCmnHdFddChkNackAllow ARGS((
-         RgSchCellCb *cellCb,
-         RgSchUeCb *ueCb,
-         CmLteTimingInfo timInfo,
-         Bool *flag));
-Void rgSCHCmnHdFddUpdULMark ARGS((
-         RgSchCellCb *cellCb,
-         RgSchUeCb *ueCb));
-Void rgSCHCmnHdFddUpdDLMark ARGS((
-         RgSchCellCb *cellCb,
-         RgSchUeCb *ueCb));
-Void rgSCHHdFddGetSfn ARGS((
-         uint16_t *sfn,
-         CmLteTimingInfo timeInfo,
-         S16 offset));
-#endif /* ifdef LTEMAC_HDFDD */
-
-/* ccpu00117452 - MOD - Changed macro name from
-   RGR_RRM_DLPWR_CNTRL to RGR_CQI_REPT */
-#ifdef RGR_CQI_REPT
-S16 rgSCHUtlRgrStaInd ARGS((
-RgSchCellCb          *cell,
-RgrStaIndInfo        *rgrSta
-));
-
-S16 rgSCHUtlFillSndStaInd ARGS((
-RgSchCellCb        *cell,
-RgSchUeCb          *ue,
-RgrStaIndInfo      *staInfo,
-uint8_t            numCqiRept
-));
-#endif /* End of RGR_CQI_REPT */
-S16 rgSCHUtlRgrUeStaInd ARGS((
-RgSchCellCb            *cell,
-RgrUeStaIndInfo        *rgrUeSta
-));
-
-S16 rgSCHUtlFillSndUeStaInd ARGS((
-RgSchCellCb        *cell,
-RgSchUeCb          *ue,
-RgrUeStaIndInfo    *ueStaInfo
-));
-
-
-/* LTE_ADV_FLAG_REMOVED_START */
-S16 rgSCHUtlRgrLoadInfInd ARGS((
-RgSchCellCb          *cell,
-RgrLoadInfIndInfo        *rgrLoadInf
-));
-/* LTE_ADV_FLAG_REMOVED_END */
-#ifdef LTE_ADV
-#ifdef TFU_UPGRADE
-TfuAckNackMode rgSchUtlGetFdbkMode ARGS((
-RgrSchFrmt1b3TypEnum fdbkType
-));
-
-TfuAckNackMode rgSchUtlGetFdbkMode ARGS((
-RgrSchFrmt1b3TypEnum fdbkType
-));
-
-#endif /*TFU_UPGRADE */
-#endif /* LTE_ADV */
-/* FIX */
-Void rgSCHUtlRlsRnti  ARGS((
-RgSchCellCb    *cellCb,
-RgSchRntiLnk   *rntiLnk,
-Bool           ueIdChngd,
-CmLteRnti      newRnti
-));
-S16 rgSCHUtlRgmBndCfm ARGS((
-Inst          instId,
-SuId          suId,
-uint8_t       status
-));
-Void rgSCHDhmDelHqEnt ARGS((
-RgSchCellCb       *cell,
-RgSchDlHqEnt      **hqE
-));
-Void rgSCHDhmAssgnUeHqEntFrmRaCb ARGS((
-RgSchUeCb       *ue,
-RgSchRaCb       *raCb
-));
- Void rgSCHUtlReTxTa ARGS((
-RgSchCellCb *cellCb, 
-RgSchUeCb *ueCb));
-/* LTE_ADV_FLAG_REMOVED_START */
-Void rgSchSFRTotalPoolFree ARGS((
-RgSchSFRTotalPoolInfo  *sfrTotalPoolInfo,
-RgSchCellCb             *cell));
-Void rgSchDSFRPwrCheck ARGS((
-RgSchDlSf               *sf,
-Bool                    *isAllUePwrHigh));
-/* LTE_ADV_FLAG_REMOVED_END */
-
-S16 rgSCHUtlUpdAvgPrbUsage ARGS((
-RgSchCellCb          *cell
-));
-
-uint8_t rgSchUtlCfg0ReTxIdx ARGS((
-RgSchCellCb    *cell,
-CmLteTimingInfo phichTime,
-uint8_t         hqFdbkIdx
-));
-
-S16 rgSCHUtlBuildNSendLcgReg ARGS((
-RgSchCellCb    *cell,
-CmLteRnti      crnti,
-uint8_t             lcgId,
-Bool           isGbr
-));
-
-Void rgSCHUtlPdcchInit ARGS((
-         RgSchCellCb *cell,
-         RgSchDlSf   *subFrm,
-         uint16_t          nCce));
-Void rgSCHDynCfiReCfg ARGS((
-         RgSchCellCb   *cell,
-         Bool          isDynCfiEnb
-));
-Void rgSchUtlCalcTotalPrbReq ARGS((RgSchCellCb  *cell,
-                                          RgSchUeCb    *ue,
-                                          uint32_t           bo,
-                                          uint32_t          *prbReqrd));
-uint8_t rgSchUtlGetNumSbs ARGS((
-RgSchCellCb    *cell,
-RgSchUeCb      *ue,
-uint32_t       *numSbs
-));
-
-uint8_t rgSchUtlSortInsUeLst ARGS((
-RgSchCellCb    *cell,
-CmLListCp    *ueLst,
-CmLList      *node,
-uint8_t      subbandRequired
-));
-S16 rgSCHUtlResetCpuOvrLdState ARGS((
- RgSchCellCb *cell, 
- uint8_t      cnrtCpuOvrLdIns
-));
-Void rgSCHUtlCpuOvrLdAdjItbsCap ARGS((
- RgSchCellCb *cell
-));
-#ifdef TFU_UPGRADE
-S16 rgSCHTomUtlPcqiSbCalcBpIdx ARGS((
-CmLteTimingInfo  crntTimInfo,
-RgSchUeCb        *ueCb,
-RgSchUePCqiCb   *cqiCb
-));
-
-#ifdef LTE_ADV
-S16 rgSCHUtlSCellHndlCqiCollsn ARGS((
-RgSchUePCqiCb     *cqiCb
-));
-
-S16 rgSCHUtlSCellHndlRiCollsn ARGS((
-RgSchUePCqiCb     *cqiCb
-));
-   
-#endif/*LTE_ADV*/
-#endif/*TFU_UPGRADE*/
-
-Void rgSCHTomUtlGetTrigSet ARGS((
-   RgSchCellCb       *cell,
-   RgSchUeCb        *ueCb,
-   uint8_t           cqiReq,
-   uint8_t           *triggerSet
-));
-
-Void rgSCHUtlUpdUeDciSize ARGS((
-RgSchCellCb      *cell,
-RgSchUeCb        *ueCb,
-Bool             isCsi2Bit
-));
-Void rgSCHUtlCalcDciSizes ARGS((
-RgSchCellCb       *cell
-));
-
-Void rgSchCmnPreDlSch ARGS ((
- RgSchCellCb        **cell,
- uint8_t            nCell,
- RgSchCellCb        **cellLst
- ));
-
-Void rgSchCmnPstDlSch ARGS ((
- RgSchCellCb        *cell
- ));
-
-uint8_t rgSCHCmnGetBiIndex ARGS ((
-RgSchCellCb   *cell,
-uint32_t      ueCount
-));
-
-uint8_t SchSendCfgCfm(Pst *pst, RgMngmt *cfm);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* __SCH__ */
-
-\f
-/**********************************************************************
-         End of file
-**********************************************************************/