FreeCalypso > hg > freecalypso-sw
comparison gsm-fw/g23m-aci/aci/psa_gmmf.c @ 775:eedbf248bac0
gsm-fw/g23m-aci subtree: initial import from LoCosto source
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sun, 12 Oct 2014 01:45:14 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
774:40a721fd9854 | 775:eedbf248bac0 |
---|---|
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 functions for the protocol | |
18 | stack adapter for the registration part of mobility | |
19 | management ( GMM ). | |
20 +----------------------------------------------------------------------------- | |
21 */ | |
22 | |
23 #if defined (GPRS) && defined (DTI) | |
24 | |
25 #ifndef PSA_GMMF_C | |
26 #define PSA_GMMF_C | |
27 #endif | |
28 | |
29 #include "aci_all.h" | |
30 | |
31 #undef TRACING | |
32 /*==== INCLUDES ===================================================*/ | |
33 #include "aci_cmh.h" | |
34 #include "ati_cmd.h" | |
35 #include "aci_cmd.h" | |
36 | |
37 #include "dti.h" | |
38 #include "dti_conn_mng.h" | |
39 #include "dti_cntrl_mng.h" | |
40 | |
41 #include "gaci_cmh.h" | |
42 #include "gaci.h" | |
43 #include "aci.h" | |
44 #include "psa.h" | |
45 #include "psa_gmm.h" | |
46 #include "cmh.h" | |
47 #include "cmh_gmm.h" | |
48 | |
49 /*==== CONSTANTS ==================================================*/ | |
50 | |
51 /*==== TYPES ======================================================*/ | |
52 | |
53 | |
54 /*==== EXPORT =====================================================*/ | |
55 | |
56 | |
57 /*==== VARIABLES ==================================================*/ | |
58 | |
59 /*==== FUNCTIONS ==================================================*/ | |
60 | |
61 | |
62 /* | |
63 +-------------------------------------------------------------------+ | |
64 | PROJECT : GPRS (8441) MODULE : PSA_GMMF | | |
65 | ROUTINE : psaGMM_Init | | |
66 +-------------------------------------------------------------------+ | |
67 | |
68 PURPOSE : initialize the protocol stack adapter for GMM. | |
69 | |
70 */ | |
71 | |
72 /* MACRO: initializer for set parameter */ | |
73 #ifdef INIT_SET_PARM | |
74 #undef INIT_SET_PARM | |
75 #endif | |
76 | |
77 #define INIT_SET_PARM( dest, def )\ | |
78 for( LpCnt = 0; LpCnt < OWN_SRC_MAX; LpCnt++ )\ | |
79 gmmShrdPrm.setPrm[LpCnt].dest = def | |
80 | |
81 GLOBAL void psaGMM_Init ( UBYTE auto_attach, UBYTE auto_detach, UBYTE mobile_class ) | |
82 { | |
83 UBYTE LpCnt; /* holds loop counter for macro */ | |
84 | |
85 /* | |
86 *------------------------------------------------------------------- | |
87 * set default parms | |
88 *------------------------------------------------------------------- | |
89 */ | |
90 default_mobile_class = mobile_class; | |
91 gmmShrdPrm.mobile_class = default_mobile_class; | |
92 gmmShrdPrm.requested_mobile_class = gmmShrdPrm.mobile_class; | |
93 gmmShrdPrm.last_attach_type = ATTACH_TYPE_DETACHED; | |
94 gmmShrdPrm.current_attach_type = ATTACH_TYPE_DETACHED; | |
95 gmmShrdPrm.requested_attach_type = ATTACH_TYPE_DETACHED; | |
96 | |
97 automatic_attach_mode = (T_CGAATT_ATTACH_MODE)auto_attach; | |
98 automatic_detach_mode = (T_CGAATT_DETACH_MODE)auto_detach; | |
99 | |
100 /* | |
101 * GlumPs | |
102 * ANS 15-Mar-00 | |
103 * GMM knows that SIM is not inserted | |
104 * gmmShrdPrm.service_mode = SERVICE_MODE_LIMITED; | |
105 */ | |
106 gmmShrdPrm.service_mode = SERVICE_MODE_FULL; | |
107 | |
108 for (LpCnt = 0; LpCnt < MAX_PLMN_ID; LpCnt++) | |
109 gmmShrdPrm.gprs_status[LpCnt] = GMMREG_GSM_ONLY; | |
110 | |
111 gmmShrdPrm.gprs_indicator = P_CREG_GPRS_Support_Unknown; /* ACI-SPR-24473 */ | |
112 | |
113 gmmShrdPrm.cgreg_stat = CGREG_STAT_NOT_REG; /* +CGREG status */ | |
114 gmmShrdPrm.p_cgreg_stat = P_CGREG_STAT_NOT_REG; /* %CGREG status */ | |
115 gmmShrdPrm.lac = NOT_PRESENT_16BIT; /* current cell coordinates */ | |
116 gmmShrdPrm.cid = NOT_PRESENT_16BIT; | |
117 | |
118 switch(gmmShrdPrm.mobile_class) | |
119 { | |
120 case GMMREG_CLASS_A : | |
121 gaciMobileClass.current = PERCENT_CGCLASS_A; | |
122 break; | |
123 case GMMREG_CLASS_B : | |
124 gaciMobileClass.current = PERCENT_CGCLASS_B; | |
125 break; | |
126 case GMMREG_CLASS_BC : | |
127 gaciMobileClass.current = PERCENT_CGCLASS_BC; | |
128 break; | |
129 case GMMREG_CLASS_BG : | |
130 gaciMobileClass.current = PERCENT_CGCLASS_BG; | |
131 break; | |
132 case GMMREG_CLASS_CC : | |
133 gaciMobileClass.current = PERCENT_CGCLASS_CC; | |
134 break; | |
135 case GMMREG_CLASS_CG : | |
136 gaciMobileClass.current = PERCENT_CGCLASS_CG; | |
137 break; | |
138 default: | |
139 gaciMobileClass.current = PERCENT_CGCLASS_MAX; | |
140 break; | |
141 } | |
142 } | |
143 | |
144 #ifdef GMM_PRIMITIVE_TRACES_ADVANCED | |
145 | |
146 char* dbg_attachType(UBYTE attach_type) | |
147 { | |
148 char* type[3] ={"GPRS", "IMSI", "COMB"}; | |
149 return type[attach_type - 1]; | |
150 } | |
151 char* dbg_detachType(UBYTE detach_type) | |
152 { | |
153 char* type[8] ={"GPRS", "IMSI", "COMB", | |
154 "SIM_REM", "POWER_OFF", "DISABLE_GPRS", | |
155 "LIM_SERV", "SOFT_OFF"}; | |
156 return type[detach_type - 1]; | |
157 } | |
158 char* dbg_mobileClass(UBYTE mobile_class) | |
159 { | |
160 char* running[6] ={"A", "B", "BC", | |
161 "BG", "CC", "CG"}; | |
162 return running[mobile_class - 1]; | |
163 | |
164 } | |
165 char* dbg_searchRunning(UBYTE search_running) | |
166 { | |
167 char* running[2] ={"NOT_RUN", "SEARCH_RUN"}; | |
168 return running[search_running]; | |
169 } | |
170 char* dbg_cellState(UBYTE cell_state) | |
171 { | |
172 char* state[8] ={"FULL_SERV", "LIM_SERV", "CS_CALL", | |
173 "GPRS_NOT_SUP", "TRY_TO_UPD"}; | |
174 return state[cell_state]; | |
175 } | |
176 | |
177 #endif /* GMM_PRIMITIVE_TRACES_ADVANCED */ | |
178 | |
179 /* | |
180 +-----------------------------------------------------------------------------+ | |
181 | PROJECT : GSM-PS (6147) MODULE : PSA_GMMF | | |
182 | ROUTINE : is_GMM_searching_stoped | | |
183 +-----------------------------------------------------------------------------+ | |
184 | |
185 PURPOSE : Answer the Question: "Is the automatic searching from GMM stoped?" | |
186 */ | |
187 LOCAL BOOL is_GMM_searching_stoped (USHORT cause) | |
188 { | |
189 switch ( cause ) | |
190 { | |
191 case MMCS_IMSI_IN_HLR: /* Network cause #2 via MM */ | |
192 /* GMMCS_IMSI_UNKNOWN: */ /* Via GMM, this doesn't stop GPRS */ | |
193 | |
194 case MMCS_ILLEGAL_MS: /* Network cause #3 */ | |
195 case GMMCS_ILLEGAL_MS: | |
196 | |
197 case MMCS_ILLEGAL_ME: /* Network cause #2 */ | |
198 case GMMCS_ILLEGAL_ME: | |
199 | |
200 /* No MMCS_GPRS_NOT_ALLOWED */ /* Doesn't exist in MM protocol */ | |
201 case GMMCS_GPRS_NOT_ALLOWED: /* Network cause #7 */ | |
202 | |
203 /* No MMCS_GSM_GPRS_NOT_ALLOWED */ /* Doesn't exist in MM protocol */ | |
204 case GMMCS_GSM_GPRS_NOT_ALLOWED: /* Network cause #8 */ | |
205 | |
206 case MMCS_SIM_REMOVED: /* SIM has been removed/disabled */ | |
207 case GMMCS_SIM_REMOVED: | |
208 | |
209 case MMCS_AUTHENTICATION_REJECTED: /* AUTHENTICATION REJECT received */ | |
210 case GMMCS_AUTHENTICATION_REJECTED: | |
211 | |
212 /* No MMCS_POWER_OFF */ /* Swiched off */ | |
213 case GMMCS_POWER_OFF: | |
214 return(TRUE); /* yes, it is stoped */ | |
215 } | |
216 | |
217 return(FALSE); /* no, it isn't stoped */ | |
218 } | |
219 | |
220 | |
221 typedef enum | |
222 { | |
223 NRS_NOT_REGISTERED, | |
224 NRS_SEARCHING, | |
225 NRS_REGISTERED | |
226 | |
227 } T_NETWORK_REGISTRATION_STATUS; | |
228 | |
229 /* | |
230 +-----------------------------------------------------------------------------+ | |
231 | PROJECT : GSM-PS (6147) MODULE : PSA_GMMF | | |
232 | ROUTINE : is_GMM_searching_stoped | | |
233 +-----------------------------------------------------------------------------+ | |
234 | |
235 PURPOSE : Answer the Question: "Is the automatic searching from GMM stoped?" | |
236 */ | |
237 LOCAL T_NETWORK_REGISTRATION_STATUS | |
238 GMM_detached ( T_NETWORK_REGISTRATION_STATUS stat, | |
239 BOOL suspended, | |
240 UBYTE detach_type, | |
241 USHORT cause, | |
242 ULONG caller ) | |
243 { | |
244 if ( detach_type NEQ GMMREG_DT_IMSI ) | |
245 { | |
246 /* special causes stops in every state the GMM searching*/ | |
247 if ( is_GMM_searching_stoped(cause) ) | |
248 { | |
249 if( stat NEQ NRS_NOT_REGISTERED ) | |
250 { | |
251 if ( caller EQ GMMREG_ATTACH_REJ AND | |
252 ( gmmShrdPrm.last_attach_type EQ GMMREG_AT_IMSI OR | |
253 gmmShrdPrm.last_attach_type EQ ATTACH_TYPE_DETACHED ) ) | |
254 { | |
255 cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_REG_DEN, P_CGREG_STAT_REG_DEN ); | |
256 } | |
257 else | |
258 { | |
259 cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_NOT_REG, P_CGREG_STAT_NOT_REG ); | |
260 } | |
261 return NRS_NOT_REGISTERED; | |
262 } | |
263 } | |
264 else | |
265 { | |
266 if ( ( stat EQ NRS_REGISTERED AND !suspended ) OR /* in this state always */ | |
267 ( stat EQ NRS_REGISTERED AND suspended ) AND /* in this state only with special detach_type */ | |
268 ( detach_type EQ GMMREG_DT_LIMITED_SERVICE OR | |
269 detach_type EQ GMMREG_DT_SIM_REMOVED ) ) | |
270 { | |
271 cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_SEARCHING, P_CGREG_STAT_SEARCHING ); | |
272 return NRS_SEARCHING; | |
273 } | |
274 } | |
275 } | |
276 else /* detach_type EQ GMMREG_DT_IMSI -> attach_type EQ GPRS*/ | |
277 { | |
278 if( stat NEQ NRS_REGISTERED ) | |
279 { | |
280 if ( cmhGMM_isPLMN_Home()) | |
281 { cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_REG_HOME, P_CGREG_STAT_REG_HOME ); } | |
282 else | |
283 { cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_REG_ROAM, P_CGREG_STAT_REG_ROAM ); } | |
284 | |
285 return NRS_REGISTERED; | |
286 } | |
287 } | |
288 | |
289 return stat; | |
290 } | |
291 | |
292 /* | |
293 +-----------------------------------------------------------------------------+ | |
294 | PROJECT : GSM-PS (6147) MODULE : PSA_GMMF | | |
295 | ROUTINE : psaGMM_NetworkRegistrationStatus | | |
296 +-----------------------------------------------------------------------------+ | |
297 | |
298 PURPOSE : this function reported the network registration status for GPRS | |
299 (+CGREG, %CGREG). | |
300 */ | |
301 GLOBAL void psaGMM_NetworkRegistrationStatus ( ULONG prim, void* para) | |
302 { | |
303 T_NETWORK_REGISTRATION_STATUS tmp_stat; /* only temporary in use*/ | |
304 static T_NETWORK_REGISTRATION_STATUS stat = NRS_NOT_REGISTERED; /* current GPRS NRS */ | |
305 static BOOL suspended = FALSE; /* is GPRS suspended */ | |
306 | |
307 TRACE_FUNCTION ("psaGMM_NetworkRegistrationStatus()"); | |
308 | |
309 switch ( prim ) | |
310 { | |
311 case SMREG_PDP_ACTIVATE_REQ: | |
312 if ( stat EQ NRS_NOT_REGISTERED ) | |
313 { | |
314 stat = NRS_SEARCHING; | |
315 cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_SEARCHING, P_CGREG_STAT_SEARCHING ); | |
316 } | |
317 break; | |
318 case GMMREG_ATTACH_REQ: | |
319 if ( stat EQ NRS_NOT_REGISTERED AND | |
320 ((T_GMMREG_ATTACH_REQ*)para)->attach_type NEQ GMMREG_AT_IMSI ) | |
321 { | |
322 stat = NRS_SEARCHING; | |
323 cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_SEARCHING, P_CGREG_STAT_SEARCHING ); | |
324 } | |
325 break; | |
326 case GMMREG_ATTACH_CNF: | |
327 if ((stat EQ NRS_NOT_REGISTERED OR stat EQ NRS_SEARCHING) AND !suspended AND | |
328 ((T_GMMREG_ATTACH_CNF*)para)->attach_type NEQ GMMREG_AT_IMSI ) | |
329 { | |
330 stat = NRS_REGISTERED; | |
331 | |
332 if ( cmhGMM_isPLMN_Home()) | |
333 { cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_REG_HOME, P_CGREG_STAT_REG_HOME ); } | |
334 else | |
335 { cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_REG_ROAM, P_CGREG_STAT_REG_ROAM ); } | |
336 } | |
337 else if ( (stat EQ NRS_REGISTERED) AND suspended AND | |
338 ((T_GMMREG_ATTACH_CNF*)para)->attach_type NEQ GMMREG_AT_IMSI AND | |
339 ((T_GMMREG_ATTACH_CNF*)para)->search_running EQ GMMREG_SEARCH_NOT_RUNNING ) | |
340 { | |
341 if(((T_GMMREG_ATTACH_CNF*)para)->gprs_indicator NEQ GMM_GPRS_SUPP_YES) | |
342 { | |
343 cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_NOT_REG, P_CGREG_STAT_NOT_REG ); | |
344 break; | |
345 } | |
346 suspended = FALSE; | |
347 | |
348 if ( cmhGMM_isPLMN_Home()) | |
349 { cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_REG_HOME, P_CGREG_STAT_REG_HOME ); } | |
350 else | |
351 { cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_REG_ROAM, P_CGREG_STAT_REG_ROAM ); } | |
352 } | |
353 | |
354 else | |
355 { /* answer to ATTACH_REQ->attach_type=IMSI */ | |
356 if ( stat NEQ NRS_NOT_REGISTERED AND | |
357 ((T_GMMREG_ATTACH_CNF*)para)->search_running EQ GMMREG_SEARCH_NOT_RUNNING AND | |
358 ((T_GMMREG_ATTACH_CNF*)para)->attach_type EQ GMMREG_AT_IMSI ) | |
359 { | |
360 stat = NRS_NOT_REGISTERED; | |
361 suspended = FALSE; | |
362 cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_NOT_REG, P_CGREG_STAT_NOT_REG ); | |
363 } | |
364 } | |
365 break; | |
366 case GMMREG_ATTACH_REJ: | |
367 tmp_stat = GMM_detached(stat, | |
368 suspended, | |
369 ((T_GMMREG_ATTACH_REJ*)para)->detach_type, | |
370 ((T_GMMREG_ATTACH_REJ*)para)->cause, | |
371 GMMREG_ATTACH_REJ ); | |
372 | |
373 if( stat NEQ tmp_stat ) | |
374 { | |
375 stat = tmp_stat; | |
376 suspended = FALSE; | |
377 } | |
378 break; | |
379 case GMMREG_DETACH_CNF: | |
380 if ( stat NEQ NRS_NOT_REGISTERED AND | |
381 ((T_GMMREG_DETACH_CNF*)para)->detach_type NEQ GMMREG_DT_IMSI ) | |
382 { | |
383 stat = NRS_NOT_REGISTERED; | |
384 suspended = FALSE; | |
385 cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_NOT_REG, P_CGREG_STAT_NOT_REG ); | |
386 } | |
387 break; | |
388 case GMMREG_DETACH_IND: | |
389 tmp_stat = GMM_detached(stat, | |
390 suspended, | |
391 ((T_GMMREG_DETACH_IND*)para)->detach_type, | |
392 ((T_GMMREG_DETACH_IND*)para)->cause, | |
393 GMMREG_DETACH_IND ); | |
394 | |
395 if( stat NEQ tmp_stat ) | |
396 { | |
397 stat = tmp_stat; | |
398 suspended = FALSE; | |
399 } | |
400 break; | |
401 case GMMREG_SUSPEND_IND: | |
402 if ( ( stat EQ NRS_REGISTERED AND !suspended ) OR stat EQ NRS_SEARCHING) | |
403 { | |
404 suspended = TRUE; | |
405 switch ( ((T_GMMREG_SUSPEND_IND*)para)->cell_state ) | |
406 { | |
407 case GMMREG_FULL_SERVICE: | |
408 /* nobody knows why we are not resumed */ | |
409 suspended = FALSE; | |
410 break; | |
411 case GMMREG_LIMITED_SERVICE: | |
412 cmhGMM_Set_state(AS_DETACHED); // pinghua DCM_OPEN_CLOSE patch 20080429 start | |
413 gmmShrdPrm.current_attach_type = ATTACH_TYPE_DETACHED; | |
414 | |
415 cmhGMM_send_percentNetworkRegistrationStatus( P_CGREG_STAT_LIMITED ); | |
416 break; | |
417 case GMMREG_CS_CALL: | |
418 cmhGMM_send_percentNetworkRegistrationStatus( P_CGREG_STAT_GSM_CALL ); | |
419 break; | |
420 case GMMREG_GPRS_NOT_SUPPORTED: | |
421 cmhGMM_Set_state(AS_DETACHED); | |
422 gmmShrdPrm.current_attach_type = ATTACH_TYPE_DETACHED; //// pinghua DCM_OPEN_CLOSE patch 20080429 end | |
423 | |
424 cmhGMM_send_percentNetworkRegistrationStatus( P_CGREG_STAT_NO_CELL ); | |
425 break; | |
426 case GMMREG_TRY_TO_UPDATE: | |
427 cmhGMM_send_percentNetworkRegistrationStatus( P_CGREG_STAT_TRY_TO_UPDATE ); | |
428 break; | |
429 } | |
430 } | |
431 break; | |
432 case GMMREG_RESUME_IND: | |
433 if ( suspended ) | |
434 { | |
435 suspended = FALSE; | |
436 | |
437 if ( stat NEQ NRS_REGISTERED ) | |
438 { | |
439 if ( cmhGMM_isPLMN_Home()) | |
440 { cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_REG_HOME, P_CGREG_STAT_REG_HOME ); } | |
441 else | |
442 { cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_REG_ROAM, P_CGREG_STAT_REG_ROAM ); } | |
443 } | |
444 else | |
445 { | |
446 if ( cmhGMM_isPLMN_Home()) | |
447 { cmhGMM_send_percentNetworkRegistrationStatus( P_CGREG_STAT_REG_HOME ); } | |
448 else | |
449 { cmhGMM_send_percentNetworkRegistrationStatus( P_CGREG_STAT_REG_ROAM ); } | |
450 } | |
451 stat = NRS_REGISTERED; | |
452 } | |
453 break; | |
454 case GMMREG_AHPLMN_IND: /* Enhancement for ActingHPLMN*/ | |
455 if(cmhGMM_isPLMN_Valid()) | |
456 { | |
457 if(cmhGMM_isPLMN_Home()) | |
458 { cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_REG_HOME, P_CGREG_STAT_REG_HOME); } | |
459 else | |
460 { cmhGMM_send_NetworkRegistrationStatus( CGREG_STAT_REG_ROAM, P_CGREG_STAT_REG_ROAM ); } | |
461 } | |
462 break; | |
463 case GMMREG_DETACH_REQ: | |
464 case GMMREG_NET_REQ: | |
465 case GMMREG_PLMN_IND: | |
466 case GMMREG_PLMN_RES: | |
467 case GMMREG_PLMN_MODE_REQ: | |
468 case GMMREG_INFO_IND: | |
469 case GMMREG_CONFIG_REQ: | |
470 case GMMREG_CIPHERING_IND: | |
471 break; | |
472 default: | |
473 TRACE_EVENT_P1("UNSUPPORTED PRIMITIVE: %d", prim); | |
474 } | |
475 | |
476 } | |
477 | |
478 | |
479 #if 0 | |
480 /* | |
481 +-------------------------------------------------------------------+ | |
482 | PROJECT : GSM-PS (6147) MODULE : PSA_GMMF | | |
483 | ROUTINE : psaGMM_shrPrmDump | | |
484 +-------------------------------------------------------------------+ | |
485 | |
486 PURPOSE : this function dumps the shared parameter to the debug | |
487 output. | |
488 */ | |
489 | |
490 GLOBAL void psaGMM_shrPrmDump ( void ) | |
491 { | |
492 #ifdef TRACING | |
493 | |
494 char lnBuf [80]; /* holds buffer for output line */ | |
495 char mccBuf[SIZE_MCC + 1]; /* MCC converted to printable C-string */ | |
496 char mncBuf[SIZE_MNC + 1]; /* MNC converted to printable C-string */ | |
497 SHORT chrNr; /* holds number of processed chars */ | |
498 SHORT cnt; /* holds a counter */ | |
499 | |
500 /* --- PLMN list ------------------------------------------------*/ | |
501 for( cnt = 0; cnt<MAX_PLMN_ID AND | |
502 mmShrdPrm.PLMNLst[cnt].v_plmn NEQ INVLD_PLMN; cnt++ ) | |
503 { | |
504 chrNr = sprintf( lnBuf, "%*.*s[%2d]", HDR_WDT, HDR_WDT, " PLMN list",cnt ); | |
505 utl_BCD2String (mccBuf, mmShrdPrm.PLMNLst[cnt].mcc, SIZE_MCC); | |
506 utl_BCD2String (mncBuf, mmShrdPrm.PLMNLst[cnt].mnc, SIZE_MNC); | |
507 chrNr += sprintf( lnBuf+chrNr, "%*s %*s", | |
508 ITM_WDT/2, ITM_WDT/2, mccBuf, mncBuf); | |
509 TRACE_EVENT( lnBuf ); | |
510 } | |
511 | |
512 /* --- used PLMN ------------------------------------------------*/ | |
513 chrNr = sprintf( lnBuf, "%*.*s", HDR_WDT, HDR_WDT, " used PLMN" ); | |
514 if( mmShrdPrm.usedPLMN.v_plmn EQ VLD_PLMN ) | |
515 { | |
516 utl_BCD2String (mccBuf, mmShrdPrm.usedPLMN.mcc, SIZE_MCC); | |
517 utl_BCD2String (mncBuf, mmShrdPrm.usedPLMN.mnc, SIZE_MNC); | |
518 chrNr += sprintf( lnBuf+chrNr, "%*s %*s", | |
519 ITM_WDT/2, ITM_WDT/2, mccBuf, mncBuf); | |
520 } | |
521 else | |
522 { | |
523 chrNr += sprintf( lnBuf+chrNr, "%*s", ITM_WDT, "none" ); | |
524 } | |
525 TRACE_EVENT( lnBuf ); | |
526 | |
527 /* --- registration mode ----------------------------------------*/ | |
528 chrNr = sprintf( lnBuf, "%*.*s", HDR_WDT, HDR_WDT, "rgstr mode" ); | |
529 chrNr += sprintf( lnBuf+chrNr, "%*hd", ITM_WDT, | |
530 mmShrdPrm.setPrm[0].regMode ); | |
531 TRACE_EVENT( lnBuf ); | |
532 | |
533 /* --- registration status --------------------------------------*/ | |
534 chrNr = sprintf( lnBuf, "%*.*s", HDR_WDT, HDR_WDT, "rgstr stat" ); | |
535 chrNr += sprintf( lnBuf+chrNr, "%*hd", ITM_WDT, | |
536 mmShrdPrm.regStat ); | |
537 TRACE_EVENT( lnBuf ); | |
538 | |
539 /* --- search result --------------------------------------------*/ | |
540 chrNr = sprintf( lnBuf, "%*.*s", HDR_WDT, HDR_WDT, " srch rslt" ); | |
541 chrNr += sprintf( lnBuf+chrNr, "%*hd", ITM_WDT, | |
542 mmShrdPrm.srchRslt ); | |
543 TRACE_EVENT( lnBuf ); | |
544 | |
545 /* --- de-registration cause ------------------------------------*/ | |
546 chrNr = sprintf( lnBuf, "%*.*s", HDR_WDT, HDR_WDT, "dereg caus" ); | |
547 chrNr += sprintf( lnBuf+chrNr, "%*X", ITM_WDT, | |
548 mmShrdPrm.deregCs ); | |
549 TRACE_EVENT( lnBuf ); | |
550 | |
551 #endif /* of #ifdef TRACING */ | |
552 } | |
553 #endif /* #if 0 */ | |
554 | |
555 #endif /* GPRS */ | |
556 /*==== EOF ========================================================*/ | |
557 |