FreeCalypso > hg > fc-tourmaline
annotate src/g23m-gsm/alr2/alr_cbch.c @ 291:a72feaed133a
PWT buzzer driver: conditionalize on TARGET_HAS_BUZZER
Here we add a new target config preprocessor symbol TARGET_HAS_BUZZER,
currently defined for c11x and c139; later we also expect to have it
on for FC Venus, and in FC Magnetite we are going to turn it on for
target dsample, just for the sake of completeness and philosophical
correctness.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 26 Mar 2022 19:31:18 +0000 |
parents | 3a14ee9a9843 |
children |
rev | line source |
---|---|
2
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 +----------------------------------------------------------------------------- |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 | Project : GSM-PS |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 | Modul : ALR_CBCH |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 +----------------------------------------------------------------------------- |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 | Copyright 2002 Texas Instruments Berlin, AG |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 | All rights reserved. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 | This file is confidential and a trade secret of Texas |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 | Instruments Berlin, AG |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 | The receipt of or possession of this file does not convey |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 | any rights to reproduce or disclose its contents or to |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 | manufacture, use, or sell anything it may describe, in |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 | whole, or in part, without the specific written consent of |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 | Texas Instruments Berlin, AG. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 +----------------------------------------------------------------------------- |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 | Purpose : This Modul defines the SDL process CBCH_control. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 +----------------------------------------------------------------------------- |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 #ifndef ALR_CBCH_C |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #define ALR_CBCH_C |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 #define ENTITY_PL |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 /*==== INCLUDES ===================================================*/ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #include <string.h> |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 #include <stdlib.h> |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 #include <ctype.h> |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 #include "typedefs.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 #include "pconst.cdg" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 #include "mconst.cdg" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 #include "message.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 #include "ccdapi.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 #include "vsi.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 #include "custom.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 #include "gsm.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 #include "prim.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 #include "cnf_alr.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 #include "mon_alr.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 #include "pei.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 #include "tok.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 #include "pcm.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 #ifdef GPRS |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 #include "alr_gprs.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 #endif |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 #include "alr.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 #include "alr_em.h" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 /*==== EXPORT =====================================================*/ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 /*==== PRIVAT =====================================================*/ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 LOCAL void cb_read_cbch (UBYTE flags); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 LOCAL void cb_check_ci_lai_plmn (void); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 LOCAL void cb_remove_message (USHORT i); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 LOCAL void cb_first_block (UBYTE status); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 LOCAL UBYTE* cb_create_schedule_entries (UBYTE* msg_ptr, BOOL read_old_msg); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 LOCAL void cb_create_schedule_map (UBYTE old_cb_msg); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 LOCAL UBYTE cb_check_old_msg (void); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 LOCAL UBYTE cb_check_data_coding_scheme(UBYTE dcs_id); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 LOCAL UBYTE cb_check_message_id (USHORT msg_id); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 LOCAL void cb_store_cbch_msg (void); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 LOCAL void cb_error_ind (void); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 LOCAL void cb_cbch_message (UBYTE length); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 LOCAL void cb_null_message (void); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 LOCAL void cb_schedule_message (void); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 LOCAL void cb_next_scheduled_msg (void); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 LOCAL UBYTE cb_sat_check_message_id (USHORT msg_id); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 LOCAL void cb_sat_cbch_message (UBYTE length); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 LOCAL void cb_stop_next_blocks (void); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 LOCAL void cb_read_next_3_blocks(void); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 void set_cbch_state( UBYTE extended, UBYTE new_state); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 UBYTE get_cbch_state( UBYTE extended); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 #if defined(FF_HOMEZONE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 LOCAL UBYTE cb_check_homezone (UBYTE length); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 #endif /* FF_HOMEZONE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 * support indication of geographical scope change to MMI |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 * it is important that these defitions match the GS definition from GSM 03.41 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 * the MMI uses this also to compare with real CBCH messages! |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 #define CB_GEOGR_CHANGE_NONE 0x00 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 #define CB_GEOGR_CHANGE_CELL 0xC0 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 #define CB_GEOGR_CHANGE_LAC 0x80 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 #define CB_GEOGR_CHANGE_PLMN 0x40 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 #define CB_GEOGR_SCOPE_CELLI 0x00 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90 #define CB_GEOGR_SCOPE_PLMN 0x01 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 #define CB_GEOGR_SCOPE_LAC 0x02 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92 #define CB_GEOGR_SCOPE_CELLN 0x03 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 #define CBCH_NO_MSG 0 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 #define CBCH_NORM_MSG 1 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 #define CBCH_SCHEDULE_MSG 2 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 #define CBCH_SAT_MSG 3 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 #define CBCH_LAST_BLOCK 0x10 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 #define CBCH_BLOCK_0 0 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 #define CBCH_BLOCK_1 1 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 #define CBCH_BLOCK_2 2 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 #define CBCH_BLOCK_3 3 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 #define CBCH_FIRST_SCHED_MSG 8 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105 #define CBCH_NULL_MSG 0x0F |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 #define CBCH_SCHED 2 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 #define MAX_UPDATE_NO 16 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 #define MAX_UPDATE_NO_DIFF 8 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 #if 1 || defined (WIN32) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 #define TRACING |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 #endif |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 #define CB_SERIAL_NO(ph) ((USHORT)\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 ((((T_CBMSG_HEADER*)(ph))->serial_no1)<<8)+\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117 (((T_CBMSG_HEADER*)(ph))->serial_no2)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119 #define CB_GS_CODE(ph) (((UBYTE)(((T_CBMSG_HEADER*)(ph))->serial_no1))>>6) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121 #define CB_MSG_CODE(ph) ((USHORT)\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122 (((((T_CBMSG_HEADER*)(ph))->serial_no1)&0x3f)<<4)+\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123 ((((T_CBMSG_HEADER*)(ph))->serial_no2)>>4)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 #define CB_UPDATE_NO(ph) ((((T_CBMSG_HEADER*)(ph))->serial_no2)&0x0f) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 #define CB_MESSAGE_ID(ph) ((USHORT)\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 ((((T_CBMSG_HEADER*)(ph))->msg_id3)<<8)+\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 (((T_CBMSG_HEADER*)(ph))->msg_id4)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 #if 0 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 #define CB_MESSAGE_ID(ph) ((((USHORT)(((T_CBMSG_HEADER*)(ph))->msg_id3))<<8)+\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 ((USHORT)(((T_CBMSG_HEADER*)(ph))->msg_id4))) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 #endif /* 0 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 #define CB_DCS(ph) (((T_CBMSG_HEADER*)(ph))->dcs) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137 #define CB_PAGE(ph) (((T_CBMSG_HEADER*)(ph))->page>>4) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 #define CB_PAGETOTAL(ph) (((T_CBMSG_HEADER*)(ph))->page&0x0f) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 #if defined (TRACING) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 #define ALR_TRACE_CB(a) TRACE_EVENT("CBCH: " a) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 #define ALR_TRACE_CB_MODUS(m) TRACE_EVENT_P1("CBCH: modus=%d", m) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 #define ALR_TRACE_CB_ERROR(e) TRACE_EVENT_P1("CBCH: error=%d", e) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 #define ALR_TRACE_CB_BLOCK_NO(b) TRACE_EVENT_P2("CBCH: block=%02x no=%u", b, b&0x0f) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146 #define ALR_TRACE_CB_MSGHEAD(ph) if (CB_MSG_CODE(ph) < 1000) {\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 TRACE_EVENT_P7("CBCH ID=%3u, gs=%u, msg=%4u, upd=%u, dcs=%02x, p=%u/%u",\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 CB_MESSAGE_ID(ph), CB_GS_CODE(ph), \ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 CB_MSG_CODE(ph), CB_UPDATE_NO(ph), \ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 CB_DCS(ph), CB_PAGE(ph), CB_PAGETOTAL(ph));\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 }else{\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 TRACE_EVENT_P7("CBCH ID=%3u, gs=%u, msg=%04x, upd=%u, dcs=%02x, p=%u/%u",\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153 CB_MESSAGE_ID(ph), CB_GS_CODE(ph), \ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 CB_MSG_CODE(ph), CB_UPDATE_NO(ph), \ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155 CB_DCS(ph), CB_PAGE(ph), CB_PAGETOTAL(ph));\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158 #define ALR_TRACE_CB_MSGID(m) TRACE_EVENT_P1("CBCH: ID=%u", m) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 #define ALR_TRACE_CB_START_READ(f) TRACE_EVENT_P1("CBCH: Start Read %d", f) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 #define ALR_TRACE_CB_SCHEDULE(a1,a2) TRACE_EVENT_P2("CBCH: schedule i=%d result=%d", a1,a2) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 #define ALR_TRACE_CB_HZREQ(a1,a2) TRACE_EVENT_P2("CBCH: Homezone ID=%u, t=%u", a1,a2) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 #define ALR_TRACE_CB_SCOPE_CHANGE(i,s) TRACE_EVENT_P2 ("CBCH: Geogr. scope change %u, deleting msg of scope %u",\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 i,s); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 #else /* TRACING */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 #define ALR_TRACE_CB(a) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 #define ALR_TRACE_CB_MODUS(m) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 #define ALR_TRACE_CB_ERROR(e) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 #define ALR_TRACE_CB_BLOCK_NO(b) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 #define ALR_TRACE_CB_MSGID(m) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 #define ALR_TRACE_CB_START_READ(f) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 #define ALR_TRACE_CB_SCHEDULE(a1,a2) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 #define ALR_TRACE_CB_HZREQ(a1,a2) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 #endif /* TRACING */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 /*==== VARIABLES ==================================================*/ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176 /*==== FUNCTIONS ==================================================*/ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 #if 0 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 #if 0 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 #define TRACE_ALIGN_P(ps,m,t) TRACE_EVENT_P5(" %08x %3u.%u %08x=%u " \ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 "T_" #t " " #m, \ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182 (BYTE*)&(m), (BYTE*)&(m)-(BYTE*)ps, \ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 sizeof (m), |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 sizeof (m) > 1 ? (USHORT)(m) : (UBYTE)(m), m \ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 #else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 #define TRACE_ALIGN_P(ps,m,t) TRACE_EVENT_P4 (" %08x %3u.%u %08x " \ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188 "T_" #t " " #m, \ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 (BYTE*)&(m), (BYTE*)&(m)-(BYTE*)ps, \ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 sizeof (m), m\ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 #endif |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 int test_alignment (T_CBMSG_HEADER *ph) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 TRACE_ALIGN_P (ph, ph->serial_no1, CBMSG_HEADER); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 TRACE_ALIGN_P (ph, ph->serial_no2, CBMSG_HEADER); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 TRACE_ALIGN_P (ph, ph->msg_id3, CBMSG_HEADER); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 TRACE_ALIGN_P (ph, ph->msg_id4, CBMSG_HEADER); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199 TRACE_ALIGN_P (ph, ph->dcs, CBMSG_HEADER); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 TRACE_ALIGN_P (ph, ph->page, CBMSG_HEADER); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202 #endif |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 | STATE : code ROUTINE : cb_init | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 PURPOSE : Initialize CBCH Control Process. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213 GLOBAL void cb_init (void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 ALR_TRACE_CB ("cb_init()"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 alr_data->state[STATE_NORMAL_CBCH] = CBCH_NULL; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 alr_data->state[STATE_EXT_CBCH] = CBCH_NULL; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 pcbch->modus = NOT_PRESENT_8BIT; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 pcbch->old_cbch_msg.cnt = 0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 #if defined(FF_HOMEZONE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 pcbch->homezone = CBCH_HZ_OFF; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 pcbch->hz_timeout = 0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 #endif /* FF_HOMEZONE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 | STATE : code ROUTINE : cb_stop | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234 PURPOSE : Stop CBCH Control Process. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237 GLOBAL void cb_stop (void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240 UBYTE normal_cbch, extended_cbch; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
241 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
242 normal_cbch = GET_STATE(STATE_NORMAL_CBCH); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
243 extended_cbch = GET_STATE(STATE_EXT_CBCH); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
244 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
245 #if defined(FF_HOMEZONE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
246 if (pcbch->homezone EQ CBCH_HZ_PENDING) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
247 return; /* don´t stop if homezone request is pending */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
248 #endif /* FF_HOMEZONE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
249 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
250 if ( |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
251 (normal_cbch NEQ CBCH_NULL AND normal_cbch NEQ CBCH_IDLE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
252 OR |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
253 (extended_cbch NEQ CBCH_NULL AND extended_cbch NEQ CBCH_IDLE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
254 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
255 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
256 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
257 * if CBCH process is really active, initialize |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
258 * CBCH process and stop CBCH process in layer 1. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
259 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
260 pcbch->msg_type = CBCH_NO_MSG; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
261 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
262 SET_STATE(STATE_NORMAL_CBCH, CBCH_IDLE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
263 SET_STATE(STATE_EXT_CBCH, CBCH_IDLE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
264 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
265 ALR_EM_STOP_CBCH_READING; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
266 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
267 ma_cb_stop_cbch_req(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
268 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
269 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
270 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
271 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
272 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
273 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
274 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
275 | STATE : code ROUTINE : cb_start | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
276 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
277 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
278 PURPOSE : Re-configure layer 1 and go back to CBCH reading without |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
279 scheduling information. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
280 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
281 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
282 LOCAL void cb_start_no_drx_reading (UBYTE config) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
283 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
284 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
285 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
286 if (config) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
287 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
288 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
289 * configure layer 1 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
290 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
291 PALLOC (config_cbch, MPHC_CONFIG_CBCH_REQ); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
292 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
293 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
294 * copy the stored configuration received earlier from RR and send to layer 1. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
295 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
296 memcpy (config_cbch, &pcbch->mphc_config_cbch, sizeof (T_MPHC_CONFIG_CBCH_REQ)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
297 ma_cb_config_cbch(config_cbch); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
298 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
299 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
300 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
301 * start reading in layer 1 for normal and extended CBCH. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
302 * The initial mode is no Scheduling information available. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
303 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
304 cb_read_cbch (CBCH_NO_SCHED | CBCH_READ_NORM); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
305 cb_read_cbch (CBCH_NO_SCHED | CBCH_READ_EXT); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
306 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
307 SET_STATE(STATE_NORMAL_CBCH, CBCH_NO_DRX); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
308 SET_STATE(STATE_EXT_CBCH, CBCH_NO_DRX); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
309 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
310 #if defined(FF_HOMEZONE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
311 if (pcbch->homezone EQ CBCH_HZ_IDLE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
312 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
313 pcbch->homezone = CBCH_HZ_PENDING; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
314 /* start timer new */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
315 if (pcbch->hz_timeout) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
316 TIMERSTART(TIM_HOMEZONE, pcbch->hz_timeout); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
317 ALR_TRACE_CB ("HOMEZONE is pending"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
318 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
319 #endif /* FF_HOMEZONE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
320 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
321 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
322 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
323 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
324 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
325 | STATE : code ROUTINE : cb_start | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
326 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
327 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
328 PURPOSE : Start CBCH Control Process. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
329 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
330 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
331 GLOBAL void cb_start (void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
332 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
333 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
334 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
335 if ( (GET_STATE(STATE_NORMAL_CBCH) EQ CBCH_IDLE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
336 AND ( (pcbch->modus NEQ NOT_PRESENT_8BIT) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
337 OR (pcbch->sat_enabled) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
338 #if defined(FF_HOMEZONE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
339 OR (pcbch->homezone EQ CBCH_HZ_IDLE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
340 #endif /* FF_HOMEZONE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
341 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
342 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
343 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
344 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
345 * if a definition of needed message identifiers |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
346 * and data coding schemes is available, then configure |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
347 * layer 1 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
348 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
349 ALR_TRACE_CB ("restart"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
350 cb_start_no_drx_reading (TRUE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
351 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
352 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
353 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
354 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
355 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
356 | PROJECT : GSM-PS (6103) MODULE : TIL_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
357 | STATE : code ROUTINE : cb_mph_cbch_req | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
358 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
359 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
360 PURPOSE : Configuration of the layer 1 process for CBCH. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
361 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
362 The compile-switch is not defined with the standard TI-layer 1. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
363 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
364 But there shall be a little modification possible (and it is |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
365 done by some source code customer of layer 1), which does not |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
366 need any storing in ALR. Then the compile switch must be set |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
367 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
368 REMARK : Setting of compile switch has problems with function cbch_start ??? |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
369 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
370 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
371 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
372 GLOBAL void cb_mph_cbch_req (T_cbch * cbch) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
373 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
374 USHORT i; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
375 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
376 T_cbch_desc *pcbch_desc = &pcbch->mphc_config_cbch.cbch_desc; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
377 T_chan_sel *pchan_sel = &pcbch_desc->chan_sel; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
378 T_cbch_freq_list *pcbch_freq_list = &pcbch->mphc_config_cbch.cbch_freq_list; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
379 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
380 ALR_TRACE_CB ("MPH_CBCH_REQ"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
381 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
382 ALR_EM_CONFIGURE_CBCH_CHANNEL; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
383 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
384 #if defined(FF_HOMEZONE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
385 if (pcbch->homezone NEQ CBCH_HZ_OFF) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
386 pcbch->homezone = CBCH_HZ_IDLE; /* starts HZ request again */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
387 #endif /* FF_HOMEZONE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
388 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
389 /* check which messages have to be deleted |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
390 * even if the new cell has CBCH disabled! We still need to |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
391 * to delete the corresponding messages and inform the MMI! |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
392 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
393 if (pcbch->modus EQ CBCH_ACCEPT) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
394 cb_check_ci_lai_plmn (); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
395 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
396 if (cbch->stat EQ STAT_ACT) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
397 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
398 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
399 * A CBCH channel is available |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
400 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
401 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
402 #if !defined (L1_STORES_CBCH_CONFIG) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
403 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
404 * Layer 1 does not store any CBCH configuration (default) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
405 * first set the channel configuration |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
406 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
407 if (cbch->h EQ H_FREQ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
408 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
409 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
410 * with frequency hopping, set hopping flag, maio, hsn and hopping list. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
411 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
412 pchan_sel->h = HOPPING; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
413 pchan_sel->rf_channel.maio = cbch->maio; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
414 pchan_sel->rf_channel.hsn = cbch->hsn; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
415 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
416 i=0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
417 pcbch_freq_list->rf_chan_cnt=0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
418 while ((i < 64) AND (cbch->ma[i] NEQ NOT_PRESENT_16BIT)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
419 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
420 pcbch_freq_list->rf_chan_no.radio_freq[i] = ARFCN_TO_L1(cbch->ma[i]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
421 i++; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
422 pcbch_freq_list->rf_chan_cnt++; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
423 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
424 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
425 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
426 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
427 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
428 * Layer 1 uses a union definition. This is not applicable for the Condat-SAP model. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
429 * Therefore the rf channel number is configured by maio and hsn. In general a Avoid the union !!! |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
430 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
431 pchan_sel->h = NO_HOPPING; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
432 pchan_sel->rf_channel.maio = (UBYTE)(ARFCN_TO_L1(cbch->arfcn) & 0xFF); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
433 pchan_sel->rf_channel.hsn = (UBYTE)((ARFCN_TO_L1(cbch->arfcn) >> 8) & 0xFF); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
434 memset (pcbch_freq_list, 0, sizeof (T_cbch_freq_list)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
435 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
436 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
437 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
438 * configure the CBCH channel type (SDCCH/8 or SDCCH/4) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
439 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
440 if (cbch->ch < CH_SDCCH_8_0) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
441 pcbch_desc->channel_type = CH_SDCCH_4; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
442 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
443 pcbch_desc->channel_type = CH_SDCCH_8; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
444 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
445 pcbch_desc->sub_channel = 0; /* not relevant */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
446 pcbch_desc->timeslot_no = cbch->tn; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
447 pcbch_desc->tsc = cbch->tsc; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
448 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
449 #else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
450 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
451 * Compile option set: L1 stores actual CBCH configuration. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
452 * So it is not necessary to store the configuration in ALR. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
453 * Just parse the configuration to Layer 1. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
454 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
455 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
456 PALLOC (config_cbch, MPHC_CONFIG_CBCH); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
457 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
458 if (cbch->h EQ H_FREQ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
459 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
460 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
461 * with frequency hopping, set hopping flag, maio, hsn and hopping list. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
462 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
463 config_cbch->cbch_desc.chan_sel.h = HOPPING; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
464 config_cbch->cbch_desc.chan_sel.rf_channel.maio = cbch->maio; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
465 config_cbch->cbch_desc.chan_sel.rf_channel.hsn = cbch->hsn; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
466 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
467 i=0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
468 config_cbch->cbch_freq_list.rf_chan_cnt=0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
469 while (cbch->ma[i] NEQ NOT_PRESENT_16BIT AND i < 64) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
470 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
471 config_cbch->cbch_freq_list.rf_chan_no.hop_chan[i] = ARFCN_TO_L1(cbch->ma[i]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
472 i++; config_cbch->cbch_freq_list.rf_chan_cnt++; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
473 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
474 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
475 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
476 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
477 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
478 * Layer 1 uses a union definition. This is not applicable for the Condat-SAP model. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
479 * Therefore the rf channel number is configured by maio and hsn. In general a Avoid the union !!! |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
480 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
481 config_cbch->cbch_desc.chan_sel.h = NO_HOPPING; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
482 config_cbch->cbch_desc.chan_sel.rf_channel.maio = ARFCN_TO_L1(cbch->arfcn) & 0xFF; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
483 config_cbch->cbch_desc.chan_sel.rf_channel.hsn = (ARFCN_TO_L1(cbch->arfcn) >> 8) & 0xFF; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
484 memset (&config_cbch->cbch_freq_list, 0, sizeof (T_cbch_freq_list)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
485 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
486 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
487 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
488 * configure the CBCH channel type (SDCCH/8 or SDCCH/4) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
489 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
490 if (cbch->ch < CH_SDCCH_8_0) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
491 config_cbch->cbch_desc.channel_type = CH_SDCCH_4; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
492 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
493 config_cbch->cbch_desc.channel_type = CH_SDCCH_8; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
494 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
495 config_cbch->cbch_desc.sub_channel = 0; /* not relevant */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
496 config_cbch->cbch_desc.timeslot_no = cbch->tn; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
497 config_cbch->cbch_desc.tsc = cbch->tsc; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
498 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
499 ma_cb_config_cbch(config_cbch); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
500 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
501 #endif |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
502 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
503 if ( (pcbch->modus NEQ NOT_PRESENT_8BIT) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
504 OR (pcbch->sat_enabled) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
505 #if defined(FF_HOMEZONE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
506 OR (pcbch->homezone EQ CBCH_HZ_IDLE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
507 #endif /* FF_HOMEZONE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
508 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
509 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
510 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
511 * MMI has requested data |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
512 * Start with NO_DRX mode |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
513 * Read each first CBCH block |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
514 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
515 #if defined (L1_STORES_CBCH_CONFIG) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
516 cb_start_no_drx_reading (FALSE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
517 #else /* L1_STORES_CBCH_CONFIG */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
518 ALR_TRACE_CB ("switch on, send config"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
519 cb_start_no_drx_reading (TRUE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
520 #endif /* L1_STORES_CBCH_CONFIG */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
521 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
522 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
523 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
524 UBYTE *si3 = &alr_data->ma_data.sys_info_3[0]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
525 UBYTE *lac = &alr_data->cbch_data.old_cid_plmn_lac[0]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
526 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
527 ALR_TRACE_CB ("switch on, wait for MMI"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
528 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
529 * wait for MMI request |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
530 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
531 SET_STATE(STATE_NORMAL_CBCH, CBCH_IDLE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
532 SET_STATE(STATE_EXT_CBCH, CBCH_IDLE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
533 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
534 * update old_cid_plmn_lac |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
535 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
536 memcpy (lac, &si3[2], 7); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
537 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
538 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
539 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
540 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
541 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
542 * The new configuration indicates no CBCH, so stop the CBCH process in Layer 1 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
543 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
544 ALR_TRACE_CB ("switch off"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
545 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
546 cb_stop(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
547 SET_STATE(STATE_NORMAL_CBCH, CBCH_NULL); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
548 SET_STATE(STATE_EXT_CBCH, CBCH_NULL); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
549 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
550 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
551 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
552 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
553 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
554 | PROJECT : GSM-PS (6103) MODULE : AKR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
555 | STATE : code ROUTINE : cb_mmi_cbch_req | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
556 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
557 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
558 PURPOSE : MMI sends a definition of the expected message identifier |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
559 and data coding schemes for the CBCH messages. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
560 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
561 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
562 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
563 GLOBAL void cb_mmi_cbch_req (T_MMI_CBCH_REQ *cbch) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
564 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
565 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
566 ALR_TRACE_CB ("MMI req"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
567 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
568 #if defined(FF_HOMEZONE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
569 if (cbch->modus NEQ CBCH_HOMEZONE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
570 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
571 pcbch->modus = cbch->modus; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
572 TRACE_EVENT_P1 ("CBCH: homezone=%u", pcbch->homezone); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
573 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
574 else if (cbch->msg_id[0] EQ NOT_PRESENT_16BIT) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
575 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
576 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
577 * switch off automatically homezone request |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
578 * - homezone state to off |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
579 * - clear old message |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
580 * - stop timer |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
581 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
582 pcbch->msg_hz_id = NOT_PRESENT_16BIT; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
583 pcbch->homezone = CBCH_HZ_OFF; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
584 TIMERSTOP (TIM_HOMEZONE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
585 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
586 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
587 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
588 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
589 * switch on automatically homezone request |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
590 * - set homezone state to idle whatever are before |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
591 * - set new homezone id |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
592 * - clear old message |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
593 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
594 pcbch->msg_hz_id = cbch->msg_id[0]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
595 pcbch->dcs_hz_id = cbch->dcs_id[0]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
596 pcbch->hz_timeout = cbch->dcs_id[1]*1000; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
597 ALR_TRACE_CB_HZREQ (pcbch->msg_hz_id, |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
598 pcbch->hz_timeout); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
599 if (pcbch->homezone EQ CBCH_HZ_OFF) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
600 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
601 UBYTE cbch_state = GET_STATE (STATE_NORMAL_CBCH); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
602 pcbch->homezone = CBCH_HZ_IDLE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
603 if (cbch_state NEQ CBCH_NULL) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
604 {/* CBCH system is prepared */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
605 if (cbch_state EQ CBCH_IDLE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
606 { /* start timer only if CBCH system is prepared */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
607 TIMERSTART (TIM_HOMEZONE, 1000); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
608 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
609 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
610 { /* CBCH system is already active -> wait for HZ message */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
611 pcbch->homezone = CBCH_HZ_PENDING; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
612 TIMERSTART (TIM_HOMEZONE, pcbch->hz_timeout); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
613 ALR_TRACE_CB ("HOMEZONE is pending"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
614 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
615 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
616 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
617 return; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
618 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
619 #else /* FF_HOMEZONE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
620 pcbch->modus = cbch->modus; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
621 #endif /* FF_HOMEZONE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
622 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
623 * Storing of Parameter and clearing of |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
624 * the received CB memory |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
625 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
626 memcpy (&pcbch->msg_id[0], cbch->msg_id, sizeof (pcbch->msg_id)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
627 memcpy (&pcbch->dcs_id[0], cbch->dcs_id, sizeof (pcbch->dcs_id)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
628 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
629 #if !defined(NTRACE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
630 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
631 int i; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
632 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
633 ALR_TRACE_CB_MODUS(cbch->modus); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
634 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
635 for (i=0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
636 (i < MAX_IDENTS) AND (pcbch->msg_id[i] NEQ NOT_PRESENT_16BIT); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
637 i++) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
638 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
639 TRACE_EVENT_P2 ("CBCH: id[%u]=%u", i, pcbch->msg_id[i]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
640 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
641 for (i=0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
642 (i < MAX_IDENTS) AND (pcbch->dcs_id[i] NEQ NOT_PRESENT_8BIT); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
643 i++) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
644 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
645 TRACE_EVENT_P2 ("CBCH:dcs[%u]=%u", i, pcbch->dcs_id[i]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
646 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
647 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
648 #endif /* !NTRACE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
649 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
650 /* old messages should only be erased when MMI turns CBCH off */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
651 if (pcbch->modus EQ MMI_CBCH_STOP) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
652 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
653 /* also erases the count of old message */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
654 memset (&pcbch->old_cbch_msg, 0, sizeof (T_CB_MSG)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
655 memset (&pcbch->msg[0], 0, CBCH_MSG_SIZE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
656 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
657 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
658 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
659 TRACE_EVENT_P2 ("CBCH: STATE_MA=%u STATE_CBCH=%u", GET_STATE(STATE_MA), GET_STATE (STATE_CBCH)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
660 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
661 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
662 #ifdef GPRS |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
663 if ((GET_STATE(STATE_MA) EQ MA_IDLE AND !alr_data->gprs_data.pbcch) OR |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
664 (alr_data->gprs_data.pbcch AND alr_data->gprs_data.pim)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
665 #else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
666 if (GET_STATE(STATE_MA) EQ MA_IDLE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
667 #endif |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
668 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
669 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
670 * layer 1 is only configured, if ALR is in idle state, else the configuration |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
671 * is delayed until the cell is selected. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
672 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
673 switch (GET_STATE (STATE_NORMAL_CBCH)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
674 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
675 case CBCH_NULL: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
676 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
677 * no CBCH channel is available |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
678 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
679 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
680 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
681 case CBCH_IDLE: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
682 if (pcbch->modus EQ MMI_CBCH_STOP AND |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
683 !pcbch->sat_enabled) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
684 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
685 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
686 * CBCH download is not enabled and the MMI indicates stop of |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
687 * the CBCH channel, then stop CBCH process in layer 1. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
688 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
689 cb_stop(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
690 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
691 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
692 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
693 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
694 * new definitions of message identifier or data coding schemes |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
695 * then re-configure layer 1 and go back to CBCH reading without |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
696 * scheduling information. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
697 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
698 cb_start_no_drx_reading (TRUE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
699 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
700 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
701 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
702 default: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
703 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
704 * we already received a MMI CBCH REQ before |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
705 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
706 if (pcbch->modus EQ MMI_CBCH_STOP AND |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
707 !pcbch->sat_enabled) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
708 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
709 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
710 * CBCH download is not enabled and the MMI indicates stop of |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
711 * the CBCH channel, then stop CBCH process in layer 1. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
712 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
713 cb_stop(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
714 SET_STATE(STATE_NORMAL_CBCH, CBCH_IDLE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
715 SET_STATE(STATE_EXT_CBCH, CBCH_IDLE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
716 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
717 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
718 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
719 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
720 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
721 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
722 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
723 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
724 | PROJECT : GSM-PS (6103) MODULE : TIL_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
725 | STATE : code ROUTINE : cb_mmi_sat_cbch_req | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
726 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
727 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
728 PURPOSE : Reception of a list of identifiers for SIM TOOLKIT |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
729 CBCH Download. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
730 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
731 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
732 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
733 GLOBAL void cb_mmi_sat_cbch_req (T_MMI_SAT_CBCH_DWNLD_REQ * cbch_req) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
734 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
735 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
736 ALR_TRACE_CB ("MMI SAT req"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
737 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
738 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
739 * clear the list of needed message identifier for CBCH download |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
740 * and fill it with the definiton of MMI. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
741 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
742 memset (pcbch->msg_id_sat, NOT_PRESENT_16BIT, |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
743 sizeof(pcbch->msg_id_sat)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
744 memcpy (pcbch->msg_id_sat, cbch_req->msg_id, |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
745 sizeof(cbch_req->msg_id[0])*(cbch_req->count)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
746 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
747 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
748 * CBCH download is enabled |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
749 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
750 pcbch->sat_enabled = 1; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
751 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
752 switch (GET_STATE (STATE_NORMAL_CBCH)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
753 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
754 case CBCH_NULL: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
755 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
756 * No CBCH channel is available. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
757 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
758 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
759 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
760 default: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
761 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
762 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
763 * configure layer 1 for catching the CBCH download messages |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
764 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
765 PALLOC (config_cbch, MPHC_CONFIG_CBCH_REQ); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
766 memcpy (config_cbch, &pcbch->mphc_config_cbch, sizeof (T_MPHC_CONFIG_CBCH_REQ)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
767 ma_cb_config_cbch(config_cbch); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
768 cb_read_cbch (CBCH_NO_SCHED | CBCH_READ_NORM); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
769 cb_read_cbch (CBCH_NO_SCHED | CBCH_READ_EXT); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
770 SET_STATE(STATE_NORMAL_CBCH, CBCH_NO_DRX); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
771 SET_STATE(STATE_EXT_CBCH, CBCH_NO_DRX); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
772 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
773 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
774 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
775 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
776 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
777 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
778 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
779 | PROJECT : GSM-PS (6103) MODULE : TIL_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
780 | STATE : code ROUTINE : cb_data_ind | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
781 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
782 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
783 PURPOSE : A CBCH message is received. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
784 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
785 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
786 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
787 GLOBAL void cb_data_ind (T_MPHC_DATA_IND *cbch_ind) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
788 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
789 UBYTE block_no; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
790 UBYTE block_description; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
791 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
792 UBYTE * expected_seq_number = &(pcbch->expected_seq_number[0]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
793 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
794 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
795 * check whether the CBCH message has been received on the |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
796 * normal CBCH channel or the extended CBCH channel |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
797 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
798 if (cbch_ind->tc >= 4) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
799 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
800 pcbch->msg_is_extended = CBCH_READ_EXT; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
801 expected_seq_number = &(pcbch->expected_seq_number[1]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
802 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
803 else if(cbch_ind->tc < 4) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
804 pcbch->msg_is_extended = CBCH_READ_NORM; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
805 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
806 if (cbch_ind->error_flag EQ VALID_BLOCK) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
807 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
808 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
809 * if the CBCH block is valid, calculate the block number |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
810 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
811 block_description = cbch_ind->l2_frame.content[0]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
812 block_no = (UBYTE)(block_description & 0x0F); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
813 if (block_no < CBCH_NULL_MSG) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
814 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
815 ALR_TRACE_CB_BLOCK_NO (block_description); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
816 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
817 TRACE_EVENT_P2("expected_block_number = %d, schedule_length =%d", (*expected_seq_number), pcbch->schedule_length[0]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
818 switch(block_no) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
819 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
820 case CBCH_BLOCK_0: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
821 memcpy (&pcbch->msg[0], &cbch_ind->l2_frame.content[1], CBCH_BLOCK_SIZE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
822 #if defined(FF_HOMEZONE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
823 if (!cb_check_homezone ((UBYTE)(CBCH_BLOCK_SIZE*(block_no+1)))) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
824 #endif /* FF_HOMEZONE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
825 cb_first_block(block_description); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
826 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
827 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
828 case CBCH_BLOCK_1: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
829 case CBCH_BLOCK_2: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
830 case CBCH_BLOCK_3: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
831 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
832 * check for sequence number |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
833 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
834 if(*expected_seq_number NEQ block_no) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
835 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
836 ALR_TRACE_CB("Sequence error"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
837 cb_error_ind(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
838 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
839 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
840 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
841 memcpy (&pcbch->msg[CBCH_BLOCK_SIZE*(block_no & 3)], |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
842 &cbch_ind->l2_frame.content[1], CBCH_BLOCK_SIZE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
843 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
844 (*expected_seq_number)++; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
845 if( *expected_seq_number > CBCH_BLOCK_3 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
846 *expected_seq_number = CBCH_BLOCK_0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
847 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
848 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
849 if ( (block_description & CBCH_LAST_BLOCK) OR (block_no EQ CBCH_BLOCK_3) ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
850 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
851 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
852 * last block of msg |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
853 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
854 if(pcbch->msg_type EQ CBCH_NORM_MSG) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
855 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
856 * +1, because parameter is length not offset |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
857 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
858 cb_cbch_message((UBYTE)(CBCH_BLOCK_SIZE*(block_no+1))); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
859 else if(pcbch->msg_type EQ CBCH_SCHEDULE_MSG) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
860 cb_schedule_message(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
861 else if(pcbch->msg_type EQ CBCH_SAT_MSG) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
862 cb_sat_cbch_message((UBYTE)(CBCH_BLOCK_SIZE*(block_no+1))); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
863 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
864 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
865 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
866 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
867 case CBCH_FIRST_SCHED_MSG: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
868 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
869 * first SCHEDULE block |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
870 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
871 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
872 ALR_TRACE_CB ("SCHEDULE"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
873 memcpy (&pcbch->msg[0], &cbch_ind->l2_frame.content[1], CBCH_BLOCK_SIZE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
874 cb_read_next_3_blocks(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
875 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
876 pcbch->msg_type = CBCH_SCHEDULE_MSG; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
877 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
878 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
879 case CBCH_NULL_MSG: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
880 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
881 * NULL Message |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
882 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
883 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
884 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
885 ALR_TRACE_CB ("null msg"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
886 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
887 cb_null_message (); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
888 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
889 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
890 default: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
891 ALR_TRACE_CB ("unknown"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
892 cb_error_ind(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
893 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
894 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
895 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
896 ALR_EM_RECEIVE_CBCH_MESSAGE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
897 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
898 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
899 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
900 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
901 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
902 * Invalid block |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
903 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
904 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
905 ALR_TRACE_CB_ERROR(cbch_ind->error_flag); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
906 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
907 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
908 pcbch->msg_type = CBCH_NO_MSG; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
909 cb_error_ind (); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
910 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
911 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
912 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
913 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
914 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
915 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
916 | STATE : code ROUTINE : cb_first_block | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
917 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
918 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
919 PURPOSE : Reception of the first CBCH block. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
920 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
921 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
922 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
923 LOCAL void cb_first_block (UBYTE status) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
924 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
925 UBYTE result; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
926 T_CBMSG_HEADER *p_cbh; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
927 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
928 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
929 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
930 * extract message id and data coding scheme from the message |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
931 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
932 p_cbh = (T_CBMSG_HEADER*)(&pcbch->msg[0]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
933 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
934 ALR_TRACE_CB_MSGHEAD (p_cbh); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
935 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
936 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
937 * check the incoming message: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
938 * 1. matches the message identifier |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
939 * 2. matches the data coding scheme |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
940 * 3. is this message not received yet |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
941 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
942 result = cb_check_message_id (CB_MESSAGE_ID(p_cbh)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
943 result += cb_check_data_coding_scheme (CB_DCS(p_cbh)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
944 result += cb_check_old_msg (); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
945 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
946 if (result EQ 3) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
947 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
948 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
949 * all checks are passed |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
950 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
951 if (! pcbch->sat_enabled OR |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
952 ! cb_sat_check_message_id(CB_MESSAGE_ID(p_cbh))) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
953 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
954 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
955 * it is not a CBCH download message or |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
956 * CBCH download is not enabled |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
957 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
958 if (status & CBCH_LAST_BLOCK) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
959 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
960 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
961 * the first is the only block, then forward it |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
962 * to MMI. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
963 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
964 cb_cbch_message (CBCH_BLOCK_SIZE*(CBCH_BLOCK_0+1)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
965 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
966 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
967 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
968 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
969 * store the block and request the three remaining |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
970 * blocks in layer 1. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
971 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
972 pcbch->msg_type = CBCH_NORM_MSG; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
973 cb_read_next_3_blocks(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
974 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
975 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
976 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
977 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
978 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
979 * It is a CBCH download message and CBCH download is enabled. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
980 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
981 if (status & CBCH_LAST_BLOCK) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
982 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
983 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
984 * the first block is the only block, so forward the |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
985 * message to MMI. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
986 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
987 cb_sat_cbch_message (CBCH_BLOCK_SIZE*(CBCH_BLOCK_0+1)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
988 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
989 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
990 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
991 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
992 * store the data and request the three remaining blocks. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
993 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
994 pcbch->msg_type = CBCH_SAT_MSG; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
995 cb_read_next_3_blocks(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
996 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
997 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
998 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
999 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1000 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1001 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1002 * the message has not passed the checks. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1003 * So it can be only a CBCH download message. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1004 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1005 if(! pcbch->sat_enabled OR |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1006 ! cb_sat_check_message_id(CB_MESSAGE_ID(p_cbh))) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1007 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1008 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1009 * SAT is not enabled or it is not a CBCH download |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1010 * message. So start reading of next scheduled message. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1011 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1012 memset (&pcbch->msg[0], 0, 88); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1013 cb_next_scheduled_msg(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1014 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1015 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1016 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1017 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1018 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1019 * it is CBCH download message and SAT is enabled |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1020 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1021 if (status & CBCH_LAST_BLOCK) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1022 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1023 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1024 * the first block is the last one, so send the |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1025 * message to MMI. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1026 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1027 cb_sat_cbch_message (CBCH_BLOCK_SIZE*(CBCH_BLOCK_0+1)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1028 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1029 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1030 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1031 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1032 * store the first block and request the remaining three. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1033 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1034 pcbch->msg_type = CBCH_SAT_MSG; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1035 cb_read_next_3_blocks(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1036 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1037 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1038 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1039 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1040 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1041 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1042 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1043 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1044 | PROJECT : GSM-PS (6103) MODULE : TIL_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1045 | STATE : code ROUTINE : cb_sat_cbch_message | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1046 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1047 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1048 PURPOSE : Reception of a complete CBCH message for CBCH download. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1049 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1050 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1051 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1052 LOCAL void cb_sat_cbch_message (UBYTE length) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1053 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1054 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1055 PALLOC (mmi_cbch_ind, MMI_SAT_CBCH_DWNLD_IND); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1056 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1057 ALR_EM_CBCH_MESSAGE_COMPLETE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1058 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1059 TRACE_FUNCTION ("cb_sat_cbch_message()"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1060 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1061 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1062 * copy the content of the message into the primitive. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1063 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1064 memcpy (mmi_cbch_ind->cbch_msg, pcbch->msg, 88); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1065 mmi_cbch_ind->cbch_len = length; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1066 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1067 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1068 * send to MMI |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1069 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1070 PSENDX(MMI, mmi_cbch_ind); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1071 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1072 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1073 * prepare for next reception |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1074 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1075 pcbch->msg_type = CBCH_NO_MSG; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1076 pcbch->expected_seq_number[0] = CBCH_BLOCK_0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1077 pcbch->expected_seq_number[1] = CBCH_BLOCK_0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1078 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1079 * start reading of next scheduled message. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1080 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1081 cb_next_scheduled_msg(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1082 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1083 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1084 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1085 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1086 | PROJECT : GSM-PS (6103) MODULE : TIL_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1087 | STATE : code ROUTINE : cb_schedule_message | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1088 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1089 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1090 PURPOSE : Reception of a SCHEDULE message. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1091 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1092 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1093 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1094 LOCAL void cb_schedule_message (void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1095 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1096 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1097 UBYTE extended = pcbch->msg_is_extended; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1098 UBYTE *p_sched_msg = &pcbch->scheduled_sched_msg[extended]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1099 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1100 ALR_EM_RECEIVE_SCHEDULE_MESSAGE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1101 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1102 switch ( get_cbch_state(extended) ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1103 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1104 case CBCH_NO_DRX: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1105 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1106 * change from NO DRX mode (no knowledge about Scheduling) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1107 * to DRX mode. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1108 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1109 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1110 set_cbch_state (extended, CBCH_DRX); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1111 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1112 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1113 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1114 * check whether it is a scheduled schedule message or not. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1115 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1116 if(pcbch->msg[0] EQ 1) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1117 *p_sched_msg = 1; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1118 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1119 *p_sched_msg = 0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1120 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1121 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1122 * create schedule map with new and old messages |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1123 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1124 cb_create_schedule_map (TRUE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1125 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1126 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1127 * forward the schedule map to layer 1. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1128 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1129 cb_read_cbch((UBYTE)(CBCH_SCHED | extended)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1130 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1131 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1132 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1133 case CBCH_DRX: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1134 if (pcbch->msg[0] EQ 1) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1135 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1136 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1137 * scheduled SCHEDULE message |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1138 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1139 if(*p_sched_msg <= 2) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1140 (*p_sched_msg)++; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1141 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1142 if (*p_sched_msg > 1) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1143 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1144 * we have read a full schedule period |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1145 * so we dont need to read the old messages |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1146 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1147 cb_create_schedule_map (FALSE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1148 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1149 cb_create_schedule_map (TRUE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1150 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1151 cb_read_cbch((UBYTE)(CBCH_SCHED | extended)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1152 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1153 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1154 default: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1155 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1156 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1157 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1158 * prepare for next reception |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1159 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1160 pcbch->msg_type = CBCH_NO_MSG; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1161 pcbch->expected_seq_number[0] = CBCH_BLOCK_0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1162 pcbch->expected_seq_number[1] = CBCH_BLOCK_0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1163 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1164 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1165 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1166 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1167 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1168 | STATE : code ROUTINE : cb_null_message | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1169 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1170 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1171 PURPOSE : Reception of a NULL message. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1172 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1173 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1174 LOCAL void cb_null_message (void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1175 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1176 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1177 UBYTE extended = pcbch->msg_is_extended; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1178 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1179 ALR_EM_RECEIVE_NULL_MESSAGE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1180 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1181 switch ( get_cbch_state(extended) ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1182 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1183 case CBCH_DRX: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1184 if (pcbch->schedule_length[extended] EQ 0) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1185 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1186 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1187 * instead of the scheduled SCHEDULE message |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1188 * a NULL message has received. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1189 * Restarting with NO DRX mode |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1190 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1191 set_cbch_state (extended, CBCH_NO_DRX); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1192 cb_read_cbch ((UBYTE)(CBCH_NO_SCHED | extended)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1193 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1194 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1195 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1196 cb_next_scheduled_msg(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1197 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1198 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1199 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1200 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1201 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1202 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1203 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1204 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1205 | STATE : code ROUTINE : cb_error_ind | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1206 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1207 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1208 PURPOSE : Indicates an invalid block. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1209 1) with error_flag =TRUE |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1210 2) invalid sequence number |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1211 3) out of sequence block |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1212 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1213 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1214 LOCAL void cb_error_ind (void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1215 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1216 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1217 UBYTE extended = pcbch->msg_is_extended; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1218 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1219 if( pcbch->expected_seq_number[extended] NEQ CBCH_BLOCK_0) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1220 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1221 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1222 * stop the next blocks |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1223 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1224 cb_stop_next_blocks(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1225 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1226 switch ( get_cbch_state(extended) ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1227 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1228 case CBCH_DRX: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1229 if (pcbch->schedule_length[extended] EQ 0) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1230 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1231 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1232 * instead of the scheduled SCHEDULE message |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1233 * an invalid message has been received. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1234 * Restarting with NO DRX mode |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1235 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1236 set_cbch_state (extended, CBCH_NO_DRX); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1237 cb_read_cbch ((UBYTE)(CBCH_NO_SCHED | extended)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1238 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1239 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1240 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1241 * Go back to FIRST DRX mode. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1242 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1243 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1244 pcbch->scheduled_sched_msg[extended] = 1; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1245 cb_next_scheduled_msg(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1246 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1247 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1248 default: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1249 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1250 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1251 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1252 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1253 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1254 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1255 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1256 | STATE : code ROUTINE : cb_ind | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1257 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1258 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1259 PURPOSE : Indication of the CBCH message. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1260 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1261 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1262 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1263 LOCAL void cb_ind (UBYTE length) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1264 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1265 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1266 PALLOC (mmi_cbch_ind, MMI_CBCH_IND); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1267 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1268 ALR_EM_CBCH_MESSAGE_COMPLETE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1269 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1270 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1271 * copy the message content to the primitive. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1272 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1273 memcpy (mmi_cbch_ind->cbch_msg, pcbch->msg, CBCH_MSG_SIZE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1274 mmi_cbch_ind->cbch_len = length; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1275 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1276 ma_cb_mmi_cbch_ind(mmi_cbch_ind); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1277 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1278 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1279 T_CBMSG_HEADER *p_cbh = (T_CBMSG_HEADER*)(&pcbch->msg[0]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1280 ALR_TRACE_CB_MSGHEAD (p_cbh); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1281 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1282 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1283 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1284 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1285 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1286 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1287 | STATE : code ROUTINE : cb_read_next_3_blocks | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1288 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1289 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1290 PURPOSE : Starts read of next 3 blocks. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1291 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1292 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1293 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1294 LOCAL void cb_read_next_3_blocks(void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1295 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1296 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1297 UBYTE extended = pcbch->msg_is_extended; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1298 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1299 if( extended EQ CBCH_READ_EXT) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1300 ma_cb_info_req (CBCH_EXT_BLOCK234); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1301 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1302 ma_cb_info_req (CBCH_NORM_BLOCK234); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1303 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1304 pcbch->expected_seq_number[extended] = CBCH_BLOCK_1; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1305 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1306 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1307 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1308 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1309 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1310 | STATE : code ROUTINE : cb_stop_next_blocks | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1311 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1312 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1313 PURPOSE : Stop next blocks. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1314 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1315 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1316 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1317 LOCAL void cb_stop_next_blocks (void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1318 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1319 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1320 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1321 * stop the next blocks |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1322 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1323 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1324 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1325 * Upper layers / L1 Circuit Switched interfaces |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1326 * S922.doc , Ver 1.9 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1327 * Section 11.3 MPHC_CBCH_INFO_REQ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1328 * |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1329 * This message can be used to update on fly L1 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1330 * with new tb_bitmap which then replaces the current one. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1331 * In such a case, 0 in the bitmap means abort any pending reading of TB1/2/3 or TB5/6/7. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1332 * |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1333 * A previous "schedule_length=0" is used to specify "No schedule present". |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1334 * In such a case, L1 starts reading continuously TB0 for normal CBCH or TB4 for Extended CBCH. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1335 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1336 ma_cb_info_req (0); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1337 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1338 pcbch->msg_type = CBCH_NO_MSG; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1339 pcbch->expected_seq_number[0] = CBCH_BLOCK_0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1340 pcbch->expected_seq_number[1] = CBCH_BLOCK_0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1341 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1342 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1343 #if defined(FF_HOMEZONE) && defined(INDICATE_HZ_ERROR) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1344 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1345 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1346 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1347 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1348 | STATE : code ROUTINE : cb_ind_hz_err | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1349 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1350 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1351 PURPOSE : Indication of the CBCH message and stop the next blocks. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1352 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1353 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1354 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1355 LOCAL void cb_ind_hz_err (void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1356 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1357 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1358 PALLOC (mmi_cbch_ind, MMI_CBCH_IND); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1359 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1360 memset (mmi_cbch_ind->cbch_msg, 0xff, CBCH_MSG_SIZE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1361 mmi_cbch_ind->cbch_msg[2] = pcbch->msg_hz_id >> 8; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1362 mmi_cbch_ind->cbch_msg[3] = pcbch->msg_hz_id & 0xff; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1363 mmi_cbch_ind->cbch_len = 0; /* error indication */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1364 ALR_TRACE_CB ("cb_ind_hz_err()"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1365 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1366 ma_cb_mmi_cbch_ind(mmi_cbch_ind); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1367 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1368 #endif /* FF_HOMEZONE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1369 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1370 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1371 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1372 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1373 | STATE : code ROUTINE : cb_cbch_message | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1374 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1375 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1376 PURPOSE : Reception of a complete CBCH message. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1377 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1378 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1379 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1380 LOCAL void cb_cbch_message (UBYTE length) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1381 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1382 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1383 * Indicate the message |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1384 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1385 cb_ind (length); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1386 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1387 * stop the next blocks |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1388 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1389 cb_stop_next_blocks (); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1390 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1391 * store the cbch message to avoid double reception |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1392 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1393 cb_store_cbch_msg (); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1394 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1395 * start reading of the next scheduled message |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1396 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1397 cb_next_scheduled_msg(); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1398 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1399 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1400 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1401 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1402 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1403 | STATE : code ROUTINE : cb_store_cbch_msg | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1404 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1405 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1406 PURPOSE : Store key parameter of a CBCH message to avoid |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1407 forwarding of a CBCH message twice. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1408 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1409 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1410 LOCAL void cb_store_cbch_msg (void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1411 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1412 USHORT x; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1413 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1414 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1415 ALR_TRACE_CB ("Store msg"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1416 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1417 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1418 * It is not permitted to save the cbch message, |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1419 * if the following pattern are in the |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1420 * lacation area identification (bcch:sys_info_3) : |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1421 * [4] 0x00 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1422 * [5] 0xF1 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1423 * [6] 0x10 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1424 * |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1425 * that means FTA in testhouse |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1426 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1427 if (alr_data->ma_data.sys_info_3[4] EQ 0 AND |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1428 alr_data->ma_data.sys_info_3[5] EQ 0xF1 AND |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1429 alr_data->ma_data.sys_info_3[6] EQ 0x10) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1430 return; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1431 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1432 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1433 * If storage is full, remove the first one. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1434 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1435 if (pcbch->old_cbch_msg.cnt EQ MAX_OLD_CB) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1436 cb_remove_message (0); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1437 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1438 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1439 * store the new one |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1440 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1441 x = pcbch->old_cbch_msg.cnt++; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1442 memcpy (&pcbch->old_cbch_msg.header[x], |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1443 &pcbch->msg, sizeof (T_CBMSG_HEADER)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1444 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1445 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1446 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1447 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1448 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1449 | STATE : code ROUTINE : cb_check_message_id | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1450 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1451 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1452 PURPOSE : Check Message Identifier of the first CBCH block. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1453 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1454 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1455 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1456 LOCAL UBYTE cb_check_message_id (USHORT msg_id) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1457 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1458 USHORT i; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1459 UBYTE result = TRUE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1460 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1461 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1462 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1463 * if no message identifier are defined for comparision |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1464 * make a shortcut and return immediately. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1465 * MODUS CBCH_ACCEPT,but no msg_id defined,accept NO messages |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1466 * MODUS CBCH_IGNORE,but no msg_id define, accept all messages |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1467 * MODUS CBCH_STOP,but no msg_id defined, accept NO messages |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1468 * MODUS CBCH_HOMEZONE,but no msg_id defined, accept NO messages/ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1469 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1470 if ( pcbch->msg_id[0] EQ NOT_PRESENT_16BIT ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1471 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1472 if (pcbch->modus EQ CBCH_IGNORE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1473 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1474 return TRUE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1475 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1476 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1477 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1478 return FALSE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1479 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1480 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1481 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1482 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1483 * initialise result |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1484 * if the msg_id is not found and MMI specified |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1485 * a positive range(CBCH_ACCEPT) return 0 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1486 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1487 result = (UBYTE)(pcbch->modus EQ CBCH_ACCEPT ? FALSE : TRUE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1488 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1489 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1490 * message identifier are stored as a pair to express a range |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1491 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1492 for (i=0; i < MAX_IDENTS-1; i+=2) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1493 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1494 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1495 * end of list reached |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1496 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1497 if (pcbch->msg_id[i] EQ NOT_PRESENT_16BIT) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1498 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1499 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1500 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1501 * check whether the message identifier is inside or outside |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1502 * the range. Result depends on what MMI has requested. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1503 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1504 if ((pcbch->msg_id[i] <= msg_id) AND |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1505 (pcbch->msg_id[i+1] >= msg_id)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1506 result = (UBYTE)(pcbch->modus EQ CBCH_ACCEPT ? TRUE : FALSE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1507 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1508 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1509 return result; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1510 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1511 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1512 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1513 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1514 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1515 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1516 | STATE : code ROUTINE : cb_sat_check_message_id | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1517 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1518 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1519 PURPOSE : Check Message Identifier of the first CBCH block for CBCH |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1520 download purposes. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1521 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1522 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1523 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1524 LOCAL UBYTE cb_sat_check_message_id (USHORT msg_id) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1525 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1526 USHORT i; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1527 UBYTE result; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1528 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1529 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1530 * initialize result |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1531 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1532 result = FALSE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1533 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1534 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1535 * for all stored message identifier of CBCH download |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1536 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1537 for (i = 0; i < MAX_IDENTS_SAT; i++) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1538 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1539 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1540 * end of list reached |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1541 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1542 if (pcbch->msg_id_sat[i] EQ NOT_PRESENT_16BIT) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1543 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1544 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1545 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1546 * if message identifier matches |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1547 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1548 if (pcbch->msg_id_sat[i] EQ msg_id) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1549 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1550 result = TRUE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1551 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1552 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1553 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1554 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1555 return result; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1556 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1557 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1558 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1559 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1560 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1561 | STATE : code ROUTINE : cb_check_data_coding_scheme| |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1562 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1563 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1564 PURPOSE : Check Data Coding Scheme of the first CBCH block. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1565 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1566 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1567 LOCAL UBYTE cb_check_data_coding_scheme (UBYTE dcs_id) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1568 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1569 USHORT i; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1570 UBYTE result = TRUE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1571 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1572 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1573 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1574 * if the list is empty, result is positive |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1575 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1576 if (pcbch->dcs_id [0] EQ NOT_PRESENT_8BIT) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1577 return result; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1578 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1579 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1580 * initialise result |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1581 * if the dcs_id is not found and MMI specified |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1582 * a positive range(CBCH_ACCEPT) return 0 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1583 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1584 result = (UBYTE)(pcbch->modus EQ CBCH_ACCEPT ? 0 : 1); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1585 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1586 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1587 for (i=0;i<MAX_IDENTS-1;i+=2) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1588 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1589 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1590 * end of list reached |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1591 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1592 if (pcbch->dcs_id[i] EQ NOT_PRESENT_8BIT) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1593 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1594 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1595 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1596 * Data Coding Scheme identifier matches |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1597 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1598 if (pcbch->dcs_id[i] <= dcs_id AND |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1599 pcbch->dcs_id[i+1] >= dcs_id) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1600 result = (UBYTE)(pcbch->modus EQ CBCH_ACCEPT ? 1 : 0); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1601 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1602 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1603 return result; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1604 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1605 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1606 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1607 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1608 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1609 | STATE : code ROUTINE : cb_check_old_msg | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1610 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1611 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1612 PURPOSE : Check against old messages. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1613 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1614 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1615 LOCAL UBYTE cb_check_old_msg (void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1616 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1617 int i; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1618 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1619 T_CBMSG_HEADER *p_cbh = (T_CBMSG_HEADER*)&pcbch->msg[0]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1620 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1621 ALR_TRACE_CB ("compare with stored msg"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1622 for (i=0; i < pcbch->old_cbch_msg.cnt; i++) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1623 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1624 ALR_TRACE_CB_MSGHEAD (&pcbch->old_cbch_msg.header[i]) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1625 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1626 if (memcmp (&pcbch->old_cbch_msg.header[i], p_cbh, 6) EQ 0) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1627 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1628 return FALSE; /* already stored message */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1629 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1630 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1631 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1632 /* if the difference is only in the update number, |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1633 * then we need to delete the old version of the message (so that the different |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1634 * versions do not fill up the storage) and we can even abandon the comparison; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1635 * a message that is resent with a different update number should only use |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1636 * one entry in the list; otherwise it may throw out other messages that should be kept; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1637 * think of German network that sends every minute a new update; would use up 15 entries |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1638 * |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1639 * some change, now check if it is only the update number that has changed |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1640 * (memcmp covers 4 header bytes: msg_id3, msg_id4, dcs and page |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1641 * => ignore lint warning) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1642 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1643 if ((CB_GS_CODE(&pcbch->old_cbch_msg.header[i]) == CB_GS_CODE(p_cbh)) AND |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1644 (CB_MSG_CODE(&pcbch->old_cbch_msg.header[i]) == CB_MSG_CODE(p_cbh)) AND |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1645 !memcmp (&(((T_CBMSG_HEADER*)&pcbch->old_cbch_msg.header[i])->msg_id3), |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1646 &p_cbh->msg_id3, 4)) /*lint !e420 (Warning -- Apparent access beyond array for function 'memcmp(const void *, const void *, unsigned int)', argument 3 (size=4) exceeds argument 1 (size=1)) */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1647 { /* all these fields match, therefore the change must have been only in the update number */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1648 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1649 SHORT old_update_nr, new_update_nr; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1650 old_update_nr = CB_UPDATE_NO(&pcbch->old_cbch_msg.header[i]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1651 new_update_nr = CB_UPDATE_NO(p_cbh); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1652 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1653 * 3GPP 03 41 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1654 * Any Update Number eight or less higher (modulo 16) than the last received Update Number |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1655 * will be considered more recent, and shall be treated as a new message |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1656 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1657 if((!new_update_nr) OR |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1658 ((new_update_nr - old_update_nr + MAX_UPDATE_NO) % MAX_UPDATE_NO <= MAX_UPDATE_NO_DIFF)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1659 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1660 ALR_TRACE_CB ("change update num, delete old message"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1661 /* remove the old message so that we do not use up another entry for this new version of the message */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1662 cb_remove_message (i); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1663 /* skip out of loop because we found the match */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1664 break; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1665 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1666 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1667 return FALSE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1668 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1669 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1670 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1671 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1672 return TRUE; /* new message */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1673 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1674 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1675 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1676 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1677 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1678 | STATE : code ROUTINE : cb_read_cbch | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1679 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1680 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1681 PURPOSE : Starts reading of the first block of CBCH. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1682 The parameter defines if the extended or the normal CBCH |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1683 should be read and if scheduling should be used. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1684 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1685 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1686 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1687 LOCAL void cb_read_cbch (UBYTE flags) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1688 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1689 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1690 UBYTE extended = (UBYTE)(flags & CBCH_READ_EXT); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1691 ULONG first_block = pcbch->schedule_map[extended][0]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1692 ULONG second_block = pcbch->schedule_map[extended][1]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1693 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1694 PALLOC (sched_req, MPHC_CBCH_SCHEDULE_REQ); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1695 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1696 ALR_TRACE_CB_START_READ(flags); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1697 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1698 sched_req->cbch_select = extended; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1699 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1700 ALR_EM_START_CBCH_READING; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1701 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1702 if(flags & CBCH_SCHED) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1703 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1704 UBYTE n = pcbch->begin_schedule[extended] -1; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1705 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1706 sched_req->schedule_length = pcbch->end_schedule[extended] - |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1707 pcbch->begin_schedule[extended] +1; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1708 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1709 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1710 * the MPHC SAP uses first_blocks_1 as USHORT although the internal data base |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1711 * of ALR uses for convinience an array of 2 ULONG for first_blocks_0 and |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1712 * first_blocks_1; ergo: do a cast for first_blocks_1 here |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1713 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1714 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1715 if( pcbch->begin_schedule[extended] EQ 1) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1716 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1717 sched_req->first_blocks_0 = first_block; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1718 sched_req->first_blocks_1 = (USHORT)second_block; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1719 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1720 else if(pcbch->begin_schedule[extended] < 32) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1721 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1722 sched_req->first_blocks_0 = (first_block >> n) | ((second_block << (32 - n))); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1723 sched_req->first_blocks_1 = (USHORT) (second_block >> n); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1724 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1725 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1726 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1727 sched_req->first_blocks_0 = (USHORT)(second_block >> (n - 32)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1728 sched_req->first_blocks_1 = 0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1729 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1730 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1731 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1732 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1733 sched_req->schedule_length = 0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1734 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1735 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1736 ma_cb_sched_req(sched_req); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1737 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1738 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1739 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1740 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1741 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1742 | STATE : code ROUTINE : cb_check_ci_lai_plmn | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1743 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1744 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1745 PURPOSE : Checking the Cell Identity and the Location Area Identification |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1746 to handle the geographical zone parameter. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1747 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1748 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1749 LOCAL void cb_check_ci_lai_plmn (void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1750 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1751 USHORT i; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1752 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1753 UBYTE keep = 0x00; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1754 UBYTE *si3 = &alr_data->ma_data.sys_info_3[0]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1755 UBYTE *lac = &pcbch->old_cid_plmn_lac[0]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1756 UCHAR gs_scope_change_ind = CB_GEOGR_CHANGE_NONE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1757 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1758 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1759 * it is not permitted to save the cbch message, |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1760 * if the following pattern are in the |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1761 * location area identification (bcch:sys_info_3) : |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1762 * [4] 0x00 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1763 * [5] 0xF1 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1764 * [6] 0x10 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1765 * |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1766 * that means FTA in testhouse. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1767 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1768 if ((si3[4] EQ 0x00) AND |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1769 (si3[5] EQ 0xF1) AND |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1770 (si3[6] EQ 0x10) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1771 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1772 return; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1773 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1774 if ((si3[4] NEQ lac[2]) OR |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1775 (si3[5] NEQ lac[3]) OR |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1776 (si3[6] NEQ lac[4]) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1777 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1778 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1779 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1780 * The PLNM has changed |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1781 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1782 gs_scope_change_ind = CB_GEOGR_CHANGE_PLMN; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1783 pcbch->old_cbch_msg.cnt = 0; /* clear all messages */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1784 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1785 else if ((si3[7] NEQ lac[5]) OR |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1786 (si3[8] NEQ lac[6]) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1787 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1788 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1789 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1790 * The location area identification has changed |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1791 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1792 keep = CB_GEOGR_SCOPE_PLMN; /* keep PLMN wide messages */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1793 gs_scope_change_ind = CB_GEOGR_CHANGE_LAC; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1794 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1795 else if ((si3[2] NEQ lac[0]) OR |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1796 (si3[3] NEQ lac[1]) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1797 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1798 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1799 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1800 * The Cell Identity has changed |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1801 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1802 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1803 /* indicate cell change to MMI only if we have received any CBCH broadcast messages */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1804 if (pcbch->old_cbch_msg.cnt > 0) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1805 gs_scope_change_ind = CB_GEOGR_CHANGE_CELL; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1806 keep = CB_GEOGR_SCOPE_CELLN; /* keep PLMN and Location Area wide messages */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1807 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1808 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1809 if (keep) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1810 { /* cell or lac change occurred!, so delete all old cell wide or lac wide messages */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1811 for (i=0; i<pcbch->old_cbch_msg.cnt; i++) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1812 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1813 T_CBMSG_HEADER *p_old_cbh = (T_CBMSG_HEADER*)(&pcbch->old_cbch_msg.header[i]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1814 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1815 * check all stored messages, use geographical scope parameter |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1816 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1817 if (((CB_GS_CODE(p_old_cbh) & keep) EQ 0) OR /* old changed msgs */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1818 (CB_GS_CODE(p_old_cbh) EQ CB_GEOGR_SCOPE_CELLI) OR /* old cell wide msgs (immediate) */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1819 (CB_GS_CODE(p_old_cbh) EQ CB_GEOGR_SCOPE_CELLN) /* old cell wide msgs (normal) */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1820 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1821 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1822 ALR_TRACE_CB_SCOPE_CHANGE (gs_scope_change_ind, CB_GS_CODE(p_old_cbh)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1823 cb_remove_message (i--); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1824 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1825 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1826 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1827 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1828 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1829 * update old_cid_plmn_lac |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1830 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1831 memcpy (lac, &si3[2], 7); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1832 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1833 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1834 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1835 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1836 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1837 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1838 | STATE : code ROUTINE : cb_remove_message | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1839 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1840 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1841 PURPOSE : Removes the indicated CBCH message from the internal |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1842 storage. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1843 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1844 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1845 LOCAL void cb_remove_message (USHORT i) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1846 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1847 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1848 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1849 if ((pcbch->old_cbch_msg.cnt) AND |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1850 (i < pcbch->old_cbch_msg.cnt)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1851 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1852 ALR_TRACE_CB ("remove msg"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1853 ALR_TRACE_CB_MSGHEAD (&pcbch->old_cbch_msg.header[i]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1854 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1855 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1856 * decrement number of stored messages. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1857 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1858 pcbch->old_cbch_msg.cnt--; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1859 memmove (&pcbch->old_cbch_msg.header[i], |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1860 &pcbch->old_cbch_msg.header[i+1], |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1861 (pcbch->old_cbch_msg.cnt-i) * sizeof(T_CBMSG_HEADER)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1862 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1863 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1864 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1865 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1866 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1867 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1868 | STATE : code ROUTINE : cb_create_schedule_map | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1869 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1870 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1871 PURPOSE : Creation of a schedule map. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1872 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1873 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1874 LOCAL void cb_create_schedule_map (UBYTE old_cb_msg) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1875 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1876 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1877 UBYTE extended = pcbch->msg_is_extended; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1878 UBYTE* msg_ptr; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1879 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1880 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1881 * Store begin and end slot number |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1882 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1883 pcbch->begin_schedule [extended] = (UBYTE)(pcbch->msg [0] & 0x3F); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1884 pcbch->end_schedule [extended] = pcbch->msg [1]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1885 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1886 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1887 * clear schedule bitmap |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1888 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1889 pcbch->schedule_length[extended] = 0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1890 memset (&pcbch->schedule_map[extended][0], 0, |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1891 2*sizeof (pcbch->schedule_map[extended][0])); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1892 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1893 * Check all new entries, |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1894 * msg_ptr to first message description |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1895 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1896 msg_ptr = &pcbch->msg[8]; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1897 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1898 msg_ptr = cb_create_schedule_entries (msg_ptr, 1); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1899 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1900 if (old_cb_msg) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1901 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1902 cb_create_schedule_entries (msg_ptr, FALSE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1903 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1904 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1905 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1906 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1907 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1908 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1909 | STATE : code ROUTINE : cb_create_schedule_entries | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1910 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1911 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1912 PURPOSE : Creation of schedule entries. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1913 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1914 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1915 LOCAL UBYTE* cb_create_schedule_entries (UBYTE* msg_ptr, BOOL flag) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1916 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1917 unsigned i; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1918 BOOL result; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1919 UBYTE x; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1920 USHORT msg_id; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1921 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1922 UBYTE extended = pcbch->msg_is_extended; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1923 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1924 pcbch->last_slot_read[extended] = 0; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1925 for (i=0; i < pcbch->end_schedule[extended]; i++) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1926 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1927 result = (pcbch->msg [2 + ((i+1)>>3)] & (1 <<(8-((i+1)&7)))); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1928 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1929 ALR_TRACE_CB_SCHEDULE(i+1,result); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1930 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1931 if ((flag AND result) OR (!flag AND !result)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1932 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1933 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1934 * result and bit are set, that means the msg: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1935 * - was not send during the previous schedule period |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1936 * - or the msg was sent unscheduled during the last period |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1937 * - or is free of charge, reading advised |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1938 * result and bit are both not set , that means the msg: |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1939 * - the msg doesn't match the above |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1940 * - these msgs are read only during the first 2 schedule periods |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1941 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1942 if (*msg_ptr & 0x80) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1943 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1944 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1945 * First transmission of an SMSCB within the |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1946 * Schedule Period |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1947 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1948 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1949 msg_id = (UBYTE)((*msg_ptr) & 0x7F); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1950 msg_ptr++; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1951 msg_id = (USHORT)(msg_id + *msg_ptr); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1952 if (cb_check_message_id (msg_id)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1953 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1954 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1955 * Message Identifier is expected |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1956 * then set slot bit in schedule map |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1957 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1958 pcbch->schedule_map[extended][i>>5] |= 1 << (i&31); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1959 if( (i+1) >= pcbch->begin_schedule[extended] ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1960 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1961 pcbch->schedule_length[extended]++; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1962 pcbch->last_slot_read[extended] = (i+1); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1963 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1964 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1965 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1966 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1967 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1968 if ((*msg_ptr & 0xC0) EQ 0) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1969 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1970 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1971 * Retransmission indication |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1972 * Extract original message slot number |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1973 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1974 x = (UBYTE)(*msg_ptr & 0x3F); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1975 if (x) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1976 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1977 x--; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1978 if (pcbch->schedule_map[extended][x>>5] & (1 << (x&31)) ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1979 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1980 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1981 * original message will be read, then set also |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1982 * repetition of message in schedule map |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1983 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1984 pcbch->schedule_map[extended][i>>5] |= 1 << (i&31); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1985 if( (i+1) >= pcbch->begin_schedule[extended] ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1986 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1987 pcbch->schedule_length[extended]++; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1988 pcbch->last_slot_read[extended] = (i+1); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1989 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1990 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1991 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1992 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1993 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1994 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1995 if (*msg_ptr EQ 0x41) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1996 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1997 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1998 * Free Message Slot, reading advised |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1999 * Set bit in schedule map |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2000 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2001 pcbch->schedule_map[extended][i>>5] |= 1 << (i&31); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2002 if( (i+1) >= pcbch->begin_schedule[extended] ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2003 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2004 pcbch->schedule_length[extended]++; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2005 pcbch->last_slot_read[extended] = (i+1); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2006 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2007 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2008 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2009 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2010 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2011 * increment message description pointer |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2012 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2013 msg_ptr++; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2014 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2015 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2016 return msg_ptr; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2017 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2018 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2019 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2020 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2021 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2022 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2023 | STATE : code ROUTINE : cb_next_scheduled_msg | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2024 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2025 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2026 PURPOSE : Looks for end of scheduling period. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2027 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2028 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2029 LOCAL void cb_next_scheduled_msg(void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2030 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2031 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2032 UBYTE extended = pcbch->msg_is_extended; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2033 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2034 if ((get_cbch_state(extended)) EQ CBCH_DRX ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2035 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2036 if( pcbch->schedule_length[extended] EQ 0 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2037 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2038 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2039 * instead of the scheduled SCHEDULE message |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2040 * an invalid message has been received. |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2041 * Restarting with NO DRX mode |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2042 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2043 set_cbch_state (extended, CBCH_NO_DRX); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2044 cb_read_cbch ((UBYTE)(CBCH_NO_SCHED | extended)); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2045 return; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2046 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2047 pcbch->schedule_length[extended]--; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2048 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2049 if(pcbch->schedule_length[extended] EQ 0) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2050 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2051 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2052 * clear schedule map |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2053 * all message slots have been read |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2054 * |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2055 * NO need to reconfigure L1 to re-read schedule message |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2056 * that follows slot 48 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2057 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2058 memset (&pcbch->schedule_map[extended][0], 0, |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2059 2*sizeof (pcbch->schedule_map[extended][0])); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2060 TRACE_EVENT("Scheduled Schedule message expected"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2061 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2062 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2063 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2064 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2065 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2066 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2067 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2068 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2069 | STATE : code ROUTINE : get_cbch_state | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2070 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2071 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2072 PURPOSE : Returns the state of STATE_EXT_CBCH or STATE_NORMAL_CBCH |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2073 depending upon the input parameter "extended" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2074 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2075 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2076 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2077 UBYTE get_cbch_state( UBYTE extended) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2078 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2079 if( extended) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2080 return GET_STATE(STATE_EXT_CBCH); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2081 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2082 return GET_STATE(STATE_NORMAL_CBCH); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2083 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2084 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2085 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2086 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2087 | PROJECT : GSM-PS (6103) MODULE : ALR_CBCH | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2088 | STATE : code ROUTINE : set_cbch_state | |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2089 +--------------------------------------------------------------------+ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2090 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2091 PURPOSE : Sets the state of STATE_EXT_CBCH or STATE_NORMAL_CBCH |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2092 depending upon the input parameter "extended" |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2093 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2094 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2095 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2096 void set_cbch_state( UBYTE extended, UBYTE new_state) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2097 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2098 if(extended) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2099 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2100 SET_STATE(STATE_EXT_CBCH,new_state); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2101 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2102 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2103 SET_STATE(STATE_NORMAL_CBCH,new_state); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2104 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2105 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2106 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2107 #if defined(FF_HOMEZONE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2108 GLOBAL void cb_tim_homezone (void) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2109 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2110 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2111 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2112 if (pcbch->homezone EQ CBCH_HZ_IDLE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2113 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2114 if (GET_STATE(STATE_MA) EQ MA_IDLE) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2115 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2116 ALR_TRACE_CB ("call cb_start()"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2117 cb_start (); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2118 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2119 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2120 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2121 TIMERSTART (TIM_HOMEZONE, 1000); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2122 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2123 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2124 else if (pcbch->homezone EQ CBCH_HZ_PENDING) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2125 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2126 /* |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2127 * mark as received, indicate error, stop CBCH reading |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2128 */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2129 ALR_TRACE_CB ("cb_ind_hz_err()"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2130 pcbch->homezone = CBCH_HZ_RECEIVED; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2131 #if defined(INDICATE_HZ_ERROR) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2132 cb_ind_hz_err (); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2133 #endif /* INDICATE_HZ_ERROR */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2134 if ( (pcbch->modus EQ NOT_PRESENT_8BIT) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2135 AND (!pcbch->sat_enabled)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2136 cb_stop (); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2137 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2138 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2139 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2140 LOCAL UBYTE cb_check_homezone (UBYTE length) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2141 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2142 UBYTE result = FALSE;/* no special handling of homezone CBCH message */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2143 T_CBCH_DATA *pcbch = &alr_data->cbch_data; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2144 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2145 if (pcbch->homezone EQ CBCH_HZ_PENDING) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2146 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2147 T_CBMSG_HEADER *p_cbh; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2148 p_cbh = (T_CBMSG_HEADER*)(&pcbch->msg[0]); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2149 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2150 if ( (CB_MESSAGE_ID (p_cbh) EQ pcbch->msg_hz_id) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2151 AND (CB_DCS (p_cbh) EQ pcbch->dcs_hz_id) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2152 ) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2153 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2154 /* one-time request of homezone CBCH message after cell reselection */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2155 TIMERSTOP (TIM_HOMEZONE); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2156 pcbch->homezone = CBCH_HZ_RECEIVED; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2157 ALR_TRACE_CB_MSGHEAD (p_cbh); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2158 ALR_TRACE_CB ("homezone msg received"); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2159 cb_ind (length); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2160 result = TRUE; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2161 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2162 if ( (pcbch->modus EQ NOT_PRESENT_8BIT) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2163 AND (!pcbch->sat_enabled)) |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2164 { |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2165 ALR_TRACE_CB ("no other msg req."); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2166 cb_stop (); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2167 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2168 else |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2169 cb_stop_next_blocks (); |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2170 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2171 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2172 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2173 return result; |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2174 } |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2175 #endif /* FF_HOMEZONE */ |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2176 |
3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2177 #endif |