comparison src/cs/layer1/include/l1_mftab.h @ 0:4e78acac3d88

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4e78acac3d88
1 /************* Revision Controle System Header *************
2 * GSM Layer 1 software
3 * L1_MFTAB.H
4 *
5 * Filename l1_mftab.h
6 * Copyright 2003 (C) Texas Instruments
7 *
8 ************* Revision Controle System Header *************/
9
10 /***********************************************************
11 * Content:
12 * This file contains the MultiFrame tables for all L1S
13 * basic tasks.
14 ***********************************************************/
15
16 /*******************************************************************************************/
17 /* Multiframe Blocks for Dynamic MFTAB Building purpose. */
18 /*******************************************************************************************/
19 // Multiframe table size....
20 #define BLOC_FBNEW_SIZE 14 + 2 // FB.
21
22 #define BLOC_SB2_SIZE 5 + 2 // SB2.
23
24 #define BLOC_SBCONF_SIZE 4 + 2 // SBCONF.
25 #define BLOC_BCCHN_SIZE 7 + 2 // BCCHN.
26 #define BLOC_BCCHN_TOP_SIZE 7 + 2 // BCCHN_TOP (BCCHN top priority)
27
28 #define BLOC_SYNCHRO_SIZE 1 // SYNC.
29 #define BLOC_ADC_SIZE 1 // ADC in CS_MODE0
30 #define BLOC_ABORT_SIZE 3 // ABORT.
31 #define BLOC_RAACC_SIZE 3 // RAACC.
32 #define S_RECT4_SIZE 6 // All "rectangular 4" serving tasks: NP/EP/BCCHS/ALLC.
33 #define BLOC_TCHT_SIZE 3 // TCHTF / TCHTH / TCHD.
34 #define BLOC_TCHA_SIZE 3 // TCHA.
35 #define BLOC_SMSCB_SIZE 6 // SMSCB.
36 #define BLOC_FB51_SIZE 14 // FB51.
37 #define BLOC_SB51_SIZE 4 // SB51.
38 #define BLOC_SBCNF51_SIZE 4 // SBCNF51.
39 #define BLOC_FB26_SIZE 4 // FB26.
40 #define BLOC_SB26_SIZE 5 // SB26.
41 #define BLOC_SBCNF26_SIZE 5 // SBCNF26.
42 #define BLOC_HWTEST_SIZE 4 // HWTEST.
43 #define BLOC_DUL_ADL_MIXED_SIZED 7
44 #if (L1_GPRS)
45 #define BLOC_BCCHN_TRAN_SIZE 7 // BCCHN_TRAN.
46 #endif
47
48
49
50 #ifdef L1_ASYNC_C
51 /*----------------------------------------------------*/
52 /* TASK: Frequency Burst search... */
53 /*----------------------------------------------------*/
54 const T_FCT BLOC_FBNEW[] =
55 {
56 {l1s_ctrl_msagc,FBNEW,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
57 {NULL,NO_PAR,NO_PAR}, // frame 2
58 {l1s_read_msagc,FBNEW,NO_PAR},{l1s_ctrl_fb,FBNEW,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 3
59 {NULL,NO_PAR,NO_PAR}, // frame 4
60 {l1s_read_mon_result,FBNEW, 1},{NULL,NO_PAR,NO_PAR}, // frame 5
61 {l1s_read_mon_result,FBNEW, 2},{NULL,NO_PAR,NO_PAR}, // frame 6
62 {l1s_read_mon_result,FBNEW, 3},{NULL,NO_PAR,NO_PAR}, // frame 7
63 {l1s_read_mon_result,FBNEW, 4},{NULL,NO_PAR,NO_PAR}, // frame 8
64 {l1s_read_mon_result,FBNEW, 5},{NULL,NO_PAR,NO_PAR}, // frame 9
65 {l1s_read_mon_result,FBNEW, 6},{NULL,NO_PAR,NO_PAR}, // frame 10
66 {l1s_read_mon_result,FBNEW, 7},{NULL,NO_PAR,NO_PAR}, // frame 11
67 {l1s_read_mon_result,FBNEW, 8},{NULL,NO_PAR,NO_PAR}, // frame 12
68 {l1s_read_mon_result,FBNEW, 9},{NULL,NO_PAR,NO_PAR}, // frame 13
69 {l1s_read_mon_result,FBNEW,10},{NULL,NO_PAR,NO_PAR}, // frame 14
70 {l1s_read_mon_result,FBNEW,11},{NULL,NO_PAR,NO_PAR}, // frame 15
71 {l1s_read_mon_result,FBNEW,12},{NULL,NO_PAR,NO_PAR} // frame 16
72 };
73
74 /*----------------------------------------------------*/
75 /* TASK: SB2, New Synchro Burst search... */
76 /*----------------------------------------------------*/
77 /* C W R -> AGC */
78 /* C W W R -> 1st SB */
79 /* C W W R -> 2nd SB */
80 /*----------------------------------------------------*/
81 const T_FCT BLOC_SB2[] =
82 {
83 {l1s_ctrl_msagc,SB2,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
84 {NULL,NO_PAR,NO_PAR}, // frame 2
85 {l1s_read_msagc,SB2,NO_PAR}, {l1s_ctrl_sbgen,SB2,1}, {NULL,NO_PAR,NO_PAR}, // frame 3
86 {l1s_ctrl_sbgen,SB2,2}, {NULL,NO_PAR,NO_PAR}, // frame 4
87 {NULL,NO_PAR,NO_PAR}, // frame 5
88 {l1s_read_mon_result,SB2,1}, {NULL,NO_PAR,NO_PAR}, // frame 6
89 {l1s_read_mon_result,SB2,2}, {NULL,NO_PAR,NO_PAR} // frame 7
90 };
91
92 /*----------------------------------------------------*/
93 /* TASK: SBCONF, Synchro confirmation. */
94 /*----------------------------------------------------*/
95 /* C W R -> AGC */
96 /* C W W R -> SBCONF */
97 /*----------------------------------------------------*/
98 const T_FCT BLOC_SBCONF[] =
99 {
100 {l1s_ctrl_msagc,SBCONF,1}, {NULL,NO_PAR,NO_PAR}, // frame 1
101 {NULL,NO_PAR,NO_PAR}, // frame 2
102 {l1s_read_msagc,SBCONF,1},{l1s_ctrl_sbgen,SBCONF,1}, {NULL,NO_PAR,NO_PAR}, // frame 3
103 {NULL,NO_PAR,NO_PAR}, // frame 4
104 {NULL,NO_PAR,NO_PAR}, // frame 5
105 {l1s_read_mon_result,SBCONF,1},{NULL,NO_PAR,NO_PAR} // frame 6
106 };
107
108 /*----------------------------------------------------*/
109 /* TASK: Serving cell Normal BCCH reading. */
110 /*----------------------------------------------------*/
111 /* frame 1 2 3 4 5 6 */
112 /* | | | | | | */
113 /* C W R | | | -> burst 1 */
114 /* C W R | | -> burst 2 */
115 /* C W R | -> burst 3 */
116 /* C W R -> burst 4 */
117 /*----------------------------------------------------*/
118 const T_FCT BLOC_NBCCHS[] =
119 {
120 {l1s_ctrl_snb_dl,NBCCHS,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
121 {l1s_ctrl_snb_dl,NBCCHS,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
122 {l1s_read_snb_dl,NBCCHS,BURST_1},{l1s_ctrl_snb_dl,NBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
123 {l1s_read_snb_dl,NBCCHS,BURST_2},{l1s_ctrl_snb_dl,NBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
124 {l1s_read_snb_dl,NBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
125 {l1s_read_snb_dl,NBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
126 };
127
128 /*----------------------------------------------------*/
129 /* TASK: Serving cell Extended BCCH reading. */
130 /*----------------------------------------------------*/
131 /* frame 1 2 3 4 5 6 */
132 /* | | | | | | */
133 /* C W R | | | -> burst 1 */
134 /* C W R | | -> burst 2 */
135 /* C W R | -> burst 3 */
136 /* C W R -> burst 4 */
137 /*----------------------------------------------------*/
138 const T_FCT BLOC_EBCCHS[] =
139 {
140 {l1s_ctrl_snb_dl,EBCCHS,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
141 {l1s_ctrl_snb_dl,EBCCHS,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
142 {l1s_read_snb_dl,EBCCHS,BURST_1},{l1s_ctrl_snb_dl,EBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
143 {l1s_read_snb_dl,EBCCHS,BURST_2},{l1s_ctrl_snb_dl,EBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
144 {l1s_read_snb_dl,EBCCHS,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
145 {l1s_read_snb_dl,EBCCHS,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
146 };
147
148 /*----------------------------------------------------*/
149 /* TASK: Neighbour Cell SYStem info reading. */
150 /*----------------------------------------------------*/
151 /* C W R -> AGC */
152 /* C W W W W W R -> all bursts */
153 /*----------------------------------------------------*/
154 const T_FCT BLOC_BCCHN[] =
155 {
156 {l1s_ctrl_msagc,BCCHN,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
157 {NULL,NO_PAR,NO_PAR}, // frame 2
158 {l1s_read_msagc,BCCHN,NO_PAR},{l1s_ctrl_nnb,BCCHN,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 3
159 {NULL,NO_PAR,NO_PAR}, // frame 4
160 {NULL,NO_PAR,NO_PAR}, // frame 5
161 {NULL,NO_PAR,NO_PAR}, // frame 6
162 {NULL,NO_PAR,NO_PAR}, // frame 7
163 {NULL,NO_PAR,NO_PAR}, // frame 8
164 {l1s_read_nnb,BCCHN,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 9
165 };
166
167 /*----------------------------------------------------*/
168 /* TASK: Neighbour Cell SYStem info reading. */
169 /*----------------------------------------------------*/
170 /* C W R -> AGC */
171 /* C W W W W W R -> all bursts */
172 /*----------------------------------------------------*/
173 const T_FCT BLOC_BCCHN_TOP[] =
174 {
175 {l1s_ctrl_msagc,BCCHN_TOP,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
176 {NULL,NO_PAR,NO_PAR}, // frame 2
177 {l1s_read_msagc,BCCHN_TOP,NO_PAR},{l1s_ctrl_nnb,BCCHN_TOP,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 3
178 {NULL,NO_PAR,NO_PAR}, // frame 4
179 {NULL,NO_PAR,NO_PAR}, // frame 5
180 {NULL,NO_PAR,NO_PAR}, // frame 6
181 {NULL,NO_PAR,NO_PAR}, // frame 7
182 {NULL,NO_PAR,NO_PAR}, // frame 8
183 {l1s_read_nnb,BCCHN_TOP,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 9
184 };
185
186 /*----------------------------------------------------*/
187 /* TASK: Neighbour Cell SYStem info reading. */
188 /* for packet transfer mode */
189 /*----------------------------------------------------*/
190 /* C W W W W W R -> all bursts */
191 /*----------------------------------------------------*/
192 #if (L1_GPRS)
193 const T_FCT BLOC_BCCHN_TRAN[] =
194 {
195 {l1s_ctrl_nnb,BCCHN_TRAN,NO_PAR},{NULL,NO_PAR,NO_PAR}, // frame 1
196 {NULL,NO_PAR,NO_PAR}, // frame 2
197 {NULL,NO_PAR,NO_PAR}, // frame 3
198 {NULL,NO_PAR,NO_PAR}, // frame 4
199 {NULL,NO_PAR,NO_PAR}, // frame 5
200 {NULL,NO_PAR,NO_PAR}, // frame 6
201 {l1s_read_nnb,BCCHN_TRAN,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 7
202 };
203 #endif
204
205 /*----------------------------------------------------*/
206 /* TASK: Synchronization (camp on a new serving cell) */
207 /*----------------------------------------------------*/
208 const T_FCT BLOC_SYNCHRO[] =
209 {
210 {l1s_new_synchro,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 1
211 };
212
213
214 /*----------------------------------------------------*/
215 /* TASK: ADC measurement in CS_MODE0 */
216 /* C */
217 /* the ADC is performed inside the frame and the */
218 /* result is red in the same frame due to an */
219 /* Interrupt (handle by Riviera) */
220 /*----------------------------------------------------*/
221 const T_FCT BLOC_ADC[] =
222 {
223 {l1s_ctrl_ADC,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 1
224 };
225
226
227 /*----------------------------------------------------*/
228 /* TASK: Short Message Service Cell Broadcast */
229 /*----------------------------------------------------*/
230 /* frame 1 2 3 4 5 6 */
231 /* | | | | | | */
232 /* C W R | | | -> hopp. + burst 1 */
233 /* C W R | | -> hopp. + burst 2 */
234 /* C W R | -> hopp. + burst 3 */
235 /* C W R -> hopp. + burst 4 + Synch back*/
236 /*----------------------------------------------------*/
237 const T_FCT BLOC_SMSCB[] =
238 {
239 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_ctrl_smscb, SMSCB,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
240 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_ctrl_smscb, SMSCB,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
241 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_read_snb_dl,SMSCB,BURST_1},{l1s_ctrl_smscb, SMSCB,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
242 {l1s_hopping_algo,SMSCB,NO_PAR},{l1s_read_snb_dl,SMSCB,BURST_2},{l1s_ctrl_smscb, SMSCB,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
243 {l1s_read_snb_dl,SMSCB,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
244 {l1s_read_snb_dl,SMSCB,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
245 };
246
247 /*----------------------------------------------------*/
248 /* TASK: Normal Paging... */
249 /*----------------------------------------------------*/
250 /* frame 1 2 3 4 5 6 */
251 /* | | | | | | */
252 /* C W R | | | -> burst 1 */
253 /* C W R | | -> burst 2 */
254 /* C W R | -> burst 3 */
255 /* C W R -> burst 4 */
256 /*----------------------------------------------------*/
257 const T_FCT BLOC_NP[] =
258 {
259 {l1s_ctrl_snb_dl,NP,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
260 {l1s_ctrl_snb_dl,NP,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
261 {l1s_read_snb_dl,NP,BURST_1},{l1s_ctrl_snb_dl,NP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
262 {l1s_read_snb_dl,NP,BURST_2},{l1s_ctrl_snb_dl,NP,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
263 {l1s_read_snb_dl,NP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
264 {l1s_read_snb_dl,NP,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
265 };
266
267 /*----------------------------------------------------*/
268 /* TASK: Extended Paging task... */
269 /*----------------------------------------------------*/
270 /* frame 1 2 3 4 5 6 */
271 /* | | | | | | */
272 /* C W R | | | -> burst 1 */
273 /* C W R | | -> burst 2 */
274 /* C W R | -> burst 3 */
275 /* C W R -> burst 4 */
276 /*----------------------------------------------------*/
277 const T_FCT BLOC_EP[] =
278 {
279 {l1s_ctrl_snb_dl,EP,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
280 {l1s_ctrl_snb_dl,EP,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
281 {l1s_read_snb_dl,EP,BURST_1},{l1s_ctrl_snb_dl,EP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
282 {l1s_read_snb_dl,EP,BURST_2},{l1s_ctrl_snb_dl,EP,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
283 {l1s_read_snb_dl,EP,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
284 {l1s_read_snb_dl,EP,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
285 };
286
287 /*----------------------------------------------------*/
288 /* TASK: All CCCH reading task... */
289 /*----------------------------------------------------*/
290 /* frame 1 2 3 4 5 6 */
291 /* | | | | | | */
292 /* C W R | | | -> burst 1 */
293 /* C W R | | -> burst 2 */
294 /* C W R | -> burst 3 */
295 /* C W R -> burst 4 */
296 /*----------------------------------------------------*/
297 const T_FCT BLOC_ALLC[] =
298 {
299 {l1s_ctrl_snb_dl,ALLC,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
300 {l1s_ctrl_snb_dl,ALLC,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
301 {l1s_read_snb_dl,ALLC,BURST_1},{l1s_ctrl_snb_dl,ALLC,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
302 {l1s_read_snb_dl,ALLC,BURST_2},{l1s_ctrl_snb_dl,ALLC,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
303 {l1s_read_snb_dl,ALLC,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
304 {l1s_read_snb_dl,ALLC,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
305 };
306
307 /*----------------------------------------------------*/
308 /* TASK: SDCCH */
309 /*----------------------------------------------------*/
310 /* frame 1 2 3 4 5 6 */
311 /* | | | | | | */
312 /* C W R | | | -> burst 1 */
313 /* C W R | | -> burst 2 */
314 /* C W R | -> burst 3 */
315 /* C W R -> burst 4 */
316 /*----------------------------------------------------*/
317 const T_FCT BLOC_DDL[] =
318 {
319 {l1s_hopping_algo,DDL,NO_PAR},{l1s_ctrl_snb_dl, DDL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
320 {l1s_hopping_algo,DDL,NO_PAR},{l1s_ctrl_snb_dl, DDL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
321 {l1s_hopping_algo,DDL,NO_PAR},{l1s_read_dedic_dl,DDL,BURST_1},{l1s_ctrl_snb_dl, DDL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
322 {l1s_hopping_algo,DDL,NO_PAR},{l1s_read_dedic_dl,DDL,BURST_2},{l1s_ctrl_snb_dl, DDL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
323 {l1s_read_dedic_dl,DDL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
324 {l1s_read_dedic_dl,DDL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
325 };
326
327 const T_FCT BLOC_DUL[] =
328 {
329 {l1s_hopping_algo,DUL,NO_PAR},{l1s_ctrl_snb_ul, DUL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
330 {l1s_hopping_algo,DUL,NO_PAR},{l1s_ctrl_snb_ul, DUL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
331 {l1s_hopping_algo,DUL,NO_PAR},{l1s_read_tx_result,DUL,BURST_1},{l1s_ctrl_snb_ul, DUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
332 {l1s_hopping_algo,DUL,NO_PAR},{l1s_read_tx_result,DUL,BURST_2},{l1s_ctrl_snb_ul, DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
333 {l1s_read_tx_result,DUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
334 {l1s_read_tx_result,DUL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
335 };
336
337 const T_FCT BLOC_ADL[] =
338 {
339 {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl, ADL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
340 {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl, ADL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
341 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl,ADL,BURST_1},{l1s_ctrl_snb_dl, ADL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
342 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl,ADL,BURST_2},{l1s_ctrl_snb_dl, ADL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
343 {l1s_read_dedic_dl,ADL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
344 {l1s_read_dedic_dl,ADL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
345 };
346
347 const T_FCT BLOC_AUL[] =
348 {
349 {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul, AUL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
350 {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul, AUL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
351 {l1s_hopping_algo,AUL,NO_PAR},{l1s_read_tx_result,AUL,BURST_1},{l1s_ctrl_snb_ul, AUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 3
352 {l1s_hopping_algo,AUL,NO_PAR},{l1s_read_tx_result,AUL,BURST_2},{l1s_ctrl_snb_ul, AUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
353 {l1s_read_tx_result,AUL,BURST_3},{NULL,NO_PAR,NO_PAR}, // frame 5
354 {l1s_read_tx_result,AUL,BURST_4},{NULL,NO_PAR,NO_PAR} // frame 6
355 };
356
357 /*-----------------------------------------------------------------------*/
358 /* SPECIAL CASE: (ADL4,DDL4),(ADL5,DDL5),(ADL6,DDL6). */
359 /*-----------------------------------------------------------------------*/
360 /* frame 1 2 3 4 5 6 7 */
361 /* | | | | | | | */
362 /* C(DUL,1) W(DUL,1) R(DUL,1) | | | | */
363 /* C(ADL,1) W(ADL,1) R(ADL,1) | | | */
364 /* C(DUL,2) W(DUL,2) R(DUL,2) | | | */
365 /* C(ADL,2) W(ADL,2) R(ADL,2) | | */
366 /* C(DUL,3) W(DUL,3) R(DUL,3) | | */
367 /* C(ADL,3) W(ADL,3) R(ADL,3) | */
368 /* C(DUL,4) W(DUL,4) R(DUL,4) | */
369 /* C(ADL,4) W(ADL,4) R(ADL,4) */
370 /*-----------------------------------------------------------------------*/
371 const T_FCT BLOC_DUL_ADL_MIXED[] =
372 {
373 {l1s_hopping_algo,AUL,NO_PAR},{l1s_ctrl_snb_ul, DUL,BURST_1}, {NULL,NO_PAR,NO_PAR}, // frame 1
374 {l1s_hopping_algo,ADL,NO_PAR},{l1s_ctrl_snb_dl, ADL,BURST_1},{l1s_ctrl_snb_ul, DUL,BURST_2}, {NULL,NO_PAR,NO_PAR}, // frame 2
375 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_tx_result,DUL,BURST_1},{l1s_ctrl_snb_dl, ADL,BURST_2},{l1s_ctrl_snb_ul, DUL,BURST_3}, {NULL,NO_PAR,NO_PAR}, // frame 3
376 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl, ADL,BURST_1},{l1s_read_tx_result,DUL,BURST_2},{l1s_ctrl_snb_dl, ADL,BURST_3},{l1s_ctrl_snb_ul, DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 4
377 {l1s_hopping_algo,ADL,NO_PAR},{l1s_read_dedic_dl, ADL,BURST_2},{l1s_read_tx_result,DUL,BURST_3},{l1s_ctrl_snb_dl, ADL,BURST_4}, {NULL,NO_PAR,NO_PAR}, // frame 5
378 {l1s_read_dedic_dl,ADL,BURST_3},{l1s_read_tx_result,DUL,BURST_4},{NULL,NO_PAR,NO_PAR}, // frame 6
379 {l1s_read_dedic_dl,ADL,BURST_4}, {NULL,NO_PAR,NO_PAR} // frame 7
380 };
381
382 /*----------------------------------------------------*/
383 /* ABORT: used to abort a running task when a new */
384 /* task with higher priority occurs. */
385 /*----------------------------------------------------*/
386 const T_FCT BLOC_ABORT[] =
387 {
388 {l1s_abort,NO_PAR,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
389 {NULL,NO_PAR,NO_PAR}, // frame 2
390 {l1s_read_dummy,NO_PAR,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 3
391 };
392
393 /*----------------------------------------------------*/
394 /* TASK: RACH in access mode... */
395 /*----------------------------------------------------*/
396 const T_FCT BLOC_RAACC[] =
397 {
398 {l1s_ctrl_rach,RAACC,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
399 {NULL,NO_PAR,NO_PAR}, // frame 2
400 {l1s_read_tx_result,RAACC,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 3
401 };
402
403 /*----------------------------------------------------*/
404 /* TASK: TCH */
405 /*----------------------------------------------------*/
406 /* C W R */
407 /*----------------------------------------------------*/
408 const T_FCT BLOC_TCHTF[] =
409 {
410 {l1s_hopping_algo,TCHTF,NO_PAR},{l1s_ctrl_tchtf,TCHTF,NO_PAR}, {NULL,NO_PAR}, // frame 1
411 {NULL,NO_PAR}, // frame 2
412 {l1s_read_dedic_dl,TCHTF,NO_PAR}, {NULL,NO_PAR} // frame 3
413 };
414
415 const T_FCT BLOC_TCHTH[] =
416 {
417 {l1s_hopping_algo,TCHTH,NO_PAR},{l1s_ctrl_tchth,TCHTH,NO_PAR}, {NULL,NO_PAR}, // frame 1
418 {NULL,NO_PAR}, // frame 2
419 {l1s_read_dedic_dl,TCHTH,NO_PAR}, {NULL,NO_PAR} // frame 3
420 };
421
422 const T_FCT BLOC_TCHD[] =
423 {
424 {l1s_ctrl_tchtd,TCHD,NO_PAR}, {NULL,NO_PAR}, // frame 1
425 {NULL,NO_PAR}, // frame 2
426 {l1s_read_dummy,TCHD,NO_PAR}, {NULL,NO_PAR} // frame 3
427 };
428
429 const T_FCT BLOC_TCHA[] =
430 {
431 {l1s_hopping_algo,TCHA,NO_PAR},{l1s_ctrl_tcha,TCHA,NO_PAR}, {NULL,NO_PAR}, // frame 1
432 {NULL,NO_PAR}, // frame 2
433 {l1s_read_dedic_dl,TCHA,NO_PAR}, {NULL,NO_PAR} // frame 3
434 };
435
436 /*----------------------------------------------------*/
437 /* TASK: Frequency Burst search in dedic/SDCCH... */
438 /*----------------------------------------------------*/
439 const T_FCT BLOC_FB51[] =
440 {
441 {l1s_ctrl_fb,FB51,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
442 {NULL,NO_PAR,NO_PAR}, // frame 2
443 {l1s_read_mon_result,FB51, 1},{NULL,NO_PAR,NO_PAR}, // frame 3
444 {l1s_read_mon_result,FB51, 2},{NULL,NO_PAR,NO_PAR}, // frame 4
445 {l1s_read_mon_result,FB51, 3},{NULL,NO_PAR,NO_PAR}, // frame 5
446 {l1s_read_mon_result,FB51, 4},{NULL,NO_PAR,NO_PAR}, // frame 6
447 {l1s_read_mon_result,FB51, 5},{NULL,NO_PAR,NO_PAR}, // frame 7
448 {l1s_read_mon_result,FB51, 6},{NULL,NO_PAR,NO_PAR}, // frame 8
449 {l1s_read_mon_result,FB51, 7},{NULL,NO_PAR,NO_PAR}, // frame 9
450 {l1s_read_mon_result,FB51, 8},{NULL,NO_PAR,NO_PAR}, // frame 10
451 {l1s_read_mon_result,FB51, 9},{NULL,NO_PAR,NO_PAR}, // frame 11
452 {l1s_read_mon_result,FB51,10},{NULL,NO_PAR,NO_PAR}, // frame 12
453 {l1s_read_mon_result,FB51,11},{NULL,NO_PAR,NO_PAR}, // frame 13
454 {l1s_read_mon_result,FB51,12},{NULL,NO_PAR,NO_PAR} // frame 14
455 };
456
457 /*----------------------------------------------------*/
458 /* TASK: SB51, Synchro Burst reading. Dedic/SDCCH. */
459 /*----------------------------------------------------*/
460 /* C W W R -> SB */
461 /*----------------------------------------------------*/
462 const T_FCT BLOC_SB51[] =
463 {
464 {l1s_ctrl_sbgen,SB51,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
465 {NULL,NO_PAR,NO_PAR}, // frame 2
466 {NULL,NO_PAR,NO_PAR}, // frame 3
467 {l1s_read_mon_result,SB51,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4
468 };
469
470 /*----------------------------------------------------*/
471 /* TASK: SBCNF51, Synchro confirmation. Dedic/SDCCH. */
472 /*----------------------------------------------------*/
473 /* C W W R -> SBCONF */
474 /*----------------------------------------------------*/
475 const T_FCT BLOC_SBCNF51[] =
476 {
477 {l1s_ctrl_sbgen,SBCNF51,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
478 {NULL,NO_PAR,NO_PAR}, // frame 2
479 {NULL,NO_PAR,NO_PAR}, // frame 3
480 {l1s_read_mon_result,SBCNF51,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4
481 };
482
483 /*----------------------------------------------------*/
484 /* TASK: FB26, Frequency Burst search in dedic/TCH... */
485 /*----------------------------------------------------*/
486 /* C W W R */
487 /*----------------------------------------------------*/
488 const T_FCT BLOC_FB26[] =
489 {
490 {l1s_ctrl_fb26,FB26,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
491 {NULL,NO_PAR,NO_PAR}, // frame 2
492 {NULL,NO_PAR,NO_PAR}, // frame 3
493 {l1s_read_mon_result,FB26,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 4
494 };
495
496 /*----------------------------------------------------*/
497 /* TASK: SB26, Synchro. Burst reading in dedic/TCH... */
498 /*----------------------------------------------------*/
499 /* C W W W R */
500 /*----------------------------------------------------*/
501 const T_FCT BLOC_SB26[] =
502 {
503 {l1s_ctrl_sb26,SB26,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
504 {NULL,NO_PAR,NO_PAR}, // frame 2
505 {NULL,NO_PAR,NO_PAR}, // frame 3
506 {NULL,NO_PAR,NO_PAR}, // frame 4
507 {l1s_read_mon_result,SB26,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 5
508 };
509
510 /*----------------------------------------------------*/
511 /* TASK: SBCNF26, Synchro. Burst reading in dedic/TCH.*/
512 /*----------------------------------------------------*/
513 /* C W W W R */
514 /*----------------------------------------------------*/
515 const T_FCT BLOC_SBCNF26[] =
516 {
517 {l1s_ctrl_sb26,SBCNF26,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
518 {NULL,NO_PAR,NO_PAR}, // frame 2
519 {NULL,NO_PAR,NO_PAR}, // frame 3
520 {NULL,NO_PAR,NO_PAR}, // frame 4
521 {l1s_read_mon_result,SBCNF26,NO_PAR},{NULL,NO_PAR,NO_PAR} // frame 5
522 };
523
524 /*----------------------------------------------------*/
525 /* TASK: HWTEST after power-on... */
526 /*----------------------------------------------------*/
527 const T_FCT BLOC_HWTEST[] =
528 {
529 {l1s_ctrl_hwtest,HWTEST,NO_PAR}, {NULL,NO_PAR,NO_PAR}, // frame 1
530 {NULL,NO_PAR,NO_PAR}, // frame 2
531 {NULL,NO_PAR,NO_PAR}, // frame 3
532 {l1s_read_hwtest,HWTEST,NO_PAR}, {NULL,NO_PAR,NO_PAR} // frame 4
533 };
534
535 #else
536 extern T_FCT BLOC_FB[];
537 extern T_FCT BLOC_SB[];
538 extern T_FCT BLOC_BCCHS[];
539 extern T_FCT BLOC_BCCHN[];
540 extern T_FCT BLOC_BCCHN_TOP[];
541 extern T_FCT BLOC_EP[];
542 extern T_FCT BLOC_SYNCHRO[];
543 extern T_FCT BLOC_ADC[];
544 extern T_FCT BLOC_SMSCB[];
545 extern T_FCT BLOC_NP[];
546 extern T_FCT BLOC_ALLC[];
547 extern T_FCT BLOC_DDL[];
548 extern T_FCT BLOC_DUL[];
549 extern T_FCT BLOC_ADL[];
550 extern T_FCT BLOC_AUL[];
551 extern T_FCT BLOC_DUL_ADL_MIXED[];
552 extern T_FCT BLOC_ABORT[];
553 extern T_FCT BLOC_RAACC[];
554 extern T_FCT BLOC_TCHTF[];
555 extern T_FCT BLOC_TCHTH[];
556 extern T_FCT BLOC_TCHTD[];
557 extern T_FCT BLOC_TCHA[];
558 extern T_FCT BLOC_FB51[];
559 extern T_FCT BLOC_SB51[];
560 extern T_FCT BLOC_SBCNF51[];
561 extern T_FCT BLOC_FB26[];
562 extern T_FCT BLOC_SB26[];
563 extern T_FCT BLOC_SBCNF26[];
564 extern T_FCT BLOC_HWTEST[];
565
566 #if (L1_GPRS)
567 extern T_FCT BLOC_BCCHN_TRAN[];
568 #endif
569
570 #endif
571
572
573
574