U8, U16, U32 data type changes
[o-du/l2.git] / src / 5gnrrlc / kw_udx_ptul.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-RLC ULDL Interface
22   
23      Type:     C source file
24   
25      Desc:     C source code for INF Interface Module 
26   
27      File:     kw_udx_ptul.c
28   
29 **********************************************************************/
30
31 /** @file kw_udx_ptul.c
32 */
33
34 /* header include files (.h) */
35 #include "common_def.h"
36 #include "lkw.h"           /* LKW defines */
37 #include "ckw.h"           /* CKW defines */
38 #include "kwu.h"           /* KWU defines */
39 #include "rgu.h"           /* RGU defines */
40 #include "kw_err.h"        /* Err defines */
41 #include "kw_env.h"        /* RLC environment options */
42
43 #include "kw.h"            /* RLC defines */
44 #include "kw_udx.h"
45 #include "kw_dl.h"
46
47 /* extern (.x) include files */
48 #include "lkw.x"           /* LKW */
49 #include "ckw.x"           /* CKW */
50 #include "kwu.x"           /* KWU */
51 #include "rgu.x"           /* RGU */
52
53 #include "kw.x"
54 #include "kw_udx.x"
55 #include "kw_dl.x"
56
57
58 #ifndef LCKWULUDX
59 PRIVATE S16 PtUlUdxBndReq ARGS((Pst* pst, SuId suId,SpId  spId ));
60 PRIVATE S16 PtUlUdxUbndReq ARGS((Pst* pst, SuId suId,Reason reason));
61 PRIVATE S16 PtUlUdxCfgReq ARGS((Pst *pst, SpId spId, RlcCfgInfo *cfgInfo));
62 PRIVATE S16 PtUlUdxStaUpdReq ARGS((Pst* pst,SpId spId,CmLteRlcId *rlcId,
63                                 RlcUdxStaPdu         *pStaPdu ));
64 PRIVATE S16 PtUlUdxUeIdChgReq ARGS((Pst *pst, SpId spId, uint32_t transId, 
65                                    CkwUeInfo *ueInfo, CkwUeInfo *newUeInfo));
66 PRIVATE S16 PtUlUdxStaPduReq ARGS(( Pst* pst,SpId  spId, CmLteRlcId *rlcId,
67                              RlcUdxDlStaPdu  *pStaPdu ));
68 #ifdef ANSI
69 PRIVATE S16 PtUlUdxBndReq
70 (
71 Pst *pst,                       /* post structure */
72 SuId suId,                      /* Service User Id */
73 SpId spId                    /* Status */
74 )
75 #else
76 PRIVATE S16 PtUlUdxBndReq(pst, suId,spId)
77 Pst *pst;                       /* post structure */
78 SuId suId;                      /* Service User Id */
79 SpId spId;                    /* Status */
80 #endif
81 {
82
83    return ROK;
84
85 } /* end of rlcDlUdxBndReq */
86
87 /**
88  *
89  * @brief 
90  *
91  *        Handler for confirming  the bind request received from KWU
92  *        interface.
93  *
94  * @b Description:
95  *
96  *        This function send the bind confirm primitive to the RLC user,
97  *        when it receives a bind request from its service user.
98  *
99  *  @param[in] pst     Post structure  
100  *  @param[in] suId    Service user SAP ID 
101  *  @param[in] status  Status of Confirmation 
102  *
103  *  @return  S16
104  *      -# ROK 
105  *
106  */
107 #ifdef ANSI
108 PRIVATE S16 PtUlUdxUbndReq
109 (
110 Pst *pst,                       /* post structure */
111 SpId spId,                      /* Service User Id */
112 Reason   reason                     /* Status */
113 )
114 #else
115 PRIVATE S16 PtUlUdxUbndReq(pst, suId, status)
116 Pst *pst;                       /* post structure */
117 SpId spId;                      /* Service User Id */
118 Reason Reason;                    /* Status */
119 #endif
120 {
121
122    return ROK;
123
124 } /* end of PtDlUdxBndReq */
125
126 #ifdef ANSI
127 PRIVATE S16 PtUlUdxCfgReq
128 (
129 Pst *pst,                       /* post structure */
130 SpId spId,                      /* Service User Id */
131 RlcCfgInfo *cfmInfo             /* Config Info */
132 )
133 #else
134 PRIVATE S16 PtUlUdxCfgReq(pst, spId, status)
135 Pst *pst;                       /* post structure */
136 SpId spId;                      /* Service User Id */
137 RlcCfgInfo *cfmInfo;              /* Config Info */
138 #endif
139 {
140
141    return ROK;
142
143 } /* end of rlcDlUdxCfgReq */
144
145 #ifdef ANSI
146 PRIVATE S16 PtUlUdxUeIdChgReq
147 (
148 Pst *pst,                      /* post structure */
149 SpId spId,                     /* Service User Id */
150 uint32_t  transId,              /* transaction Id */
151 CkwUeInfo *ueInfo,             /* Config Info */
152 CkwUeInfo *newUeInfo           /* Config Info */
153 )
154 #else
155 PRIVATE S16 PtUlUdxUeIdChgReq(pst, spId,transId, ueInfo, newUeInfo)
156 Pst *pst;                      /* post structure */
157 SpId spId;                     /* Service User Id */
158 uint32_t  transId;              /* transaction Id */
159 CkwUeInfo *ueInfo;             /* Config Info */
160 CkwUeInfo *newUeInfo;          /* Config Info */
161 #endif
162 {
163
164    return ROK;
165
166 } /* end of rlcDlUdxCfgReq */
167
168
169 PRIVATE S16  PtUlUdxStaPduReq
170 (
171 Pst*                pst,
172 SpId                spId,
173 CmLteRlcId          *rlcId,
174 RlcUdxDlStaPdu       *pStaPdu
175 )
176 {
177
178    return ROK;
179 }
180
181 /**
182 * @brief Request from ULM to DLM for UE Status
183 *
184 * @details
185 *
186 *     Function : KwUdxUdxStatUpd
187 *
188 *  @param[in]   Pst*           pst
189
190 *  @return   S16
191 *      -# ROK
192 **/
193 #ifdef ANSI
194 PRIVATE S16  PtUlUdxStaUpdReq
195 (
196 Pst*                pst,
197 SpId                spId,
198 CmLteRlcId          *rlcId,
199 RlcUdxStaPdu       *pStaPdu
200 )
201 #else
202 PRIVATE S16 PtUlUdxStaUpdReq(pst, rlcId, pStaPdu)
203 Pst*                pst;
204 SpId                spId;
205 CmLteRlcId          *rlcId;
206 RlcUdxDlStaPdu       *pStaPdu;
207 #endif
208 {
209
210    return ROK;
211 } /* end of RlcUlmDlmStaUpd*/
212
213 #ifdef LTE_L2_MEAS
214 /**
215 * @brief Request from ULM to DLM for Measurement
216 *
217 * @details
218 *
219 *     Function : KwUdxUdxL2MeasReq
220 *
221 *  @param[in]   Pst*           pst
222
223 *  @return   S16
224 *      -# ROK
225 **/
226 #ifdef ANSI
227 PRIVATE S16  PtUlUdxL2MeasReq
228 (
229 Pst*                pst,
230 RlcL2MeasReqEvt      *measReqEvt
231 )
232 #else
233 PRIVATE S16 PtUlUdxL2MeasReq(pst, measReqEvt )
234 Pst*                pst;
235 RlcL2MeasReqEvt      *measReqEvt;
236 #endif
237 {
238
239    return ROK;
240
241
242 /**
243 * @brief Request from ULM to DLM for Measurement
244 *
245 * @details
246 *
247 *     Function : KwUdxUdxL2MeasSendReq
248 *
249 *  @param[in]   Pst*           pst
250
251 *  @return   S16
252 *      -# ROK
253 **/
254 #ifdef ANSI
255 PRIVATE S16  PtUlUdxL2MeasSendReq
256 (
257 Pst*       pst,
258 uint8_t    status
259 )
260 #else
261 PRIVATE S16 PtUlUdxL2MeasSendReq(pst, status )
262 Pst*        pst;
263 uint8_t     status
264 #endif
265 {
266
267    return ROK;
268 }
269
270 /**
271 * @brief Request from ULM to DLM for Measurement
272 *
273 * @details
274 *
275 *     Function : KwUdxUdxL2MeasStopReq
276 *
277 *  @param[in]   Pst*           pst
278
279 *  @return   S16
280 *      -# ROK
281 **/
282 #ifdef ANSI
283 PRIVATE S16  PtUlUdxL2MeasStopReq
284 (
285 Pst*      pst,
286 uint8_t   status
287 )
288 #else
289 PRIVATE S16 PtUlUdxL2MeasStopReq(pst, status )
290 Pst*       pst;
291 uint8_t    status
292 #endif
293 {
294
295    return ROK;
296 }
297 #endif
298 #endif
299
300 PRIVATE UdxBndReq rlcUlUdxBndReqMt[] =
301 {
302 #ifdef LCKWULUDX
303    cmPkUdxBndReq,            /* 0 - loosely coupled */
304 #else
305    PtUlUdxBndReq,            /* 0 - loosely coupled, portable  */
306 #endif /* LCKWUIKWU */
307 #ifdef LWLCKWULUDX
308    cmPkUdxBndReq,            /* 1 - loosely coupled */
309 #else
310    PtUlUdxBndReq,            /* 1 - loosely coupled, portable  */
311 #endif /* LCKWUIKWU */
312 #ifdef KW
313    rlcDlUdxBndReq,            /* 2 - tightly coupled, RRC  */
314 #else
315    PtUlUdxBndReq,            /* 2 - tightly coupled, portable */
316 #endif /* KW */
317 };
318
319 PRIVATE UdxUbndReq rlcUlUdxUbndReqMt[] =
320 {
321 #ifdef LCKWULUDX
322    cmPkUdxUbndReq,            /* 0 - loosely coupled */
323 #else
324    PtUlUdxUbndReq,            /* 0 - loosely coupled, portable  */
325 #endif /* LCKWUIKWU */
326 #ifdef LWLCKWULUDX
327    cmPkUdxUbndReq,            /* 1 - loosely coupled */
328 #else
329    PtUlUdxUbndReq,            /* 1 - loosely coupled, portable  */
330 #endif /* LCKWUIKWU */
331 #ifdef KW
332    rlcDlUdxUbndReq,            /* 2 - tightly coupled, RRC  */
333 #else
334    PtUlUdxUbndReq,            /* 2 - tightly coupled, portable */
335 #endif /* KW */
336 };
337
338
339 PRIVATE UdxCfgReq rlcUlUdxCfgReqMt[] =
340 {
341 #ifdef LCKWULUDX
342    cmPkUdxCfgReq,            /* 0 - loosely coupled */
343 #else
344    PtUlUdxCfgReq,            /* 0 - loosely coupled, portable  */
345 #endif /* LCKWUIKWU */
346 #ifdef LWLCKWULUDX
347    cmPkUdxCfgReq,            /* 1 - loosely coupled */
348 #else
349    PtUlUdxCfgReq,            /* 1 - loosely coupled, portable  */
350 #endif /* LCKWUIKWU */
351 #ifdef KW
352    rlcDlUdxCfgReq,            /* 2 - tightly coupled, RRC  */
353 #else
354    PtUlUdxCfgReq,            /* 2 - tightly coupled, portable */
355 #endif /* KW */
356 };
357
358 PRIVATE UdxUeIdChgReq rlcUlUdxUeIdChgReqMt[] =
359 {
360 #ifdef LCKWULUDX
361    cmPkUdxUeIdChgReq,            /* 0 - loosely coupled */
362 #else
363    PtUlUdxUeIdChgReq,            /* 0 - loosely coupled, portable  */
364 #endif /* LCKWUIKWU */
365 #ifdef LWLCKWULUDX
366    cmPkUdxUeIdChgReq,            /* 1 - loosely coupled */
367 #else
368    PtUlUdxUeIdChgReq,            /* 1 - loosely coupled, portable  */
369 #endif /* LCKWUIKWU */
370 #ifdef KW
371    rlcDlUdxUeIdChgReq,            /* 2 - tightly coupled, RRC  */
372 #else
373    PtUlUdxUeIdChgReq,            /* 2 - tightly coupled, portable */
374 #endif /* KW */
375 };
376
377
378 PRIVATE CONSTANT UdxStaUpdReq rlcUlUdxStaUpdReqMt[RLC_MAX_UDX] =
379 {
380 #ifdef LCKWULUDX
381    cmPkUdxStaUpdReq,            /* 0 - loosely coupled */
382 #else
383    PtUlUdxStaUpdReq,            /* 0 - loosely coupled, portable  */
384 #endif /* LCKWUIKWU */
385 #ifdef LWLCKWULUDX
386    cmPkUdxStaUpdReq,            /* 1 - loosely coupled */
387 #else
388    PtUlUdxStaUpdReq,            /* 1 - loosely coupled, portable  */
389 #endif /* LCKWUIKWU */
390 #ifdef KW
391    rlcDlUdxStaUpdReq,            /* 2 - tightly coupled, RRC  */
392 #else
393    PtUlUdxStaUpdReq,            /* 2 - tightly coupled, portable */
394 #endif /* KW */
395 };
396
397 PRIVATE CONSTANT UdxStaPduReq rlcUlUdxStaPduReqMt[RLC_MAX_UDX] =
398 {
399 #ifdef LCKWULUDX
400    cmPkUdxStaPduReq,            /* 0 - loosely coupled */
401 #else
402    PtUlUdxStaPduReq,            /* 0 - loosely coupled, portable  */
403 #endif /* LCKWUIKWU */
404 #ifdef LWLCKWULUDX
405    cmPkUdxStaPduReq,            /* 1 - loosely coupled */
406 #else
407    PtUlUdxStaPduReq,            /* 1 - loosely coupled, portable  */
408 #endif /* LCKWUIKWU */
409 #ifdef KW
410    rlcDlUdxStaPduReq,            /* 2 - tightly coupled, RRC  */
411 #else
412    PtUlUdxStaPduReq,            /* 2 - tightly coupled, portable */
413 #endif /* KW */
414 };
415 #ifdef LTE_L2_MEAS
416 PRIVATE CONSTANT UdxL2MeasReq rlcUlUdxL2MeasReqMt[RLC_MAX_UDX] =
417 {
418 #ifdef LCKWULUDX
419    cmPkUdxL2MeasReq,            /* 0 - loosely coupled */
420 #else
421    PtUlUdxL2MeasReq,            /* 0 - loosely coupled, portable  */
422 #endif /* LCKWUIKWU */
423 #ifdef LWLCKWULUDX
424    cmPkUdxL2MeasReq,            /* 1 - loosely coupled */
425 #else
426    PtUlUdxL2MeasReq,            /* 1 - loosely coupled, portable  */
427 #endif /* LCKWUIKWU */
428 #ifdef KW
429    rlcDlUdxL2MeasReq,            /* 2 - tightly coupled, RRC  */
430 #else
431    PtUlUdxL2MeasReq,            /* 2 - tightly coupled, portable */
432 #endif /* KW */
433 };
434
435 PRIVATE CONSTANT UdxL2MeasSendReq rlcUlUdxL2MeasSendReqMt[RLC_MAX_UDX] =
436 {
437 #ifdef LCKWULUDX
438    cmPkUdxL2MeasSendReq,            /* 0 - loosely coupled */
439 #else
440    PtUlUdxL2MeasSendReq,            /* 0 - loosely coupled, portable  */
441 #endif /* LCKWUIKWU */
442 #ifdef LWLCKWULUDX
443    cmPkUdxL2MeasSendReq,            /* 1 - loosely coupled */
444 #else
445    PtUlUdxL2MeasSendReq,            /* 1 - loosely coupled, portable  */
446 #endif /* LCKWUIKWU */
447 #ifdef KW
448    rlcDlUdxL2MeasSendReq,            /* 2 - tightly coupled, RRC  */
449 #else
450    PtUlUdxL2MeasSendReq,            /* 2 - tightly coupled, portable */
451 #endif /* KW */
452 };
453
454 PRIVATE CONSTANT UdxL2MeasStopReq rlcUlUdxL2MeasStopReqMt[RLC_MAX_UDX] =
455 {
456 #ifdef LCKWULUDX
457    cmPkUdxL2MeasStopReq,            /* 0 - loosely coupled */
458 #else
459    PtUlUdxL2MeasStopReq,            /* 0 - loosely coupled, portable  */
460 #endif /* LCKWUIKWU */
461 #ifdef LWLCKWULUDX
462    cmPkUdxL2MeasStopReq,            /* 1 - loosely coupled */
463 #else
464    PtUlUdxL2MeasStopReq,            /* 1 - loosely coupled, portable  */
465 #endif /* LCKWUIKWU */
466 #ifdef KW
467    rlcDlUdxL2MeasStopReq,            /* 2 - tightly coupled, RRC  */
468 #else
469    PtUlUdxL2MeasStopReq,            /* 2 - tightly coupled, portable */
470 #endif /* KW */
471 };
472 #endif
473 /**
474  *
475  * @brief 
476  *
477  *        Handler for confirming  the bind request received from KWU
478  *        interface.
479  *
480  * @b Description:
481  *
482  *        This function send the bind confirm primitive to the RLC user,
483  *        when it receives a bind request from its service user.
484  *
485  *  @param[in] pst     Post structure  
486  *  @param[in] suId    Service user SAP ID 
487  *  @param[in] status  Status of Confirmation 
488  *
489  *  @return  S16
490  *      -# ROK 
491  *
492  */
493 #ifdef ANSI
494 S16 rlcUlUdxBndReq
495 (
496 Pst *pst,                       /* post structure */
497 SuId suId,                      /* Service User Id */
498 SpId spId                     /* Status */
499 )
500 #else
501 S16 rlcUlUdxBndReq(pst, suId, status)
502 Pst *pst;                       /* post structure */
503 SuId suId;                      /* Service User Id */
504 SpId spId;                    /* Status */
505 #endif
506 {
507    /* jump to specific primitive depending on configured selector */
508    (*rlcUlUdxBndReqMt[pst->selector])(pst, suId, spId);
509
510    return ROK;
511
512 } /* end of rlcDlUdxBndReq */
513
514 /**
515  *
516  * @brief 
517  *
518  *        Handler for confirming  the bind request received from KWU
519  *        interface.
520  *
521  * @b Description:
522  *
523  *        This function send the bind confirm primitive to the RLC user,
524  *        when it receives a bind request from its service user.
525  *
526  *  @param[in] pst     Post structure  
527  *  @param[in] suId    Service user SAP ID 
528  *  @param[in] status  Status of Confirmation 
529  *
530  *  @return  S16
531  *      -# ROK 
532  *
533  */
534 #ifdef ANSI
535 S16 rlcUlUdxUbndReq
536 (
537 Pst *pst,                       /* post structure */
538 SpId spId,                      /* Service User Id */
539 Reason   reason                     /* Status */
540 )
541 #else
542 S16 rlcUlUdxUbndReq(pst, suId, status)
543 Pst *pst;                       /* post structure */
544 SpId spId;                      /* Service User Id */
545 Reason Reason;                    /* Status */
546 #endif
547 {
548    /* jump to specific primitive depending on configured selector */
549    (*rlcUlUdxUbndReqMt[pst->selector])(pst, spId,reason );
550
551    return ROK;
552
553 } /* end of rlcDlUdxBndReq */
554
555 #ifdef ANSI
556 S16 rlcUlUdxCfgReq
557 (
558 Pst *pst,                       /* post structure */
559 SpId spId,                      /* Service User Id */
560 RlcCfgInfo *cfmInfo             /* Config Info */
561 )
562 #else
563 S16 rlcUlUdxCfgReq(pst, suId, status)
564 Pst *pst;                       /* post structure */
565 SuId spId;                      /* Service User Id */
566 RlcCfgInfo *cfmInfo;              /* Config Info */
567 #endif
568 {
569
570    /* jump to specific primitive depending on configured selector */
571    (*rlcUlUdxCfgReqMt[pst->selector])(pst, spId, cfmInfo);
572
573    return ROK;
574
575 } /* end of rlcDlUdxCfgReq */
576
577 #ifdef ANSI
578 S16 rlcUlUdxUeIdChgReq
579 (
580 Pst *pst,                      /* post structure */
581 SpId spId,                     /* Service User Id */
582 uint32_t  transId,              /* transaction Id */
583 CkwUeInfo *ueInfo,             /* Config Info */
584 CkwUeInfo *newUeInfo           /* Config Info */
585 )
586 #else
587 S16 rlcUlUdxUeIdChgReq(pst, spId,transId, ueInfo, newUeInfo)
588 Pst *pst;                      /* post structure */
589 SpId spId;                     /* Service User Id */
590 uint32_t  transId;              /* transaction Id */
591 CkwUeInfo *ueInfo;             /* Config Info */
592 CkwUeInfo *newUeInfo;          /* Config Info */
593 #endif
594 {
595
596    /* jump to specific primitive depending on configured selector */
597    (*rlcUlUdxUeIdChgReqMt[pst->selector])(pst, spId,transId,ueInfo,newUeInfo);
598
599    return ROK;
600
601 } /* end of rlcDlUdxCfgReq */
602
603
604
605 uint8_t rlcUlUdxStaPduReq(Pst* pst, SpId spId, CmLteRlcId *rlcId, RlcUdxDlStaPdu *pStaPdu)
606 {
607    return ((*rlcUlUdxStaPduReqMt[pst->selector])(pst,spId, rlcId, pStaPdu));
608 }
609
610 /**
611 * @brief Request from ULM to DLM for UE Status
612 *
613 * @details
614 *
615 *     Function : KwUdxUdxStatUpd
616 *
617 *  @param[in]   Pst*           pst
618
619 *  @return   S16
620 *      -# ROK
621 **/
622 uint8_t rlcUlUdxStaUpdReq(Pst* pst, SpId spId, CmLteRlcId *rlcId, RlcUdxStaPdu *pStaPdu)
623 {
624    return ((*rlcUlUdxStaUpdReqMt[pst->selector])(pst,spId, rlcId, pStaPdu));
625 } /* end of RlcUlmDlmStaUpd*/
626
627 #ifdef LTE_L2_MEAS
628 /**
629 * @brief Request from ULM to DLM for MeasReq 
630 *
631 * @details
632 *
633 *     Function : rlcUlUdxL2MeasReq
634 *
635 *  @param[in]   Pst*           pst
636
637 *  @return   S16
638 *      -# ROK
639 **/
640 #ifdef ANSI
641 S16  rlcUlUdxL2MeasReq
642 (
643 Pst*                pst,
644 RlcL2MeasReqEvt      *measReqEvt 
645 )
646 #else
647 S16 rlcUlUdxL2MeasReq(pst,measReqEvt)
648 Pst*                pst;
649 RlcL2MeasReqEvt      *measReqEvt; 
650 #endif
651 {
652
653    return ((*rlcUlUdxL2MeasReqMt[pst->selector])(pst,measReqEvt));
654 } /* end of rlcUlUdxL2MeasReq*/
655
656 /**
657 * @brief Request from ULM to DLM for MeasSendReq 
658 *
659 * @details
660 *
661 *     Function : rlcUlUdxMeasSendReq
662 *
663 *  @param[in]   Pst*           pst
664
665 *  @return   S16
666 *      -# ROK
667 **/
668 #ifdef ANSI
669 S16  rlcUlUdxL2MeasSendReq
670 (
671 Pst*        pst,
672 uint8_t     measType
673 )
674 #else
675 S16 rlcUlUdxL2MeasSendReq(pst,measReqEvt)
676 Pst*        pst;
677 uint8_t     measType;
678 #endif
679 {
680
681    return ((*rlcUlUdxL2MeasSendReqMt[pst->selector])(pst,measType));
682 } /* end of rlcUlUdxMesReq*/
683
684 /**
685 * @brief Request from ULM to DLM for MeasStopReq 
686 *
687 * @details
688 *
689 *     Function : rlcUlUdxL2MeasStopReq
690 *
691 *  @param[in]   Pst*           pst
692
693 *  @return   S16
694 *      -# ROK
695 **/
696 #ifdef ANSI
697 S16  rlcUlUdxL2MeasStopReq
698 (
699 Pst*        pst,
700 uint8_t     measType
701 )
702 #else
703 S16 rlcUlUdxL2MeasStopReq(pst,measReqEvt)
704 Pst*        pst;
705 uint8_t     measType;
706 #endif
707 {
708
709    return ((*rlcUlUdxL2MeasStopReqMt[pst->selector])(pst,measType));
710 } /* end of rlcUlUdxMesReq*/
711 #endif
712 /**********************************************************************
713  
714          End of file
715 **********************************************************************/