1
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | Project :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 | Modul :
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | Copyright 2003 Texas Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 | All rights reserved.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | This file is confidential and a trade secret of Texas
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | Instruments Berlin, AG
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | The receipt of or possession of this file does not convey
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | any rights to reproduce or disclose its contents or to
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | manufacture, use, or sell anything it may describe, in
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | whole, or in part, without the specific written consent of
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 | Texas Instruments Berlin, AG.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 | Purpose : Engineering Mode (EM) Declarations + Macros
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 |
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 +-----------------------------------------------------------------------------
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #ifndef MM_EM_H
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 #define MM_EM_H
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 #ifdef FF_EM_MODE
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 /* ---------------- data declarations for EM ----------------*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 * Ring buffer is by one bigger than max. number of prims, because it
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 * needs always one empty entry
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #define EM_MM_BUFFER_SIZE 168
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 * EM_MAX_MM_EVENTS defines maximum number of event traces for the engineering
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 * mode. The number is increased by one to ensure that the event numbers
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 * defined in the corresponding document are the same as in the sources.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 #define EM_MAX_MM_EVENTS 19
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 * The offset is used to indicate the source entity the event trace is from.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 * L1/ALR = 0x00, DL = 0x2D, RR = 0x37, MM = 0x5F,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 * CC = 0x78, SS = 0xAF, SMS = 0xBE, SIM = E1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 #define MM_OFFSET 0x5F
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 #define EM_ESTABLISHED 2
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 #define EM_FAILED 3
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 #define EM_ACCEPT 4
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 #define EM_REJECT 5
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 #define EM_AUTOMATIC 0
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 #define EM_MANUAL 1
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 #define EM_LIMITED_SERVICE 8
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 #define EM_FULL_SERVICE 9
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 #define EM_NO_SERVICE 10
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 #define EM_NORMAL_LUP 11
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 #define EM_PERIODIC_LUP 12
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 #define EM_IMSI_ATTACH_LUP 13
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 #define EM_REQUEST 14
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 #define EM_RESPONSE 15
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 #define EM_CIPHERING 14
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 #define EM_COMMAND 15
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 * Type is combination of entity index(upper nibble) plus
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 * event number(lower nibble). To optimize the buffersize,
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 * the data is packed in the buffer as follows: type, length, value
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 * Value is the combination of the additional parameters
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 * as defined in 8443.601, coded as UBYTE.
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 #define MM_V_1 (1+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 #define MM_V_2 (2+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 #define MM_V_3 (3+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 #define MM_V_4 (4+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 #define MM_V_5 (5+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 #define MM_V_6 (6+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 #define MM_V_7 (7+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 #define MM_V_8 (8+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 #define MM_V_9 (9+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 #define MM_V_10 (10+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 #define MM_V_11 (11+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 #define MM_V_12 (12+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 #define MM_V_13 (13+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 #define MM_V_14 (14+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 #define MM_V_15 (15+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 #define MM_V_16 (16+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 #define MM_V_17 (17+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 #define MM_V_18 (18+MM_OFFSET)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 EXTERN BOOL mm_v[EM_MAX_MM_EVENTS];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 EXTERN UBYTE em_mm_event_buffer[EM_MM_BUFFER_SIZE];
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 EXTERN UBYTE em_mm_buffer_write;
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 /*----------------- Functions ---------------------*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 * Mobility management primitives Engineering Mode
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 * Bitmask for the event tracing
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 EXTERN void mm_em_mm_event_req (T_EM_MM_EVENT_REQ *em_mm_event_req);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 EXTERN void mm_em_dl_event_req (T_EM_DL_EVENT_REQ *em_dl_event_req);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 EXTERN void em_init_mm_event_trace (void);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 /*
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 * If all entities are linked into one module this definitions
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 * prefixes all this functions with the enity name
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 #ifdef OPTION_MULTITHREAD
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 #define em_write_buffer_2 _ENTITY_PREFIXED(em_write_buffer_2)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 #define em_write_buffer_3 _ENTITY_PREFIXED(em_write_buffer_3)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 #define em_write_buffer_3a _ENTITY_PREFIXED(em_write_buffer_3a)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 #define em_write_buffer_3b _ENTITY_PREFIXED(em_write_buffer_3b)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 #define em_write_buffer_4 _ENTITY_PREFIXED(em_write_buffer_4)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 #define em_write_buffer_4a _ENTITY_PREFIXED(em_write_buffer_4a)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 #define em_write_buffer_4b _ENTITY_PREFIXED(em_write_buffer_4b)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 #define em_write_buffer_4c _ENTITY_PREFIXED(em_write_buffer_4c)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 #define em_write_buffer_5a _ENTITY_PREFIXED(em_write_buffer_5a)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 #define em_write_buffer_6 _ENTITY_PREFIXED(em_write_buffer_6)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 #define check_write_index _ENTITY_PREFIXED(check_write_index)
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 #endif /*OPTION_MULTITHREAD*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 EXTERN UBYTE em_write_buffer_2 (UBYTE event_no);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 EXTERN UBYTE em_write_buffer_3 (UBYTE event_no, UBYTE value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 EXTERN UBYTE em_write_buffer_3a (UBYTE event_no, USHORT value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 EXTERN UBYTE em_write_buffer_3b (UBYTE event_no, ULONG value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 EXTERN UBYTE em_write_buffer_4 (UBYTE event_no, UBYTE value1, T_plmn *plmn);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 EXTERN UBYTE em_write_buffer_4a (UBYTE event_no, UBYTE value1, USHORT value2);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 EXTERN UBYTE em_write_buffer_4b (UBYTE event_no, UBYTE ident_type, UBYTE *value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 EXTERN UBYTE em_write_buffer_4c (UBYTE event_no, UBYTE ident_type, ULONG value);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 EXTERN UBYTE em_write_buffer_5a (UBYTE event_no, UBYTE value, UBYTE mcc[SIZE_MCC], UBYTE mnc[SIZE_MNC]);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 EXTERN UBYTE em_write_buffer_6 (UBYTE event_no, UBYTE loc_upd_type, T_loc_area_ident lai);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 EXTERN UBYTE check_write_index (UBYTE n);
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 /* ---------------- Macro definitions ---------------------- */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 #define EM_SIM_INSERT \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 /* SIM Insert */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 if (mm_v[1])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 mm_v[1] = em_write_buffer_2 (MM_V_1 );\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 } /* mm_v[1] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 #define EM_SIM_REMOVE \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 /* SIM remove */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 if (mm_v[2])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 mm_v[2] = em_write_buffer_2 (MM_V_2 );\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 } /* mm_v[2] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 #define EM_SET_PLMN_SEARCH_MODE \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 /* Set PLMN search mode */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 if (mm_v[3])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 mm_v[3] = em_write_buffer_3 (MM_V_3 , plmn_mode_req->mode);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 } /* mm_v[3] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 #define EM_START_REGISTRATION_AUTO_MODE \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 /* Start registration auto mode */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 if (mm_v[4])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 mm_v[4] = em_write_buffer_5a (MM_V_4, SERVICE_MODE_FULL,\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 mm_data->reg.actual_plmn.mcc,\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 mm_data->reg.actual_plmn.mnc);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 } /* mm_v[4] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 #define EM_START_REGISTRATION_MANUAL_MODE \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 /* Start registration manual mode */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 if (mm_v[4])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 mm_v[4] = em_write_buffer_5a (MM_V_4, service_mode, mm_data->mm.lai.mcc, mm_data->mm.lai.mnc);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 } /* mm_v[4] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 #define EM_START_PLMN_LIST_REQUEST \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 /* Start PLMN list request */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 if (mm_v[5])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 mm_v[5] = em_write_buffer_2 (MM_V_5 );\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 } /* mm_v[5] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 #define EM_CELL_SELECTION_RESELECTION \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 /* Cell selection/reselection */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 if (mm_v[6])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 mm_v[6] = em_write_buffer_5a (MM_V_6, rr_activate_cnf->op.service, rr_activate_cnf->plmn.mcc, rr_activate_cnf->plmn.mnc);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 } /* mm_v[6] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 #define EM_RESULT_PLMN_LIST \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 /* MM Event Tracing */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 /* Result PLMN list */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 if (mm_v[7])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 mm_v[7] = em_write_buffer_4(MM_V_7, rr_abort_ind->plmn_avail, rr_abort_ind->plmn);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 } /* mm_v[7] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 #define EM_RR_CONECTION_REQUESTED \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 /* RR connection requested */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 if (mm_v[8])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 mm_v[8] = em_write_buffer_6 (MM_V_8, loc_upd_type, mm_data->mm.lai);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 } /* mm_v[8] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 #define EM_RR_CONECTION_ESTABLISHED \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 /* RR connection established */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 if (mm_v[9])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 mm_v[9] = em_write_buffer_2 (MM_V_9);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 } /* mm_v[9] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 #define EM_RR_CONNECTION_ESTABLISHED_2 \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 if (mm_count_connections (CM_PENDING) NEQ 0)\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 /* RR connection established */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 if (mm_v[9])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 /* Event number flag is set */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 mm_v[9] = em_write_buffer_3a (MM_V_9, mm_data->rej_cause);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 } /* mm_v[9] */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 } /* mm_count_connections (CM_PENDING) */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 #define EM_LOCATION_UPDATING \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 /* Location updating */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 if (mm_v[10])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 mm_v[10] = em_write_buffer_3 (MM_V_10, EM_ACCEPT);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 } /* mm_v[10 */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 #define EM_LOCATION_UPDATING_REJECT \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 /* Location updating reject*/\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 if (mm_v[10])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 mm_v[10]=em_write_buffer_4a ( MM_V_10, EM_REJECT, mm_data->limited_cause);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 } /* mm_v[10] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 #define EM_TMSI_REALLOCATION_COMPLETE\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 /* TMSI reallocation complete */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 if (mm_v[11])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 mm_v[11]=em_write_buffer_3b (MM_V_11, mm_data->reg.tmsi);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 } /* mm_v[11] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 #define EM_IMSI_DETACH \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 /* IMSI detach */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 if (mm_v[12])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 { \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 mm_v[12] = em_write_buffer_2 (MM_V_12);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 } /* mm_v[12] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 #define EM_IDENTITY_REQUEST_RESPONSE \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 /* Identity request/response */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 if (mm_v[13])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 switch (ident_req->ident.ident_type)\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 case ID_TYPE_IMSI:\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 case ID_TYPE_IMEI:\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 case ID_TYPE_IMEISV: /*stores ident_type and IMSI|IMEI|IMEISV*/\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 mm_v[13]=em_write_buffer_4b(MM_V_13, ident_req->ident.ident_type, ident_res->mob_id.ident_dig);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 break;\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 case ID_TYPE_TMSI: /*stores ident_type and TMSI*/\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 mm_v[13]=em_write_buffer_4c(MM_V_13, ident_req->ident.ident_type, mm_data->reg.tmsi);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 break;\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 default: /* Illegal mobile identity */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 break;\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 }/*switch*/\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 } /* mm_v[13] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 #define EM_AUTHENTICATION(x) \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276 /* Authentication reject*/\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 if (mm_v[14])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 mm_v[14] = em_write_buffer_3 (MM_V_14, x);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 } /* mm_v[14] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 #define EM_CM_SERVICE_REQUESTED \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 /* CM service requested */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 if (mm_v[15])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 mm_v[15] = em_write_buffer_3 (MM_V_15, mm_data->pend_conn.comp);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 } /* mm_v[15] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 #define EM_CM_SERVICE_ACCEPTED(x) \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 /* CM service accepted */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 if (mm_v[16])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 mm_v[16] = em_write_buffer_3 (MM_V_16, x);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 } /* mm_v[16] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 #define EM_CM_SERVICE_REJECT \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 /* CM service reject */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 if (mm_v[17])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 mm_v[17] = em_write_buffer_3a (MM_V_17, cm_serv_rej->rej_cause);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 } /* mm_v[17] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 #define EM_SERVICE_ABORTED \
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 /* CM service aborted */\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305 if (mm_v[18])\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 {\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 mm_v[18] = em_write_buffer_2 (MM_V_18);\
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 } /* mm_v[18] */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 #else /*FF_EM_MODE not defined*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 /*Macros will stay empty, if no EM */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313 #define EM_SIM_INSERT /* Event 1*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 #define EM_SIM_REMOVE /* Event 2*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 #define EM_SET_PLMN_SEARCH_MODE /* Event 3*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 #define EM_START_REGISTRATION_AUTO_MODE /* Event 4*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 #define EM_START_REGISTRATION_MANUAL_MODE /* Event 4*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 #define EM_START_PLMN_LIST_REQUEST /* Event 5*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 #define EM_CELL_SELECTION_RESELECTION /* Event 6*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 #define EM_RESULT_PLMN_LIST /* Event 7*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321 #define EM_RR_CONECTION_REQUESTED /* Event 8*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 #define EM_RR_CONECTION_ESTABLISHED /* Event 9*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 #define EM_RR_CONNECTION_ESTABLISHED_2 /* Event 9*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 #define EM_LOCATION_UPDATING /* Event 10*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325 #define EM_LOCATION_UPDATING_REJECT /* Event 10*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 #define EM_TMSI_REALLOCATION_COMPLETE /* Event 11*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 #define EM_IMSI_DETACH /* Event 12*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 #define EM_IDENTITY_REQUEST_RESPONSE /* Event 13*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
329 #define EM_AUTHENTICATION(x) /* Event 14*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330 #define EM_CM_SERVICE_REQUESTED /* Event 15*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 #define EM_CM_SERVICE_ACCEPTED(x) /* Event 16*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332 #define EM_CM_SERVICE_REJECT /* Event 17*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333 #define EM_SERVICE_ABORTED /* Event 18*/
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335 #endif /* FF_EM_MODE */
|
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336 #endif /* MM_EM_H */
|