FreeCalypso > hg > fc-tourmaline
annotate src/g23m-gsm/sim/sim_gprs.c @ 165:6b740edabc07
mmiSatInput.c: bogotab fixes
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Wed, 18 Nov 2020 23:58:07 +0000 | 
| parents | fa8dc04885d8 | 
| children | 
| rev | line source | 
|---|---|
| 
1
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 +----------------------------------------------------------------------------- | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 | Project : GSM-F&D (8411) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 | Modul : SIM_GPRS | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 +----------------------------------------------------------------------------- | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 | All rights reserved. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 | This file is confidential and a trade secret of Texas | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 | Instruments Berlin, AG | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 | The receipt of or possession of this file does not convey | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 | any rights to reproduce or disclose its contents or to | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | manufacture, use, or sell anything it may describe, in | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 | whole, or in part, without the specific written consent of | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 | Texas Instruments Berlin, AG. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 +----------------------------------------------------------------------------- | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 | Purpose : This modul defines the GPRS Upgrade. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 +----------------------------------------------------------------------------- | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 #ifndef SIM_GPRS_C | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 #define SIM_GPRS_C | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 #define ENTITY_SIM | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 /*==== INCLUDES ===================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 #include <string.h> | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 #include "typedefs.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 #include "pcm.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 #include "pconst.cdg" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 #include "message.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 #include "ccdapi.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 #include "vsi.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 #include "custom.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 #include "gsm.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 #include "cnf_sim.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 #include "mon_sim.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 #include "prim.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 #include "pei.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 #include "tok.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 #include "sim.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 /*==== EXPORT =====================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 /*==== PRIVAT =====================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 /*==== TYPES ======================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 /*==== CONSTANTS ==================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 /*==== VARIABLES ==================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 /*==== FUNCTIONS ==================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 | PROJECT : GSM-PS (8419) MODULE : SIM_GPRS | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 | STATE : code ROUTINE : gprs_check_pcm_data | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 PURPOSE : Checks the validation of GPRS data stored in PCM. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 GLOBAL BOOL gprs_check_pcm_data (T_imsi_field *sim_imsi) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 EF_IMSIGPRS imsi; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 UBYTE version; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 return pcm_ReadFile((UBYTE *)EF_IMSIGPRS_ID, SIZE_EF_IMSIGPRS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 (UBYTE *)&imsi, &version) EQ PCM_OK | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 AND | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 (sim_imsi->c_field EQ imsi.len) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 AND | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 !memcmp(imsi.IMSI, sim_imsi->field, sim_imsi->c_field); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 | PROJECT : GSM-PS (8419) MODULE : SIM_GPRS | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 | STATE : code ROUTINE : gprs_gmm_insert_ind | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 PURPOSE : Collects the initial data for GMM. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 GLOBAL void gprs_gmm_insert_ind (T_SIM_MM_INSERT_IND * sim_mm_insert_ind) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 UBYTE kc_n[MAX_KC_N]; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 int i; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 * Read Parameters for GPRS mobility management | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 PALLOC (sim_gmm_insert_ind, SIM_GMM_INSERT_IND); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 TRACE_FUNCTION ("gprs_sim_gmm_insert_ind()"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 * administrative data | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 sim_gmm_insert_ind->op_mode = sim_mm_insert_ind->ad[0]; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 * IMSI | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 memcpy (&sim_gmm_insert_ind->imsi_field, &sim_mm_insert_ind->imsi_field, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 sizeof (T_imsi_field)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 * Location Information | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 memcpy (&sim_gmm_insert_ind->loc_info, &sim_mm_insert_ind->loc_info, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 sizeof (T_loc_info)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 * access control classes | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 memcpy (&sim_gmm_insert_ind->acc_ctrl, &sim_mm_insert_ind->acc_ctrl, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 sizeof (T_acc_ctrl)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 * phase | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 sim_gmm_insert_ind->phase = sim_data.sim_phase; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 if (SIM_IS_FLAG_SET (SERVICE_38_SUPPORT)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 * SIM card supports GPRS | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 * | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 * Read GPRS Location Information | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 TRACE_EVENT ("SIM supports GPRS"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 if (FKT_Select (SIM_LOCGPRS, FALSE, NULL, NULL, 0) EQ SIM_NO_ERROR) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 sim_gmm_insert_ind->gprs_loc_info.c_loc = MAX_LOCIGPRS; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 if (FKT_ReadBinary ((UBYTE *)&sim_gmm_insert_ind->gprs_loc_info.loc, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 0, MAX_LOCIGPRS) NEQ SIM_NO_ERROR) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 PFREE (sim_gmm_insert_ind); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 return; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 * Read GPRS KC | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 if (FKT_Select (SIM_KCGPRS, FALSE, NULL, NULL, 0) EQ SIM_NO_ERROR) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 if (FKT_ReadBinary ((UBYTE *)kc_n, 0, MAX_KC_N) NEQ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 SIM_NO_ERROR) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 PFREE (sim_gmm_insert_ind); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 return; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 sim_gmm_insert_ind->kc_n.c_kc = MAX_KC_N; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 * Store KC in opposite order | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 for (i = 0; i < MAX_KC; i++) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 sim_gmm_insert_ind->kc_n.kc[(MAX_KC-1)-i] = kc_n[i]; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 * Store cipher key sequence number | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 sim_gmm_insert_ind->kc_n.kc[MAX_KC] = kc_n[MAX_KC]; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 * Use PCM instead | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 TRACE_EVENT ("SIM does not support GPRS"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 * Only use ME data, when it is marked with IMSI | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 * Note : No storage of the changed IMSI here! | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 if (gprs_check_pcm_data (&sim_mm_insert_ind->imsi_field)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 UBYTE version; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 * then read the fields | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 pcm_ReadFile((UBYTE *) EF_LOCGPRS_ID,SIZE_EF_LOCGPRS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 (UBYTE *) &sim_gmm_insert_ind->gprs_loc_info.loc, &version); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 sim_gmm_insert_ind->gprs_loc_info.c_loc = MAX_LOCIGPRS; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 pcm_ReadFile((UBYTE *) EF_KCGPRS_ID,SIZE_EF_KCGPRS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 (UBYTE *) &sim_gmm_insert_ind->kc_n, &version); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 * reading of IMSI failed, set values to defaults | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 memset (&sim_gmm_insert_ind->gprs_loc_info.loc, 0xFF, MAX_LOCIGPRS); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 sim_gmm_insert_ind->gprs_loc_info.loc[11] = 0xFE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 sim_gmm_insert_ind->gprs_loc_info.c_loc = 0; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 memset (&sim_gmm_insert_ind->kc_n, 0xFF, 9); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 * send information to GPRS mobility management | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 PSENDX (GMM, sim_gmm_insert_ind); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 | PROJECT : GSM-PS (6302) MODULE : SIM_GPRS | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 | STATE : code ROUTINE : gprs_gmm_update_req | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 PURPOSE : Process of the primitive SIM_GMM_UPDATE_REQ. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
220 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 GLOBAL void gprs_sim_gmm_update_req (T_SIM_GMM_UPDATE_REQ * sim_gmm_update_req) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 int i; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
224 T_kc_n kc_n; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
226 TRACE_FUNCTION ("gprs_sim_gmm_update_req()"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
227 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 * prepare kc and cksn for storing | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 kc_n.c_kc = MAX_KC_N; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 kc_n.kc[MAX_KC] = sim_gmm_update_req->cksn; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 for (i = 0; i < MAX_KC; i++) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 kc_n.kc[(MAX_KC-1)-i] = sim_gmm_update_req->kc[i]; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 * SIM with GPRS service activated? | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 if (SIM_IS_FLAG_SET (SERVICE_38_SUPPORT)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 * check location information | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 if (sim_gmm_update_req->gprs_loc_info.c_loc > 0) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
246 if (FKT_Select (SIM_LOCGPRS, FALSE, NULL, NULL, 0) EQ SIM_NO_ERROR) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
247 FKT_UpdateBinary (sim_gmm_update_req->gprs_loc_info.loc, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 MAX_LOCIGPRS, 0); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 * store kc and cksn | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
253 if (FKT_Select (SIM_KCGPRS, FALSE, NULL, NULL, 0) EQ SIM_NO_ERROR) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 FKT_UpdateBinary (kc_n.kc, kc_n.c_kc, 0); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
259 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 * SIM with no GPRS service: store in ME memory | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 T_imsi_field sim_imsi; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
265 if (FKT_Select (SIM_IMSI, FALSE, NULL, NULL, 0) EQ SIM_NO_ERROR AND | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
266 FKT_ReadBinary ((UBYTE *)&sim_imsi, 0, MAX_IMSI) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 EQ SIM_NO_ERROR) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 * Compare IMSI on SIM with IMSI in ME memory | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 if (!gprs_check_pcm_data (&sim_imsi)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
275 * Check GPRS attach status of current IMSI (from SIM) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 if (sim_gmm_update_req->att_status) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 * Update IMSI in ME memory, when attached | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
280 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 pcm_WriteFile((UBYTE *)EF_IMSIGPRS_ID, SIZE_EF_IMSIGPRS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 (UBYTE *)&sim_imsi); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
286 * do not update GPRS data | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 PFREE (sim_gmm_update_req); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 return; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 * Update GPRS data in ME memory | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 if (sim_gmm_update_req->gprs_loc_info.c_loc > 0) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 pcm_WriteFile((UBYTE *)EF_LOCGPRS_ID,SIZE_EF_LOCGPRS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 (UBYTE *)&sim_gmm_update_req->gprs_loc_info.loc); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 pcm_WriteFile((UBYTE *)EF_KCGPRS_ID,SIZE_EF_KCGPRS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
301 (UBYTE *)kc_n.kc); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
302 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 PFREE (sim_gmm_update_req); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 #endif | 
