FreeCalypso > hg > fc-magnetite
annotate src/g23m-gsm/sim/uicc_fkt.c @ 317:07818fb33771
ABB_Read_Status() put under ABB_SEMAPHORE_PROTECTION
(all targets, all configs)
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Wed, 29 Nov 2017 08:10:15 +0000 | 
| parents | 27a4235405c6 | 
| children | 
| rev | line source | 
|---|---|
| 
104
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 +----------------------------------------------------------------------------- | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 | Project : GSM-F&D (8411) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 | Modul : SIM_FKT | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 +----------------------------------------------------------------------------- | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 | All rights reserved. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 | This file is confidential and a trade secret of Texas | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 | Instruments Berlin, AG | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 | The receipt of or possession of this file does not convey | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 | any rights to reproduce or disclose its contents or to | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | manufacture, use, or sell anything it may describe, in | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 | whole, or in part, without the specific written consent of | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 | Texas Instruments Berlin, AG. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 +----------------------------------------------------------------------------- | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 | Purpose : This modul defines the wrapping functions for the | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 | SIM application. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 +----------------------------------------------------------------------------- | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 #ifndef SIM_FKT_C | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 #define SIM_FKT_C | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 #define ENTITY_SIM | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 /*==== INCLUDES ===================================================*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 #include <string.h> | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 #include "typedefs.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 #include "pconst.cdg" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 #include "message.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 #include "ccdapi.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 #include "vsi.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 #include "custom.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 #include "gsm.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 #include "cnf_sim.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 #include "mon_sim.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 #include "prim.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 #include "pei.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 #include "tok.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 #include "sim.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 #include "sim_em.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 #include "8010_136_SIMDRV_SAP_inline.h" | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 /*==== EXPORT =====================================================*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 /*==== PRIVAT =====================================================*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 /*==== VARIABLES ==================================================*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 GLOBAL USHORT stk_l_cmd = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 /*==== FUNCTIONS ===================================================*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 /* Implements Measure# 13 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 +---------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 | STATE : code ROUTINE : FKT_ChangeCHV_n_UnblockCHV | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 +---------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 PURPOSE : Wrapping function for the SIM driver call SIM_ChangeCHV and | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 SIM_UnblockCHV | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 LOCAL USHORT FKT_ChangeCHV_n_UnblockCHV ( UBYTE * oldPin_UnblkCHV, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 UBYTE * newPin_CHV, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 UBYTE pinId_chvType, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 UBYTE inst_code) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 U8 i; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 U8 data[2*MAX_PIN_LEN]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 UBYTE response[SIMDRV_MAX_RESULT]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 TRACE_FUNCTION ("FKT_ChangeCHV_n_UnblockCHV()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 cmd_header.ins = inst_code; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 cmd_header.p1 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 cmd_header.p2 = pinId_chvType; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 for (i=0;i<2*MAX_PIN_LEN;i++) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 if (i < MAX_PIN_LEN) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 data[i] = oldPin_UnblkCHV[i]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 data[i] = newPin_CHV[i-MAX_PIN_LEN]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 data_info.data = (U8 *)data; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 data_info.c_data = sizeof(data); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 result_info.result = response; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 result_info.len = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 sw1sw2 = simdrv_xch_apdu(reader_id, cmd_header, data_info, &result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 /* Implements Measure# 16 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 +------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 | STATE : code ROUTINE : FKT_Invalidate_n_Rehabilitate | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 +------------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 PURPOSE : Wrapping function for the SIM driver call SIM_Invalidate and | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 SIM_Rehabilitate. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 LOCAL USHORT FKT_Invalidate_n_Rehabilitate ( UBYTE inst_code) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 UBYTE response[SIMDRV_MAX_RESULT]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 TRACE_FUNCTION ("FKT_Invalidate_n_Rehabilitate()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 cmd_header.ins = inst_code; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 cmd_header.p1 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 cmd_header.p2 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 data_info.data = NULL; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 data_info.c_data = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 result_info.result = response; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 result_info.len = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 sw1sw2 = simdrv_xch_apdu(reader_id,cmd_header,data_info,&result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 if (sw1sw2 EQ 0x9810) /* already invalidated */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 return SIM_NO_ERROR; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 /* Implements Measure# 17 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 +----------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 | STATE : code ROUTINE : FKT_DisableCHV_n_EnableCHV | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 +----------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 PURPOSE : Wrapping function for the SIM driver call SIM_DisableCHV and | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 SIM_EnableCHV | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 LOCAL USHORT FKT_DisableCHV_n_EnableCHV (UBYTE * pin, UBYTE inst_code) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 UBYTE response[SIMDRV_MAX_RESULT]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 TRACE_FUNCTION ("FKT_DisableCHV_n_EnableCHV()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 cmd_header.ins = inst_code; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 cmd_header.p1 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 cmd_header.p2 = 1; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 data_info.data = (U8 *)pin; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 data_info.c_data = MAX_PIN_LEN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 result_info.result = response; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 result_info.len = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 sw1sw2 = simdrv_xch_apdu(reader_id, cmd_header, data_info, &result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 | STATE : code ROUTINE : FKT_check_pin_count | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 PURPOSE : PIN/PUK count is checked for secret code initialisation. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 count is set to zero, if not initialised, otherwise the | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 initialisation flag (most significant bit) is reset. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 GLOBAL UBYTE FKT_check_pin_count (UBYTE count) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
220 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 if ((count & 0x80) EQ 0) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 return 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
224 return count & 0x0F; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
226 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
227 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 | STATE : code ROUTINE : FKT_convert_error | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 PURPOSE : Converts sw1 and sw2 to an unique error code for the | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 SIM application. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 * PIN/PUK is wrong, remaining attempts | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 static const USHORT sim_inv_chv_A [6] = | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 /* last requested PIN no error code */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 /* none */ SIM_CAUSE_OTHER_ERROR, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 /* PIN 1 */ SIM_CAUSE_PIN1_EXPECT, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
246 /* PIN 2 */ SIM_CAUSE_PIN2_EXPECT, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
247 /* PUK 1 */ SIM_CAUSE_PUK1_EXPECT, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 /* PUK 2 */ SIM_CAUSE_PUK2_EXPECT, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 /* NEVER */ SIM_CAUSE_ACCESS_PROHIBIT | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 }; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
253 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 * PIN/PUK is wrong, no remaining attempts | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 static const USHORT sim_inv_chv_B [6] = | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 /* last requested PIN no error code */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
259 /* none */ SIM_CAUSE_OTHER_ERROR, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 /* PIN 1 */ SIM_CAUSE_PIN1_BLOCKED, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 /* PIN 2 */ SIM_CAUSE_PIN2_BLOCKED, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 /* PUK 1 */ SIM_CAUSE_PUK1_BLOCKED, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 /* PUK 2 */ SIM_CAUSE_PUK2_BLOCKED, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 /* NEVER */ SIM_CAUSE_OTHER_ERROR | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
265 }; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
266 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 GLOBAL USHORT FKT_convert_error (USHORT sw1sw2, USHORT size) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 TRACE_FUNCTION ("FKT_convert_error()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 sim_data.sw1 = (UBYTE)(sw1sw2 >> 8); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 sim_data.sw2 = (UBYTE)sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 TRACE_EVENT_P1 ("Data returned from SIM, Size =%X", size); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
275 TRACE_EVENT_P2 ("SW1=%02X SW2=%02X", sim_data.sw1, sim_data.sw2); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 switch (sim_data.sw1) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 case 0x00: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
280 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 * SIM driver error | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 if (SIM_IS_FLAG_CLEARED(SIM_INSERT)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 return SIM_CAUSE_CARD_REMOVED; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
286 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 if (sim_data.sw2 EQ 14) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 SIM_SET_FLAG(DRV_FAILED_RETRY); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 return SIM_CAUSE_DRV_TEMPFAIL; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 return CAUSE_MAKE(DEFBY_CONDAT, ORIGSIDE_MS, SIM_ORIGINATING_ENTITY, sim_data.sw2); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 #if defined SIM_TOOLKIT | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 case 0x9E: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 * use SW2 as length indicator for | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 * the following get response | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 if (sim_data.sim_phase >= 3) /* Phase 2+ or higher */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
301 if (sim_data.stk_profile[0] & SAT_TP1_9E_XX) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
302 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 sim_data.sim_data_len = (sim_data.sw2 EQ 0)? 0x100: (USHORT)sim_data.sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 return SIM_CAUSE_DNL_ERROR; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 return SIM_CAUSE_SAT_BUSY; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
308 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
309 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
310 return SIM_CAUSE_OTHER_ERROR; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
311 case 0x93: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
312 if (sim_data.sim_phase >= 3) /* Phase 2+ or higher */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
313 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
314 return SIM_CAUSE_SAT_BUSY; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
315 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
316 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
317 return SIM_CAUSE_OTHER_ERROR; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
318 case 0x91: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
319 if (sim_data.sim_phase >= 3) /* Phase 2+ or higher */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
320 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
321 sim_data.proactive_sim_data_len = (sim_data.sw2 EQ 0)? 0x100: (SHORT)sim_data.sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
322 return SIM_NO_ERROR; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
323 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
324 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
325 return SIM_CAUSE_OTHER_ERROR; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
326 #endif | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
327 case 0x92: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
328 if (sim_data.sw2 > 0xF) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
329 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
330 #ifdef REL99 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
331 if (sim_data.sw2 EQ SW2_MEMORY_PROBLEM) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
332 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
333 return SIM_CAUSE_MEM_PROBLEM; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
334 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
335 #endif /* end of ifdef REL99 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
336 return SIM_CAUSE_OTHER_ERROR; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
337 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
338 /* no break (otherwise the command was successful)*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
339 case 0x90: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
340 if( (size>0) AND (size <= 0x100) ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
341 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
342 sim_data.sim_data_len = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
343 TRACE_EVENT_P1 ("sim_data.sim_data_len updated size =%X ", size); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
344 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
345 return SIM_NO_ERROR; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
346 case 0x9F: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
347 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
348 * use SW2 as length indicator for | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
349 * the following get response | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
350 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
351 sim_data.sim_data_len = (sim_data.sw2 EQ 0)? 0x100: (USHORT)sim_data.sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
352 return SIM_NO_ERROR; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
353 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
354 case 0x94: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
355 switch (sim_data.sw2) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
356 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
357 case 0: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
358 return SIM_CAUSE_NO_SELECT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
359 case 2: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
360 return SIM_CAUSE_ADDR_WRONG; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
361 case 4: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
362 return SIM_CAUSE_UNKN_FILE_ID; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
363 case 8: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
364 return SIM_CAUSE_CMD_INCONSIST; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
365 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
366 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
367 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
368 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
369 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
370 case 0x98: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
371 TRACE_EVENT_P1 ("LRP = %d", (int)sim_data.last_requested_pin_no); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
372 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
373 switch (sim_data.sw2) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
374 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
375 case 2: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
376 return SIM_CAUSE_CHV_NOTSET; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
377 case 8: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
378 return SIM_CAUSE_CHV_VALIDATED; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
379 case 0x10: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
380 return SIM_CAUSE_EF_INVALID; /* contradiction cases */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
381 case 4: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
382 //TISH, patch for OMAPS00115342&OMAPS00123717 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
383 //start | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
384 #if 0 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
385 /* Check whether PIN1 is entered/Verified */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
386 if (SIM_IS_FLAG_SET(PIN1_VERIFIED)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
387 return SIM_CAUSE_ACCESS_PROHIBIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
388 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
389 #endif | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
390 //end | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
391 return sim_inv_chv_A [sim_data.last_requested_pin_no]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
392 case 0x40: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
393 return sim_inv_chv_B [sim_data.last_requested_pin_no]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
394 case 0x50: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
395 return SIM_CAUSE_MAX_INCREASE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
396 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
397 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
398 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
399 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
400 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
401 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
402 return SIM_CAUSE_OTHER_ERROR; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
403 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
404 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
405 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
406 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
407 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
408 | STATE : code ROUTINE : FKT_ChangeCHV | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
409 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
410 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
411 PURPOSE : Wrapping function for the SIM driver call SIM_ChangeCHV. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
412 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
413 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
414 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
415 GLOBAL USHORT FKT_ChangeCHV (UBYTE * old_pin, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
416 UBYTE * new_pin, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
417 UBYTE pin_id) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
418 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
419 /* Implements Measure# 13 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
420 return (FKT_ChangeCHV_n_UnblockCHV (old_pin, new_pin, pin_id, SIMDRV_INS_CHANGE_CHV)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
421 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
422 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
423 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
424 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
425 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
426 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
427 | STATE : code ROUTINE : FKT_DisableCHV | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
428 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
429 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
430 PURPOSE : Wrapping function for the SIM driver call SIM_DisableCHV. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
431 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
432 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
433 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
434 GLOBAL USHORT FKT_DisableCHV (UBYTE * pin) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
435 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
436 /* Implements Measure# 17 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
437 return (FKT_DisableCHV_n_EnableCHV (pin, SIMDRV_INS_DISABLE_CHV)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
438 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
439 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
440 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
441 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
442 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
443 | STATE : code ROUTINE : FKT_EnableCHV | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
444 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
445 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
446 PURPOSE : Wrapping function for the SIM driver call SIM_EnableCHV. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
447 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
448 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
449 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
450 GLOBAL USHORT FKT_EnableCHV (UBYTE * pin) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
451 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
452 /* Implements Measure# 17 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
453 return (FKT_DisableCHV_n_EnableCHV (pin, SIMDRV_INS_ENABLE_CHV)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
454 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
455 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
456 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
457 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
458 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
459 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
460 | STATE : code ROUTINE : FKT_Increase | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
461 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
462 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
463 PURPOSE : Wrapping function for the SIM driver call SIM_Increase. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
464 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
465 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
466 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
467 GLOBAL USHORT FKT_Increase (UBYTE * data) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
468 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
469 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
470 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
471 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
472 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
473 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
474 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
475 UBYTE response[SIMDRV_MAX_RESULT]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
476 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
477 TRACE_FUNCTION ("FKT_Increase()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
478 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
479 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE ; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
480 cmd_header.ins = SIMDRV_INS_INCREASE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
481 cmd_header.p1 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
482 cmd_header.p2 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
483 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
484 data_info.data = (U8 *)data; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
485 data_info.c_data = 3; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
486 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
487 result_info.result = response; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
488 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
489 result_info.len = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
490 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
491 sw1sw2 = simdrv_xch_apdu(reader_id,cmd_header,data_info,&result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
492 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
493 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
494 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
495 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
496 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
497 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
498 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
499 | STATE : code ROUTINE : FKT_Invalidate | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
500 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
501 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
502 PURPOSE : Wrapping function for the SIM driver call SIM_Invalidate. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
503 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
504 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
505 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
506 GLOBAL USHORT FKT_Invalidate (void) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
507 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
508 /* Implements Measure# 16 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
509 return (FKT_Invalidate_n_Rehabilitate(SIMDRV_INS_INVALIDATE)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
510 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
511 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
512 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
513 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
514 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
515 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
516 | STATE : code ROUTINE : FKT_ReadBinary | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
517 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
518 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
519 PURPOSE : Wrapping function for the SIM driver call SIM_ReadBinary. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
520 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
521 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
522 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
523 GLOBAL USHORT FKT_ReadBinary (UBYTE * data, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
524 USHORT offset, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
525 USHORT length) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
526 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
527 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
528 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
529 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
530 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
531 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
532 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
533 U8 offset_high; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
534 U8 offset_low; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
535 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
536 TRACE_FUNCTION ("FKT_ReadBinary()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
537 offset_high = (U8)((offset &0x7F00)>>8); /* to make the 8th bit 0 as per 102.221 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
538 offset_low = (U8)(offset & 0x00FF); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
539 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
540 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
541 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
542 cmd_header.ins = SIMDRV_INS_READ_BINARY; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
543 cmd_header.p1 =offset_high ; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
544 cmd_header.p2 =offset_low ; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
545 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
546 data_info.data = NULL; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
547 data_info.c_data = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
548 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
549 result_info.result = (U8 *)data; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
550 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
551 result_info.len = (USHORT)length; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
552 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
553 sw1sw2= simdrv_xch_apdu (reader_id,cmd_header,data_info,&result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
554 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
555 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
556 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
557 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
558 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
559 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
560 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
561 | STATE : code ROUTINE : FKT_ReadRecord | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
562 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
563 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
564 PURPOSE : Wrapping function for the SIM driver call SIM_ReadRecord. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
565 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
566 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
567 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
568 GLOBAL USHORT FKT_ReadRecord (UBYTE * data, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
569 UBYTE mode, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
570 USHORT record, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
571 USHORT length) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
572 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
573 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
574 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
575 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
576 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
577 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
578 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
579 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
580 #if !defined NTRACE | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
581 /* Implements Measure#32: Row 37 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
582 TRACE_EVENT_P1("FKT_ReadRecord(): Nr. %hu", record); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
583 #endif | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
584 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
585 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
586 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
587 cmd_header.ins = SIMDRV_INS_READ_RECORD; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
588 cmd_header.p1 = (U8)record; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
589 cmd_header.p2 = (U8)mode; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
590 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
591 data_info.data = NULL; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
592 data_info.c_data = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
593 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
594 result_info.result = (U8 *)data ; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
595 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
596 result_info.len =(USHORT)length; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
597 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
598 sw1sw2= simdrv_xch_apdu (reader_id,cmd_header,data_info,&result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
599 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
600 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
601 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
602 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
603 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
604 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
605 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
606 | STATE : code ROUTINE : FKT_Rehabilitate | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
607 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
608 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
609 PURPOSE : Wrapping function for the SIM driver call SIM_Rehabilitate. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
610 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
611 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
612 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
613 GLOBAL USHORT FKT_Rehabilitate (void) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
614 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
615 /* Implements Measure# 16 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
616 return (FKT_Invalidate_n_Rehabilitate(SIMDRV_INS_REHABILITATE)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
617 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
618 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
619 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
620 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
621 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
622 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
623 | STATE : code ROUTINE : FKT_Status | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
624 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
625 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
626 PURPOSE : Wrapping function for the SIM driver call SIM_Status. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
627 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
628 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
629 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
630 GLOBAL USHORT FKT_Status (UBYTE * pin_cnt, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
631 UBYTE * pin2_cnt, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
632 UBYTE * puk_cnt, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
633 UBYTE * puk2_cnt) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
634 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
635 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
636 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
637 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
638 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
639 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
640 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
641 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
642 USHORT cause; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
643 USHORT fileid; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
644 union | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
645 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
646 T_DIR_STATUS status; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
647 UBYTE response [40]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
648 } dir; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
649 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
650 TRACE_FUNCTION ("FKT_Status()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
651 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
652 memset (dir.response, 0, sizeof(dir.response)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
653 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
654 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
655 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
656 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
657 cmd_header.ins = SIMDRV_INS_STATUS; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
658 cmd_header.p1 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
659 cmd_header.p2 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
660 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
661 data_info.data = NULL; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
662 data_info.c_data = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
663 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
664 result_info.result = (U8 *)dir.response; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
665 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
666 result_info.len = sim_data.dir_status_len; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
667 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
668 sw1sw2 = simdrv_xch_apdu(reader_id, cmd_header, data_info, &result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
669 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
670 cause = FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
671 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
672 *pin_cnt = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
673 *puk_cnt = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
674 *pin2_cnt = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
675 *puk2_cnt = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
676 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
677 if (cause EQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
678 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
679 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
680 * Check file id on active call: if different from last directory | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
681 * indicate failure during SIM Presence Detection (27.20). | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
682 * A selection of a non-existent DF (possible with SIM_ACCESS_REQ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
683 * leads to the loss of the current DF: this confuses the SIM | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
684 * Presence Detection, therefore the validity of the actual DF | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
685 * stored in 'sim_data.act_directory' must be considered. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
686 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
687 fileid = (dir.status.fileid[0] << 8) | dir.status.fileid[1]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
688 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
689 if (SIM_IS_FLAG_SET (CALL_ACTIVE) AND /* call active */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
690 sim_data.act_directory NEQ NOT_PRESENT_16BIT /* actual DF known? */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
691 AND fileid NEQ sim_data.act_directory) /* compare DF */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
692 return SIM_CAUSE_CARD_REMOVED; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
693 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
694 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
695 if (SIM_TI_DRV_X_BYTES > 0) /* discard SW1, SW2 from response! */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
696 memset (&dir.response[sim_data.dir_status_len], 0, SIM_TI_DRV_X_BYTES); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
697 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
698 * Directory status is available | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
699 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
700 *pin_cnt = FKT_check_pin_count (dir.status.pinstatus); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
701 *puk_cnt = FKT_check_pin_count (dir.status.unbstatus); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
702 *pin2_cnt = FKT_check_pin_count (dir.status.pin2status); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
703 *puk2_cnt = FKT_check_pin_count (dir.status.unb2status); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
704 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
705 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
706 return cause; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
707 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
708 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
709 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
710 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
711 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
712 | STATE : code ROUTINE : FKT_RunGSMAlgo | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
713 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
714 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
715 PURPOSE : Wrapping function for the SIM driver call SIM_RunGSMAlgo. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
716 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
717 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
718 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
719 GLOBAL USHORT FKT_RunGSMAlgo (UBYTE * rand, UBYTE * data, USHORT len) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
720 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
721 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
722 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
723 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
724 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
725 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
726 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
727 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
728 TRACE_FUNCTION ("FKT_RunGSMAlgo()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
729 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
730 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
731 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE ; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
732 cmd_header.ins = SIMDRV_INS_AUTHENTICATE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
733 cmd_header.p1 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
734 cmd_header.p2 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
735 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
736 data_info.data = (U8*)rand; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
737 data_info.c_data = MAX_RAND; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
738 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
739 result_info.result = data; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
740 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
741 result_info.len = len; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
742 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
743 sw1sw2= simdrv_xch_apdu (reader_id,cmd_header,data_info,&result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
744 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
745 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
746 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
747 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
748 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
749 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
750 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
751 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
752 | STATE : code ROUTINE : FKT_Select | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
753 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
754 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
755 PURPOSE : Wrapping function for the SIM driver call SIM_Select. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
756 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
757 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
758 LOCAL USHORT fkt_select_one (USHORT id, UBYTE * data, USHORT len) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
759 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
760 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
761 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
762 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
763 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
764 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
765 U8 field[2]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
766 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
767 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
768 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
769 TRACE_EVENT_P1 ("fkt_select_one() : File id =%X ", id); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
770 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
771 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
772 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
773 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
774 cmd_header.ins = SIMDRV_INS_SELECT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
775 cmd_header.p1 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
776 cmd_header.p2 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
777 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
778 field[0] =(U8) (id>>8); /* high byte */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
779 field[1] =(U8) id; /* low byte */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
780 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
781 data_info.data = field; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
782 data_info.c_data = sizeof(field); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
783 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
784 result_info.result = data; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
785 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
786 result_info.len = len; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
787 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
788 TRACE_EVENT_P1 ("Expected result size from SIM =%X ", result_info.len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
789 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
790 sw1sw2 = simdrv_xch_apdu(reader_id, cmd_header, data_info, &result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
791 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
792 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
793 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
794 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
795 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
796 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
797 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
798 | STATE : code ROUTINE : sim_select_df | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
799 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
800 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
801 PURPOSE : Function to select the directory given the path. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
802 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
803 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
804 LOCAL USHORT sim_select_df(U16 dir_level,UBYTE *data,USHORT len) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
805 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
806 USHORT result = SIM_NO_ERROR; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
807 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
808 result = fkt_select_one (dir_level, data, len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
809 if (result NEQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
810 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
811 sim_data.act_directory = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
812 sim_data.act_field = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
813 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
814 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
815 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
816 sim_data.act_directory = dir_level; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
817 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
818 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
819 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
820 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
821 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
822 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
823 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
824 | STATE : code ROUTINE : FKT_Select | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
825 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
826 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
827 PURPOSE : Wrapping function for the SIM driver call SIM_Select. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
828 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
829 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
830 GLOBAL USHORT FKT_Select (USHORT id, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
831 BOOL path_info_present, T_path_info * path_info_ptr, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
832 UBYTE * data, USHORT len) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
833 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
834 USHORT result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
835 USHORT directory = (SIM_IS_FLAG_SET (GSM_DATAFIELD))? | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
836 SIM_DF_GSM: SIM_DF_1800; /* default parent directory */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
837 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
838 #if !defined NTRACE | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
839 /* Implements Measure#32: Row 39 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
840 TRACE_EVENT_P1("FKT_Select(): id = %04X", id); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
841 #endif | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
842 switch (id & 0xFF00) /* selecting DF deselects EF */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
843 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
844 case 0x3F00: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
845 case 0x7F00: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
846 case 0x5F00: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
847 sim_data.act_field = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
848 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
849 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
850 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
851 if( path_info_present NEQ FALSE ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
852 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
853 if((sim_data.act_directory & 0xFF00) NEQ 0x5F00 AND | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
854 sim_data.act_directory NEQ NOT_PRESENT_16BIT) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
855 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
856 /* Currently selected df is MF or a first level directory */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
857 if(sim_data.act_directory NEQ path_info_ptr->df_level1) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
858 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
859 result = sim_select_df(path_info_ptr->df_level1,data,len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
860 if(result NEQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
861 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
862 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
863 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
864 /* Currently selected df is a second level directory */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
865 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
866 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
867 result = sim_select_df(SIM_MF,data,len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
868 if(result NEQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
869 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
870 result = sim_select_df(path_info_ptr->df_level1,data,len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
871 if(result NEQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
872 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
873 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
874 if(path_info_ptr->v_df_level2) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
875 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
876 result = sim_select_df(path_info_ptr->df_level2,data,len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
877 if(result NEQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
878 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
879 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
880 result = fkt_select_one (id, data, len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
881 if (result NEQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
882 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
883 sim_data.act_field = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
884 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
885 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
886 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
887 sim_data.act_field = id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
888 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
889 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
890 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
891 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
892 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
893 switch (id) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
894 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
895 case SIM_MF: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
896 result = fkt_select_one (SIM_MF, data, len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
897 if (result NEQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
898 sim_data.act_directory = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
899 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
900 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
901 sim_data.dir_status_len = sim_data.sim_data_len; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
902 sim_data.act_directory = id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
903 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
904 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
905 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
906 default: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
907 /* All the standard defined EFs would be handled before coming to this | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
908 * point. Complete path information should be given for non-standard 2nd level EFs | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
909 * and they also would be handled before coming to this point. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
910 * This statement will be hit for non-standard files | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
911 * without path information. Hence returning error */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
912 return SIM_CAUSE_UNKN_FILE_ID; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
913 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
914 /* continue here in case of any first level directory */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
915 case SIM_DF_GSM: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
916 case SIM_DF_1800: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
917 case SIM_DF_TELECOM: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
918 case SIM_DF_VI: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
919 if (sim_data.act_directory EQ id) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
920 return SIM_NO_ERROR; /* already selected */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
921 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
922 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
923 /* If current directory has not been selected or it is a | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
924 2nd level and under another 1st level DF */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
925 if (((sim_data.act_directory & 0xFF00) EQ 0x5F00 AND | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
926 ! SIM_IS_DF_LEVEL2_UNDER_DF_LEVEL1(sim_data.act_directory,id)) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
927 OR sim_data.act_directory EQ NOT_PRESENT_16BIT) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
928 { /* MF has to be selected first */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
929 result = sim_select_df(SIM_MF,data,len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
930 if(result NEQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
931 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
932 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
933 result = fkt_select_one (id, data, len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
934 if (result NEQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
935 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
936 sim_data.act_directory = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
937 sim_data.act_field = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
938 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
939 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
940 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
941 sim_data.dir_status_len = sim_data.sim_data_len; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
942 sim_data.act_directory = id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
943 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
944 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
945 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
946 case SIM_DF_GRAPHICS: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
947 directory = SIM_DF_TELECOM; /* parent directory */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
948 /* no break */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
949 /*lint -fallthrough*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
950 case SIM_DF_SOLSA: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
951 case SIM_DF_MEXE: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
952 if (sim_data.act_directory EQ id) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
953 return SIM_NO_ERROR; /* already selected */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
954 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
955 if (sim_data.act_directory NEQ directory) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
956 { /* not the parent directory */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
957 /* If current directory is MF or first level OR if the 2nd level | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
958 directory is under another 1st level df, select the parent directory */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
959 if((sim_data.act_directory & 0xFF00) NEQ 0x5F00 || | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
960 (!SIM_IS_DF_LEVEL2_UNDER_DF_LEVEL1(sim_data.act_directory,directory)) ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
961 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
962 result = FKT_Select (directory, FALSE, NULL, data, len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
963 if (result NEQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
964 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
965 sim_data.act_directory = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
966 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
967 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
968 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
969 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
970 result = fkt_select_one (id, data, len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
971 if (result NEQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
972 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
973 sim_data.act_directory = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
974 sim_data.act_field = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
975 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
976 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
977 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
978 sim_data.dir_status_len = sim_data.sim_data_len; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
979 sim_data.act_directory = id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
980 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
981 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
982 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
983 case SIM_ICCID: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
984 case SIM_ELP: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
985 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
986 * Access to Root Directory | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
987 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
988 directory = SIM_MF; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
989 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
990 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
991 case SIM_ADN: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
992 case SIM_FDN: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
993 case SIM_SMS: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
994 case SIM_CCP: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
995 case SIM_MSISDN: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
996 case SIM_SMSP: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
997 case SIM_SMSS: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
998 case SIM_LND: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
999 case SIM_SMSR: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1000 case SIM_SDN: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1001 case SIM_EXT1: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1002 case SIM_EXT2: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1003 case SIM_EXT3: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1004 case SIM_BDN: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1005 case SIM_EXT4: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1006 /* VO temp PATCH: Needed for reading CPHS info num from old SIMs */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1007 case SIM_CPHS_INFN2: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1008 /* VO temp PATCH end */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1009 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1010 * Access to Telecom Directory | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1011 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1012 directory = SIM_DF_TELECOM; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1013 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1014 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1015 case SIM_LP: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1016 case SIM_IMSI: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1017 case SIM_KC: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1018 case SIM_PLMNSEL: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1019 case SIM_HPLMN: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1020 case SIM_ACMMAX: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1021 case SIM_SST: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1022 case SIM_ACM: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1023 case SIM_GID1: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1024 case SIM_GID2: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1025 case SIM_PUCT: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1026 case SIM_CBMI: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1027 case SIM_SPN: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1028 case SIM_CBMID: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1029 case SIM_BCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1030 case SIM_ACC: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1031 case SIM_FPLMN: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1032 case SIM_LOCI: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1033 case SIM_AD: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1034 case SIM_PHASE: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1035 case SIM_VGCS: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1036 case SIM_VGCSS: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1037 case SIM_VBS: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1038 case SIM_VBSS: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1039 case SIM_EMLPP: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1040 case SIM_AAEM: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1041 case SIM_ECC: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1042 case SIM_CBMIR: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1043 case SIM_DCK: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1044 case SIM_CNL: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1045 case SIM_NIA: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1046 case SIM_KCGPRS: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1047 case SIM_LOCGPRS: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1048 case SIM_SUME: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1049 case SIM_CPHS_VMW: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1050 case SIM_CPHS_SST: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1051 case SIM_CPHS_CFF: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1052 case SIM_CPHS_ONSTR: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1053 case SIM_CPHS_CSP: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1054 case SIM_CPHS_CINF: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1055 case SIM_CPHS_MBXN: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1056 case SIM_CPHS_ONSHF: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1057 case SIM_CPHS_INFN: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1058 #ifdef REL99 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1059 case SIM_UCPS_ACTEC: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1060 case SIM_OCPS_ACTEC: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1061 case SIM_HPLMN_ACT: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1062 case SIM_CPBCCH: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1063 case SIM_INV_SCAN: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1064 case SIM_RPLMN_ACT: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1065 #endif | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1066 case SIM_PNN: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1067 case SIM_OPL: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1068 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1069 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1070 * Access to GSM | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1071 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1072 directory = (SIM_IS_FLAG_SET (GSM_DATAFIELD))? | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1073 SIM_DF_GSM: SIM_DF_1800; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1074 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1075 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1076 case SIM_MEXE_ST: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1077 case SIM_ORPK: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1078 case SIM_ARPK: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1079 case SIM_TPRPK: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1080 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1081 * Access to MExE Directory | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1082 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1083 directory = SIM_DF_MEXE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1084 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1085 case SIM_IMG: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1086 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1087 * Access to Icon Directory | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1088 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1089 directory = SIM_DF_GRAPHICS; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1090 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1091 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1092 case SIM_SAI: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1093 case SIM_SLL: | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1094 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1095 * Access to SoLSA Directory | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1096 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1097 directory = SIM_DF_SOLSA; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1098 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1099 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1100 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1101 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1102 if (sim_data.act_directory NEQ directory) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1103 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1104 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1105 * select directory | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1106 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1107 result = FKT_Select (directory, FALSE, NULL, data, len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1108 if (result NEQ SIM_NO_ERROR) /* directory selection fails */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1109 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1110 sim_data.act_directory = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1111 sim_data.act_field = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1112 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1113 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1114 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1115 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1116 if (sim_data.act_field NEQ id) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1117 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1118 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1119 * secondly select elementary field | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1120 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1121 result = fkt_select_one (id, data, len); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1122 if (result NEQ SIM_NO_ERROR) /* EF selection fails */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1123 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1124 sim_data.act_field = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1125 #ifdef __INVALID /* more sophisticated SELECT error handling */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1126 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1127 sw1 = (UBYTE)(SIM_Status_Extended ((UBYTE *)response, 6, &size) >> 8); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1128 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1129 if (sw1 NEQ 0x90 AND sw1 NEQ 0x91) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1130 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1131 * SIM Status request failed | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1132 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1133 sim_data.act_directory = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1134 else if (((response[4] << 8) | response[5]) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1135 NEQ sim_data.act_directory) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1136 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1137 * SIM Presence Detection indicates invalid SIM | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1138 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1139 sim_data.act_directory = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1140 #endif | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1141 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1142 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1143 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1144 sim_data.act_directory = directory; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1145 sim_data.act_field = id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1146 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1147 return result; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1148 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1149 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1150 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1151 * field is already selected | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1152 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1153 return SIM_NO_ERR_FILE_ALREADY_SELECTED; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1154 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1155 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1156 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1157 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1158 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1159 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1160 | STATE : code ROUTINE : FKT_UnblockCHV | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1161 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1162 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1163 PURPOSE : Wrapping function for the SIM driver call SIM_UnblockCHV. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1164 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1165 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1166 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1167 GLOBAL USHORT FKT_UnblockCHV (UBYTE * unblockCHV, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1168 UBYTE * new_CHV, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1169 UBYTE chvType) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1170 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1171 /* Implements Measure# 13 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1172 return (FKT_ChangeCHV_n_UnblockCHV (unblockCHV, new_CHV, chvType, SIMDRV_INS_UNBLOCK_CHV)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1173 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1174 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1175 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1176 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1177 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1178 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1179 | STATE : code ROUTINE : FKT_UpdateBinary | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1180 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1181 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1182 PURPOSE : Wrapping function for the SIM driver call SIM_UpdateBinary. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1183 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1184 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1185 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1186 GLOBAL USHORT FKT_UpdateBinary (UBYTE * data, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1187 USHORT length, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1188 USHORT offset) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1189 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1190 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1191 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1192 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1193 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1194 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1195 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1196 U8 offset_high; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1197 U8 offset_low; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1198 UBYTE response[SIMDRV_MAX_RESULT]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1199 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1200 TRACE_FUNCTION ("FKT_UpdateBinary()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1201 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1202 offset_high = (U8)((offset &0x7F00)>>8);/*to make the 8th bit 0 as per 102.221*/ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1203 offset_low = (U8)(offset & 0x00FF); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1204 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1205 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1206 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE ; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1207 cmd_header.ins = SIMDRV_INS_UPDATE_BINARY; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1208 cmd_header.p1 = offset_high; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1209 cmd_header.p2 = offset_low; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1210 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1211 data_info.data = (U8 *)data; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1212 data_info.c_data = (U8)length; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1213 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1214 result_info.result = response; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1215 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1216 result_info.len = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1217 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1218 sw1sw2= simdrv_xch_apdu (reader_id,cmd_header,data_info,&result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1219 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1220 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1221 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1222 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1223 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1224 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1225 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1226 | STATE : code ROUTINE : FKT_UpdateRecord | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1227 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1228 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1229 PURPOSE : Wrapping function for the SIM driver call SIM_UpdateRecord. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1230 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1231 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1232 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1233 GLOBAL USHORT FKT_UpdateRecord (UBYTE * data, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1234 USHORT length, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1235 UBYTE mode, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1236 USHORT record) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1237 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1238 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1239 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1240 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1241 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1242 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1243 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1244 UBYTE response[SIMDRV_MAX_RESULT]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1245 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1246 #if !defined NTRACE | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1247 /* Implements Measure#32: Row 40 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1248 TRACE_EVENT_P1("FKT_UpdateRecord(): Nr. %hu", record); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1249 #endif | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1250 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1251 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE ; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1252 cmd_header.ins = SIMDRV_INS_UPDATE_RECORD; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1253 cmd_header.p1 = (U8)record; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1254 cmd_header.p2 = (U8)mode; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1255 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1256 data_info.data = (U8*)data; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1257 data_info.c_data = (U8)length; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1258 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1259 result_info.result = response; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1260 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1261 result_info.len = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1262 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1263 sw1sw2= simdrv_xch_apdu (reader_id,cmd_header,data_info,&result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1264 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1265 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1266 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1267 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1268 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1269 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1270 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1271 | PROJECT : GSM-PS (6302) MODULE : SIM_FKT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1272 | STATE : code ROUTINE : FKT_VerifyCHV | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1273 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1274 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1275 PURPOSE : Wrapping function for the SIM driver call SIM_VerifyCHV. | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1276 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1277 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1278 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1279 GLOBAL USHORT FKT_VerifyCHV (UBYTE * pin, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1280 UBYTE pin_id) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1281 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1282 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1283 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1284 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1285 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1286 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1287 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1288 UBYTE response[SIMDRV_MAX_RESULT]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1289 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1290 TRACE_FUNCTION ("FKT_VerifyCHV()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1291 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1292 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1293 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1294 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1295 cmd_header.ins = SIMDRV_INS_VERIFY_CHV; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1296 cmd_header.p1 = 0x00; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1297 cmd_header.p2 = pin_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1298 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1299 data_info.data = (U8 *)pin; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1300 data_info.c_data = MAX_PIN_LEN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1301 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1302 result_info.result = response; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1303 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1304 result_info.len = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1305 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1306 sw1sw2 = simdrv_xch_apdu(reader_id, cmd_header, data_info, &result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1307 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1308 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1309 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1310 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1311 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1312 +********************************************************************+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1313 | Moved from sim_stk.c - for CQ 34109 under feature flag SIM_TOOLKIT | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1314 +********************************************************************+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1315 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1316 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1317 #ifdef SIM_TOOLKIT | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1318 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1319 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1320 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1321 | PROJECT : GSM-PS (8419) MODULE : SIM_STK | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1322 | STATE : code ROUTINE : FKT_TerminalResponse | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1323 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1324 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1325 PURPOSE : Wrapping function for the SIM driver call SIM_TerminalResponse | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1326 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1327 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1328 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1329 static const UBYTE timer_env[] = { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1330 STK_TIMER_EXPIRATION_TAG, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1331 STK_DEVICE_IDENTITY_LEN+STK_TIMER_ID_LEN+STK_TIMER_VALUE_LEN+6, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1332 STK_DEVICE_IDENTITY_TAG|STK_COMPREHENSION_REQUIRED, STK_DEVICE_IDENTITY_LEN, 0x82, 0x81, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1333 STK_TIMER_ID_TAG|STK_COMPREHENSION_REQUIRED, STK_TIMER_ID_LEN, 0, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1334 STK_TIMER_VALUE_TAG|STK_COMPREHENSION_REQUIRED, STK_TIMER_VALUE_LEN, 0, 0, 0 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1335 }; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1336 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1337 UBYTE pending_timers[9] = {0,0,0,0,0,0,0,0,0}; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1338 UBYTE next_pos_to_fill = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1339 UBYTE next_pos_to_send = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1340 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1341 GLOBAL USHORT FKT_TerminalResponse (UBYTE * data, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1342 USHORT length) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1343 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1344 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1345 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1346 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1347 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1348 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1349 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1350 UBYTE response[SIMDRV_MAX_RESULT]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1351 UBYTE env[sizeof(timer_env)]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1352 USHORT index; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1353 UBYTE dummy[4]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1354 USHORT error; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1355 USHORT i; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1356 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1357 TRACE_FUNCTION ("FKT_TerminalResponse()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1358 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1359 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1360 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE ; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1361 cmd_header.ins = SIMDRV_INS_TERMINAL_RESPONSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1362 cmd_header.p1 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1363 cmd_header.p2 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1364 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1365 data_info.data = data; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1366 data_info.c_data = (U8)length; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1367 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1368 result_info.result = response; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1369 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1370 result_info.len = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1371 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1372 sw1sw2 = simdrv_xch_apdu(reader_id,cmd_header,data_info,&result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1373 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1374 sim_data.term_resp_sent = TRUE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1375 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1376 SIM_EM_TERMINAL_RESPONSE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1377 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1378 * if SIM response is OK, try resending pending timer expiry envelopes (send updated envelopes) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1379 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1380 if( 0x9000 == sw1sw2 ) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1381 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1382 for(i=0;i<8;i++) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1383 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1384 if (next_pos_to_fill != next_pos_to_send) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1385 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1386 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1387 * some timer expiry envelopes are pending | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1388 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1389 index = pending_timers[next_pos_to_send]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1390 memcpy (env, timer_env, sizeof(timer_env)); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1391 env[8] = (UBYTE)(index + 1); /* Timer number range is 1..8 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1392 env[11] = sim_data.timer[index].hour; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1393 env[12] = sim_data.timer[index].minute; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1394 env[13] = sim_data.timer[index].second; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1395 error = FKT_Envelope (dummy, env, sizeof(timer_env),0); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1396 if(8 == next_pos_to_send) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1397 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1398 next_pos_to_send = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1399 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1400 else | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1401 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1402 next_pos_to_send++; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1403 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1404 if (error NEQ SIM_NO_ERROR) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1405 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1406 break; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1407 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1408 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1409 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1410 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1411 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1412 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1413 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1414 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1415 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1416 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1417 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1418 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1419 | PROJECT : GSM-PS (8419) MODULE : SIM_STK | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1420 | STATE : code ROUTINE : FKT_Envelope | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1421 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1422 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1423 PURPOSE : Wrapping function for the SIM driver call SIM_Envelope | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1424 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1425 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1426 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1427 GLOBAL USHORT FKT_Envelope (UBYTE * data_out, UBYTE * data_in, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1428 USHORT in_length, USHORT out_length) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1429 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1430 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1431 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1432 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1433 USHORT error; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1434 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1435 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1436 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1437 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1438 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1439 TRACE_FUNCTION ("FKT_Envelope()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1440 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1441 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1442 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1443 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1444 cmd_header.ins = SIMDRV_INS_ENVELOPE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1445 cmd_header.p1 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1446 cmd_header.p2 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1447 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1448 data_info.data = data_in; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1449 data_info.c_data = (U8)in_length; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1450 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1451 result_info.result = data_out; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1452 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1453 result_info.len = out_length; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1454 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1455 sw1sw2 = simdrv_xch_apdu(reader_id,cmd_header,data_info,&result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1456 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1457 SIM_EM_ENVELOPE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1458 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1459 sim_data.sim_data_len = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1460 TRACE_EVENT("sim_data.sim_data_len initialised as 0"); /* for debug only - to be removed */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1461 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1462 error = FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1463 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1464 stk_l_cmd = sim_data.sim_data_len << 3; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1465 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1466 return error; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1467 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1468 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1469 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1470 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1471 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1472 | PROJECT : GSM-PS (8419) MODULE : SIM_STK | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1473 | STATE : code ROUTINE : FKT_TerminalProfile | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1474 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1475 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1476 PURPOSE : Wrapping function for the SIM driver call SIM_TerminalProfile | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1477 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1478 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1479 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1480 GLOBAL USHORT FKT_TerminalProfile (UBYTE * data, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1481 USHORT length) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1482 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1483 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1484 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1485 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1486 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1487 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1488 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1489 UBYTE response[SIMDRV_MAX_RESULT]; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1490 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1491 TRACE_FUNCTION ("FKT_TerminalProfile()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1492 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1493 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1494 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1495 cmd_header.ins = SIMDRV_INS_TERMINAL_PROFILE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1496 cmd_header.p1 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1497 cmd_header.p2 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1498 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1499 data_info.data = data; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1500 data_info.c_data = (U8)length; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1501 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1502 result_info.result = response; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1503 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1504 result_info.len = NOT_PRESENT_16BIT; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1505 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1506 sw1sw2= simdrv_xch_apdu(reader_id,cmd_header,data_info,&result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1507 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1508 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1509 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1510 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1511 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1512 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1513 /* | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1514 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1515 | PROJECT : GSM-PS (8419) MODULE : SIM_STK | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1516 | STATE : code ROUTINE : FKT_Fetch | | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1517 +--------------------------------------------------------------------+ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1518 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1519 PURPOSE : Wrapping function for the SIM driver call SIM_Fetch | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1520 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1521 */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1522 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1523 GLOBAL USHORT FKT_Fetch (UBYTE * cmd, | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1524 USHORT length) | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1525 { | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1526 USHORT size = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1527 USHORT sw1sw2; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1528 U8 reader_id; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1529 T_SIMDRV_cmd_header cmd_header; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1530 T_SIMDRV_data_info data_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1531 T_SIMDRV_result_info result_info; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1532 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1533 TRACE_FUNCTION ("FKT_Fetch()"); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1534 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1535 reader_id = SIMDRV_VAL_READER_ID__RANGE_MIN; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1536 cmd_header.cla = SIMDRV_GSM_CLASS_BYTE; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1537 cmd_header.ins = SIMDRV_INS_FETCH; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1538 cmd_header.p1 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1539 cmd_header.p2 = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1540 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1541 data_info.data = NULL; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1542 data_info.c_data = 0; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1543 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1544 result_info.result = cmd; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1545 result_info.c_result = size; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1546 result_info.len = (USHORT)length; | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1547 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1548 sw1sw2 = simdrv_xch_apdu(reader_id,cmd_header,data_info,&result_info); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1549 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1550 return FKT_convert_error (sw1sw2,result_info.c_result); | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1551 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1552 } | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1553 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1554 #endif /* SIM_TOOLKIT */ | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1555 | 
| 
 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1556 #endif | 
