FreeCalypso > hg > fc-magnetite
comparison src/g23m-aci/aci/psa_gmmp.c @ 162:53929b40109c
src/g23m-aci: initial import from TCS3.2/LoCosto
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 11 Oct 2016 02:02:43 +0000 |
parents | |
children | b135e1505ae4 |
comparison
equal
deleted
inserted
replaced
161:4557e2a9c18e | 162:53929b40109c |
---|---|
1 /* | |
2 +----------------------------------------------------------------------------- | |
3 | Project : | |
4 | Modul : | |
5 +----------------------------------------------------------------------------- | |
6 | Copyright 2002 Texas Instruments Berlin, AG | |
7 | All rights reserved. | |
8 | | |
9 | This file is confidential and a trade secret of Texas | |
10 | Instruments Berlin, AG | |
11 | The receipt of or possession of this file does not convey | |
12 | any rights to reproduce or disclose its contents or to | |
13 | manufacture, use, or sell anything it may describe, in | |
14 | whole, or in part, without the specific written consent of | |
15 | Texas Instruments Berlin, AG. | |
16 +----------------------------------------------------------------------------- | |
17 | Purpose : This module defines the processing functions for the | |
18 | primitives send to the protocol stack adapter by the | |
19 | registrations part of GPRS mobility management ( GMM ). | |
20 +----------------------------------------------------------------------------- | |
21 */ | |
22 | |
23 #if defined (GPRS) && defined (DTI) | |
24 | |
25 #ifndef PSA_GMMP_C | |
26 #define PSA_GMMP_C | |
27 #endif | |
28 | |
29 #include "aci_all.h" | |
30 /*==== INCLUDES ===================================================*/ | |
31 #include "dti.h" /* functionality of the dti library */ | |
32 #include "aci_cmh.h" | |
33 #include "ati_cmd.h" | |
34 #include "aci_cmd.h" | |
35 | |
36 #include "aci.h" | |
37 | |
38 #include "dti.h" | |
39 #include "dti_conn_mng.h" | |
40 #include "dti_cntrl_mng.h" | |
41 | |
42 #include "gaci.h" | |
43 #include "gaci_cmh.h" | |
44 #include "psa.h" | |
45 #include "psa_gmm.h" | |
46 #include "psa_mm.h" | |
47 #include "cmh.h" | |
48 #include "cmh_gmm.h" | |
49 | |
50 #ifdef FF_GPF_TCPIP | |
51 #include "dcm_utils.h" | |
52 #include "dcm_state.h" | |
53 #include "dcm_env.h" | |
54 #endif | |
55 #include "dcm_f.h" | |
56 #include "rvm/rvm_api.h" | |
57 | |
58 | |
59 | |
60 /*==== CONSTANTS ==================================================*/ | |
61 | |
62 /*==== TYPES ======================================================*/ | |
63 | |
64 | |
65 /*==== EXPORT =====================================================*/ | |
66 | |
67 | |
68 /*==== VARIABLES ==================================================*/ | |
69 | |
70 | |
71 /*==== FUNCTIONS ==================================================*/ | |
72 | |
73 /* | |
74 +-------------------------------------------------------------------+ | |
75 | PROJECT : GPRS (8441) MODULE : PSA_GMMP | | |
76 | ROUTINE : psa_gmmreg_attach_cnf | | |
77 +-------------------------------------------------------------------+ | |
78 | |
79 PURPOSE : processes the GMMREG_ATTACH_CNF primitive send by GMM. | |
80 this confirms a successful attach. | |
81 */ | |
82 GLOBAL void psa_gmmreg_attach_cnf ( T_GMMREG_ATTACH_CNF *gmmreg_attach_cnf ) | |
83 { | |
84 | |
85 TRACE_FUNCTION ("psa_gmmreg_attach_cnf()"); | |
86 | |
87 GMM_PRIM_TRACE_2("ATT_CNF",dbg_attachType(gmmreg_attach_cnf->attach_type), | |
88 dbg_searchRunning(gmmreg_attach_cnf->search_running)); | |
89 | |
90 | |
91 /* Attach Cnf will be sent when RR starts the power scanning | |
92 and hence ignore it */ | |
93 if (gmmreg_attach_cnf->bootup_cause EQ PWR_SCAN_START) | |
94 { | |
95 TRACE_EVENT("Dummy cnf from the lower layer"); | |
96 PFREE(gmmreg_attach_cnf); | |
97 return; | |
98 } | |
99 | |
100 /* | |
101 *------------------------------------------------------------------- | |
102 * notify ACI | |
103 *------------------------------------------------------------------- | |
104 */ | |
105 cmhGMM_setPLMN(&gmmreg_attach_cnf->plmn); | |
106 gmmShrdPrm.lac = gmmreg_attach_cnf->lac; | |
107 gmmShrdPrm.cid = gmmreg_attach_cnf->cid; | |
108 | |
109 /* ACI-SPR-17218: Map gprs_indicator to ACI state */ | |
110 switch( gmmreg_attach_cnf->gprs_indicator ) | |
111 { | |
112 case GMM_GPRS_SUPP_NO: | |
113 gmmShrdPrm.gprs_indicator = P_CREG_GPRS_Not_Supported; | |
114 break; | |
115 case GMM_GPRS_SUPP_LIMITED: | |
116 gmmShrdPrm.gprs_indicator = P_CREG_GPRS_Supported_Limited_Serv; | |
117 break; | |
118 case GMM_GPRS_SUPP_YES: | |
119 gmmShrdPrm.gprs_indicator = P_CREG_GPRS_Supported; | |
120 break; | |
121 default: | |
122 gmmShrdPrm.gprs_indicator = P_CREG_GPRS_Support_Unknown; | |
123 break; | |
124 } | |
125 gmmShrdPrm.rt = gmmreg_attach_cnf->rt; | |
126 | |
127 TRACE_EVENT_P2("NEW ! gmmShrdPrm.lac: %04X, gmmShrdPrm.cid: %04X", gmmShrdPrm.lac, gmmShrdPrm.cid); | |
128 | |
129 psaGMM_NetworkRegistrationStatus(GMMREG_ATTACH_CNF, gmmreg_attach_cnf); | |
130 | |
131 cmhGMM_Attached( gmmreg_attach_cnf->attach_type, &gmmreg_attach_cnf->plmn, gmmreg_attach_cnf->search_running ); | |
132 | |
133 switch ( gmmreg_attach_cnf->attach_type ) | |
134 { | |
135 case GMMREG_AT_GPRS: | |
136 case GMMREG_AT_COMB: | |
137 case GMMREG_AT_IMSI: | |
138 { | |
139 PALLOC (mmr_reg_cnf, MMR_REG_CNF); | |
140 memcpy(&mmr_reg_cnf->plmn, &gmmreg_attach_cnf->plmn, sizeof(T_plmn)); | |
141 mmr_reg_cnf->lac = gmmreg_attach_cnf->lac; | |
142 mmr_reg_cnf->cid = gmmreg_attach_cnf->cid; | |
143 mmr_reg_cnf->bootup_cause = gmmreg_attach_cnf->bootup_cause; | |
144 psa_mmr_reg_cnf(mmr_reg_cnf); | |
145 } | |
146 break; | |
147 } | |
148 | |
149 /* | |
150 *------------------------------------------------------------------- | |
151 * free the primitive buffer | |
152 *------------------------------------------------------------------- | |
153 */ | |
154 PFREE (gmmreg_attach_cnf); | |
155 } | |
156 | |
157 /* | |
158 +-------------------------------------------------------------------+ | |
159 | PROJECT : GPRS (8441) MODULE : PSA_GMMP | | |
160 | ROUTINE : psa_gmmreg_attach_rej | | |
161 +-------------------------------------------------------------------+ | |
162 | |
163 PURPOSE : processes the GMMREG_ATTACH_REJ primitive send by GMM. | |
164 this confirms a failed attach. | |
165 */ | |
166 EXTERN T_DCM_ENV_CTRL_BLK *dcm_env_ctrl_blk_p; | |
167 GLOBAL void psa_gmmreg_attach_rej ( T_GMMREG_ATTACH_REJ *gmmreg_attach_rej ) | |
168 { | |
169 | |
170 TRACE_FUNCTION ("psa_gmmreg_attach_rej()"); | |
171 | |
172 GMM_PRIM_TRACE_2("ATT_REJ",dbg_detachType(gmmreg_attach_rej->detach_type), | |
173 dbg_searchRunning(gmmreg_attach_rej->search_running)); | |
174 /* | |
175 *------------------------------------------------------------------- | |
176 * notify ACI | |
177 *------------------------------------------------------------------- | |
178 */ | |
179 //pinghua add to avoid no net signal case | |
180 #ifdef FF_GPF_TCPIP | |
181 if(is_gpf_tcpip_call()) | |
182 { | |
183 T_DCM_STATUS_IND_MSG msg; | |
184 msg.hdr.msg_id = DCM_NEXT_CMD_STOP_MSG; | |
185 dcm_send_message(msg, dcm_env_ctrl_blk_p->substate[0]); | |
186 | |
187 } | |
188 #endif /* FF_GPF_TCPIP */ | |
189 | |
190 //end | |
191 | |
192 psaGMM_NetworkRegistrationStatus(GMMREG_ATTACH_REJ, gmmreg_attach_rej); | |
193 | |
194 cmhGMM_NoAttach (gmmreg_attach_rej->detach_type,gmmreg_attach_rej->service, | |
195 gmmreg_attach_rej->search_running ); | |
196 | |
197 switch ( gmmreg_attach_rej->detach_type ) | |
198 { | |
199 case GMMREG_DT_COMB: | |
200 case GMMREG_DT_IMSI: | |
201 /* | |
202 * No MM information, if | |
203 * IMSI wasn' t registered and wasn' t requested | |
204 */ | |
205 if ( ( gmmShrdPrm.last_attach_type EQ ATTACH_TYPE_DETACHED OR /* wasn' t registered */ | |
206 gmmShrdPrm.last_attach_type EQ GMMREG_AT_GPRS ) AND | |
207 ( gmmShrdPrm.requested_attach_type EQ ATTACH_TYPE_DETACHED OR /* wasn' t requested */ | |
208 gmmShrdPrm.requested_attach_type EQ GMMREG_AT_GPRS ) ) | |
209 break; | |
210 | |
211 /* else walk through */ | |
212 /*lint -fallthrough */ | |
213 case GMMREG_DT_LIMITED_SERVICE: | |
214 case GMMREG_DT_SIM_REMOVED: | |
215 { | |
216 PALLOC (mmr_nreg_ind, MMR_NREG_IND); /* T_MMR_NREG_IND */ | |
217 mmr_nreg_ind->cause = gmmreg_attach_rej->cause; | |
218 mmr_nreg_ind->service = | |
219 cmhGMM_translate_gmm_cause_to_nreg_cs(gmmreg_attach_rej->service); | |
220 mmr_nreg_ind->search_running = gmmreg_attach_rej->search_running; | |
221 psa_mmr_nreg_ind(mmr_nreg_ind); | |
222 } | |
223 break; | |
224 case GMMREG_DT_POWER_OFF: | |
225 case GMMREG_DT_GPRS: | |
226 case GMMREG_DT_DISABLE_GPRS: | |
227 default: | |
228 break; | |
229 } | |
230 | |
231 /* | |
232 *------------------------------------------------------------------- | |
233 * free the primitive buffer | |
234 *------------------------------------------------------------------- | |
235 */ | |
236 PFREE (gmmreg_attach_rej); | |
237 | |
238 } | |
239 | |
240 /* | |
241 +-------------------------------------------------------------------+ | |
242 | PROJECT : GPRS (8441) MODULE : PSA_GMMP | | |
243 | ROUTINE : psa_gmmreg_detach_cnf | | |
244 +-------------------------------------------------------------------+ | |
245 | |
246 PURPOSE : processes the GMMREG_DETACH_CNF primitive send by GMM. | |
247 this confirms a successful detach. | |
248 */ | |
249 GLOBAL void psa_gmmreg_detach_cnf ( T_GMMREG_DETACH_CNF *gmmreg_detach_cnf ) | |
250 { | |
251 TRACE_FUNCTION ("psa_gmmreg_detach_cnf()"); | |
252 | |
253 GMM_PRIM_TRACE_1("DET_CNF", | |
254 dbg_detachType(gmmreg_detach_cnf->detach_type)); | |
255 | |
256 /* | |
257 *------------------------------------------------------------------- | |
258 * notify ACI | |
259 *------------------------------------------------------------------- | |
260 */ | |
261 psaGMM_NetworkRegistrationStatus(GMMREG_DETACH_CNF, gmmreg_detach_cnf); | |
262 | |
263 cmhGMM_Detached( gmmreg_detach_cnf->detach_type ); | |
264 | |
265 switch ( gmmreg_detach_cnf->detach_type ) | |
266 { | |
267 case GMMREG_DT_SOFT_OFF: | |
268 { | |
269 PALLOC (mmr_nreg_cnf, MMR_NREG_CNF); | |
270 mmr_nreg_cnf->detach_cause = CS_SOFT_OFF; | |
271 psa_mmr_nreg_cnf(mmr_nreg_cnf); | |
272 } | |
273 break; | |
274 | |
275 case GMMREG_DT_POWER_OFF: | |
276 { | |
277 PALLOC (mmr_nreg_cnf, MMR_NREG_CNF); | |
278 mmr_nreg_cnf->detach_cause = CS_POW_OFF; | |
279 psa_mmr_nreg_cnf(mmr_nreg_cnf); | |
280 } | |
281 break; | |
282 | |
283 case GMMREG_DT_COMB: /* is set for e.g. AT+COPS=2 or AT%NRG=0,2 */ | |
284 case GMMREG_DT_SIM_REMOVED: | |
285 { | |
286 PALLOC (mmr_nreg_cnf, MMR_NREG_CNF); | |
287 mmr_nreg_cnf->detach_cause = CS_SIM_REM; | |
288 psa_mmr_nreg_cnf(mmr_nreg_cnf); | |
289 } | |
290 break; | |
291 | |
292 case GMMREG_DT_GPRS: | |
293 case GMMREG_DT_IMSI: | |
294 case GMMREG_DT_DISABLE_GPRS: | |
295 case GMMREG_DT_LIMITED_SERVICE: | |
296 break; | |
297 } | |
298 | |
299 /* | |
300 *------------------------------------------------------------------- | |
301 * free the primitive buffer | |
302 *------------------------------------------------------------------- | |
303 */ | |
304 PFREE (gmmreg_detach_cnf); | |
305 } | |
306 | |
307 /* | |
308 +-------------------------------------------------------------------+ | |
309 | PROJECT : GPRS (8441) MODULE : PSA_GMMP | | |
310 | ROUTINE : psa_gmmreg_detach_ind | | |
311 +-------------------------------------------------------------------+ | |
312 | |
313 PURPOSE : processes the GMMREG_DETACH_IND primitive send by GMM. | |
314 the network initiated detach. | |
315 */ | |
316 EXTERN T_DCM_ENV_CTRL_BLK *dcm_env_ctrl_blk_p; | |
317 | |
318 GLOBAL void psa_gmmreg_detach_ind ( T_GMMREG_DETACH_IND *gmmreg_detach_ind ) | |
319 { | |
320 | |
321 TRACE_FUNCTION ("psa_gmmreg_detach_ind()"); | |
322 | |
323 GMM_PRIM_TRACE_2("DET_IND",dbg_detachType(gmmreg_detach_ind->detach_type), | |
324 dbg_searchRunning(gmmreg_detach_ind->search_running)); | |
325 | |
326 | |
327 | |
328 //pinghua add to avoid net drop off due to no signal | |
329 #ifdef FF_GPF_TCPIP | |
330 if(is_gpf_tcpip_call()) | |
331 { | |
332 | |
333 if(dcm_env_ctrl_blk_p->state[0] == DCM_CONN_ACTIVATED AND | |
334 dcm_env_ctrl_blk_p->substate[0] == DCM_SUB_NO_ACTION ) | |
335 { | |
336 T_DCM_CLOSE_CONN_REQ_MSG dcm_close_conn_req_msg; | |
337 U8 current_row = dcm_env_ctrl_blk_p->current_row ; | |
338 | |
339 memset(&dcm_close_conn_req_msg, 0x00, sizeof(T_DCM_CLOSE_CONN_REQ_MSG)); | |
340 | |
341 dcm_close_conn_req_msg.hdr.msg_id = DCM_CLOSE_CONN_REQ_MSG; | |
342 dcm_close_conn_req_msg.close_req.api_instance = dcm_env_ctrl_blk_p->ipu_list[current_row].api_instance; | |
343 dcm_close_conn_req_msg.close_req.bearer_handle = dcm_env_ctrl_blk_p->ipu_list[current_row].bearer_handle; | |
344 dcm_process_network_drop(&dcm_close_conn_req_msg); | |
345 | |
346 | |
347 } | |
348 } | |
349 #endif /* FF_GPF_TCPIP */ | |
350 | |
351 //end | |
352 | |
353 | |
354 /* | |
355 *------------------------------------------------------------------- | |
356 * notify ACI | |
357 *------------------------------------------------------------------- | |
358 */ | |
359 psaGMM_NetworkRegistrationStatus(GMMREG_DETACH_IND, gmmreg_detach_ind); | |
360 | |
361 cmhGMM_NetDetach( gmmreg_detach_ind->detach_type, | |
362 gmmreg_detach_ind->service, | |
363 gmmreg_detach_ind->search_running ); | |
364 switch ( gmmreg_detach_ind->detach_type ) | |
365 { | |
366 case GMMREG_DT_COMB: | |
367 case GMMREG_DT_IMSI: | |
368 case GMMREG_DT_LIMITED_SERVICE: | |
369 { | |
370 PALLOC (mmr_nreg_ind, MMR_NREG_IND); | |
371 mmr_nreg_ind->cause = gmmreg_detach_ind->cause; | |
372 mmr_nreg_ind->service = | |
373 cmhGMM_translate_gmm_cause_to_nreg_cs(gmmreg_detach_ind->service); | |
374 mmr_nreg_ind->search_running = gmmreg_detach_ind->search_running; | |
375 psa_mmr_nreg_ind(mmr_nreg_ind); | |
376 } | |
377 break; | |
378 case GMMREG_DT_POWER_OFF: | |
379 case GMMREG_DT_SIM_REMOVED: | |
380 case GMMREG_DT_GPRS: | |
381 case GMMREG_DT_DISABLE_GPRS: | |
382 cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_NOT_REG, P_CGREG_STAT_NOT_REG ); | |
383 /*lint -fallthrough */ | |
384 default: | |
385 break; | |
386 } | |
387 | |
388 /* | |
389 *------------------------------------------------------------------- | |
390 * free the primitive buffer | |
391 *------------------------------------------------------------------- | |
392 */ | |
393 PFREE (gmmreg_detach_ind); | |
394 | |
395 } | |
396 | |
397 /* | |
398 +-------------------------------------------------------------------+ | |
399 | PROJECT : GPRS (8441) MODULE : PSA_GMMP | | |
400 | ROUTINE : psa_gmmreg_plmn_ind | | |
401 +-------------------------------------------------------------------+ | |
402 | |
403 PURPOSE : processes the GMMREG_PLMN_IND primitive send by GMM. | |
404 this indicate a PLMN list to the MMI. | |
405 */ | |
406 | |
407 GLOBAL void psa_gmmreg_plmn_ind ( T_GMMREG_PLMN_IND *gmmreg_plmn_ind ) | |
408 { | |
409 short i; | |
410 TRACE_FUNCTION ("psa_gmmreg_plmn_ind()"); | |
411 | |
412 /* | |
413 *------------------------------------------------------------------- | |
414 * copy primitive for MM and update shared parameter from GMM | |
415 *------------------------------------------------------------------- | |
416 */ | |
417 { | |
418 PALLOC (mmr_plmn_ind, MMR_PLMN_IND); /* T_MMR_PLMN_IND */ | |
419 | |
420 mmr_plmn_ind->cause = gmmreg_plmn_ind->cause; | |
421 | |
422 for (i = 0; i < MAX_PLMN_ID; i++) | |
423 { | |
424 mmr_plmn_ind->plmn[i] = gmmreg_plmn_ind->plmn[i]; | |
425 mmr_plmn_ind->forb_ind[i] = gmmreg_plmn_ind->forb_ind[i]; | |
426 mmr_plmn_ind->rxlevel[i] = gmmreg_plmn_ind->rxlevel[i]; | |
427 mmr_plmn_ind->lac_list[i] = gmmreg_plmn_ind->lac_list[i]; | |
428 /* shared parameter */ | |
429 gmmShrdPrm.gprs_status[i] = gmmreg_plmn_ind->gprs_status[i]; | |
430 | |
431 if ( mmr_plmn_ind->plmn[i].v_plmn EQ INVLD_PLMN ) | |
432 break; | |
433 } | |
434 | |
435 /* | |
436 *------------------------------------------------------------------- | |
437 * call MM primitive handler for update shared parameter and notify ACI | |
438 *------------------------------------------------------------------- | |
439 */ | |
440 psa_mmr_plmn_ind(mmr_plmn_ind); | |
441 } | |
442 /* | |
443 *------------------------------------------------------------------- | |
444 * notify ACI | |
445 *------------------------------------------------------------------- | |
446 */ | |
447 cmhGMM_Plmn(); | |
448 | |
449 /* | |
450 *------------------------------------------------------------------- | |
451 * free the primitive buffer | |
452 *------------------------------------------------------------------- | |
453 */ | |
454 PFREE (gmmreg_plmn_ind); | |
455 } | |
456 | |
457 /* | |
458 +-------------------------------------------------------------------+ | |
459 | PROJECT : GPRS (8441) MODULE : PSA_GMMP | | |
460 | ROUTINE : psa_gmmreg_suspend_ind | | |
461 +-------------------------------------------------------------------+ | |
462 | |
463 PURPOSE : processes the GMMREG_SUSPEND_IND primitive send by GMM. | |
464 this inform MMI if whether full service or limited service is available. | |
465 */ | |
466 GLOBAL void psa_gmmreg_suspend_ind( T_GMMREG_SUSPEND_IND *gmmreg_suspend_ind ) | |
467 { | |
468 | |
469 TRACE_FUNCTION ("psa_gmmreg_suspend_ind()"); | |
470 | |
471 GMM_PRIM_TRACE_1("SUS_IND",dbg_cellState(gmmreg_suspend_ind->cell_state)); | |
472 | |
473 /* | |
474 *------------------------------------------------------------------- | |
475 * notify ACI | |
476 *------------------------------------------------------------------- | |
477 */ | |
478 psaGMM_NetworkRegistrationStatus(GMMREG_SUSPEND_IND, gmmreg_suspend_ind); | |
479 | |
480 cmhGMM_Suspend( gmmreg_suspend_ind->cell_state ); | |
481 | |
482 /* | |
483 *------------------------------------------------------------------- | |
484 * free the primitive buffer | |
485 *------------------------------------------------------------------- | |
486 */ | |
487 PFREE (gmmreg_suspend_ind); | |
488 | |
489 } | |
490 | |
491 /* | |
492 +-------------------------------------------------------------------+ | |
493 | PROJECT : GPRS (8441) MODULE : PSA_GMMP | | |
494 | ROUTINE : psa_gmmreg_resume_ind | | |
495 +-------------------------------------------------------------------+ | |
496 | |
497 PURPOSE : processes the GMMREG_RESUME_IND primitive send by GMM. | |
498 this inform MMI that GPRS full service is now available. | |
499 */ | |
500 GLOBAL void psa_gmmreg_resume_ind( T_GMMREG_RESUME_IND *gmmreg_resume_ind ) | |
501 { | |
502 | |
503 TRACE_FUNCTION ("psa_gmmreg_resume_ind()"); | |
504 | |
505 /* | |
506 *------------------------------------------------------------------- | |
507 * notify ACI | |
508 *------------------------------------------------------------------- | |
509 */ | |
510 psaGMM_NetworkRegistrationStatus(GMMREG_RESUME_IND, gmmreg_resume_ind); | |
511 | |
512 cmhGMM_Resume(); | |
513 | |
514 /* | |
515 *------------------------------------------------------------------- | |
516 * free the primitive buffer | |
517 *------------------------------------------------------------------- | |
518 */ | |
519 PFREE (gmmreg_resume_ind); | |
520 | |
521 } | |
522 | |
523 /* | |
524 +-------------------------------------------------------------------+ | |
525 | PROJECT : GPRS (8441) MODULE : PSA_GMMP | | |
526 | ROUTINE : psa_gmmreg_info_ind | | |
527 +-------------------------------------------------------------------+ | |
528 | |
529 PURPOSE : processes the GMMREG_INFO_IND primitive send by GMM. | |
530 this transmit the information provided by the GMM INFORMATION message to the MMI. | |
531 */ | |
532 GLOBAL void psa_gmmreg_info_ind( T_GMMREG_INFO_IND *gmmreg_info_ind ) | |
533 { | |
534 | |
535 TRACE_FUNCTION ("psa_gmmreg_info_ind()"); | |
536 | |
537 /* | |
538 *------------------------------------------------------------------- | |
539 * notify ACI | |
540 *------------------------------------------------------------------- | |
541 */ | |
542 { | |
543 PALLOC (mmr_info_ind, MMR_INFO_IND); | |
544 memcpy (&(mmr_info_ind->plmn), &(gmmreg_info_ind->plmn), sizeof (T_plmn)); | |
545 memcpy (&(mmr_info_ind->full_name), &(gmmreg_info_ind->full_net_name_gmm), sizeof (T_full_net_name_gmm)); | |
546 memcpy (&(mmr_info_ind->short_name), &(gmmreg_info_ind->short_net_name_gmm), sizeof (T_short_net_name_gmm)); | |
547 memcpy (&(mmr_info_ind->ntz), &(gmmreg_info_ind->net_time_zone), sizeof (T_net_time_zone)); | |
548 memcpy (&(mmr_info_ind->time), &(gmmreg_info_ind->net_time), sizeof (T_net_time)); | |
549 | |
550 psa_mmr_info_ind(mmr_info_ind); | |
551 } | |
552 | |
553 /*cmhGMM_Info();*/ | |
554 | |
555 /* | |
556 *------------------------------------------------------------------- | |
557 * free the primitive buffer | |
558 *------------------------------------------------------------------- | |
559 */ | |
560 PFREE (gmmreg_info_ind); | |
561 | |
562 } | |
563 | |
564 | |
565 /* | |
566 +-------------------------------------------------------------------+ | |
567 | PROJECT : GPRS (8441) MODULE : PSA_GMMP | | |
568 | ROUTINE : psa_gmmreg_ciphering_ind| | |
569 +-------------------------------------------------------------------+ | |
570 | |
571 PURPOSE : processes the GMMREG_CIPHERING_IND primitive send by GMM. | |
572 */ | |
573 GLOBAL void psa_gmmreg_ciphering_ind(T_GMMREG_CIPHERING_IND *gmmreg_ciphering_ind) | |
574 { | |
575 | |
576 TRACE_FUNCTION ("psa_gmmreg_ciphering_ind()"); | |
577 | |
578 cmhGMM_CipheringInd (gmmreg_ciphering_ind->gsm_ciph,gmmreg_ciphering_ind->gprs_ciph); | |
579 | |
580 | |
581 /* | |
582 *------------------------------------------------------------------- | |
583 * free the primitive buffer | |
584 *------------------------------------------------------------------- | |
585 */ | |
586 PFREE (gmmreg_ciphering_ind); | |
587 | |
588 } | |
589 | |
590 /* | |
591 +-------------------------------------------------------------------+ | |
592 | PROJECT : GPRS (8441) MODULE : PSA_GMMP | | |
593 | ROUTINE : psa_gmmreg_ahplmn_ind | | |
594 +-------------------------------------------------------------------+ | |
595 | |
596 PURPOSE : processes the GMMREG_AHPLMN_IND primitive send by GMM. | |
597 */ | |
598 GLOBAL void psa_gmmreg_ahplmn_ind(T_GMMREG_AHPLMN_IND *gmmreg_ahplmn_ind) | |
599 { | |
600 TRACE_FUNCTION("psa_gmmreg_ahplmn_ind()"); | |
601 | |
602 { | |
603 PALLOC(mmr_ahplmn_ind, MMR_AHPLMN_IND); | |
604 mmr_ahplmn_ind->ahplmn = gmmreg_ahplmn_ind->ahplmn; | |
605 psa_mmr_ahplmn_ind(mmr_ahplmn_ind); | |
606 } | |
607 | |
608 psaGMM_NetworkRegistrationStatus(GMMREG_AHPLMN_IND, gmmreg_ahplmn_ind); | |
609 | |
610 PFREE(gmmreg_ahplmn_ind); | |
611 } | |
612 | |
613 | |
614 #endif /* GPRS */ | |
615 /*==== EOF =========================================================*/ |