b1fce636a9613ba0e4d5dfb50340a4a1dc0c3fdc
[o-du/l2.git] / src / cm / lrg.x
1 /*******************************************************************************
2 ################################################################################
3 #   Copyright (c) [2017-2019] [Radisys]                                        #
4 #                                                                              #
5 #   Licensed under the Apache License, Version 2.0 (the "License");            #
6 #   you may not use this file except in compliance with the License.           #
7 #   You may obtain a copy of the License at                                    #
8 #                                                                              #
9 #       http://www.apache.org/licenses/LICENSE-2.0                             #
10 #                                                                              #
11 #   Unless required by applicable law or agreed to in writing, software        #
12 #   distributed under the License is distributed on an "AS IS" BASIS,          #
13 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
14 #   See the License for the specific language governing permissions and        #
15 #   limitations under the License.                                             #
16 ################################################################################
17 *******************************************************************************/
18
19 /**********************************************************************
20  
21     Name:   LTE MAC layer
22  
23     Type:   C include file
24  
25     Desc:   Defines required by LTE MAC
26  
27     File:   lrg.x
28  
29 **********************************************************************/
30 /**
31   @file lrg.x
32   @brief Structure declarations and definitions for LRG interface.
33   */
34 #ifndef __LRGX__
35 #define __LRGX__
36
37 #include "lcl.h"
38
39 /* ccpu00121930 : ADD: c++ support*/
40 #ifdef __cplusplus
41 extern "C" {
42 #endif /* __cplusplus */
43
44 /** 
45  * @brief
46    This structure holds configuration parameters for MAC General Configuration. */
47 typedef struct rgGenCfg
48 {
49    Pst      lmPst;      /*!< Layer manager post structure */
50    MemoryId mem;        /*!< Region and pool ID */
51    U8       tmrRes;     /*!< Timer resolution for Low SAP Bind Timer */
52    U8       numRguSaps; /*!< Number of RGU SAP's */
53    U8       startCellId;              /*!< Start cell id value */
54 #ifdef LTE_ADV
55    Bool     forceCntrlSrbBoOnPCel;   /*!< value 1 means scheduler will schedule
56                                           RLC control BO and SRBs only on PCEll
57                                           else it will schedule on both PCell
58                                           and SCell */
59    Bool     isSCellActDeactAlgoEnable; /*!< TRUE will enable activation/deactivation algo at Schd */
60 #endif
61 }RgGenCfg;
62
63 /** 
64  * @brief
65    This structure holds configuration parameters for MAC Upper SAP Configuration. */
66 typedef struct rgUpSapCfg
67 {
68    Selector selector;   /*!< Selector */
69    MemoryId mem;        /*!< Region and pool ID */
70    Priority prior;      /*!< Priority */
71    ProcId   procId;     /*!< Processor ID */
72    Ent      ent;        /*!< Entity ID */
73    Inst     inst;       /*!< Instance ID */
74    Route    route;      /*!< Route */
75    SpId     spId;       /*!< Service provider ID */
76    SuId     suId;       /*!< Service user ID */
77 }RgUpSapCfg;
78
79 /** 
80  * @brief
81    This structure holds configuration parameters for MAC Lower SAP Configuration. */
82 typedef struct rgLowSapCfg
83 {
84    Selector selector;   /*!< Selector */
85    MemoryId mem;        /*!< Region and pool ID */
86    Priority prior;      /*!< Priority */
87    ProcId   procId;     /*!< Processor ID */
88    Ent      ent;        /*!< Entity ID */
89    Inst     inst;       /*!< Instance ID */
90    Route    route;      /*!< Route */
91    SpId     spId;       /*!< Service provider ID */
92    SuId     suId;       /*!< Service user ID */
93    TmrCfg   bndTmr;     /*!< Bind Timer Value */
94 }RgLowSapCfg;
95
96 #ifdef MAC_SCH_STATS
97 /* Data structures */
98 typedef struct rgAckNack
99 {
100    U8           mcs;
101    U16          numOfNacks;
102    U16          numOfAcks;
103 } RgAckNack;
104
105 typedef struct rgSchNackAckStats
106 {
107    RgAckNack dlCqiStat[15];   /*!< DL Stats */
108    RgAckNack ulCqiStat[15];   /*!< UL stats */
109 } RgSchNackAckStats;
110
111 typedef struct rgSchHqNumRetx
112 {
113    U8           mcs;
114    U16          numOfHQ_1;
115    U16          numOfHQ_2;
116    U16          numOfHQ_3;
117    U16          numOfHQ_4;
118    U32          totalTx;
119 } RgSchHqNumRetx;
120
121 typedef struct rgSchHqRetxStats
122 {
123    RgSchHqNumRetx    dlCqiStat[15];   /*!< DL Stats */
124    RgSchHqNumRetx    ulCqiStat[15];   /*!< UL stats */
125 } RgSchHqRetxStats;
126
127 EXTERN RgSchNackAckStats hqFailStats;
128 EXTERN RgSchHqRetxStats  hqRetxStats;
129 #endif /* MAC_SCH_STATS */
130
131 /** 
132  * @brief
133    This structure holds General statistical information of MAC. */
134 typedef struct rgGenSts
135 {
136    U32 numHarqFail;      /*!< Number of HARQ failures */
137    U32 numUeCfg;         /*!< Number of UEs configured */
138    U16 numCellCfg;       /*!< Number of Cells configured */
139 #ifdef MAC_SCH_STATS
140    RgSchNackAckStats nackAckStats;
141    RgSchHqRetxStats  hqRetxStats;
142 #endif /* MAC_SCH_STATS */
143 }RgGenSts;
144
145 /** 
146  * @brief
147    This structure holds statistical information of a SAP in MAC. */
148 typedef struct rgSapSts
149 {
150    U32 numPduRcvd;       /*!< Number of PDUs received. At TFU, PDU refers to TB,
151                               and at RGU it is SDU. */
152    U32 numPduTxmit;      /*!< Number of PDUs transmitted. This field is 
153                               applicable to TFU. */
154    U32 numPduDrop;       /*!< Number of PDUs dropped. At TFU, PDU refers to TB,
155                               and at RGU it is SDU. */
156 }RgSapSts;
157
158 typedef struct rgSchInstCfg
159 {
160    U8          instId;    /*!< Sheduler instance ID */
161    RgGenCfg    genCfg;    /*!< General Configuration for the scheduler instance */
162    U8          numSaps;   /*!< Number of RGR and TFU SAPs must be same */
163    RgUpSapCfg  rgrSap[LRG_MAX_SAPS_PER_INST];  /*!< RGR interface SAPS */
164    RgUpSapCfg  rgmSap[LRG_MAX_SAPS_PER_INST];  /*!< RGR interface SAPS */
165    RgLowSapCfg tfuSap[LRG_MAX_SAPS_PER_INST];  /*!< TFU interface SAPS */
166 } RgSchInstCfg;
167
168 /** 
169  * @brief
170    This structure holds configuration parameters for MAC. */
171 typedef struct rgCfg
172 {
173    union
174    {
175       RgGenCfg    genCfg;  /*!< General Configuration */
176       /* SAPs for the MAC layer */
177       RgUpSapCfg  rguSap;  /*!< RGU interface SAP */
178       RgUpSapCfg  crgSap;  /*!< CRG interface SAP */
179       RgLowSapCfg tfuSap;  /*!< TFU interface SAP */
180       RgSchInstCfg schInstCfg;/*!< General Configuration for scheduler instances */
181       ClCellCfg  cellCfg;
182    }s;
183 }RgCfg;
184
185 /** 
186  * @brief
187    This structure holds a SAP's status information. */
188 typedef struct rgSapSta
189 {
190    U8 sapState;         /*!< SAP state */
191 }RgSapSta;
192
193 /** 
194  * @brief
195    This structure holds MAC's statistical information. */
196 typedef struct rgSts
197 {
198    DateTime dt;          /*!< Date and Time. */
199    U8       sapInst;     /*!< SAP instance. */
200    Action   action;      /*!< Action on Trafffic load related statistic values.
201                               ARST: To reset the statistic values. */
202    union
203    {
204       RgGenSts genSts;   /*!< General statistics. */
205       RgSapSts rguSts;   /*!< RGU SAP statistics. */
206       RgSapSts crgSts;   /*!< CRG SAP statistics. */
207       RgSapSts rgrSts;   /*!< RGR SAP statistics. */
208       RgSapSts tfuSts;   /*!< TFU SAP statistics. */
209    }s;
210 }RgSts;
211
212 /** 
213  * @brief
214    This structure holds MAC's solicited status information. */
215 typedef struct rgSsta
216 {
217    DateTime dt;             /*!< Date and time */
218    U8       sapInst;        /*!< SAP instance */
219    union
220    {
221       SystemId sysId;       /*!< System information */
222       RgSapSta rguSapSta;   /*!< RGU SAP state */
223       RgSapSta crgSapSta;   /*!< CRG SAP state */
224       RgSapSta rgrSapSta;   /*!< RGR SAP state */
225       RgSapSta rgmSapSta;   /*!< RGM SAP state */
226       RgSapSta tfuSapSta;   /*!< TFU SAP state */
227    }s;
228 }RgSsta;
229
230 /** 
231  * @brief
232    Alarm diagnostics structure. */
233 typedef struct rgUstaDgn
234 {
235    U8          type;         /*!< Diagnostics Type */
236    union
237    {
238    /*lrg_x_001.main_3 - Changed for documentation*/
239       MemoryId mem;          /*!< Memory pool and region <BR> 
240                              LRG_USTA_DGNVAL_MEM Dynamic memory allocation failure. <BR> 
241                              LRG_USTS_DGNVAL_HARQ Harq Process is busy.
242                               */
243    }u;
244 } RgUstaDgn;
245
246 /** 
247  * @brief
248    This structure holds MAC's Unsolicited Status information. */
249 typedef struct rgUsta
250 {
251    CmAlarm   cmAlarm;      /*!< Alarms */
252    RgUstaDgn dgn;          /*!< Alarm diagnostics */
253 }RgUsta;
254
255 /** 
256  * @brief
257    This structure holds MAC's Trace Indication information. */
258 typedef struct rgTrc
259 {
260    DateTime dt;          /*!< Date and time */
261    /*lrg_x_001.main_3 - changed for documentation*/
262    U8       evnt;        /*!< Event <BR> 
263                            EVTRGUDATREQ Trace for Dedicated channel Data Request. <BR> 
264                            EVTRGUCDATREQ Trace for common channel data request.<BR> 
265                           */
266 }RgTrc;
267
268 /** 
269  * @brief
270    This structure holds MAC's Debug Control information. */
271 typedef struct rgDbgCntrl
272 {
273    U32 dbgMask;          /*!< iThe Layer Manager electively enables or disables various levels of Debug printing <BR>
274                           Following are the values: <BR> 
275                           DBGMASK_PRM Enable/Disable function parameter debug prints <BR>
276                           DBGMASK_ERR Enable/Disable error prints <BR>
277                           DBGMASK_INFO Enable/Disable informational prints.
278                           */
279 }RgDbgCntrl;
280
281 /** 
282  * @brief
283    This structure holds MAC's SAP Control information. */
284 typedef struct rgSapCntrl
285 {
286    SuId suId;            /*!< Service user ID */
287    SpId spId;            /*!< Service provider ID */
288 }RgSapCntrl;
289
290 #ifdef PHY_ERROR_LOGING
291 typedef struct rgSchUlAllocCntrl
292 {
293    U8  mcs;
294    U16 numOfRb;
295    U16 rbStart;
296    Bool testStart;
297    Bool enaLog;
298    U16  logTime;
299 }RgSchUlAllocCntrl; 
300 #endif
301
302 /** 
303  * @brief
304    This structure holds MAC's Control information. */
305 typedef struct rgCntrl
306 {
307    DateTime      dt;          /*!< Date and Time */
308    U8            action;      /*!< Action */
309    U8            subAction;   /*!< Sub-action */
310    U8            instId;      /*!< Scheduler instance ID */
311    union
312    {
313       RgDbgCntrl rgDbgCntrl;  /*!< Debug Control */
314       /*lrg_x_001.main_3 - Changed for documentation.*/
315       S16        trcLen;      /*!< Trace Length <BR> 
316                                i)LRG_FULL_TRACE Give full message <BR> 
317                                ii)LRG_NO_TRACE Disable Trace<BR>
318                                iii)Or any valid S16 value in case where only the specified number
319                                of bytes, as indicated by trcLen, are to be sent.*/
320       RgSapCntrl rgSapCntrl;  /*!< SAP Control */
321       U32        logMask;     /*!<  Logging control Mask */
322 #ifdef PHY_ERROR_LOGING
323       RgSchUlAllocCntrl rgSchUlAllocCntrl; /* For setting MCS,Number of RB and RB start */
324 #endif
325    }s;
326 }RgCntrl; 
327
328 /** 
329  * @brief
330    This structure holds MAC's Configuration and Control Management Information. */
331 typedef struct rgMngmt
332 {
333    Header     hdr;       /*!< Header */
334    CmStatus   cfm;       /*!< Confirmation */
335    union
336    {
337       RgCfg   cfg;       /*!< Configuration */
338       RgSts   sts;       /*!< Statistics */
339       RgSsta  ssta;      /*!< Solicited Status */
340       RgUsta  usta;      /*!< Unsolicited Status */
341       RgTrc   trc;       /*!< Trace */
342       RgCntrl cntrl;     /*!< Control */
343    }t;
344 }RgMngmt;
345
346 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
347 #ifdef LTE_L2_MEAS
348 /**
349  *  @brief
350    To measure Average Number of PRB's used per QCI for a time period
351    timePrd
352 */
353 typedef struct lrgAvgPrbQCI   
354 {
355    U8        numQci;                 /*!< Numner of QCI's in requests */
356    U8        qci[LRG_MAX_QCI_PER_REQ];  /*!< QCI for which PRB has to be measured */
357 } LrgAvgPrbQCI;
358
359 /**
360  *  @brief
361    To measure number of Active UE's per QCI for the given time period
362    timePrd 
363 **/
364 typedef struct lrgNmbActvUeQCI
365 {
366    U8       sampPrd;                   /*!< sampling prd for which active UE's measured
367                                           Where sampling period is in milli seconds
368                                           value can be at most 100ms */
369    U8        numQci;                   /*!< Numner of QCI's in requests */
370    U8        qci[LRG_MAX_QCI_PER_REQ]; /*!< QCI for which UE has to be considered */
371 } LrgNmbActvUeQCI;
372
373 /**
374  * * @brief 
375      This structure will be used by Layer Manager to L2 Measurement Request
376      Information 
377 **/
378 typedef struct lrgSchMeasReqInfo
379 {
380    Header           hdr;             /*!< Header */
381    U16              measType;        /*!< For type of measurement Following are the */
382                                      /*!< allowed values */
383                                      /*!< LRG_L2MEAS_AVG_PRB_DL , LRG_L2MEAS_AVG_PRB_UL*/
384                                      /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_DL  */
385                                      /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_UL */
386                                      /*!< LRG_L2MEAS_RA_PREAMBLE  */
387                                      /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL */
388                                      /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL */
389                                      /*!< LRG_L2MEAS_TB_TRANS_DL_COUNT */
390                                      /*!< LRG_L2MEAS_TB_TRANS_DL_FAULTY_COUNT */
391                                      /*!< LRG_L2MEAS_TB_TRANS_UL_COUNT */
392                                      /*!< LRG_L2MEAS_TB_TRANS_UL_FAULTY_COUNT */
393    U32              timePrd;         /*!< Time period UNITS and value will differ depending
394                                        on the action. Might be milli seconds/seconds. */
395    CmLteCellId      cellId;          /*!< CELL Id for which measurement is Done */
396    LrgAvgPrbQCI     avgPrbQciUl;     /*!< Average PRB usage per QCI in UL */
397    LrgAvgPrbQCI     avgPrbQciDl;     /*!< Average PRB usage per QCI in DL */
398    LrgNmbActvUeQCI  nmbActvUeQciUl;  /*!< Number of active UE's per QCI in UL */
399    LrgNmbActvUeQCI  nmbActvUeQciDl;  /*!< Number of active UE's per QCI in DL */
400 } LrgSchMeasReqInfo;
401
402 typedef struct lrgSchMeasSndReqInfo
403 {
404    Header           hdr;             /*!< Header */
405    U16              measType;        /*!< For type of measurement Following are the */
406                                      /*!< allowed values */
407                                      /*!< LRG_L2MEAS_AVG_PRB_DL , LRG_L2MEAS_AVG_PRB_UL*/
408                                      /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_DL  */
409                                      /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_UL */
410                                      /*!< LRG_L2MEAS_RA_PREAMBLE  */
411                                      /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL */
412                                      /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL */
413    U32              timePrd;         /*!< Time period UNITS and value will differ depending
414                                        on the action. Might be milli seconds/seconds. */
415    CmLteCellId      cellId;          /*!< CELL Id for which measurement is Done */
416  //  LrgAvgPrbQCI     avgPrbQciUl;     /*!< Average PRB usage per QCI in UL */
417  //  LrgAvgPrbQCI     avgPrbQciDl;     /*!< Average PRB usage per QCI in DL */
418  //  LrgNmbActvUeQCI  nmbActvUeQciUl;  /*!< Number of active UE's per QCI in UL */
419  //  LrgNmbActvUeQCI  nmbActvUeQciDl;  /*!< Number of active UE's per QCI in DL */
420 } LrgSchMeasSndReqInfo;
421
422 typedef struct lrgSchMeasStopReqInfo
423 {
424    Header           hdr;             /*!< Header */
425    U16              measType;        /*!< For type of measurement Following are the */
426                                      /*!< allowed values */
427                                      /*!< LRG_L2MEAS_AVG_PRB_DL , LRG_L2MEAS_AVG_PRB_UL*/
428                                      /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_DL  */
429                                      /*!< LRG_L2MEAS_AVG_PRB_PER_QCI_UL */
430                                      /*!< LRG_L2MEAS_RA_PREAMBLE  */
431                                      /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_UL */
432                                      /*!< LRG_L2MEAS_NMB_ACTV_UE_PER_QCI_DL */
433  /*  U16              timePrd;  */       /*!< Time period UNITS and value will differ depending
434                                        on the action. Might be milli seconds/seconds. */
435    CmLteCellId      cellId;          /*!< CELL Id for which measurement is Done */
436  /*  LrgAvgPrbQCI     avgPrbQciUl; */     /*!< Average PRB usage per QCI in UL */
437  //  LrgAvgPrbQCI     avgPrbQciDl;     /*!< Average PRB usage per QCI in DL */
438  //  LrgNmbActvUeQCI  nmbActvUeQciUl;  /*!< Number of active UE's per QCI in UL */
439  //   LrgNmbActvUeQCI  nmbActvUeQciDl;  /*!< Number of active UE's per QCI in DL */
440 } LrgSchMeasStopReqInfo;
441
442 /**
443  *@brief
444  Structure to hold Received Random Access Preambles.
445 **/
446 typedef struct lrgRaPreambles
447 {
448    U16    dedPreambles;        /*!< Dedicated RA Preamble received */
449    U16    randSelPreLowRange;  /*!< Randomly selected preambles in low range */
450    U16    randSelPreHighRange; /*!< Randomly selected preambles in high range */
451 } LrgRaPreamblesCfm;
452
453 /**
454  * @brief
455  * Staructure to send Avg PRB for a given Time Period 
456  * */
457 typedef struct lrgAvgPrbcfm
458 {
459    U8    prbPerc;      /*!< PRB usage in percentage for UL */
460 } LrgAvgPrbCfm;
461
462 /*LRG : Review Tag*/
463 typedef struct prbPercQci
464 {
465         U8 qciValue;
466         U8 prbPercQci;
467 }PrbPercQci;
468
469 typedef struct numActvUeQci
470 {
471         U8 qciValue;
472         U8 numActvUeQci;
473 }NumActvUeQci;
474 /*LRG : Review Tag*/
475 /**
476  * @brief
477  * Structure to send Avg PRB for a given period per QCI
478  * */
479 typedef struct lrgAvgPrbQCICfm
480 {
481    U8    numQci;                             /*!< number of QCI */
482 /*LRG : Review Tag*/
483    PrbPercQci    prbPercQci[LRG_MAX_QCI_PER_REQ];    /*!< PRB usage in percentage per QCI for UL/DL */
484 /*LRG : Review Tag*/
485 } LrgAvgPrbQCICfm;
486
487 /**
488  *@brief
489  Structure to send number of Active UE's per QCI
490  */
491 typedef struct lrgNumActvUeQCICfm
492 {
493    U8     numQci;                            /*!< Numner of QCI's in requests */
494 /*LRG : Review Tag*/
495    NumActvUeQci     numActvUeQci[LRG_MAX_QCI_PER_REQ]; /*!< Number of Active UE's in UL/DL per QCI */
496 /*LRG : Review Tag*/
497 } LrgNumActvUeQCICfm;
498 /**
499   @brief
500   Structure to send L2 Measurement confirm 
501 **/
502 typedef struct lrgSchMeasCfmInfo
503 {
504    Header             hdr;               /*!< Header information */
505    U16                measType;          /*!< Type of measurement */
506    CmStatus           cfm;               /*!< Confirmation possible Values when measType
507                                               is invalid status -> NOK and reason -> INVALID
508                                                 */
509    CmLteCellId        cellId;             /*!< Cell for which measurement is done */
510    LrgAvgPrbCfm       avgPrbUl;           /*!< PRB usage in percentage per QCI for UL */
511    LrgAvgPrbCfm       avgPrbDl;           /*!< PRB usage in percentage per QCI for DL */
512    LrgAvgPrbQCICfm    avgPrbQciUlCfm;     /*!< PRB usage in percentage per QCI for UL */
513    LrgAvgPrbQCICfm    avgPrbQciDlCfm;     /*!< PRB usage in percentage per QCI for DL */
514    LrgRaPreamblesCfm  raPrmbsCfm;         /*!< Different received RA preambles */
515    LrgNumActvUeQCICfm numUeQciUlCfm;      /*!< Number of Active UE's in UL per QCI */
516    LrgNumActvUeQCICfm numUeQciDlCfm;      /*!< Number of Active UE's in DL per QCI */
517    U32                tbTransDlTotalCnt;  /*!< Count of DL TB transmitteed */
518    U32                tbTransDlFaulty;    /*!< Count of DL TB for wich NACK not recieved from UE */ 
519    U32                tbTransUlTotalCnt;  /*!< Count of UL TB received successfully */ 
520    U32                tbTransUlFaulty;    /*!< Count of UL TB not recieved successfully */ 
521 } LrgSchMeasCfmInfo;
522
523 #endif /* LTE_L2_MEAS */
524
525 /* 
526    Function Prototype Typedefs 
527 . */
528 typedef S16 (*LrgCfgReq)     ARGS((
529         Pst        *pst,               /* Post Structure */
530         RgMngmt    *cfg                /* Management Structure */
531      ));
532
533 typedef S16 (*LrgSchCfgReq)     ARGS((
534         Pst        *pst,               /* Post Structure */
535         RgMngmt    *cfg                /* Management Structure */
536      ));
537
538 typedef S16 (*LrgCfgCfm)     ARGS((
539         Pst        *pst,               /* Post Structure */
540         RgMngmt    *cfg                /* Management Structure */
541      ));
542
543 typedef S16 (*LrgSchCfgCfm)     ARGS((
544         Pst        *pst,               /* Post Structure */
545         RgMngmt    *cfg                /* Management Structure */
546      ));
547
548 typedef S16 (*LrgCntrlReq)   ARGS((
549         Pst        *pst,               /* Post Structure */
550         RgMngmt    *cntrl              /* Management Structure */
551      ));
552
553 typedef S16 (*LrgSchCntrlReq)   ARGS((
554         Pst        *pst,               /* Post Structure */
555         RgMngmt    *cntrl              /* Management Structure */
556      ));
557
558 typedef S16 (*LrgCntrlCfm)   ARGS((
559         Pst        *pst,               /* Post Structure */
560         RgMngmt    *cntrl              /* Management Structure */
561      ));
562
563 typedef S16 (*LrgSchCntrlCfm)   ARGS((
564         Pst        *pst,               /* Post Structure */
565         RgMngmt    *cntrl              /* Management Structure */
566      ));
567
568 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
569 #ifdef LTE_L2_MEAS
570 typedef S16 (*LrgSchL2MeasReq)   ARGS((
571         Pst        *pst,               /* Post Structure */
572         LrgSchMeasReqInfo *meas       /* L2 Measurement structure */
573      ));
574 typedef S16 (*LrgSchL2MeasStopReq)   ARGS((
575         Pst        *pst,               /* Post Structure */
576         LrgSchMeasStopReqInfo *meas       /* L2 Measurement structure */
577      ));
578 typedef S16 (*LrgSchL2MeasSendReq)   ARGS((
579         Pst        *pst,               /* Post Structure */
580         LrgSchMeasSndReqInfo *meas       /* L2 Measurement structure */
581      ));
582 #endif
583 typedef S16 (*LrgStaReq)     ARGS((
584         Pst        *pst,               /* Post Structure */
585         RgMngmt    *sta                /* Management Structure */
586      ));
587
588 typedef S16 (*LrgStaCfm)     ARGS((
589         Pst        *pst,               /* Post Structure */
590         RgMngmt    *sta                /* Management Structure */
591      ));
592
593 typedef S16 (*LrgStaInd)     ARGS((
594         Pst        *pst,               /* Post Structure */
595         RgMngmt    *sta                /* Management Structure */
596      ));
597
598 typedef S16 (*LrgSchStaInd)     ARGS((
599         Pst        *pst,               /* Post Structure */
600         RgMngmt    *sta                /* Management Structure */
601      ));
602
603 typedef S16 (*LrgStsReq)     ARGS((
604         Pst        *pst,               /* Post Structure */
605         RgMngmt    *sts                /* Management Structure */
606      ));
607
608 typedef S16 (*LrgStsCfm)     ARGS((
609         Pst        *pst,               /* Post Structure */
610         RgMngmt    *sts                /* Management Structure */
611      ));
612
613 typedef S16 (*LrgTrcInd)     ARGS((
614         Pst        *pst,               /* Post Structure */
615         RgMngmt    *trc,               /* Management Structure */
616         Buffer     *mBuf               /* Message Buffer */
617      ));
618
619 /* lrg_x_001.main_3 - ADD - Data structures for LTE_L2_MEAS */
620 #ifdef LTE_L2_MEAS
621 typedef S16 (*LrgSchL2MeasCfm)     ARGS((
622         Pst            *pst,              /* Post Structure */
623         LrgSchMeasCfmInfo  *schL2MeasCfm     /* Measurement Info */
624      ));
625 typedef S16 (*LrgSchL2MeasStopCfm)     ARGS((
626         Pst            *pst,              /* Post Structure */
627         LrgSchMeasCfmInfo  *schL2MeasCfm     /* Measurement Info */
628      ));
629 #endif /* LTE_L2_MEAS */
630 /* 
631    Function Prototypes.
632  */
633 #ifdef RG
634 /* lrg_x_001.main_3 - ADD -  Added the comments for the following function */
635  /** @brief This primitive is sent from Layer manager to MAC. It carries
636   * configuration information towards MAC.
637   * @details This primitive can be used by layer manager to configure the
638   * following entities at MAC.
639   * -# General configuration
640   * -# RGU SAP i.e. SAP towards RLC
641   * -# CRG SAP i.e. SAP towards RRC
642   * -# TFU SAP i.e. SAP towards Physical layer
643   * 
644   * @param pst pointer to Pst
645   * @param cfg pointer to RgMngmt
646   * @return ROK/RFAILED
647   */
648 EXTERN S16 RgMiLrgCfgReq ARGS((Pst *pst, RgMngmt *cfg));
649
650  /** @brief This primitive carries the Confirmation for a Configuration Request
651   * sent from the layer manager to MAC.
652   * @details This primitive is used by MAC to inform Layer manager about the
653   * status of a Configuration Request.
654   * @param pst Pointer to the post structure.
655   * @param cfm pointer to RgMngmt 
656   * @return ROK/RFAILED
657   */
658 EXTERN S16 RgMiLrgCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
659
660  /** @brief This primitive is sent from Layer manager to Scheduler. It carries
661   * configuration information towards MAC.
662   * @details This primitive can be used by layer manager to configure the
663   * following entities at Scheduler.
664   * -# General configuration
665   * -# RGR SAP i.e. SAP towards RRM
666   * -# TFU SAP i.e. SAP towards Physical layer
667   * 
668   * @param pst pointer to Pst
669   * @param cfg pointer to RgMngmt
670   * @return ROK/RFAILED
671   */
672 EXTERN S16 RgMiLrgSchCfgReq ARGS((Pst *pst, RgMngmt *cfg));
673
674  /** @brief This primitive carries the Confirmation for a Configuration Request
675   * sent from the layer manager to Scheduler.
676   * @details This primitive is used by Scheduler to inform Layer manager about the
677   * status of a Configuration Request.
678   * @param pst Pointer to the post structure.
679   * @param cfm pointer to RgMngmt 
680   * @return ROK/RFAILED
681   */
682 EXTERN S16 RgMiLrgSchCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
683
684  /** @brief This primitive carries the Request for statistics from MAC layer
685   * sent from the layer manager.
686   * @details This primitive is used by layer manager to request for statistics
687   * on the following
688   * -# General statistics
689   * -# RGU SAP statistics
690   * -# CRG SAP statistics
691   * -# TFU SAP statistics
692   * @param pst Pointer to the post structure.
693   * @param sts pointer to RgMngmt 
694   * @return ROK/RFAILED
695   */
696 EXTERN S16 RgMiLrgStsReq ARGS((Pst *pst, RgMngmt *sts));
697
698  /** @brief This primitive carries the Statistics for a Statistics Request
699   * sent from the layer manager to MAC.
700   * @details This primitive is used by MAC to inform Layer manager about the
701   * Statistics requested earlier.
702   * @param pst Pointer to the post structure.
703   * @param cfm pointer to RgMngmt 
704   * @return ROK/RFAILED
705   */
706 EXTERN S16 RgMiLrgStsCfm ARGS((Pst *pst, RgMngmt *cfm));
707
708  /** @brief This primitive carries the Status request 
709   * sent from the layer manager to MAC.
710   * @details This primitive is used by the layer manager to request
711   * status from the MAC layer.
712   * @param pst Pointer to the post structure.
713   * @param cfm pointer to RgMngmt 
714   * @return ROK/RFAILED
715   */
716 EXTERN S16 RgMiLrgStaReq ARGS((Pst *pst, RgMngmt *sta));
717
718  /** @brief This primitive carries the Confirmation for a Status Request
719   * sent from the layer manager to MAC.
720   * @details This primitive is used by MAC to send a response for the status
721   * Request sent by the layer manager.
722   * @param pst Pointer to the post structure.
723   * @param cfm pointer to RgMngmt 
724   * @return ROK/RFAILED
725   */
726 EXTERN S16 RgMiLrgStaCfm ARGS((Pst *pst, RgMngmt *cfm));
727
728  /** @brief This primitive carries the Unsolicited status indications from MAC
729   * to the layer manager i.e. Alarms.
730   * @details This primitive is used by MAC to inform Layer manager about some
731   * error conditions or bind confirmations.
732   * @param pst Pointer to the post structure.
733   * @param usta pointer to RgMngmt 
734   * @return ROK/RFAILED
735   */
736 EXTERN S16 RgMiLrgStaInd ARGS((Pst *pst, RgMngmt *usta));
737  /** @brief This primitive carries the Unsolicited status indications from
738   * scheduler to the layer manager i.e. Alarms.
739   * @details This primitive is used by Scheduler to inform Layer manager about some
740   * error conditions or bind confirmations.
741   * @param pst Pointer to the post structure.
742   * @param usta pointer to RgMngmt 
743   * @return ROK/RFAILED
744   */
745 EXTERN S16 RgMiLrgSchStaInd ARGS((Pst *pst, RgMngmt *usta));
746
747  /** @brief This primitive carries the control request sent from the layer
748   * manager to MAC layer.
749   * @details This primitive is sent from the layer manager to control the MAC
750   * layer. The following entities could be controlled using this primitive.
751   * -# Debug printing
752   * -# TRACE functionality
753   * -# Binding of lower SAPs
754   * @param pst Pointer to the post structure.
755   * @param cfm pointer to RgMngmt 
756   * @return ROK/RFAILED
757   */
758 EXTERN S16 RgMiLrgCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
759  /** @brief This primitive carries the Confirmation for a Control Request
760   * sent from the layer manager to MAC.
761   * @details This primitive is used by MAC to inform Layer manager about the
762   * status of a Control Request.
763   * @param pst Pointer to the post structure.
764   * @param cfm pointer to RgMngmt 
765   * @return ROK/RFAILED
766   */
767 EXTERN S16 RgMiLrgCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
768  /** @brief This primitive carries the control request sent from the layer
769   * manager to MAC layer.
770   * @details This primitive is sent from the layer manager to control the MAC
771   * layer. The following entities could be controlled using this primitive.
772   * -# Debug printing
773   * -# TRACE functionality
774   * -# Binding of lower SAPs
775   * @param pst Pointer to the post structure.
776   * @param cfm pointer to RgMngmt 
777   * @return ROK/RFAILED
778   */
779 EXTERN S16 RgMiLrgSchCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
780  /** @brief This primitive carries the Confirmation for a Control Request
781   * sent from the layer manager to MAC.
782   * @details This primitive is used by MAC to inform Layer manager about the
783   * status of a Control Request.
784   * @param pst Pointer to the post structure.
785   * @param cfm pointer to RgMngmt 
786   * @return ROK/RFAILED
787   */
788 EXTERN S16 RgMiLrgSchCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
789  /** @brief This primitive carries the a copy of the received buffer from MAC to
790   * the layer manager. This is called the Tracing functionality of the layer.
791   * @details This primitive is used by MAC to send a copy of the received buffer
792   * to the layer manager, if Tracing is enabled via a control request. 
793   * @param pst Pointer to the post structure.
794   * @param trc pointer to RgMngmt 
795   * @param mBuf pointer to Buffer contains the portion of the received message. 
796   * @return ROK/RFAILED
797   */
798 EXTERN S16 RgMiLrgTrcInd ARGS((Pst *pst, RgMngmt *trc, Buffer *mBuf));
799 #ifdef LTE_L2_MEAS
800  /** @brief This primitive is to enable L2 (layer 2) measurements at the MAC
801   * layer.
802   * 
803   * @details Enables the L2 Measurements.
804   * 
805   * @param pst Pointer to the post structure.
806   * @param schL2MeasInfo pointer to LrgSchMeasReqInfo 
807   * @return ROK/RFAILED
808   */
809 EXTERN S16 RgMiLrgSchL2MeasReq ARGS((Pst *pst, LrgSchMeasReqInfo *schL2MeasInfo));
810  /** @brief This primitive carries the results of the L2 Measurements gathered
811   * by MAC to the layer manager.
812   * 
813   * @details Carries the Measurements gathered by MAC.
814   * 
815   * @param pst Pointer to the post structure.
816   * @param schL2MeasCfm pointer to LrgSchMeasCfmInfo 
817   * @return ROK/RFAILED
818   */
819 EXTERN S16 RgMiLrgSchL2MeasCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
820  /** @brief This primitive is to Stop L2 (layer 2) measurements at the MAC
821   * layer.
822   *
823   * @details Enables the L2 Measurements.
824   *
825   * @param pst Pointer to the post structure.
826   * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
827   * @return ROK/RFAILED
828   */
829
830 EXTERN S16 RgMiLrgSchL2MeasStopReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *schL2MeasInfo));
831  /** @brief This primitive is to used to send  L2 (layer 2) measurements at the MAC
832   * layer.
833   *
834   * @details Enables the L2 Measurements.
835   *
836   * @param pst Pointer to the post structure.
837   * @param schL2MeasInfo pointer to LrgSchMeasReqInfo
838   * @return ROK/RFAILED
839   */
840
841 EXTERN S16 RgMiLrgSchL2MeasSendReq ARGS((Pst *pst,LrgSchMeasSndReqInfo *schL2MeasInfo));
842  /** @brief This primitive carries the confrmratoin  of the L2 Measurements gathered
843   * by MAC to the layer manager.
844   *
845   * @details Carries the Measurements gathered by MAC.
846   *
847   * @param pst Pointer to the post structure.
848   * @param schL2MeasCfm pointer to LrgSchMeasCfmInfo
849   * @return ROK/RFAILED
850   */
851
852 EXTERN S16 RgMiLrgSchL2MeasStopCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
853 #endif /* LTE_L2_MEAS */
854 #endif /* RG. */
855
856 #ifdef SM 
857 EXTERN S16 smRgActvInit ARGS((Ent ent,Inst inst, Region region,Reason reason));
858 EXTERN S16 smRgActvTsk ARGS((Pst *pst, Buffer *mBuf));
859 EXTERN S16 SmMiLrgCfgReq ARGS((Pst *pst, RgMngmt *cfg));
860 EXTERN S16 SmMiLrgCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
861 EXTERN S16 SmMiLrgSchCfgReq ARGS((Pst *pst, RgMngmt *cfg));
862 EXTERN S16 SmMiLrgSchCfgCfm ARGS((Pst *pst, RgMngmt *cfm));
863 EXTERN S16 SmMiLrgStsReq ARGS((Pst *pst, RgMngmt *sts));
864 EXTERN S16 SmMiLrgStsCfm ARGS((Pst *pst, RgMngmt *cfm));
865 EXTERN S16 SmMiLrgStaReq ARGS((Pst *pst, RgMngmt *sta));
866 EXTERN S16 SmMiLrgStaCfm ARGS((Pst *pst, RgMngmt *cfm));
867 EXTERN S16 SmMiLrgStaInd ARGS((Pst *pst, RgMngmt *usta));
868 EXTERN S16 SmMiLrgCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
869 EXTERN S16 SmMiLrgSchStaInd ARGS((Pst *pst, RgMngmt *usta));
870 EXTERN S16 SmMiLrgCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
871 EXTERN S16 SmMiLrgSchCntrlReq ARGS((Pst *pst, RgMngmt *cntrl));
872 EXTERN S16 SmMiLrgSchCntrlCfm ARGS(( Pst *pst, RgMngmt *cfm));
873 EXTERN S16 SmMiLrgTrcInd ARGS((Pst *pst, RgMngmt *trc, Buffer *mBuf));
874 /* lrg_x_001.main_3 - ADD -  Added the following functions for LTE_L2_MEAS */
875 #ifdef LTE_L2_MEAS
876 EXTERN S16 SmMiLrgSchL2MeasStartReq ARGS((Pst *pst, LrgSchMeasReqInfo *schL2MeasReq));
877 EXTERN S16 SmMiLrgSchL2MeasCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
878 EXTERN S16 SmMiLrgSchL2MeasStopReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *schL2MeasReq));
879 EXTERN S16 SmMiLrgSchL2MeasSendReq ARGS((Pst *pst, LrgSchMeasSndReqInfo *schL2MeasReq));
880 EXTERN S16 SmMiLrgSchL2MeasStopCfm ARGS((Pst *pst, LrgSchMeasCfmInfo *schL2MeasCfm));
881 EXTERN S16 SmMiLrgSchL2MeasReq ARGS((Pst *pst, LrgSchMeasReqInfo *meas));
882 EXTERN S16 SmMiLrgSchL2SendMeasReq ARGS((Pst *pst, LrgSchMeasSndReqInfo *meas));
883 EXTERN S16 SmMiLrgSchL2StopMeasReq ARGS((Pst *pst, LrgSchMeasStopReqInfo *meas));
884 #endif /* LTE_L2_MEAS */
885 #endif /* SM. */
886
887 /*
888    Function Prototypes for Packing and Unpacking the primitives.
889  */
890 #if (defined(LCLRG))
891 /** @brief This API is used to send a 
892 Config Request from LM to MAC.*/
893 EXTERN S16 cmPkLrgCfgReq ARGS((
894    Pst *                pst,
895    RgMngmt *            cfg
896 ));
897 /** @brief This API is used to send a 
898 Configuration Request from LM to MAC. */
899 EXTERN S16 cmUnpkLrgCfgReq ARGS((
900    LrgCfgReq            func,
901    Pst *                pst,
902    Buffer               *mBuf
903 ));
904 /** @brief This API is used to send a 
905 Configuration Request from LM to SCH. */
906 EXTERN S16 cmPkLrgSchCfgReq ARGS((
907    Pst *                pst,
908    RgMngmt *            cfg
909 ));
910 /** @brief This API is used to send a 
911 Configuration Request from LM to SCH. */
912 EXTERN S16 cmUnpkLrgSchCfgReq ARGS((
913    LrgSchCfgReq         func,
914    Pst *                pst,
915    Buffer               *mBuf
916 ));
917 /* lrg_x_001.main_3 - ADD -  Added the following pack/unpack functions for LTE_L2_MEAS */
918 #ifdef LTE_L2_MEAS
919 /** @brief This API is used to send a 
920 L2 Measurement Request from LM to SCH. */
921 EXTERN S16 cmPkLrgSchL2MeasReq ARGS((
922    Pst *                pst,
923    LrgSchMeasReqInfo *  meas
924 ));
925 /** @brief This API is used to send a 
926 L2 Measurement Request from LM to SCH. */
927 EXTERN S16 cmUnpkLrgSchL2MeasReq ARGS((
928    LrgSchL2MeasReq         func,
929    Pst *                 pst,
930    Buffer               *mBuf
931 ));
932 EXTERN S16 cmPkLrgSchL2MeasCfm ARGS((
933     Pst * pst,
934     LrgSchMeasCfmInfo  *measInfo
935 ));
936 EXTERN S16 cmUnpkLrgSchL2MeasCfm ARGS((
937     LrgSchL2MeasCfm func,
938     Pst *pst,
939     Buffer *mBuf
940 ));
941 EXTERN S16 cmPkLrgSchL2MeasReq ARGS((
942    Pst *                pst,
943    LrgSchMeasReqInfo *  meas
944 ));
945 /** @brief This API is used to send a 
946 L2 Measurement Request from LM to SCH. */
947 EXTERN S16 cmUnpkLrgSchL2MeasReq ARGS((
948    LrgSchL2MeasReq         func,
949    Pst *                 pst,
950    Buffer               *mBuf
951 ));
952 /** @brief This API is used to send a
953 L2 Measurement Stop Request from LM to SCH. */
954 EXTERN S16 cmPkLrgSchL2MeasSendReq ARGS((
955    Pst *                pst,
956    LrgSchMeasSndReqInfo *  meas
957 ));
958 /** @brief This API is used to send a 
959 L2 Measurement Request from LM to SCH. */
960 EXTERN S16 cmUnpkLrgSchL2MeasSendReq ARGS((
961    LrgSchL2MeasSendReq         func,
962    Pst *                 pst,
963    Buffer               *mBuf
964 ));
965 /** @brief This API is used to send a
966 L2 Measurement Stop Request from LM to SCH. */
967 EXTERN S16 cmPkLrgSchL2MeasStopReq ARGS((
968    Pst *                pst,
969    LrgSchMeasStopReqInfo *  meas
970 ));
971 /** @brief This API is used to send a 
972 L2 Measurement Request from LM to SCH. */
973 EXTERN S16 cmUnpkLrgSchL2MeasStopReq ARGS((
974    LrgSchL2MeasStopReq         func,
975    Pst *                 pst,
976    Buffer               *mBuf
977 ));
978 /** @brief This API is used to carry
979 L2 Measurement Cfm  from SCH. */
980 EXTERN S16 cmPkLrgSchL2MeasStopCfm ARGS((
981     Pst * pst,
982     LrgSchMeasCfmInfo  *measInfo
983 ));
984 /** @brief This API is used to carrya
985 L2 Measurement Cfm  from SCH. */
986 EXTERN S16 cmUnpkLrgSchL2MeasStopCfm ARGS((
987     LrgSchL2MeasStopCfm func,
988     Pst *pst,
989     Buffer *mBuf
990 ));
991 #endif
992 /** @brief This API is used to send a 
993 Configuration Confirm from MAC to LM. */
994 EXTERN S16 cmPkLrgCfgCfm ARGS((
995    Pst *                pst,
996    RgMngmt *            cfm
997 ));
998 /** @brief This API is used to send a 
999 Configuration Confirm from MAC to LM. */
1000 EXTERN S16 cmUnpkLrgCfgCfm ARGS((
1001    LrgCfgCfm            func,
1002    Pst *                pst,
1003    Buffer               *mBuf
1004 ));
1005 /** @brief This API is used to send a 
1006 Configuration Confirm from SCH to LM. */
1007 EXTERN S16 cmPkLrgSchCfgCfm ARGS((
1008    Pst *                pst,
1009    RgMngmt *            cfg
1010 ));
1011 /** @brief This API is used to send a 
1012 Configuration Confirm from SCH to LM. */
1013 EXTERN S16 cmUnpkLrgSchCfgCfm ARGS((
1014    LrgSchCfgCfm         func,
1015    Pst *                pst,
1016    Buffer               *mBuf
1017 ));
1018 /** @brief This API is used to send a 
1019 Statistics Request from LM to MAC. */
1020 EXTERN S16 cmPkLrgStsReq ARGS((
1021    Pst *                pst,
1022    RgMngmt *            sts
1023 ));
1024 /** @brief This API is used to send a 
1025 Statistics Request from LM to MAC. */
1026 EXTERN S16 cmUnpkLrgStsReq ARGS((
1027    LrgStsReq            func,
1028    Pst *                pst,
1029    Buffer               *mBuf
1030 ));
1031 /** @brief This API is used to send a 
1032 Statistics Confirm from MAC to LM. */
1033 EXTERN S16 cmPkLrgStsCfm ARGS((
1034    Pst *                pst,
1035    RgMngmt *            cfm
1036 ));
1037 /** @brief This API is used to send a 
1038 Statistics Confirm from MAC to LM. */
1039 EXTERN S16 cmUnpkLrgStsCfm ARGS((
1040    LrgStsCfm            func,
1041    Pst *                pst,
1042    Buffer               *mBuf
1043 ));
1044 /** @brief This API is used to send a 
1045 Status Request from LM to MAC. */
1046 EXTERN S16 cmPkLrgStaReq ARGS((
1047    Pst *                pst,
1048    RgMngmt *            sta
1049 ));
1050 /** @brief This API is used to send a 
1051 Status Request from LM to MAC. */
1052 EXTERN S16 cmUnpkLrgStaReq ARGS((
1053    LrgStaReq            func,
1054    Pst *                pst,
1055    Buffer               *mBuf
1056 ));
1057 /** @brief This API is used to send a 
1058 Status Confirm from MAC to LM. */
1059 EXTERN S16 cmPkLrgStaCfm ARGS((
1060    Pst *                pst,
1061    RgMngmt *            cfm
1062 ));
1063 /** @brief This API is used to send a 
1064 Status Confirm from MAC to LM. */
1065 EXTERN S16 cmUnpkLrgStaCfm ARGS((
1066    LrgStaCfm            func,
1067    Pst *                pst,
1068    Buffer               *mBuf
1069 ));
1070 /** @brief This API is used to send a 
1071 Status Indication from MAC to LM. */
1072 EXTERN S16 cmPkLrgStaInd ARGS((
1073    Pst *                pst,
1074    RgMngmt *            usta
1075 ));
1076 /** @brief This API is used to send a 
1077 Status Indication from MAC to LM. */
1078 EXTERN S16 cmUnpkLrgStaInd ARGS((
1079    LrgStaInd            func,
1080    Pst *                pst,
1081    Buffer               *mBuf
1082 ));
1083 /** @brief This API is used to send a 
1084 Status Indication from SCH to LM. */
1085 EXTERN S16 cmPkLrgSchStaInd ARGS((
1086    Pst *                pst,
1087    RgMngmt *            sta
1088 ));
1089 /** @brief This API is used to send a 
1090 Status Indication from SCH to LM. */
1091 EXTERN S16 cmUnpkLrgSchStaInd ARGS((
1092    LrgSchStaInd         func,
1093    Pst *                pst,
1094    Buffer               *mBuf
1095 ));
1096 /** @brief This API is used to send a 
1097 Control Request from LM to MAC. */
1098 EXTERN S16 cmPkLrgCntrlReq ARGS((
1099    Pst *                pst,
1100    RgMngmt *            cntrl
1101 ));
1102 /** @brief This API is used to send a 
1103 Control Request from LM to MAC. */
1104 EXTERN S16 cmUnpkLrgCntrlReq ARGS((
1105    LrgCntrlReq          func,
1106    Pst *                pst,
1107    Buffer               *mBuf
1108 ));
1109 /** @brief This API is used to send a 
1110 Control Request from LM to SCH. */
1111 EXTERN S16 cmPkLrgSchCntrlReq ARGS((
1112    Pst *                pst,
1113    RgMngmt *            cntrl
1114 ));
1115 /** @brief This API is used to send a 
1116 Control Request from LM to SCH. */
1117 EXTERN S16 cmUnpkLrgSchCntrlReq ARGS((
1118    LrgSchCntrlReq       func,
1119    Pst *                pst,
1120    Buffer               *mBuf
1121 ));
1122 /** @brief This API is used to send a 
1123 Control Confirm from MAC to LM.*/
1124 EXTERN S16 cmPkLrgCntrlCfm ARGS((
1125    Pst *                pst,
1126    RgMngmt *            cfm
1127 ));
1128 /** @brief This API is used to send a 
1129 Control Confirm from MAC to LM. */
1130 EXTERN S16 cmUnpkLrgCntrlCfm ARGS((
1131    LrgCntrlCfm          func,
1132    Pst *                pst,
1133    Buffer               *mBuf
1134 ));
1135 /** @brief This API is used to send a 
1136 Control Confirm from SCH to LM. */
1137 EXTERN S16 cmPkLrgSchCntrlCfm ARGS((
1138    Pst *                pst,
1139    RgMngmt *            cntrl
1140 ));
1141 /** @brief This API is used to send a 
1142 Control Confirm from SCH to LM. */
1143 EXTERN S16 cmUnpkLrgSchCntrlCfm ARGS((
1144    LrgSchCntrlCfm       func,
1145    Pst *                pst,
1146    Buffer               *mBuf
1147 ));
1148 /** @brief This API is used to send a 
1149 Trace Indication from MAC to LM. */
1150 EXTERN S16 cmPkLrgTrcInd ARGS((
1151    Pst *                pst,
1152    RgMngmt *            trc,
1153    Buffer *             trcBuf
1154 ));
1155 /** @brief This API is used to send a 
1156 Trace Indication from MAC to LM. */
1157 EXTERN S16 cmUnpkLrgTrcInd ARGS((
1158    LrgTrcInd            func,
1159    Pst *                pst,
1160    Buffer               *mBuf
1161 ));
1162 EXTERN S16 cmPkRgGenCfg ARGS((
1163    RgGenCfg             *param,
1164    Buffer               *mBuf
1165 ));
1166 EXTERN S16 cmUnpkRgGenCfg ARGS((
1167    RgGenCfg             *param,
1168    Buffer               *mBuf
1169 ));
1170 EXTERN S16 cmPkRgUpSapCfg ARGS((
1171    RgUpSapCfg           *param,
1172    Buffer               *mBuf
1173 ));
1174 EXTERN S16 cmUnpkRgUpSapCfg ARGS((
1175    RgUpSapCfg           *param,
1176    Buffer               *mBuf
1177 ));
1178 EXTERN S16 cmPkRgLowSapCfg ARGS((
1179    RgLowSapCfg          *param,
1180    Buffer               *mBuf
1181 ));
1182 EXTERN S16 cmUnpkRgLowSapCfg ARGS((
1183    RgLowSapCfg          *param,
1184    Buffer               *mBuf
1185 ));
1186 EXTERN S16 cmPkRgGenSts ARGS((
1187    RgGenSts             *param,
1188    Buffer               *mBuf
1189 ));
1190
1191 #ifdef MAC_SCH_STATS
1192 EXTERN S16 cmPkRgSchHqRetxStats ARGS((
1193    RgSchHqRetxStats     *param,
1194    Buffer               *mBuf
1195 ));
1196 EXTERN S16 cmPkRgSchNackAckStats ARGS((
1197    RgSchNackAckStats    *param,
1198    Buffer               *mBuf
1199 ));
1200 EXTERN S16 cmPkRgHqNumRetx ARGS((
1201    RgSchHqNumRetx       *param,
1202    Buffer               *mBuf
1203 ));
1204 EXTERN S16 cmPkRgAckNack ARGS((
1205    RgAckNack            *param,
1206    Buffer               *mBuf
1207 ));
1208
1209 EXTERN S16 cmUnpkRgSchHqRetxStats ARGS((
1210    RgSchHqRetxStats     *param,
1211    Buffer               *mBuf
1212 ));
1213 EXTERN S16 cmUnpkRgSchNackAckStats ARGS((
1214    RgSchNackAckStats    *param,
1215    Buffer               *mBuf
1216 ));
1217 EXTERN S16 cmUnpkRgHqNumRetx ARGS((
1218    RgSchHqNumRetx       *param,
1219    Buffer               *mBuf
1220 ));
1221 EXTERN S16 cmUnpkRgAckNack ARGS((
1222    RgAckNack            *param,
1223    Buffer               *mBuf
1224 ));
1225 #endif /* MAC_SCH_STATS */
1226
1227 EXTERN S16 cmUnpkRgGenSts ARGS((
1228    RgGenSts             *param,
1229    Buffer               *mBuf
1230 ));
1231 EXTERN S16 cmPkRgSapSts ARGS((
1232    RgSapSts             *param,
1233    Buffer               *mBuf
1234 ));
1235 EXTERN S16 cmUnpkRgSapSts ARGS((
1236    RgSapSts             *param,
1237    Buffer               *mBuf
1238 ));
1239 EXTERN S16 cmPkRgSchInstCfg ARGS((
1240    RgSchInstCfg         *param,
1241    Buffer               *mBuf
1242 ));
1243 EXTERN S16 cmUnpkRgSchInstCfg ARGS((
1244    RgSchInstCfg         *param,
1245    Buffer               *mBuf
1246 ));
1247 EXTERN S16 cmPkRgCfg ARGS((
1248    RgCfg                *param,
1249    S16                  elmnt,
1250    Buffer               *mBuf
1251 ));
1252 EXTERN S16 cmUnpkRgCfg ARGS((
1253    RgCfg                *param,
1254    S16                  elmnt,
1255    Buffer               *mBuf
1256 ));
1257 EXTERN S16 cmPkRgSapSta ARGS((
1258    RgSapSta             *param,
1259    Buffer               *mBuf
1260 ));
1261 EXTERN S16 cmUnpkRgSapSta ARGS((
1262    RgSapSta             *param,
1263    Buffer               *mBuf
1264 ));
1265 EXTERN S16 cmPkRgSts ARGS((
1266    RgSts                *param,
1267    S16                  elmnt,
1268    Buffer               *mBuf
1269 ));
1270 EXTERN S16 cmUnpkRgSts ARGS((
1271    RgSts                *param,
1272    S16                  elmnt,
1273    Buffer               *mBuf
1274 ));
1275 /* lrg_x_001.main_3 - MODIFY -  Modified the below function to hold the event type */
1276 #ifdef LRG_V1
1277 EXTERN S16 cmPkRgSsta ARGS((
1278    Pst                  *pst,
1279    RgSsta               *param,
1280    S16                  elmnt,
1281    /*ccpu00118255 - ADD - eventType param */
1282    U8                   eventType,
1283    Buffer               *mBuf
1284 ));
1285 #else /*LRG_V1 not defined */
1286 EXTERN S16 cmPkRgSsta ARGS((
1287    Pst                  *pst,
1288    RgSsta               *param,
1289    S16                  elmnt,
1290    Buffer               *mBuf
1291 ));
1292 #endif /* LRG_V1 endif */
1293 EXTERN S16 cmUnpkRgSsta ARGS((
1294    Pst                  *pst,
1295    RgSsta               *param,
1296    S16                  elmnt,
1297    Buffer               *mBuf
1298 ));
1299 EXTERN S16 cmPkRgUstaDgn ARGS((
1300    RgUstaDgn            *param,
1301    Buffer               *mBuf
1302 ));
1303 EXTERN S16 cmUnpkRgUstaDgn ARGS((
1304    RgUstaDgn            *param,
1305    Buffer               *mBuf
1306 ));
1307 EXTERN S16 cmPkRgUsta ARGS((
1308    RgUsta               *param,
1309    Buffer               *mBuf
1310 ));
1311 EXTERN S16 cmUnpkRgUsta ARGS((
1312    RgUsta               *param,
1313    Buffer               *mBuf
1314 ));
1315 EXTERN S16 cmPkRgTrc ARGS((
1316    RgTrc                *param,
1317    Buffer               *mBuf
1318 ));
1319 EXTERN S16 cmUnpkRgTrc ARGS((
1320    RgTrc                *param,
1321    Buffer               *mBuf
1322 ));
1323 EXTERN S16 cmPkRgDbgCntrl ARGS((
1324    RgDbgCntrl           *param,
1325    Buffer               *mBuf
1326 ));
1327 EXTERN S16 cmUnpkRgDbgCntrl ARGS((
1328    RgDbgCntrl           *param,
1329    Buffer               *mBuf
1330 ));
1331 EXTERN S16 cmPkRgSapCntrl ARGS((
1332    RgSapCntrl           *param,
1333    Buffer               *mBuf
1334 ));
1335 EXTERN S16 cmUnpkRgSapCntrl ARGS((
1336    RgSapCntrl           *param,
1337    Buffer               *mBuf
1338 ));
1339 EXTERN S16 cmPkRgCntrl ARGS((
1340    RgCntrl              *param,
1341    S16                  elmnt,
1342    Buffer               *mBuf
1343 ));
1344 EXTERN S16 cmUnpkRgCntrl ARGS((
1345    RgCntrl              *param,
1346    S16                  elmnt,
1347    Buffer               *mBuf
1348 ));
1349 EXTERN S16 cmPkRgMngmt ARGS((
1350    Pst *pst,
1351    RgMngmt *param,
1352    U8 eventType,
1353    Buffer *mBuf
1354 ));
1355 EXTERN S16 cmUnpkRgMngmt ARGS((
1356    Pst *pst,
1357    RgMngmt *param,
1358    U8 eventType,
1359    Buffer *mBuf
1360 ));
1361
1362 #ifdef PHY_ERROR_LOGING
1363 EXTERN S16 cmPkRgSchUlAllocCntrl ARGS((
1364    RgSchUlAllocCntrl *param,
1365    Buffer *mBuf
1366 ));
1367
1368 EXTERN S16 cmUnpkRgSchUlAllocCntrl ARGS((
1369    RgSchUlAllocCntrl *param,
1370    Buffer *mBuf
1371 ));
1372 #endif
1373 /* lrg_x_001.main_4 ccpu00117036 - C++ support */
1374 #ifdef __cplusplus
1375 }
1376 #endif
1377 #endif
1378
1379 #endif /* __LRGX__. */
1380
1381 \f
1382 /**********************************************************************
1383    End of file
1384 **********************************************************************/