Moving all common header file into common_def.h file
[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, CkwCfgInfo *cfgInfo));
62 PRIVATE S16 PtUlUdxStaUpdReq ARGS((Pst* pst,SpId spId,CmLteRlcId *rlcId,
63                                 KwUdxStaPdu         *pStaPdu ));
64 PRIVATE S16 PtUlUdxUeIdChgReq ARGS((Pst *pst, SpId spId, U32 transId, 
65                                    CkwUeInfo *ueInfo, CkwUeInfo *newUeInfo));
66 PRIVATE S16 PtUlUdxStaPduReq ARGS(( Pst* pst,SpId  spId, CmLteRlcId *rlcId,
67                              KwUdxDlStaPdu  *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    TRC3(PtUlUdxBndReq)
83
84    RETVALUE(ROK);
85
86 } /* end of KwDlUdxBndReq */
87
88 /**
89  *
90  * @brief 
91  *
92  *        Handler for confirming  the bind request received from KWU
93  *        interface.
94  *
95  * @b Description:
96  *
97  *        This function send the bind confirm primitive to the RLC user,
98  *        when it receives a bind request from its service user.
99  *
100  *  @param[in] pst     Post structure  
101  *  @param[in] suId    Service user SAP ID 
102  *  @param[in] status  Status of Confirmation 
103  *
104  *  @return  S16
105  *      -# ROK 
106  *
107  */
108 #ifdef ANSI
109 PRIVATE S16 PtUlUdxUbndReq
110 (
111 Pst *pst,                       /* post structure */
112 SpId spId,                      /* Service User Id */
113 Reason   reason                     /* Status */
114 )
115 #else
116 PRIVATE S16 PtUlUdxUbndReq(pst, suId, status)
117 Pst *pst;                       /* post structure */
118 SpId spId;                      /* Service User Id */
119 Reason Reason;                    /* Status */
120 #endif
121 {
122    TRC3(PtUlUdxUbndReq)
123
124    RETVALUE(ROK);
125
126 } /* end of PtDlUdxBndReq */
127
128 #ifdef ANSI
129 PRIVATE S16 PtUlUdxCfgReq
130 (
131 Pst *pst,                       /* post structure */
132 SpId spId,                      /* Service User Id */
133 CkwCfgInfo *cfmInfo             /* Config Info */
134 )
135 #else
136 PRIVATE S16 PtUlUdxCfgReq(pst, spId, status)
137 Pst *pst;                       /* post structure */
138 SpId spId;                      /* Service User Id */
139 CkwCfgInfo *cfmInfo;              /* Config Info */
140 #endif
141 {
142    TRC3(PtUlUdxCfgReq)
143
144    RETVALUE(ROK);
145
146 } /* end of KwDlUdxCfgReq */
147
148 #ifdef ANSI
149 PRIVATE S16 PtUlUdxUeIdChgReq
150 (
151 Pst *pst,                      /* post structure */
152 SpId spId,                     /* Service User Id */
153 U32      transId,              /* transaction Id */
154 CkwUeInfo *ueInfo,             /* Config Info */
155 CkwUeInfo *newUeInfo           /* Config Info */
156 )
157 #else
158 PRIVATE S16 PtUlUdxUeIdChgReq(pst, spId,transId, ueInfo, newUeInfo)
159 Pst *pst;                      /* post structure */
160 SpId spId;                     /* Service User Id */
161 U32      transId;              /* transaction Id */
162 CkwUeInfo *ueInfo;             /* Config Info */
163 CkwUeInfo *newUeInfo;          /* Config Info */
164 #endif
165 {
166    TRC3(PtUlUdxUeIdChgReq)
167
168
169    RETVALUE(ROK);
170
171 } /* end of KwDlUdxCfgReq */
172
173
174 PRIVATE S16  PtUlUdxStaPduReq
175 (
176 Pst*                pst,
177 SpId                spId,
178 CmLteRlcId          *rlcId,
179 KwUdxDlStaPdu       *pStaPdu
180 )
181 {
182    TRC3(PtUlUdxStaPduReq);
183
184    RETVALUE(ROK);
185 }
186
187 /**
188 * @brief Request from ULM to DLM for UE Status
189 *
190 * @details
191 *
192 *     Function : KwUdxUdxStatUpd
193 *
194 *  @param[in]   Pst*           pst
195
196 *  @return   S16
197 *      -# ROK
198 **/
199 #ifdef ANSI
200 PRIVATE S16  PtUlUdxStaUpdReq
201 (
202 Pst*                pst,
203 SpId                spId,
204 CmLteRlcId          *rlcId,
205 KwUdxStaPdu       *pStaPdu
206 )
207 #else
208 PRIVATE S16 PtUlUdxStaUpdReq(pst, rlcId, pStaPdu)
209 Pst*                pst;
210 SpId                spId;
211 CmLteRlcId          *rlcId;
212 KwUdxDlStaPdu       *pStaPdu;
213 #endif
214 {
215
216    TRC3(PtUlUdxStaUpdReq);
217
218    RETVALUE(ROK);
219 } /* end of KwUlmDlmStaUpd*/
220
221 #ifdef LTE_L2_MEAS
222 /**
223 * @brief Request from ULM to DLM for Measurement
224 *
225 * @details
226 *
227 *     Function : KwUdxUdxL2MeasReq
228 *
229 *  @param[in]   Pst*           pst
230
231 *  @return   S16
232 *      -# ROK
233 **/
234 #ifdef ANSI
235 PRIVATE S16  PtUlUdxL2MeasReq
236 (
237 Pst*                pst,
238 KwL2MeasReqEvt      *measReqEvt
239 )
240 #else
241 PRIVATE S16 PtUlUdxL2MeasReq(pst, measReqEvt )
242 Pst*                pst;
243 KwL2MeasReqEvt      *measReqEvt;
244 #endif
245 {
246
247    TRC3(PtUlUdxL2MeasReq);
248
249    RETVALUE(ROK);
250
251
252 /**
253 * @brief Request from ULM to DLM for Measurement
254 *
255 * @details
256 *
257 *     Function : KwUdxUdxL2MeasSendReq
258 *
259 *  @param[in]   Pst*           pst
260
261 *  @return   S16
262 *      -# ROK
263 **/
264 #ifdef ANSI
265 PRIVATE S16  PtUlUdxL2MeasSendReq
266 (
267 Pst*                pst,
268 U8                  status
269 )
270 #else
271 PRIVATE S16 PtUlUdxL2MeasSendReq(pst, status )
272 Pst*                pst;
273 U8                  status
274 #endif
275 {
276
277    TRC3(PtUlUdxL2MeasSendReq);
278
279    RETVALUE(ROK);
280 }
281
282 /**
283 * @brief Request from ULM to DLM for Measurement
284 *
285 * @details
286 *
287 *     Function : KwUdxUdxL2MeasStopReq
288 *
289 *  @param[in]   Pst*           pst
290
291 *  @return   S16
292 *      -# ROK
293 **/
294 #ifdef ANSI
295 PRIVATE S16  PtUlUdxL2MeasStopReq
296 (
297 Pst*                pst,
298 U8                  status
299 )
300 #else
301 PRIVATE S16 PtUlUdxL2MeasStopReq(pst, status )
302 Pst*                pst;
303 U8                  status
304 #endif
305 {
306
307    TRC3(PtUlUdxL2MeasStopReq);
308
309    RETVALUE(ROK);
310 }
311 #endif
312 #endif
313
314 PRIVATE UdxBndReq kwUlUdxBndReqMt[] =
315 {
316 #ifdef LCKWULUDX
317    cmPkUdxBndReq,            /* 0 - loosely coupled */
318 #else
319    PtUlUdxBndReq,            /* 0 - loosely coupled, portable  */
320 #endif /* LCKWUIKWU */
321 #ifdef LWLCKWULUDX
322    cmPkUdxBndReq,            /* 1 - loosely coupled */
323 #else
324    PtUlUdxBndReq,            /* 1 - loosely coupled, portable  */
325 #endif /* LCKWUIKWU */
326 #ifdef KW
327    KwDlUdxBndReq,            /* 2 - tightly coupled, RRC  */
328 #else
329    PtUlUdxBndReq,            /* 2 - tightly coupled, portable */
330 #endif /* KW */
331 };
332
333 PRIVATE UdxUbndReq kwUlUdxUbndReqMt[] =
334 {
335 #ifdef LCKWULUDX
336    cmPkUdxUbndReq,            /* 0 - loosely coupled */
337 #else
338    PtUlUdxUbndReq,            /* 0 - loosely coupled, portable  */
339 #endif /* LCKWUIKWU */
340 #ifdef LWLCKWULUDX
341    cmPkUdxUbndReq,            /* 1 - loosely coupled */
342 #else
343    PtUlUdxUbndReq,            /* 1 - loosely coupled, portable  */
344 #endif /* LCKWUIKWU */
345 #ifdef KW
346    KwDlUdxUbndReq,            /* 2 - tightly coupled, RRC  */
347 #else
348    PtUlUdxUbndReq,            /* 2 - tightly coupled, portable */
349 #endif /* KW */
350 };
351
352
353 PRIVATE UdxCfgReq kwUlUdxCfgReqMt[] =
354 {
355 #ifdef LCKWULUDX
356    cmPkUdxCfgReq,            /* 0 - loosely coupled */
357 #else
358    PtUlUdxCfgReq,            /* 0 - loosely coupled, portable  */
359 #endif /* LCKWUIKWU */
360 #ifdef LWLCKWULUDX
361    cmPkUdxCfgReq,            /* 1 - loosely coupled */
362 #else
363    PtUlUdxCfgReq,            /* 1 - loosely coupled, portable  */
364 #endif /* LCKWUIKWU */
365 #ifdef KW
366    KwDlUdxCfgReq,            /* 2 - tightly coupled, RRC  */
367 #else
368    PtUlUdxCfgReq,            /* 2 - tightly coupled, portable */
369 #endif /* KW */
370 };
371
372 PRIVATE UdxUeIdChgReq kwUlUdxUeIdChgReqMt[] =
373 {
374 #ifdef LCKWULUDX
375    cmPkUdxUeIdChgReq,            /* 0 - loosely coupled */
376 #else
377    PtUlUdxUeIdChgReq,            /* 0 - loosely coupled, portable  */
378 #endif /* LCKWUIKWU */
379 #ifdef LWLCKWULUDX
380    cmPkUdxUeIdChgReq,            /* 1 - loosely coupled */
381 #else
382    PtUlUdxUeIdChgReq,            /* 1 - loosely coupled, portable  */
383 #endif /* LCKWUIKWU */
384 #ifdef KW
385    KwDlUdxUeIdChgReq,            /* 2 - tightly coupled, RRC  */
386 #else
387    PtUlUdxUeIdChgReq,            /* 2 - tightly coupled, portable */
388 #endif /* KW */
389 };
390
391
392 PRIVATE CONSTANT UdxStaUpdReq kwUlUdxStaUpdReqMt[KW_MAX_UDX] =
393 {
394 #ifdef LCKWULUDX
395    cmPkUdxStaUpdReq,            /* 0 - loosely coupled */
396 #else
397    PtUlUdxStaUpdReq,            /* 0 - loosely coupled, portable  */
398 #endif /* LCKWUIKWU */
399 #ifdef LWLCKWULUDX
400    cmPkUdxStaUpdReq,            /* 1 - loosely coupled */
401 #else
402    PtUlUdxStaUpdReq,            /* 1 - loosely coupled, portable  */
403 #endif /* LCKWUIKWU */
404 #ifdef KW
405    KwDlUdxStaUpdReq,            /* 2 - tightly coupled, RRC  */
406 #else
407    PtUlUdxStaUpdReq,            /* 2 - tightly coupled, portable */
408 #endif /* KW */
409 };
410
411 PRIVATE CONSTANT UdxStaPduReq kwUlUdxStaPduReqMt[KW_MAX_UDX] =
412 {
413 #ifdef LCKWULUDX
414    cmPkUdxStaPduReq,            /* 0 - loosely coupled */
415 #else
416    PtUlUdxStaPduReq,            /* 0 - loosely coupled, portable  */
417 #endif /* LCKWUIKWU */
418 #ifdef LWLCKWULUDX
419    cmPkUdxStaPduReq,            /* 1 - loosely coupled */
420 #else
421    PtUlUdxStaPduReq,            /* 1 - loosely coupled, portable  */
422 #endif /* LCKWUIKWU */
423 #ifdef KW
424    KwDlUdxStaPduReq,            /* 2 - tightly coupled, RRC  */
425 #else
426    PtUlUdxStaPduReq,            /* 2 - tightly coupled, portable */
427 #endif /* KW */
428 };
429 #ifdef LTE_L2_MEAS
430 PRIVATE CONSTANT UdxL2MeasReq kwUlUdxL2MeasReqMt[KW_MAX_UDX] =
431 {
432 #ifdef LCKWULUDX
433    cmPkUdxL2MeasReq,            /* 0 - loosely coupled */
434 #else
435    PtUlUdxL2MeasReq,            /* 0 - loosely coupled, portable  */
436 #endif /* LCKWUIKWU */
437 #ifdef LWLCKWULUDX
438    cmPkUdxL2MeasReq,            /* 1 - loosely coupled */
439 #else
440    PtUlUdxL2MeasReq,            /* 1 - loosely coupled, portable  */
441 #endif /* LCKWUIKWU */
442 #ifdef KW
443    KwDlUdxL2MeasReq,            /* 2 - tightly coupled, RRC  */
444 #else
445    PtUlUdxL2MeasReq,            /* 2 - tightly coupled, portable */
446 #endif /* KW */
447 };
448
449 PRIVATE CONSTANT UdxL2MeasSendReq kwUlUdxL2MeasSendReqMt[KW_MAX_UDX] =
450 {
451 #ifdef LCKWULUDX
452    cmPkUdxL2MeasSendReq,            /* 0 - loosely coupled */
453 #else
454    PtUlUdxL2MeasSendReq,            /* 0 - loosely coupled, portable  */
455 #endif /* LCKWUIKWU */
456 #ifdef LWLCKWULUDX
457    cmPkUdxL2MeasSendReq,            /* 1 - loosely coupled */
458 #else
459    PtUlUdxL2MeasSendReq,            /* 1 - loosely coupled, portable  */
460 #endif /* LCKWUIKWU */
461 #ifdef KW
462    KwDlUdxL2MeasSendReq,            /* 2 - tightly coupled, RRC  */
463 #else
464    PtUlUdxL2MeasSendReq,            /* 2 - tightly coupled, portable */
465 #endif /* KW */
466 };
467
468 PRIVATE CONSTANT UdxL2MeasStopReq kwUlUdxL2MeasStopReqMt[KW_MAX_UDX] =
469 {
470 #ifdef LCKWULUDX
471    cmPkUdxL2MeasStopReq,            /* 0 - loosely coupled */
472 #else
473    PtUlUdxL2MeasStopReq,            /* 0 - loosely coupled, portable  */
474 #endif /* LCKWUIKWU */
475 #ifdef LWLCKWULUDX
476    cmPkUdxL2MeasStopReq,            /* 1 - loosely coupled */
477 #else
478    PtUlUdxL2MeasStopReq,            /* 1 - loosely coupled, portable  */
479 #endif /* LCKWUIKWU */
480 #ifdef KW
481    KwDlUdxL2MeasStopReq,            /* 2 - tightly coupled, RRC  */
482 #else
483    PtUlUdxL2MeasStopReq,            /* 2 - tightly coupled, portable */
484 #endif /* KW */
485 };
486 #endif
487 /**
488  *
489  * @brief 
490  *
491  *        Handler for confirming  the bind request received from KWU
492  *        interface.
493  *
494  * @b Description:
495  *
496  *        This function send the bind confirm primitive to the RLC user,
497  *        when it receives a bind request from its service user.
498  *
499  *  @param[in] pst     Post structure  
500  *  @param[in] suId    Service user SAP ID 
501  *  @param[in] status  Status of Confirmation 
502  *
503  *  @return  S16
504  *      -# ROK 
505  *
506  */
507 #ifdef ANSI
508 PUBLIC S16 KwUlUdxBndReq
509 (
510 Pst *pst,                       /* post structure */
511 SuId suId,                      /* Service User Id */
512 SpId spId                     /* Status */
513 )
514 #else
515 PUBLIC S16 KwUlUdxBndReq(pst, suId, status)
516 Pst *pst;                       /* post structure */
517 SuId suId;                      /* Service User Id */
518 SpId spId;                    /* Status */
519 #endif
520 {
521    TRC3(KwUlUdxBndReq)
522
523    /* jump to specific primitive depending on configured selector */
524    (*kwUlUdxBndReqMt[pst->selector])(pst, suId, spId);
525
526    RETVALUE(ROK);
527
528 } /* end of KwDlUdxBndReq */
529
530 /**
531  *
532  * @brief 
533  *
534  *        Handler for confirming  the bind request received from KWU
535  *        interface.
536  *
537  * @b Description:
538  *
539  *        This function send the bind confirm primitive to the RLC user,
540  *        when it receives a bind request from its service user.
541  *
542  *  @param[in] pst     Post structure  
543  *  @param[in] suId    Service user SAP ID 
544  *  @param[in] status  Status of Confirmation 
545  *
546  *  @return  S16
547  *      -# ROK 
548  *
549  */
550 #ifdef ANSI
551 PUBLIC S16 KwUlUdxUbndReq
552 (
553 Pst *pst,                       /* post structure */
554 SpId spId,                      /* Service User Id */
555 Reason   reason                     /* Status */
556 )
557 #else
558 PUBLIC S16 KwUlUdxUbndReq(pst, suId, status)
559 Pst *pst;                       /* post structure */
560 SpId spId;                      /* Service User Id */
561 Reason Reason;                    /* Status */
562 #endif
563 {
564    TRC3(KwUlUdxUbndReq)
565
566    /* jump to specific primitive depending on configured selector */
567    (*kwUlUdxUbndReqMt[pst->selector])(pst, spId,reason );
568
569    RETVALUE(ROK);
570
571 } /* end of KwDlUdxBndReq */
572
573 #ifdef ANSI
574 PUBLIC S16 KwUlUdxCfgReq
575 (
576 Pst *pst,                       /* post structure */
577 SpId spId,                      /* Service User Id */
578 CkwCfgInfo *cfmInfo             /* Config Info */
579 )
580 #else
581 PUBLIC S16 KwUlUdxCfgReq(pst, suId, status)
582 Pst *pst;                       /* post structure */
583 SuId spId;                      /* Service User Id */
584 CkwCfgInfo *cfmInfo;              /* Config Info */
585 #endif
586 {
587    TRC3(KwUlUdxCfgReq)
588
589    /* jump to specific primitive depending on configured selector */
590    (*kwUlUdxCfgReqMt[pst->selector])(pst, spId, cfmInfo);
591
592    RETVALUE(ROK);
593
594 } /* end of KwDlUdxCfgReq */
595
596 #ifdef ANSI
597 PUBLIC S16 KwUlUdxUeIdChgReq
598 (
599 Pst *pst,                      /* post structure */
600 SpId spId,                     /* Service User Id */
601 U32      transId,              /* transaction Id */
602 CkwUeInfo *ueInfo,             /* Config Info */
603 CkwUeInfo *newUeInfo           /* Config Info */
604 )
605 #else
606 PUBLIC S16 KwUlUdxUeIdChgReq(pst, spId,transId, ueInfo, newUeInfo)
607 Pst *pst;                      /* post structure */
608 SpId spId;                     /* Service User Id */
609 U32      transId;              /* transaction Id */
610 CkwUeInfo *ueInfo;             /* Config Info */
611 CkwUeInfo *newUeInfo;          /* Config Info */
612 #endif
613 {
614    TRC3(KwUlUdxUeIdChgReq)
615
616    /* jump to specific primitive depending on configured selector */
617    (*kwUlUdxUeIdChgReqMt[pst->selector])(pst, spId,transId,ueInfo,newUeInfo);
618
619    RETVALUE(ROK);
620
621 } /* end of KwDlUdxCfgReq */
622
623
624
625 PUBLIC S16  KwUlUdxStaPduReq
626 (
627 Pst*                pst,
628 SpId                spId,
629 CmLteRlcId          *rlcId,
630 KwUdxDlStaPdu       *pStaPdu
631 )
632 {
633    TRC3(KwUlUdxStaPduReq);
634
635    RETVALUE((*kwUlUdxStaPduReqMt[pst->selector])(pst,spId, rlcId, pStaPdu));
636 }
637
638 /**
639 * @brief Request from ULM to DLM for UE Status
640 *
641 * @details
642 *
643 *     Function : KwUdxUdxStatUpd
644 *
645 *  @param[in]   Pst*           pst
646
647 *  @return   S16
648 *      -# ROK
649 **/
650 #ifdef ANSI
651 PUBLIC S16  KwUlUdxStaUpdReq
652 (
653 Pst*                pst,
654 SpId                spId,
655 CmLteRlcId          *rlcId,
656 KwUdxStaPdu         *pStaPdu
657 )
658 #else
659 PUBLIC S16 KwUlUdxStaUpdReq(pst, rlcId, pStaPdu)
660 Pst*                pst;
661 SpId                spId;
662 CmLteRlcId          *rlcId;
663 KwUdxStaPdu         *pStaPdu;
664 #endif
665 {
666
667    TRC3(KwUlUdxStaUpdReq);
668
669    RETVALUE((*kwUlUdxStaUpdReqMt[pst->selector])(pst,spId, rlcId, pStaPdu));
670 } /* end of KwUlmDlmStaUpd*/
671
672 #ifdef LTE_L2_MEAS
673 /**
674 * @brief Request from ULM to DLM for MeasReq 
675 *
676 * @details
677 *
678 *     Function : KwUlUdxL2MeasReq
679 *
680 *  @param[in]   Pst*           pst
681
682 *  @return   S16
683 *      -# ROK
684 **/
685 #ifdef ANSI
686 PUBLIC S16  KwUlUdxL2MeasReq
687 (
688 Pst*                pst,
689 KwL2MeasReqEvt      *measReqEvt 
690 )
691 #else
692 PUBLIC S16 KwUlUdxL2MeasReq(pst,measReqEvt)
693 Pst*                pst;
694 KwL2MeasReqEvt      *measReqEvt; 
695 #endif
696 {
697
698    TRC3(KwUlUdxStaUpdReq);
699
700    RETVALUE((*kwUlUdxL2MeasReqMt[pst->selector])(pst,measReqEvt));
701 } /* end of KwUlUdxL2MeasReq*/
702
703 /**
704 * @brief Request from ULM to DLM for MeasSendReq 
705 *
706 * @details
707 *
708 *     Function : KwUlUdxMeasSendReq
709 *
710 *  @param[in]   Pst*           pst
711
712 *  @return   S16
713 *      -# ROK
714 **/
715 #ifdef ANSI
716 PUBLIC S16  KwUlUdxL2MeasSendReq
717 (
718 Pst*                pst,
719 U8                  measType
720 )
721 #else
722 PUBLIC S16 KwUlUdxL2MeasSendReq(pst,measReqEvt)
723 Pst*                pst;
724 U8                  measType;
725 #endif
726 {
727
728    TRC3(KwUlUdxStaUpdReq);
729
730    RETVALUE((*kwUlUdxL2MeasSendReqMt[pst->selector])(pst,measType));
731 } /* end of KwUlUdxMesReq*/
732
733 /**
734 * @brief Request from ULM to DLM for MeasStopReq 
735 *
736 * @details
737 *
738 *     Function : KwUlUdxL2MeasStopReq
739 *
740 *  @param[in]   Pst*           pst
741
742 *  @return   S16
743 *      -# ROK
744 **/
745 #ifdef ANSI
746 PUBLIC S16  KwUlUdxL2MeasStopReq
747 (
748 Pst*                pst,
749 U8                  measType
750 )
751 #else
752 PUBLIC S16 KwUlUdxL2MeasStopReq(pst,measReqEvt)
753 Pst*                pst;
754 U8                  measType;
755 #endif
756 {
757
758    TRC3(KwUlUdxStaUpdReq);
759
760    RETVALUE((*kwUlUdxL2MeasStopReqMt[pst->selector])(pst,measType));
761 } /* end of KwUlUdxMesReq*/
762 #endif
763 /**********************************************************************
764  
765          End of file
766 **********************************************************************/