FAPI Slot Indication Changes
[o-du/l2.git] / src / cm / crg.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:     Structures, variables and typedefs required by the LTE MAC-RRC
26             Control (CRG) interface.
27
28   File:     crg.x 
29
30 **********************************************************************/
31
32 #ifndef __CRG_X__
33 #define __CRG_X__
34
35 /** 
36   @file crg.x 
37   @brief Structure declarations and definitions for CRG interface.
38   */
39
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43
44 /* Enumertaions for CRG */
45
46 /* Data Structures for CRG */
47
48 /** 
49   @brief Transaction ID between MAC and RRC. */
50 typedef struct crgCfgTransId
51 {
52    U8 trans[CRG_CFG_TRANSID_SIZE]; /*!< RRC transaction ID */
53 } CrgCfgTransId;
54
55 /** 
56   @brief Bandwidth configuration per cell. */
57 typedef struct crgBwCfg
58 {
59    U8 dlTotalBw;            /*!< Total Dowlink Bandwidth */
60    U8 ulTotalBw;            /*!< Total Uplink Bandwidth  */
61 } CrgBwCfg;
62
63 /** 
64   @brief RACH configuration per cell. */
65 typedef struct crgRachCfg
66 {
67    U8  maxMsg3Tx;            /*!< Maximum number of message 3 transmissions */
68 } CrgRachCfg;
69
70 #ifdef LTE_ADV
71 /** @brief UE secondary cell config params to MAC*/
72 typedef struct crgUeSCellInfo
73 {
74   U16                  sCellId;       /*!< This will be secondary cellId */
75   Inst                 macInst;       /*!< MAC instance for SCell */
76   SuId                 rguUlSapId;    /*!< MAC-RLC UL Sap ID */ 
77   SuId                 rguDlSapId;    /*!< MAC-RLC DL SAP ID */
78 }CrgUeSCellInfo;
79
80
81 /** @brief Configuration information of Secondary cells for a UE*/
82 typedef struct crgUeSecCellInfo 
83 {
84   Bool                 isSCellCfgPres; /*!<  Bool indicates whether configuration
85                                    is present */
86   U8                   numSCells;                        /*!< Number of SCells
87                                                           */
88   CrgUeSCellInfo       ueSCellCfg[CRG_MAX_SCELL_PER_UE]; /*!< Secondary cell 
89                                                            configuration per UE */
90 }CrgUeSecCellInfo;
91
92 #endif /* LTE_ADV */
93
94 /** 
95   @brief Cell configuration. */
96 typedef struct crgCellCfg
97 {
98    CmLteCellId   cellId;       /*!< Cell ID */
99    CrgRachCfg    rachCfg;      /*!< RACH Configuration */
100    CrgBwCfg      bwCfg;        /*!< Bandwidth Configuration */
101 #ifdef TENB_MULT_CELL_SUPPRT
102    SpId          rguUlSapId;   /*!< RLC UL SAP Id for common channels */
103    SpId          rguDlSapId;   /*!< RLC DL SAP Id for common channels */
104 #endif
105 #ifdef EMTC_ENABLE
106    U8            emtcEnable;
107 #endif
108 } CrgCellCfg;
109
110 /** 
111   @brief Uplink HARQ configuration per UE. */
112 typedef struct crgUeUlHqCfg
113 {
114    U8 maxUlHqTx;           /*!< Maximum number of UL HARQ transmissions */
115 } CrgUeUlHqCfg;
116
117 /* crg_x_001.main_3 - Changes for MIMO feature addition */
118 /* crg_x_001.main_4 - Changes for MIMO feature addition */
119 /** 
120  * @enum UE Transmission Modes */
121 typedef enum crgTxMode
122 {
123    CRG_UE_TM_1 = 1,    /** Transmission Mode 1 */
124    CRG_UE_TM_2,        /** Transmission Mode 2 */
125    CRG_UE_TM_3,        /** Transmission Mode 3 */
126    CRG_UE_TM_4,        /** Transmission Mode 4 */
127    CRG_UE_TM_5,        /** Transmission Mode 5 */
128    CRG_UE_TM_6,        /** Transmission Mode 6 */
129    CRG_UE_TM_7         /** Transmission Mode 7 */
130 } CrgTxMode;
131
132 /** 
133   @brief UE Transmission mode configuration */
134 typedef struct crgTxModeCfg
135 {
136    Bool      pres;  /*!< TRUE if Transmission mode is being CFG/RECFG ed */
137    CrgTxMode tm;    /*!< Transmission mode */
138 }CrgTxModeCfg;
139 /** 
140   @brief UE configuration. */
141 typedef struct crgUeCfg
142 {
143    CmLteCellId    cellId;      /*!< Cell ID */
144    CmLteRnti      crnti;       /*!< UE ID: CRNTI */ 
145    CrgUeUlHqCfg   ueUlHqCfg;   /*!< UE related UL HARQ configuration */
146    CrgTxModeCfg   txMode;      /*!< UE Transmission mode Cfg */
147 #ifdef TENB_MULT_CELL_SUPPRT
148    SpId           rguUlSapId;   /*!< RLC UL SAP Id for common channels */
149    SpId           rguDlSapId;   /*!< RLC DL SAP Id for common channels */
150 #endif
151 } CrgUeCfg;
152
153 /** 
154   @brief Logical channel configuration information for downlink logical channels. */
155 typedef struct crgDlLchCfg 
156 {
157    U8             dlTrchType; /*!< Indicates type of DL transport channel:
158                                    Validated only for BCCH at MAC. DL Transport
159                                    channel type can take following values:<br>
160                                    CM_LTE_TRCH_BCH<br> 
161                                    CM_LTE_TRCH_PCH<br>
162                                    CM_LTE_TRCH_DL_SCH  */
163 } CrgDlLchCfg;
164
165 /** 
166   @brief Logical channel configuration information for uplink logical channels. */
167 typedef struct crgUlLchCfg
168 {
169    U8             ulTrchType; /*!< Indicates type of UL transport channel:
170                                    Validated only for BCCH at MAC. 
171                                    UL Transport channel type can take following values:<br>
172                                    CM_LTE_TRCH_RACH<br>
173                                    CM_LTE_TRCH_UL_SCH */  
174    U8             lcgId;      /*!< Logical channel group ID */
175 } CrgUlLchCfg;
176
177 /* crg_x_001.main_2: Documentation update */
178 /** 
179   @brief Logical channel configuration information for common and dedicated channels. */
180 typedef struct crgLchCfg
181 {
182    CmLteCellId   cellId;     /*!< Cell ID */
183    CmLteRnti     crnti;      /*!< CRNTI for DTCH and DCCH */
184    CmLteLcId     lcId;       /*!< Logical channel ID */
185    CmLteLcType   lcType;     /*!< Identifies the Logical channel type. lcType can take the following values:<br>                                            
186                                       CM_LTE_LCH_BCCH<br>
187                                       CM_LTE_LCH_PCCH<br>
188                                       CM_LTE_LCH_CCCH<br>
189                                       CM_LTE_LCH_DCCH<br>
190                                       CM_LTE_LCH_DTCH */  
191                             
192    U8            dir;        /*!< Indicates Direction. Direction can take following 
193                                   values:<br>
194                                   CRG_DIR_TX<br>
195                                   CRG_DIR_RX<br>
196                                   CRG_DIR_TX_RX */  
197
198    CrgDlLchCfg   dlInfo;     /*!< Downlink logical channel configuration info */
199    CrgUlLchCfg   ulInfo;     /*!< Uplink logical channel configuration info */
200    /* crg_x_001.main_5 - ADD - Members corresponding to LTE_L2_MEAS */
201 #ifdef LTE_L2_MEAS
202    U8 qci;                   /*!< QCI for the logical channel.
203                                   Valid Range:[0-255] (Actual QCI - 1). */
204
205 #endif /* LTE_L2_MEAS */
206 } CrgLchCfg;
207
208 /** 
209   @brief Basic configuration information for MAC. */
210 typedef struct crgCfg
211 {
212    U8 cfgType;               /*!< Indicates configuration type */
213    union crgCfgU  
214    {
215       CrgCellCfg  cellCfg;   /*!< Cell configuration */
216       CrgUeCfg    ueCfg;     /*!< UE configuration */ 
217       CrgLchCfg   lchCfg;    /*!< Logical channel configuration */
218    } u;                      /*!< Union of Cell/UE/Lch configuration */
219 } CrgCfg;
220
221
222 /** 
223   @brief Activation time information. */
224 typedef struct crgActvTime
225 {
226    Bool            pres;      /*!< Indicates the presence of activation time */
227    CmLteTimingInfo actvTime;  /*!< Activation time information */ 
228 } CrgActvTime;
229
230
231 /** 
232   @brief Cell reconfiguration information. */
233 typedef struct crgCellRecfg
234 {
235    CmLteCellId     cellId;         /*!< Cell ID */
236    CrgRachCfg      rachRecfg;      /*!< RACH Configuration */
237 } CrgCellRecfg;
238
239 /** 
240   @brief UE reconfiguration information. */
241 typedef struct crgUeRecfg
242 {
243    CmLteCellId       cellId;          /*!< Cell ID */
244    CmLteRnti         oldCrnti;        /*!< Old UE ID */
245    CmLteRnti         newCrnti;        /*!< New UE ID: This value must match
246                                         'oldCrnti',if no CRNTI change during
247                                          reconfiguration */
248    CrgUeUlHqCfg      ueUlHqRecfg;     /*!< UE UL HARQ information */
249    CrgTxModeCfg      txMode;          /*!< UE Transmission mode ReCfg */
250 #ifdef LTE_ADV
251    CrgUeSecCellInfo crgSCellCfg;    /*!< Secondary cell dedicated informaton
252                                              per UE */
253 #endif
254 } CrgUeRecfg;
255
256 /** 
257   @brief Logical channel reconfiguration information for dedicated channels only. */
258 typedef struct crgLchRecfg
259 {
260    CmLteCellId cellId;       /*!< Cell ID */
261    CmLteRnti   crnti;        /*!< CRNTI for DTCH and DCCH */
262    CmLteLcId   lcId;         /*!< Logical channel ID */
263    
264    struct ulRecfgS 
265    {
266       U8             lcgId;  /*!< Logical channel group ID */
267    } ulRecfg;                /*!< Uplink logical channel reconfiguration information */
268
269 } CrgLchRecfg;
270
271 /** 
272   @brief Basic reconfiguration information for MAC. */
273 typedef struct crgRecfg
274 {
275    U8 recfgType;                /*!< Indicates reconfiguration type */
276    union crgRecfgU
277    {
278       CrgCellRecfg  cellRecfg;  /*!< Cell Reconfig information */
279       CrgUeRecfg    ueRecfg;    /*!< UE Reconfig information */ 
280       CrgLchRecfg   lchRecfg;   /*!< Logical channel reconfiguration information */
281    } u;                         /*!< Union of Cell/UE/Lch reconfiguration information
282                                   */
283 } CrgRecfg;
284
285 /** 
286   @brief Basic Delete information for MAC. */
287 typedef struct crgDel
288 {
289    U8 delType;               /*!< Indicates configuration item to be deleted */
290    union crgDelU
291    {
292       struct cellDelS 
293       {
294          CmLteCellId cellId; /*!< Cell ID */
295       } cellDel;             /*!< Cell Delete information */
296
297       struct ueDelS 
298       {
299          CmLteCellId cellId; /*!< Cell ID */
300          CmLteRnti   crnti;  /*!< UE ID: CRNTI */
301       } ueDel;               /*!< UE Delete information */
302       
303       struct lchDelS
304       {
305          CmLteCellId cellId; /*!< Cell ID */
306          CmLteRnti   crnti;  /*!< CRNTI for DTCH and DCCH */
307          CmLteLcId   lcId;   /*!< Logical channel ID */
308          U8          dir;    /*!< Indicates Direction. Direction can take following 
309                                   values:<br>
310                                   CRG_DIR_TX<br>
311                                   CRG_DIR_RX<br>
312                                   CRG_DIR_TX_RX */ 
313       } lchDel;              /*!< Logical channel delete information */
314    } u;                      /*!< Union of Cell/UE/Lch delete information */
315 } CrgDel;
316
317 /** 
318   @brief UE RESET information for MAC. */
319 typedef struct crgRst
320 {
321    CmLteCellId cellId; /*!< Cell ID */
322    CmLteRnti   crnti;  /*!< UE ID: CRNTI tobe RESET */
323 } CrgRst;
324 /** 
325   @brief Config/Reconfig/Delete information for MAC. */
326 typedef struct crgCfgReqInfo 
327 {
328    U8  action;               /*!< Determines cfg/recfg/del/reset */
329    union cfgReqInfoU
330    {
331       CrgCfg   cfgInfo;      /*!< Configuration related infomation */
332       CrgRecfg recfgInfo;    /*!< Reconfiguration related information */
333       CrgDel   delInfo;      /*!< Deletion related information */
334       CrgRst   rstInfo;      /*!< Reset related information */
335    } u;                      /*!< Union of config/re-config/delete information */
336 } CrgCfgReqInfo;
337
338 /* 
339    Function Prototypes 
340  */
341 /** @brief Request from RRC to MAC to bind the interface SAPs. */
342 typedef S16 (*CrgBndReq) ARGS((
343    Pst*                 pst,
344    SuId                 suId,
345    SpId                 spId));
346 /** @brief Confirmation from MAC to RRC for the bind/unbind 
347  * request for the interface SAPs. */
348 typedef S16 (*CrgBndCfm) ARGS((
349    Pst*                 pst,
350    SuId                 suId,
351    U8                   status));
352 /** @brief Request from RRC to MAC to unbind the interface SAPs. */
353 typedef S16 (*CrgUbndReq) ARGS((
354    Pst*                 pst,
355    SpId                 spId,
356    Reason               reason));
357 /** @brief Configuration Request from RRC to MAC for 
358  * configuring Cell/Ue/Lch. */
359 typedef S16 (*CrgCfgReq) ARGS((
360    Pst*                 pst,
361    SpId                 spId,
362    CrgCfgTransId        transId,
363    CrgCfgReqInfo  *     cfgReqInfo));
364 /** @brief Configuration Confirm from MAC to RRC. */
365 typedef S16 (*CrgCfgCfm) ARGS((
366    Pst*                 pst,
367    SuId                 suId,
368    CrgCfgTransId        transId,
369    U8                   status));
370
371 /** @brief Request from RRC to MAC to bind the interface SAPs. */
372 EXTERN S16 RgUiCrgBndReq ARGS((
373    Pst*                 pst,
374    SuId                 suId,
375    SpId                 spId
376 ));
377 /** @brief Confirmation from MAC to RRC for the bind/unbind 
378  * request for the interface SAPs. */
379 EXTERN S16 RgUiCrgBndCfm ARGS((
380    Pst*                 pst,
381    SuId                 suId,
382    U8                   status
383 ));
384 /** @brief Request from RRC to MAC to Unbind the interface SAPs. */
385 EXTERN S16 RgUiCrgUbndReq ARGS((
386    Pst*                 pst,
387    SpId                 spId,
388    Reason               reason
389 ));
390 /** @brief Configuration Request from RRC to MAC for 
391  * configuring Cell/Ue/Lch. */
392 EXTERN S16 RgUiCrgCfgReq ARGS((
393    Pst*                 pst,
394    SpId                 spId,
395    CrgCfgTransId        transId,
396    CrgCfgReqInfo  *     cfgReqInfo
397 ));
398 /** @brief Configuration Confirm from MAC to RRC. */
399 EXTERN S16 RgUiCrgCfgCfm ARGS((
400    Pst*                 pst,
401    SuId                 suId,
402    CrgCfgTransId        transId,
403    U8                   status
404 ));
405
406 #ifdef NH
407 /** @brief Request from RRC to MAC to bind the interface SAPs. */
408 EXTERN S16 NhLiCrgBndReq ARGS((
409    Pst*                 pst,
410    SuId                 suId,
411    SpId                 spId
412 ));
413 /** @brief Confirmation from MAC to RRC for the bind/unbind 
414  * request for the interface SAPs. */
415 EXTERN S16 NhLiCrgBndCfm ARGS((
416    Pst*                 pst,
417    SuId                 suId,
418    U8                   status
419 ));
420 /** @brief Request from RRC to MAC to Unbind the interface SAPs. */
421 EXTERN S16 NhLiCrgUbndReq ARGS((
422    Pst*                 pst,
423    SpId                 spId,
424    Reason               reason
425 ));
426 /** @brief Configuration Request from RRC to MAC for 
427  * configuring Cell/Ue/Lch. */
428 EXTERN S16 NhLiCrgCfgReq ARGS((
429    Pst*                 pst,
430    SpId                 spId,
431    CrgCfgTransId        transId,
432    CrgCfgReqInfo  *     cfgReqInfo
433 ));
434 /** @brief Configuration Confirm from MAC to RRC. */
435 EXTERN S16 NhLiCrgCfgCfm ARGS((
436    Pst*                 pst,
437    SuId                 suId,
438    CrgCfgTransId        transId,
439    U8                   status
440 ));
441 #endif
442
443 #ifdef LCCRG
444 /** @brief Request from RRC to MAC to bind the interface SAPs. */
445 EXTERN S16 cmPkCrgBndReq ARGS((
446    Pst*                 pst,
447    SuId                 suId,
448    SpId                 spId
449 ));
450 /** @brief Request from RRC to MAC to bind the interface SAPs. */
451 EXTERN S16 cmUnpkCrgBndReq ARGS((
452    CrgBndReq            func,
453    Pst*                 pst,
454    Buffer               *mBuf
455 ));
456 /** @brief Confirmation from MAC to RRC for the bind/unbind 
457  * request for the interface SAPs. */
458 EXTERN S16 cmPkCrgBndCfm ARGS((
459    Pst*                 pst,
460    SuId                 suId,
461    U8                   status
462 ));
463 /** @brief Confirmation from MAC to RRC for the bind/unbind 
464  * request for the interface SAPs. */
465 EXTERN S16 cmUnpkCrgBndCfm ARGS((
466    CrgBndCfm            func,
467    Pst*                 pst,
468    Buffer               *mBuf
469 ));
470 /** @brief Request from RRC to MAC to unbind the interface SAPs. */
471 EXTERN S16 cmPkCrgUbndReq ARGS((
472    Pst*                 pst,
473    SpId                 spId,
474    Reason               reason
475 ));
476 /** @brief Request from RRC to MAC to unbind the interface SAPs. */
477 EXTERN S16 cmUnpkCrgUbndReq ARGS((
478    CrgUbndReq           func,
479    Pst*                 pst,
480    Buffer               *mBuf
481 ));
482 /** @brief Configuration Request from RRC to MAC for 
483  * configuring Cell/Ue/Lch. */
484 EXTERN S16 cmPkCrgCfgReq ARGS((
485    Pst*                 pst,
486    SpId                 spId,
487    CrgCfgTransId        transId,
488    CrgCfgReqInfo  *     cfgReqInfo
489 ));
490 /** @brief Configuration Request from RRC to MAC for 
491  * configuring Cell/Ue/Lch. */
492 EXTERN S16 cmUnpkCrgCfgReq ARGS((
493    CrgCfgReq            func,
494    Pst*                 pst,
495    Buffer               *mBuf
496 ));
497 /** @brief Configuration Confirm from MAC to RRC. */
498 EXTERN S16 cmPkCrgCfgCfm ARGS((
499    Pst*                 pst,
500    SuId                 suId,
501    CrgCfgTransId        transId,
502    U8                   status
503 ));
504 /** @brief Configuration Confirm from MAC to RRC. */
505 EXTERN S16 cmUnpkCrgCfgCfm ARGS((
506    CrgCfgCfm            func,
507    Pst*                 pst,
508    Buffer               *mBuf
509 ));
510 EXTERN S16 cmPkCrgCfgTransId ARGS((
511    CrgCfgTransId        *param,
512    Buffer               *mBuf
513 ));
514 EXTERN S16 cmUnpkCrgCfgTransId ARGS((
515    CrgCfgTransId        *param,
516    Buffer               *mBuf
517 ));
518 EXTERN S16 cmPkCrgBwCfg ARGS((
519    CrgBwCfg             *param,
520    Buffer               *mBuf
521 ));
522 EXTERN S16 cmUnpkCrgBwCfg ARGS((
523    CrgBwCfg             *param,
524    Buffer               *mBuf
525 ));
526 EXTERN S16 cmPkCrgRachCfg ARGS((
527    CrgRachCfg           *param,
528    Buffer               *mBuf
529 ));
530 EXTERN S16 cmUnpkCrgRachCfg ARGS((
531    CrgRachCfg           *param,
532    Buffer               *mBuf
533 ));
534 EXTERN S16 cmPkCrgCellCfg ARGS((
535    CrgCellCfg           *param,
536    Buffer               *mBuf
537 ));
538 EXTERN S16 cmUnpkCrgCellCfg ARGS((
539    CrgCellCfg           *param,
540    Buffer               *mBuf
541 ));
542 EXTERN S16 cmPkCrgUeUlHqCfg ARGS((
543    CrgUeUlHqCfg         *param,
544    Buffer               *mBuf
545 ));
546 EXTERN S16 cmUnpkCrgUeUlHqCfg ARGS((
547    CrgUeUlHqCfg         *param,
548    Buffer               *mBuf
549 ));
550 EXTERN S16 cmPkCrgUeCfg ARGS((
551    CrgUeCfg             *param,
552    Buffer               *mBuf
553 ));
554 EXTERN S16 cmUnpkCrgUeCfg ARGS((
555    CrgUeCfg             *param,
556    Buffer               *mBuf
557 ));
558
559 #ifdef LTE_ADV
560 EXTERN S16 cmPkCrgUeSecCellInfo ARGS((
561 CrgUeSecCellInfo *param,
562 Buffer *mBuf
563 ));
564
565 EXTERN S16 cmUnpkCrgUeSecCellInfo ARGS((
566 CrgUeSecCellInfo *param,
567 Buffer *mBuf
568 ));
569 #endif /* LTE_ADV */
570
571 EXTERN S16 cmPkCrgDlLchCfg ARGS((
572    CrgDlLchCfg          *param,
573    Buffer               *mBuf
574 ));
575 EXTERN S16 cmUnpkCrgDlLchCfg ARGS((
576    CrgDlLchCfg          *param,
577    Buffer               *mBuf
578 ));
579 EXTERN S16 cmPkCrgUlLchCfg ARGS((
580    CrgUlLchCfg          *param,
581    Buffer               *mBuf
582 ));
583 EXTERN S16 cmUnpkCrgUlLchCfg ARGS((
584    CrgUlLchCfg          *param,
585    Buffer               *mBuf
586 ));
587 EXTERN S16 cmPkCrgLchCfg ARGS((
588    CrgLchCfg            *param,
589    Buffer               *mBuf
590 ));
591 EXTERN S16 cmUnpkCrgLchCfg ARGS((
592    CrgLchCfg            *param,
593    Buffer               *mBuf
594 ));
595 EXTERN S16 cmPkCrgCfg ARGS((
596    CrgCfg               *param,
597    Buffer               *mBuf
598 ));
599 EXTERN S16 cmUnpkCrgCfg ARGS((
600    CrgCfg               *param,
601    Buffer               *mBuf
602 ));
603 EXTERN S16 cmPkCrgActvTime ARGS((
604    CrgActvTime          *param,
605    Buffer               *mBuf
606 ));
607 EXTERN S16 cmUnpkCrgActvTime ARGS((
608    CrgActvTime          *param,
609    Buffer               *mBuf
610 ));
611 EXTERN S16 cmPkCrgCellRecfg ARGS((
612    CrgCellRecfg         *param,
613    Buffer               *mBuf
614 ));
615 EXTERN S16 cmUnpkCrgCellRecfg ARGS((
616    CrgCellRecfg         *param,
617    Buffer               *mBuf
618 ));
619 EXTERN S16 cmPkCrgUeRecfg ARGS((
620    CrgUeRecfg           *param,
621    Buffer               *mBuf
622 ));
623 EXTERN S16 cmUnpkCrgUeRecfg ARGS((
624    CrgUeRecfg           *param,
625    Buffer               *mBuf
626 ));
627 EXTERN S16 cmPkCrgLchRecfg ARGS((
628    CrgLchRecfg          *param,
629    Buffer               *mBuf
630 ));
631 EXTERN S16 cmUnpkCrgLchRecfg ARGS((
632    CrgLchRecfg          *param,
633    Buffer               *mBuf
634 ));
635 EXTERN S16 cmPkCrgRecfg ARGS((
636    CrgRecfg             *param,
637    Buffer               *mBuf
638 ));
639 EXTERN S16 cmUnpkCrgRecfg ARGS((
640    CrgRecfg             *param,
641    Buffer               *mBuf
642 ));
643 EXTERN S16 cmPkCrgDel ARGS((
644    CrgDel               *param,
645    Buffer               *mBuf
646 ));
647 EXTERN S16 cmUnpkCrgDel ARGS((
648    CrgDel               *param,
649    Buffer               *mBuf
650 ));
651 EXTERN S16 cmPkCrgRst ARGS((
652    CrgRst               *param,
653    Buffer               *mBuf
654 ));
655 EXTERN S16 cmUnpkCrgRst ARGS((
656    CrgRst               *param,
657    Buffer               *mBuf
658 ));
659 EXTERN S16 cmPkCrgCfgReqInfo ARGS((
660    CrgCfgReqInfo        *param,
661    Buffer               *mBuf
662 ));
663 EXTERN S16 cmUnpkCrgCfgReqInfo ARGS((
664    CrgCfgReqInfo        *param,
665    Buffer               *mBuf
666 ));
667 #endif
668
669 #ifdef DM
670 /** @brief Request from RRC to MAC to bind the interface SAPs. */
671 EXTERN S16 DmUiCrgBndReq ARGS((
672    Pst*                 pst,
673    SuId                 suId,
674    SpId                 spId
675 ));
676 /** @brief Confirmation from MAC to RRC for the bind/unbind 
677  * request for the interface SAPs. */
678 EXTERN S16 DmUiCrgBndCfm ARGS((
679    Pst*                 pst,
680    SuId                 suId,
681    U8                   status
682 ));
683 /** @brief Request from RRC to MAC to unbind the interface SAPs. */
684 EXTERN S16 DmUiCrgUbndReq ARGS((
685    Pst*                 pst,
686    SpId                 spId,
687    Reason               reason
688 ));
689 /** @brief Configuration Request from RRC to MAC for 
690  * configuring Cell/Ue/Lch. */
691 EXTERN S16 DmUiCrgCfgReq ARGS((
692    Pst*                 pst,
693    SpId                 spId,
694    CrgCfgTransId        transId,
695    CrgCfgReqInfo  *     cfgReqInfo
696 ));
697 /** @brief Configuration Confirm from MAC to RRC. */
698 EXTERN S16 DmUiCrgCfgCfm ARGS((
699    Pst*                 pst,
700    SuId                 suId,
701    CrgCfgTransId        transId,
702    U8                   status
703 ));
704 #endif
705
706 #ifdef __cplusplus
707 }
708 #endif
709 #endif /* __CRG_X__ */
710
711 /**********************************************************************
712   
713          End of file
714 **********************************************************************/