Replaced old SSI function with new macros jira id - ODUHIGH-212
[o-du/l2.git] / src / 5gnrsch / rg_sch_pt.c
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 source file
24   
25      Desc:     C source code for INF Interface Module 
26   
27      File:     rg_sch_pt.c 
28   
29 **********************************************************************/
30
31 /** @file rg_sch_pt.c
32 @brief This file contains the definitions for Upper Interface(RGR/CRG/RGU) 
33        primitives that are invoked from MAC to its service users.
34        Portable functions corresponding to these primitives are also defined.
35 */
36 /* header include files (.h) */
37 #include "common_def.h"
38 #include "rg_env.h"        /* MAC Environment Defines */
39 #include "crg.h"           /* CRG Interface defines */
40 #include "rgr.h"           /* RGR Interface defines */
41 #include "rgu.h"           /* RGU Interface defines */
42 #include "cm_mblk.h"       /* memory management */
43 #include "cm_lte.h"        /* Common LTE Defines */
44 #include "tfu.h"           /* RGU Interface defines */
45 #ifdef LTE_L2_MEAS
46 #include "lrg.h"
47 #endif
48 #include "rg_sch_inf.h"           /* RGU Interface defines */
49
50 /* header/extern include files (.x) */
51 #include "crg.x"           /* CRG Interface includes */
52 #include "rgr.x"           /* RGR Interface includes */
53 #include "rgu.x"           /* RGU Interface includes */
54 #include "cm_mblk.x"       /* memory management */
55 #include "cm_lte.x"        /* Common LTE Defines */
56 #include "tfu.x"           /* RGU Interface includes */
57 #ifdef LTE_L2_MEAS
58 #include "lrg.x"
59 #endif
60 #include "rg_sch_inf.x"           /* RGU Interface includes */
61
62 #define RG_MAX_SCH 1
63
64 PRIVATE CONSTANT CellRegReq RgSchMacCellRegReqMt[RG_MAX_SCH] =
65 {
66 #ifdef LCSCH
67    cmPkSchMacCellRegReq,
68 #else
69    RgSchMacCellRegReq
70 #endif
71 };
72
73 PRIVATE CONSTANT DedBoUpdtReq RgMacSchDedBoUpdtReqMt[RG_MAX_SCH] =
74 {
75 #ifdef LCSCH
76    cmPkMacSchDedBoUpdtReq,
77 #else
78    RgMacSchDedBoUpdtReq
79 #endif
80 };
81
82 PRIVATE CONSTANT CmnBoUpdtReq RgMacSchCmnBoUpdtReqMt[RG_MAX_SCH] =
83 {
84 #ifdef LCSCH
85    cmPkMacSchCmnBoUpdtReq,
86 #else
87    RgMacSchCmnBoUpdtReq
88 #endif
89 };
90
91 PRIVATE CONSTANT SfRecpInd RgMacSchSfRecpIndMt[RG_MAX_SCH] =
92 {
93 #ifdef LCSCH
94    cmPkMacSchSfRecpInd
95 #else
96    RgMacSchSfRecpInd,
97 #endif
98 };
99 /*Fix: start: Inform UE delete to scheduler*/
100 PRIVATE CONSTANT UeDelInd RgMacSchUeDelIndMt[RG_MAX_SCH] =
101 {
102 #ifdef LCSCH
103    cmPkMacSchUeDelInd
104 #else
105    RgMacSchUeDelInd,
106 #endif
107 };
108 /*Fix: end: Inform UE delete to scheduler*/
109 PRIVATE CONSTANT SfAllocReq RgSchMacSfAllocReqMt[RG_MAX_SCH] =
110 {
111 #ifdef LCSCH
112    cmPkSchMacSfAllocReq,
113 #else
114    RgSchMacSfAllocReq
115 #endif
116 };
117
118 PRIVATE CONSTANT RstHqEntReq RgSchMacRstHqEntReqMt[RG_MAX_SCH] =
119 {
120 #ifdef LCSCH
121    cmPkSchMacRstHqEntReq,
122 #else
123    RgSchMacRstHqEntReq
124 #endif
125 };
126 PRIVATE CONSTANT RlsHqReq RgSchMacRlsHqReqMt[RG_MAX_SCH] =
127 {
128 #ifdef LCSCH
129    cmPkSchMacRlsHqReq,
130 #else
131    RgSchMacRlsHqReq
132 #endif
133 };
134
135 PRIVATE CONSTANT RlsRntiReq RgSchMacRlsRntiReqMt[RG_MAX_SCH] =
136 {
137 #ifdef LCSCH
138    cmPkSchMacRlsRntiReq,
139 #else
140    RgSchMacRlsRntiReq
141 #endif
142 };
143
144 PRIVATE CONSTANT LcgReg RgSchMacLcgRegReqMt[RG_MAX_SCH] =
145 {
146 #ifdef LCSCH
147    cmPkSchMacLcgRegReq,
148 #else
149    RgSchMacLcgRegReq
150 #endif
151 };
152
153 #ifdef LTEMAC_SPS
154 PRIVATE CONSTANT SpsLcReg RgSchMacSpsLcRegReqMt[RG_MAX_SCH] =
155 {
156 #ifdef LCSCH
157    cmPkSchMacSpsLcRegReq,
158 #else
159    RgSchMacSpsLcRegReq
160 #endif
161 };
162
163 PRIVATE CONSTANT UlSpsReset RgSchMacUlSpsResetMt[RG_MAX_SCH] =
164 {
165 #ifdef LCSCH
166    cmPkSchMacUlSpsReset,
167 #else
168    RgSchMacUlSpsResetReq
169 #endif
170 };
171
172
173
174 PRIVATE CONSTANT SpsLcDereg RgSchMacSpsLcDeregReqMt[RG_MAX_SCH] =
175 {
176 #ifdef LCSCH
177    cmPkSchMacSpsLcDeregReq,
178 #else
179    RgSchMacSpsLcDeregReq
180 #endif
181 };
182
183 PRIVATE CONSTANT SpsRelInd RgMacSchSpsRelIndMt[RG_MAX_SCH] =
184 {
185 #ifdef LCSCH
186    cmPkMacSchSpsRelInd,
187 #else
188    RgMacSchSpsRelInd
189 #endif
190 };
191
192 #endif /* LTEMAC_SPS */
193
194 #ifdef LTE_L2_MEAS
195 PRIVATE CONSTANT L2MeasReq RgSchMacL2MeasReqMt[RG_MAX_SCH] =
196 {
197 #ifdef LCSCH
198    cmPkSchMacL2MeasReq
199 #else
200    RgSchMacL2MeasReq
201 #endif
202 };
203 /*Added for Rsys oam*/
204 PRIVATE CONSTANT L2MeasStopReq RgSchMacL2MeasStopReqMt[RG_MAX_SCH] =
205 {
206 #ifdef LCSCH
207    cmPkSchMacL2MeasStopReq
208 #else
209    RgSchMacL2MeasStopReq
210 #endif
211 };
212
213 PRIVATE CONSTANT L2MeasSendReq RgSchMacL2MeasSendReqMt[RG_MAX_SCH] =
214 {
215 #ifdef LCSCH
216    cmPkSchMacL2MeasSendReq
217 #else
218    RgSchMacL2MeasSendReq
219 #endif
220 };
221
222 PRIVATE CONSTANT L2MeasCfm RgMacSchL2MeasCfmMt[RG_MAX_SCH] =
223 {
224 #ifdef LCSCH
225    cmPkMacSchL2MeasCfm
226 #else
227    RgMacSchL2MeasCfm
228 #endif
229 };
230 PRIVATE CONSTANT L2MeasStopCfm RgMacSchL2MeasStopCfmMt[RG_MAX_SCH] =
231 {
232 #ifdef LCSCH
233    cmPkMacSchL2MeasStopCfm
234 #else
235    RgMacSchL2MeasStopCfm
236 #endif
237 };
238 #endif/*LTE_L2_MEAS*/
239 /**
240 * @brief Data Indication from MAC to RLC to 
241  * forward the data received for dedicated channels
242 *
243 * @details
244 *
245 *     Function : RgSchMacCellReg
246 *
247 *  @param[in]   Pst*  pst
248 *  @param[in]   SuId  suId
249 *  @param[in]   RguDDatIndInfo  *  datInd
250 *  @return   S16
251 *      -# ROK
252 **/
253 #ifdef ANSI
254 PUBLIC S16 RgSchMacCellReg
255 (
256 Pst* pst,
257 RgInfCellReg*   regReq
258 )
259 #else
260 PUBLIC S16 RgSchMacCellReg(pst, regReq)
261 Pst* pst;
262 RgInfCellReg*   regReq;
263 #endif
264 {
265
266    TRC3(RgSchMacCellReg);
267
268    return ((*RgSchMacCellRegReqMt[0])(pst, regReq));
269 }
270
271 /**
272 * @brief Data Indication from MAC to RLC to 
273  * forward the data received for dedicated channels
274 *
275 * @details
276 *
277 *     Function : RgMacSchDedBoUpdt
278 *
279 *  @param[in]   Pst*  pst
280 *  @param[in]   SuId  suId
281 *  @param[in]   RguDDatIndInfo  *  datInd
282 *  @return   S16
283 *      -# ROK
284 **/
285 #ifdef ANSI
286 PUBLIC S16 RgMacSchDedBoUpdt
287 (
288 Pst* pst,
289 RgInfDedBoRpt*  boRpt
290 )
291 #else
292 PUBLIC S16 RgMacSchDedBoUpdt(pst, boRpt)
293 Pst* pst;
294 RgInfDedBoRpt*  boRpt;
295 #endif
296 {
297
298    TRC3(RgMacSchDedBoUpdt);
299
300    return ((*RgMacSchDedBoUpdtReqMt[0])(pst, boRpt));
301 }
302
303 /**
304 * @brief Data Indication from MAC to RLC to 
305  * forward the data received for dedicated channels
306 *
307 * @details
308 *
309 *     Function : RgMacSchCmnBoUpdt
310 *
311 *  @param[in]   Pst*  pst
312 *  @param[in]   SuId  suId
313 *  @param[in]   RguDDatIndInfo  *  datInd
314 *  @return   S16
315 *      -# ROK
316 **/
317 #ifdef ANSI
318 PUBLIC S16 RgMacSchCmnBoUpdt
319 (
320 Pst* pst,
321 RgInfCmnBoRpt*  boRpt
322 )
323 #else
324 PUBLIC S16 RgMacSchCmnBoUpdt(pst, boRpt)
325 Pst* pst;
326 RgInfCmnBoRpt*  boRpt;
327 #endif
328 {
329
330    TRC3(RgMacSchCmnBoUpdt);
331
332    return ((*RgMacSchCmnBoUpdtReqMt[0])(pst, boRpt));
333 }
334
335 /*Fix: start: Inform UE delete to scheduler*/
336 /**
337 * @brief This primitive is used to indicate deletion of UE
338 *        at MAC to scheduler. 
339 *
340 * @details
341 *
342 *     Function : RgMacSchUeDel
343 *
344 *  @param[in]   Pst*  pst
345 *  @param[in]   RgInfSfDatInd*  ueDelInd 
346 *  @return   S16
347 *      -# ROK
348 **/
349 #ifdef ANSI
350 PUBLIC S16 RgMacSchUeDel
351 (
352 Pst* pst,
353 RgInfUeDelInd*  ueDelInd
354 )
355 #else
356 PUBLIC S16 RgMacSchUeDel(pst, datInd)
357 Pst* pst;
358 RgInfUeDelInd*  ueDelInd;
359 #endif
360 {
361
362    TRC3(RgMacSchUeDel);
363
364    return ((*RgMacSchUeDelIndMt[0])(pst, ueDelInd));
365 }
366 /*Fix: end: Inform UE delete to scheduler*/
367 /**
368 * @brief Data Indication from MAC to RLC to 
369  * forward the data received for dedicated channels
370 *
371 * @details
372 *
373 *     Function : RgMacSchSfRecp
374 *
375 *  @param[in]   Pst*  pst
376 *  @param[in]   SuId  suId
377 *  @param[in]   RguDDatIndInfo  *  datInd
378 *  @return   S16
379 *      -# ROK
380 **/
381 #ifdef ANSI
382 PUBLIC S16 RgMacSchSfRecp
383 (
384 Pst* pst,
385 RgInfSfDatInd*  datInd
386 )
387 #else
388 PUBLIC S16 RgMacSchSfRecp(pst, datInd)
389 Pst* pst;
390 RgInfSfDatInd*  datInd;
391 #endif
392 {
393
394    TRC3(RgMacSchSfRecp);
395
396    return ((*RgMacSchSfRecpIndMt[0])(pst, datInd));
397 }
398
399 /**
400 * @brief Data Indication from MAC to RLC to 
401  * forward the data received for dedicated channels
402 *
403 * @details
404 *
405 *     Function : RgSchMacSfAlloc
406 *
407 *  @param[in]   Pst*  pst
408 *  @param[in]   SuId  suId
409 *  @param[in]   RguDDatIndInfo  *  datInd
410 *  @return   S16
411 *      -# ROK
412 **/
413 #ifdef ANSI
414 PUBLIC S16 RgSchMacSfAlloc
415 (
416 Pst* pst,
417 RgInfSfAlloc*   resAllocReq
418 )
419 #else
420 PUBLIC S16 RgSchMacSfAlloc(pst, resAllocReq)
421 Pst* pst;
422 RgInfSfAlloc*   resAllocReq;
423 #endif
424 {
425
426    TRC3(RgSchMacSfAlloc);
427
428    return ((*RgSchMacSfAllocReqMt[0])(pst, resAllocReq));
429 }
430
431 /**
432 * @brief Trigger for resetting Harq Entity at MAC
433 *
434 * @details
435 *
436 *     Function : RgSchMacRstHqEnt
437 *
438 *  @param[in]   Pst*  pst
439 *  @param[in]   RgInfResetHqEnt *hqEntRstReq
440 *  @return   S16
441 *      -# ROK
442 **/
443 #ifdef ANSI
444 PUBLIC S16 RgSchMacRstHqEnt
445 (
446 Pst*                 pst,    
447 RgInfResetHqEnt*     hqEntInfo
448 )
449 #else
450 PUBLIC S16 RgSchMacRstHqEnt(pst, hqEntInfo)
451 Pst*                 pst;
452 RgInfResetHqEnt*     hqEntInfo;
453 #endif
454 {
455
456    TRC3(RgSchMacRstHqEnt)
457
458    return ((*RgSchMacRstHqEntReqMt[0])(pst, hqEntInfo));
459 }
460
461 /**
462 * @brief Data Indication from MAC to RLC to 
463  * forward the data received for dedicated channels
464 *
465 * @details
466 *
467 *     Function : RgSchMacRlsHq
468 *
469 *  @param[in]   Pst*  pst
470 *  @param[in]   SuId  suId
471 *  @param[in]   RguDDatIndInfo  *  datInd
472 *  @return   S16
473 *      -# ROK
474 **/
475 #ifdef ANSI
476 PUBLIC S16 RgSchMacRlsHq
477 (
478 Pst* pst,
479 RgInfRlsHqInfo* sfHqInfo
480 )
481 #else
482 PUBLIC S16 RgSchMacRlsHq(pst, sfHqInfo)
483 Pst* pst;
484 RgInfRlsHqInfo* sfHqInfo;
485 #endif
486 {
487
488    TRC3(RgSchMacRlsHq);
489
490    return ((*RgSchMacRlsHqReqMt[0])(pst, sfHqInfo));
491 }
492
493 /**
494 * @brief Data Indication from MAC to RLC to 
495  * forward the data received for dedicated channels
496 *
497 * @details
498 *
499 *     Function : RgSchMacRlsRnti
500 *
501 *  @param[in]   Pst*  pst
502 *  @param[in]   SuId  suId
503 *  @param[in]   RguDDatIndInfo  *  datInd
504 *  @return   S16
505 *      -# ROK
506 **/
507 #ifdef ANSI
508 PUBLIC S16 RgSchMacRlsRnti
509 (
510 Pst* pst,
511 RgInfRlsRnti*   rlsRnti
512 )
513 #else
514 PUBLIC S16 RgSchMacRlsRnti(pst, rlsRnti)
515 Pst* pst;
516 RgInfRlsRnti*   rlsRnti;
517 #endif
518 {
519
520    TRC3(RgSchMacRlsRnti);
521
522    return ((*RgSchMacRlsRntiReqMt[0])(pst, rlsRnti));
523 }
524
525 /**
526 * @brief Request from SCH to MAC to register the GBR LCG of a UE
527 *
528 * @details
529 *
530 *     Function : RgSchMacLcgReg
531 *
532 *  @param[in]   Pst*           pst
533 *  @param[in]   RgInfLcgRegReq *lcgRegReq
534 *  @return   S16
535 *      -# ROK
536 **/
537 #ifdef ANSI
538 PUBLIC S16 RgSchMacLcgReg
539 (
540 Pst*                pst,
541 RgInfLcgRegReq      *lcgRegReq
542 )
543 #else
544 PUBLIC S16 RgSchMacLcgReg(pst, lcgRegReq)
545 Pst*                pst;
546 RgInfLcgRegReq       *lcgRegReq;
547 #endif
548 {
549
550    TRC3(RgSchMacLcgReg);
551
552    return ((*RgSchMacLcgRegReqMt[0])(pst, lcgRegReq));
553 } /* end of RgSchMacLcgReg */
554
555 #ifdef LTEMAC_SPS
556 /**
557 * @brief Data Indication from MAC to SCH to 
558  * indicate the arrival of the data on SPS logical channels
559 *
560 * @details
561 *
562 *     Function : RgMacSchSpsRel
563 *
564 *  @param[in]   Pst*  pst
565 *  @param[in]   RgInfSpsRelInfo* relInfo
566 *  @return   S16
567 *      -# ROK
568 **/
569 #ifdef ANSI
570 PUBLIC S16 RgMacSchSpsRel
571 (
572 Pst*                pst,
573 RgInfSpsRelInfo*    relInfo
574 )
575 #else
576 PUBLIC S16 RgMacSchSpsRel(pst, relInfo)
577 Pst*                pst;
578 RgInfSpsRelInfo*    relInfo;
579 #endif
580 {
581
582    TRC3(RgMacSchS);
583
584    return ((*RgMacSchSpsRelIndMt[0])(pst, relInfo));
585 } /* end of RgMacSchSpsRel */
586
587 /**
588 * @brief Request from SCH to MAC to register the SPS logical channels of a UE
589 *
590 * @details
591 *
592 *     Function : RgSchMacSpsLcReg
593 *
594 *  @param[in]   Pst*           pst
595 *  @param[in]   RgInfSpsLcInfo *lcInfo
596 *  @return   S16
597 *      -# ROK
598 **/
599 #ifdef ANSI
600 PUBLIC S16 RgSchMacSpsLcReg
601 (
602 Pst*                pst,
603 RgInfSpsLcInfo      *lcInfo
604 )
605 #else
606 PUBLIC S16 RgSchMacSpsLcReg(pst, lcInfo)
607 Pst*                pst;
608 RgInfSpsLcInfo      *lcInfo;
609 #endif
610 {
611
612    TRC3(RgSchMacSpsLcReg);
613
614    return ((*RgSchMacSpsLcRegReqMt[0])(pst, lcInfo));
615 } /* end of RgSchMacSpsLcReg */
616
617
618
619 /**
620 * @brief Request from SCH to MAC to reset UL SPS params
621 *
622 * @details
623 *
624 *     Function : RgSchMacUlSpsReset
625 *
626 *  @param[in]   Pst*           pst
627 *  @param[in]   RgInfUlSpsReset *lcInfo
628 *  @return   S16
629 *      -# ROK
630 **/
631 #ifdef ANSI
632 PUBLIC S16 RgSchMacUlSpsReset
633 (
634 Pst*                pst,
635 RgInfUlSpsReset      *ulSpsResetInfo
636 )
637 #else
638 PUBLIC S16 RgSchMacUlSpsReset(pst, ulSpsResetInfo)
639 Pst*                pst;
640 RgInfUlSpsReset      *ulSpsResetInfo;
641 #endif
642 {
643
644    TRC3(RgSchMacUlSpsReset);
645
646    return ((*RgSchMacUlSpsResetMt[0])(pst, ulSpsResetInfo));
647 } /* end of RgSchMacUlSpsReset */
648
649
650
651 /**
652 * @brief Request from SCH to MAC to deregister the SPS logical channels of a UE
653 *
654 * @details
655 *
656 *     Function : RgSchMacSpsLcDereg
657 *
658 *  @param[in]   Pst*           pst
659 *  @param[in]   RgInfSpsLcInfo *lcInfo
660 *  @return   S16
661 *      -# ROK
662 **/
663 #ifdef ANSI
664 PUBLIC S16 RgSchMacSpsLcDereg
665 (
666 Pst*                pst,
667 CmLteCellId         cellId,
668 CmLteRnti           crnti
669 )
670 #else
671 PUBLIC S16 RgSchMacSpsLcDereg(pst, cellId, crnti)
672 Pst*                pst;
673 CmLteCellId         cellId;
674 CmLteRnti           crnti;
675 #endif
676 {
677
678    TRC3(RgSchMacSpsLcDereg);
679
680    return ((*RgSchMacSpsLcDeregReqMt[0])(pst, cellId, crnti));
681 } /* end of RgSchMacSpsLcDereg */
682
683 #endif /* LTEMAC_SPS */
684 #ifdef LTE_L2_MEAS
685 /**
686 * @brief Request from SCH to MAC for L2 Measurement
687 *
688 * @details
689 *
690 *     Function : RgSchMacL2Meas
691 *
692 *  @param[in]   Pst*           pst
693 *  @param[in]   RgInfL2MeasReq *measInfo
694 *  @return   S16
695 *      -# ROK
696 **/
697 #ifdef ANSI
698 PUBLIC S16 RgSchMacL2Meas
699 (
700 Pst*                pst,
701 RgInfL2MeasReq      *measInfo
702 )
703 #else
704 PUBLIC S16 RgSchMacL2Meas(pst, measInfo)
705 Pst*                pst;
706 RgInfL2MeasReq      *measInfo;
707 #endif
708 {
709
710    TRC3(RgSchMacL2Meas);
711
712    return ((*RgSchMacL2MeasReqMt[0])(pst, measInfo));
713 } /* end of RgSchMacL2Meas */
714
715 /**
716 * @brief Request from SCH to MAC for Stopping L2 Measurement
717 *
718 * @details
719 *
720 *     Function : RgSchMacL2MeasStop
721 *     
722 *  @param[in]   Pst*           pst
723 *  @param[in]   RgInfL2MeasReq *measInfo
724 *  @return   S16
725 *      -# ROK
726 **/   
727 #ifdef ANSI
728 PUBLIC S16 RgSchMacL2MeasStop
729 (       
730 Pst*                pst,
731 RgInfL2MeasStopReq *measInfo
732 )     
733 #else 
734 PUBLIC S16 RgSchMacL2MeasStop(pst, measInfo)
735 Pst*                pst;
736 RgInfL2MeasStopReq *measInfo;
737 #endif
738 {  
739      
740    TRC3(RgSchMacL2MeasStop);
741         
742    return ((*RgSchMacL2MeasStopReqMt[0])(pst, measInfo));
743 } /* end of RgSchMacL2Meas */
744
745 /**
746 * @brief Request from SCH to MAC for Sending L2 Measurement
747 *
748 * @details
749 *
750 *     Function : RgSchMacL2MeasSend
751 *     
752 *  @param[in]   Pst*           pst
753 *  @param[in]   RgInfL2MeasReq *measInfo
754 *  @return   S16
755 *      -# ROK
756 **/
757 #ifdef ANSI
758 PUBLIC S16 RgSchMacL2MeasSend
759 (
760 Pst*                pst,
761 RgInfL2MeasSndReq *measInfo
762 )
763 #else
764 PUBLIC S16 RgSchMacL2MeasSend(pst, measInfo)
765 Pst*                pst;
766 RgInfL2MeasSndReq *measInfo;
767 #endif
768 {
769
770    TRC3(RgSchMacL2MeasSend);
771
772    return ((*RgSchMacL2MeasSendReqMt[0])(pst, measInfo));
773 } /* end of RgSchMacL2MeasSend */
774
775 /**
776 * @brief Request from MAC to SCH for L2 Measurement
777 *
778 * @details
779 *
780 *     Function : RgMacSchL2Meas
781 *
782 *  @param[in]   Pst*           pst
783 *  @param[in]   RgInfL2MeasCfm *measInfo
784 *  @return   S16
785 *      -# ROK
786 **/
787 #ifdef ANSI
788 PUBLIC S16 RgMacSchL2Meas
789 (
790 Pst*                pst,
791 RgInfL2MeasCfm      *measInfo
792 )
793 #else
794 PUBLIC S16 RgMacSchL2Meas(pst, measInfo)
795 Pst*                pst;
796 RgInfL2MeasCfm      *measInfo;
797 #endif
798 {
799
800    TRC3(RgMacSchL2Meas);
801
802    return ((*RgMacSchL2MeasCfmMt[0])(pst, measInfo));
803 } /* end of RgSchMacL2Meas */
804 /**
805 * @brief Request from MAC to SCH for L2 Measurement
806 *  
807 * @details
808 *
809 *     Function : RgMacSchL2MeasStop
810 *
811 *  @param[in]   Pst*           pst
812 *  @param[in]   RgInfL2MeasCfm *measInfo
813 *  @return   S16
814 *      -# ROK
815 **/
816 #ifdef ANSI
817 PUBLIC S16 RgMacSchL2MeasStop
818 (
819 Pst*                pst,   
820 RgInfL2MeasCfm      *measInfo
821 )
822 #else
823 PUBLIC S16 RgMacSchL2MeasStop(pst, measInfo)
824 Pst*                pst;
825 RgInfL2MeasCfm      *measInfo;
826 #endif
827 {
828     
829    TRC3(RgMacSchL2MeasStop);
830
831    return ((*RgMacSchL2MeasStopCfmMt[0])(pst, measInfo));
832 } /* end of RgSchMacL2MeasStop*/
833 #endif/*LTE_L2_MEAS*/
834 /**********************************************************************
835  
836          End of file
837 **********************************************************************/