comparison src/cs/layer1/include/l1_rtt_macro.h @ 0:b6a5e36de839

src/cs: initial import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 04:39:26 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:b6a5e36de839
1 /************* Revision Controle System Header *************
2 * GSM Layer 1 software
3 * L1_RTT_MACRO.H
4 *
5 * Filename %M%
6 * Copyright 2003 (C) Texas Instruments
7 *
8 ************* Revision Controle System Header *************/
9
10 #if (defined RVM_RTT_SWE || (OP_L1_STANDALONE == 1))
11
12 #include "rvt_gen.h"
13 #include "rtt_gen.h"
14
15 extern T_TRACE_INFO_STRUCT trace_info;
16
17 /***********************************************************************************************************/
18 /* Macro for cell enabling checking */
19 /***********************************************************************************************************/
20
21 #define SELECTED_BITMAP(enable_bit) \
22 enable_bit < 32 ? (0x0001 << (enable_bit - 0)) & trace_info.current_config->rttl1_cell_enable[0] : \
23 enable_bit < 64 ? (0x0001 << (enable_bit - 32)) & trace_info.current_config->rttl1_cell_enable[1] : \
24 enable_bit < 96 ? (0x0001 << (enable_bit - 64)) & trace_info.current_config->rttl1_cell_enable[2] : \
25 enable_bit < 128 ? (0x0001 << (enable_bit - 96)) & trace_info.current_config->rttl1_cell_enable[3] : \
26 enable_bit < 160 ? (0x0001 << (enable_bit - 128)) & trace_info.current_config->rttl1_cell_enable[4] : \
27 enable_bit < 192 ? (0x0001 << (enable_bit - 160)) & trace_info.current_config->rttl1_cell_enable[5] : \
28 enable_bit < 224 ? (0x0001 << (enable_bit - 192)) & trace_info.current_config->rttl1_cell_enable[6] : \
29 (0x0001 << (enable_bit - 224)) & trace_info.current_config->rttl1_cell_enable[7]
30
31 /***********************************************************************************************************/
32 /* Macros for buffer filling */
33 /***********************************************************************************************************/
34
35 //-----------------------------------------------------------------------------------------------------------
36 // L1 RTT cell filling: FN
37
38 #define RTTL1_FILL_FN(param1) \
39 if(SELECTED_BITMAP(RTTL1_ENABLE_FN)) \
40 { \
41 T_RTT_PTR ptr; \
42 \
43 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_FN))) != NULL) \
44 { \
45 ((T_RTTL1_FN *)ptr)->fn = param1; \
46 ((T_RTTL1_FN *)ptr)->cell_id = RTTL1_ENABLE_FN; \
47 } \
48 }
49
50 //-----------------------------------------------------------------------------------------------------------
51 // L1 RTT cell filling: Downlink burst
52
53 #define RTTL1_FILL_DL_BURST(param1,param2,param3,param4,param5,param6,param7) \
54 if(SELECTED_BITMAP(RTTL1_ENABLE_DL_BURST)) \
55 { \
56 T_RTT_PTR ptr; \
57 \
58 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_DL_BURST))) != NULL) \
59 { \
60 ((T_RTTL1_DL_BURST *)ptr)->angle = param1; \
61 ((T_RTTL1_DL_BURST *)ptr)->snr = param2; \
62 ((T_RTTL1_DL_BURST *)ptr)->afc = param3; \
63 ((T_RTTL1_DL_BURST *)ptr)->task = param4; \
64 ((T_RTTL1_DL_BURST *)ptr)->pm = param5; \
65 ((T_RTTL1_DL_BURST *)ptr)->toa = param6; \
66 ((T_RTTL1_DL_BURST *)ptr)->input_level = param7; \
67 ((T_RTTL1_DL_BURST *)ptr)->cell_id = RTTL1_ENABLE_DL_BURST; \
68 } \
69 }
70
71 //-----------------------------------------------------------------------------------------------------------
72 // L1 RTT cell filling: Uplink Normal Burst
73
74 #define RTTL1_FILL_UL_NB(param1, param2, param3) \
75 if(SELECTED_BITMAP(RTTL1_ENABLE_UL_NB)) \
76 { \
77 T_RTT_PTR ptr; \
78 \
79 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_UL_NB))) != NULL) \
80 { \
81 ((T_RTTL1_UL_NB *)ptr)->task = param1; \
82 ((T_RTTL1_UL_NB *)ptr)->ta = param2; \
83 ((T_RTTL1_UL_NB *)ptr)->txpwr = param3; \
84 ((T_RTTL1_UL_NB *)ptr)->cell_id = RTTL1_ENABLE_UL_NB; \
85 } \
86 }
87
88 //-----------------------------------------------------------------------------------------------------------
89 // L1 RTT cell filling: Uplink Access Burst
90
91 #define RTTL1_FILL_UL_AB(param1, param2) \
92 if(SELECTED_BITMAP(RTTL1_ENABLE_UL_AB)) \
93 { \
94 T_RTT_PTR ptr; \
95 \
96 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_UL_AB))) != NULL) \
97 { \
98 ((T_RTTL1_UL_AB *)ptr)->task = param1; \
99 ((T_RTTL1_UL_AB *)ptr)->txpwr = param2; \
100 ((T_RTTL1_UL_AB *)ptr)->cell_id = RTTL1_ENABLE_UL_AB; \
101 } \
102 }
103
104 //-----------------------------------------------------------------------------------------------------------
105 // L1 RTT cell filling: Full list measurement
106
107 #define RTTL1_FILL_FULL_LIST_MEAS(param1, param2, param3, param4) \
108 if(SELECTED_BITMAP(RTTL1_ENABLE_FULL_LIST_MEAS)) \
109 { \
110 T_RTT_PTR ptr; \
111 \
112 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_FULL_LIST_MEAS))) != NULL) \
113 { \
114 ((T_RTTL1_FULL_LIST_MEAS *)ptr)->pm = param1; \
115 ((T_RTTL1_FULL_LIST_MEAS *)ptr)->input_level = param2; \
116 ((T_RTTL1_FULL_LIST_MEAS *)ptr)->task = param3; \
117 ((T_RTTL1_FULL_LIST_MEAS *)ptr)->radio_freq = param4; \
118 ((T_RTTL1_FULL_LIST_MEAS *)ptr)->cell_id = RTTL1_ENABLE_FULL_LIST_MEAS; \
119 } \
120 }
121
122 //-----------------------------------------------------------------------------------------------------------
123 // L1 RTT cell filling: Full list measurement
124
125 #define RTTL1_FILL_MON_MEAS(param1, param2, param3, param4) \
126 if(SELECTED_BITMAP(RTTL1_ENABLE_MON_MEAS)) \
127 { \
128 T_RTT_PTR ptr; \
129 \
130 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_MON_MEAS))) != NULL) \
131 { \
132 ((T_RTTL1_MON_MEAS *)ptr)->pm = param1; \
133 ((T_RTTL1_MON_MEAS *)ptr)->input_level = param2; \
134 ((T_RTTL1_MON_MEAS *)ptr)->task = param3; \
135 ((T_RTTL1_MON_MEAS *)ptr)->radio_freq = param4; \
136 ((T_RTTL1_MON_MEAS *)ptr)->cell_id = RTTL1_ENABLE_MON_MEAS; \
137 } \
138 }
139
140 //-----------------------------------------------------------------------------------------------------------
141 // L1 RTT cell filling: Downlink DCCH block
142
143 #define RTTL1_FILL_DL_DCCH(param1, param2) \
144 if(SELECTED_BITMAP(RTTL1_ENABLE_DL_DCCH)) \
145 { \
146 T_RTT_PTR ptr; \
147 \
148 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_DL_DCCH))) != NULL) \
149 { \
150 ((T_RTTL1_DL_DCCH *)ptr)->valid_flag = param1; \
151 ((T_RTTL1_DL_DCCH *)ptr)->physical_info = param2; \
152 ((T_RTTL1_DL_DCCH *)ptr)->cell_id = RTTL1_ENABLE_DL_DCCH; \
153 } \
154 }
155
156 //-----------------------------------------------------------------------------------------------------------
157 // L1 RTT cell filling: Downlink PTCCH block
158
159 #define RTTL1_FILL_DL_PTCCH(param1, param2) \
160 if(SELECTED_BITMAP(RTTL1_ENABLE_DL_PTCCH)) \
161 { \
162 T_RTT_PTR ptr; \
163 \
164 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_DL_PTCCH))) != NULL) \
165 { \
166 ((T_RTTL1_DL_PTCCH *)ptr)->crc = param1; \
167 ((T_RTTL1_DL_PTCCH *)ptr)->ordered_ta = param2; \
168 ((T_RTTL1_DL_PTCCH *)ptr)->cell_id = RTTL1_ENABLE_DL_PTCCH; \
169 } \
170 }
171
172 //-----------------------------------------------------------------------------------------------------------
173 // L1 RTT cell filling: Uplink DCCH block
174
175 #define RTTL1_FILL_UL_DCCH \
176 if(SELECTED_BITMAP(RTTL1_ENABLE_UL_DCCH)) \
177 { \
178 T_RTT_PTR ptr; \
179 \
180 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_UL_DCCH))) != NULL) \
181 { \
182 ((T_RTTL1_UL_DCCH *)ptr)->cell_id = RTTL1_ENABLE_UL_DCCH; \
183 } \
184 }
185
186 //-----------------------------------------------------------------------------------------------------------
187 // L1 RTT cell filling: Uplink SACCH block
188
189 #define RTTL1_FILL_UL_SACCH(param1, param2, param3) \
190 if(SELECTED_BITMAP(RTTL1_ENABLE_UL_SACCH)) \
191 { \
192 T_RTT_PTR ptr; \
193 \
194 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_UL_SACCH))) != NULL) \
195 { \
196 ((T_RTTL1_UL_SACCH *)ptr)->data_present = param1; \
197 ((T_RTTL1_UL_SACCH *)ptr)->reported_ta = param2; \
198 ((T_RTTL1_UL_SACCH *)ptr)->reported_txpwr = param3; \
199 ((T_RTTL1_UL_SACCH *)ptr)->cell_id = RTTL1_ENABLE_UL_SACCH; \
200 } \
201 }
202
203 //-----------------------------------------------------------------------------------------------------------
204 // L1 RTT cell filling: Downlink PDTCH block
205
206 #define RTTL1_FILL_DL_PDTCH(param1, param2, param3, param4, param5) \
207 if(SELECTED_BITMAP(RTTL1_ENABLE_DL_PDTCH)) \
208 { \
209 T_RTT_PTR ptr; \
210 \
211 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_DL_PDTCH))) != NULL) \
212 { \
213 ((T_RTTL1_DL_PDTCH *)ptr)->mac_header = param1; \
214 ((T_RTTL1_DL_PDTCH *)ptr)->tfi_result = param2; \
215 ((T_RTTL1_DL_PDTCH *)ptr)->crc = param3; \
216 ((T_RTTL1_DL_PDTCH *)ptr)->cs_type = param4; \
217 ((T_RTTL1_DL_PDTCH *)ptr)->timeslot = param5; \
218 ((T_RTTL1_DL_PDTCH *)ptr)->cell_id = RTTL1_ENABLE_DL_PDTCH; \
219 } \
220 }
221
222 //-----------------------------------------------------------------------------------------------------------
223 // L1 RTT cell filling: Uplink PDTCH block
224
225 #define RTTL1_FILL_UL_PDTCH(param1, param2, param3) \
226 if(SELECTED_BITMAP(RTTL1_ENABLE_UL_PDTCH)) \
227 { \
228 T_RTT_PTR ptr; \
229 \
230 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_UL_PDTCH))) != NULL) \
231 { \
232 ((T_RTTL1_UL_PDTCH *)ptr)->cs_type = param1; \
233 ((T_RTTL1_UL_PDTCH *)ptr)->data_allowed = param2; \
234 ((T_RTTL1_UL_PDTCH *)ptr)->timeslot = param3; \
235 ((T_RTTL1_UL_PDTCH *)ptr)->cell_id = RTTL1_ENABLE_UL_PDTCH; \
236 } \
237 }
238
239 //-----------------------------------------------------------------------------------------------------------
240 // L1 RTT cell filling: MAC-S error
241
242 #define RTTL1_FILL_MACS_STATUS(param1, param2) \
243 if(SELECTED_BITMAP(RTTL1_ENABLE_MACS_STATUS)) \
244 { \
245 T_RTT_PTR ptr; \
246 \
247 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_MACS_STATUS))) != NULL) \
248 { \
249 ((T_RTTL1_MACS_STATUS *)ptr)->status = param1; \
250 ((T_RTTL1_MACS_STATUS *)ptr)->timeslot = param2; \
251 ((T_RTTL1_MACS_STATUS *)ptr)->cell_id = RTTL1_ENABLE_MACS_STATUS; \
252 } \
253 }
254
255 //-----------------------------------------------------------------------------------------------------------
256 // L1 RTT cell filling: L1S task enable
257
258 #define RTTL1_FILL_L1S_TASK_ENABLE(param1, param2) \
259 if(SELECTED_BITMAP(RTTL1_ENABLE_L1S_TASK_ENABLE)) \
260 { \
261 T_RTT_PTR ptr; \
262 \
263 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_L1S_TASK_ENABLE))) != NULL) \
264 { \
265 ((T_RTTL1_L1S_TASK_ENABLE *)ptr)->bitmap1 = param1; \
266 ((T_RTTL1_L1S_TASK_ENABLE *)ptr)->bitmap2 = param2; \
267 ((T_RTTL1_L1S_TASK_ENABLE *)ptr)->cell_id = RTTL1_ENABLE_L1S_TASK_ENABLE; \
268 } \
269 }
270
271 //-----------------------------------------------------------------------------------------------------------
272 // L1 RTT cell filling: MFTAB trace
273
274 #define RTTL1_FILL_MFTAB(param1) \
275 if(SELECTED_BITMAP(RTTL1_ENABLE_MFTAB)) \
276 { \
277 T_RTT_PTR ptr; \
278 \
279 if ((ptr = trace_info.l1s_rtt_func.rtt_get_fill_ptr(trace_info.l1s_trace_user_id, sizeof(T_RTTL1_MFTAB))) != NULL) \
280 { \
281 ((T_RTTL1_MFTAB *)ptr)->func = param1; \
282 ((T_RTTL1_MFTAB *)ptr)->cell_id = RTTL1_ENABLE_MFTAB; \
283 } \
284 }
285
286 /***********************************************************************************************************/
287 /* Macro for events */
288 /***********************************************************************************************************/
289
290 #define RTTL1_EVENT(id,size) \
291 if (trace_info.current_config->rttl1_event_enable & (0x1 << id)) \
292 trace_info.l1s_rtt_func.rtt_dump_buffer(trace_info.l1s_trace_user_id, size);
293 #else // RVM_RTT_SWE || OP_L1_STANDALONE
294
295 // No RTT: all macros are empty
296 #define SELECTED_BITMAP(enable_bit) (0)
297 #define RTTL1_FILL_FN(param1)
298 #define RTTL1_FILL_DL_BURST(param1,param2,param3,param4,param5,param6,param7)
299 #define RTTL1_FILL_UL_NB(param1, param2, param3)
300 #define RTTL1_FILL_UL_AB(param1, param2)
301 #define RTTL1_FILL_FULL_LIST_MEAS(param1, param2, param3, param4)
302 #define RTTL1_FILL_MON_MEAS(param1, param2, param3, param4)
303 #define RTTL1_FILL_DL_DCCH(param1, param2)
304 #define RTTL1_FILL_DL_PTCCH(param1, param2)
305 #define RTTL1_FILL_UL_DCCH
306 #define RTTL1_FILL_UL_SACCH(param1, param2, param3)
307 #define RTTL1_FILL_DL_PDTCH(param1, param2, param3, param4, param5)
308 #define RTTL1_FILL_UL_PDTCH(param1, param2, param3)
309 #define RTTL1_FILL_MACS_STATUS(param1, param2)
310 #define RTTL1_FILL_L1S_TASK_ENABLE(param1, param2)
311 #define RTTL1_FILL_MFTAB(param1)
312 #define RTTL1_EVENT(id,size)
313
314 #endif // RVM_RTT_SWE || OP_L1_STANDALONE