FreeCalypso > hg > fc-magnetite
annotate src/g23m-gsm/rr/rr_atts.c @ 570:855b3c5bb4b5
.../cst/cst_exts.c: tab indentation fixes
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sat, 12 Jan 2019 22:53:46 +0000 | 
| parents | 27a4235405c6 | 
| children | 
| rev | line source | 
|---|---|
| 104 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 +----------------------------------------------------------------------------- | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 | Project : | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | Modul : | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 +----------------------------------------------------------------------------- | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 | All rights reserved. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 | This file is confidential and a trade secret of Texas | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 | Instruments Berlin, AG | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | The receipt of or possession of this file does not convey | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 | any rights to reproduce or disclose its contents or to | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 | manufacture, use, or sell anything it may describe, in | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 | whole, or in part, without the specific written consent of | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 | Texas Instruments Berlin, AG. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 +----------------------------------------------------------------------------- | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | Purpose : Handling of BCCH System Information Message and BSIC | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 +----------------------------------------------------------------------------- | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 #ifndef RR_ATTS_C | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 #define RR_ATTS_C | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 #define ENTITY_RR | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 /*==== INCLUDES ===================================================*/ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 #include <string.h> | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 #include <stdlib.h> | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 #include <stddef.h> /* offsetof */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 #include "typedefs.h" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 #include "pcm.h" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 #include "pconst.cdg" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 #include "mconst.cdg" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 #include "message.h" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 #include "ccdapi.h" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 #include "vsi.h" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 #include "custom.h" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 #include "gsm.h" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 #include "prim.h" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 #include "cnf_rr.h" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 #include "tok.h" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 #include "rr.h" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 #include "rr_em.h" | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 /*==== EXPORT =====================================================*/ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 /*==== PRIVAT =====================================================*/ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 /*==== VARIABLES ==================================================*/ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 /*==== FUNCTIONS ==================================================*/ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 LOCAL void att_sys_info_read(USHORT mess_bit); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 LOCAL void att_copy_sys_info_2_2bis_par(UBYTE index, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 T_VOID_STRUCT *sys_info_2_2bis, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 T_LIST *new_2_2bis_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 UBYTE ncell_ext, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 T_SI_TYPE si_type, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 UBYTE indicate_changes); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 * ------------------------------------------------------------------- | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 * SIGNAL Processing functions | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 * ------------------------------------------------------------------- | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 | STATE : code ROUTINE : att_dat_dedicated | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 PURPOSE : The data transfer process indicates that the dedicated | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 state is reached. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 GLOBAL void att_dat_dedicated (void) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 TRACE_FUNCTION ("att_dat_dedicated()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 * align attachment process state | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 SET_STATE (STATE_ATT, ATT_DEDICATED); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 | STATE : code ROUTINE : att_dat_con_est | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 PURPOSE : The data transfer process indicates that the connection | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 establishment state is reached. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 GLOBAL void att_dat_con_est (void) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 TRACE_FUNCTION ("att_dat_con_est()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 * stop possibly parallel PLMN search | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 if ((rr_data->ms_data.rr_service EQ LIMITED_SERVICE) OR | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 (CS_GET_CURRENT_SEARCH_MODE EQ BLACK_LIST_SEARCH_MODE)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 att_notify_stop_plmn_search (FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 TRACE_EVENT(" PLMN_SEARCH_STOPPED"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 * If network search is ongoing, abort | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 * and allow cell reselection. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 if (rr_data->ms_data.req_mm_service EQ FUNC_NET_SRCH_BY_MMI) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 * send Please Retry to the MMI | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 rr_data->sc_data.found_entries = 0; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 att_code_rr_abort_ind (RRCS_ABORT_CEL_SEL_FAIL); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 * reset multiband parameter | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 rr_data->ncell_mb = 0; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 * save the neighbour cell list valid in idle mode | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 * (derived from SI 2x) to restore it after | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 * dedicated mode shorter than 30 seconds | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 * Note: SI 5x may contain other neighbour cells than SI 2x | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 memcpy(&rr_data->sc_data.ncell_list_idle, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 &rr_data->sc_data.cd.ncell_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 sizeof(T_LIST)); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 * align attachment process state | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 SET_STATE (STATE_ATT, ATT_CON_EST); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 | STATE : code ROUTINE : att_get_index | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 PURPOSE : Calculates from the arfcn of the cell the index in the | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 data structures: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 0-5 neighbour cell | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 6 serving cell (SC_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 7 cell reselection cell (CR_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 255 not present | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 GLOBAL UBYTE att_get_index (USHORT arfcn) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 UBYTE i; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 TRACE_FUNCTION ("att_get_index()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 * check first cell reselection index | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 if (arfcn EQ rr_data->nc_data[CR_INDEX].arfcn) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 return CR_INDEX; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 178 * then check serving cell index | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 if (arfcn EQ rr_data->nc_data[SC_INDEX].arfcn) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 return SC_INDEX; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 182 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 183 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 184 * third step is to check the neighbourcells | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 185 * if available | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 186 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 187 for (i=0;i<6;i++) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 188 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 189 if (rr_data->nc_data[i].bcch_status NEQ EMPTY AND | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 190 rr_data->nc_data[i].arfcn EQ arfcn) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 191 return i; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 193 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 194 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 195 * nothing found | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 196 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 197 return NOT_PRESENT_8BIT; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 198 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 199 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 200 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 203 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 204 | STATE : code ROUTINE : att_for_sysinfo_type1 | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 205 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 207 PURPOSE : A system information message one has received. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 208 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 211 GLOBAL void att_for_sysinfo_type1 (USHORT arfcn, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 212 T_D_SYS_INFO_1 *sys_info_1, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 213 T_LIST *cell_chan_desc) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 214 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 215 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 216 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 * get the storage area by checking the channel number | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 218 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 219 UBYTE index = att_get_index (arfcn); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 220 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 221 TRACE_FUNCTION ("att_for_sysinfo_type1()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 223 switch (GET_STATE (STATE_ATT)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 224 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 225 case ATT_CS2: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 226 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 227 * during cell selection only CR_INDEX is taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 228 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 229 if (index EQ CR_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 230 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 231 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 232 * copy relevant parameters and check bcch carrier | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 233 * if the BCCH is read completely. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 234 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 235 att_copy_sys_info_1_par (CR_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 236 sys_info_1, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 237 cell_chan_desc); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 238 att_check_bcch_carrier_si (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 239 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 240 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 241 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 242 case ATT_CS3: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 243 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 244 * during cell reselection only CR_INDEX is taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 245 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 246 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 247 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 248 * copy relevant parameters and check neighbourcell bcch carrier | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 249 * if the BCCH is read completely. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 250 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 251 att_copy_sys_info_1_par (index, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 252 sys_info_1, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 253 cell_chan_desc); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 254 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 255 if (index EQ CR_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 256 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 257 att_check_neighbourcell_si_reestab(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 258 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 259 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 260 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 261 case ATT_IDLE: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 262 case ATT_CON_EST: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 263 switch (index) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 264 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 265 case SC_INDEX: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 266 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 267 * changed system information type 1 message received for | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 268 * the serving cell. Store relevant parameter and reconfigure | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 269 * Layer 1 and MM if needed | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 270 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 271 att_copy_sys_info_1_par (SC_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 272 sys_info_1, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 273 cell_chan_desc); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 274 att_check_barred_status_in_idle (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 275 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 276 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 277 case CR_INDEX: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 278 att_copy_sys_info_1_par (CR_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 279 sys_info_1, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 280 cell_chan_desc); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 281 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 282 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 283 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 284 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 285 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 286 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 287 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 288 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 289 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 290 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 291 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 292 /* Implements RR Clone findings #19 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 293 /*unify functions: att_for_sysinfo_type2 , att_for_sysinfo_type2bis by adding a parameter si_type.*/ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 294 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 295 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 296 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 297 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 298 | STATE : code ROUTINE : att_for_sysinfo_type2_2bis | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 299 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 300 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 301 PURPOSE : This function handles the SI type 2 and 2Ter common parameters. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 302 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 303 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 304 GLOBAL void att_for_sysinfo_type2_2bis (USHORT arfcn, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 305 T_VOID_STRUCT *sys_info_2_2bis, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 306 T_LIST *new_2_2bis_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 307 UBYTE ncell_ext, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 308 T_SI_TYPE si_type) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 309 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 310 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 311 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 312 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 313 * get the storage area by checking the channel number | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 314 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 315 UBYTE index = att_get_index (arfcn); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 316 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 317 TRACE_FUNCTION ("att_for_sysinfo_type2_2bis()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 318 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 319 switch (GET_STATE (STATE_ATT)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 320 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 321 case ATT_CS2: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 322 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 323 * during cell selection only CR_INDEX is taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 324 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 325 if (index EQ CR_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 326 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 327 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 328 * copy relevant parameters and check bcch carrier | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 329 * if the BCCH is read completely. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 330 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 331 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 332 att_copy_sys_info_2_2bis_par (CR_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 333 sys_info_2_2bis, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 334 new_2_2bis_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 335 ncell_ext, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 336 si_type, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 337 FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 338 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 339 att_check_bcch_carrier_si (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 340 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 341 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 342 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 343 case ATT_CS3: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 344 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 345 * during cell reselection only CR_INDEX is taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 346 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 347 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 348 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 349 * copy relevant parameters and check neighbourcell bcch carrier | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 350 * if the BCCH is read completely. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 351 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 352 att_copy_sys_info_2_2bis_par (index, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 353 sys_info_2_2bis, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 354 new_2_2bis_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 355 ncell_ext, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 356 si_type, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 357 FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 358 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 359 if (index EQ CR_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 360 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 361 att_check_neighbourcell_si_reestab(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 362 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 363 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 364 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 365 case ATT_IDLE: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 366 case ATT_CON_EST: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 367 switch (index) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 368 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 369 case SC_INDEX: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 370 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 371 * changed system information type 2/2bis message received for | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 372 * the serving cell. Store relevant parameter and reconfigure | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 373 * Layer 1 and MM if needed | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 374 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 375 att_copy_sys_info_2_2bis_par (SC_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 376 sys_info_2_2bis, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 377 new_2_2bis_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 378 ncell_ext, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 379 si_type, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 380 TRUE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 381 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 382 att_check_barred_status_in_idle (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 383 #ifdef GPRS | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 384 if(att_gprs_is_avail() AND (rr_data->sc_data.cd.sys_info_read EQ ALL_SYS_INFO_READ)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 385 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 386 TRACE_EVENT ("SI 2 or 2bis received after SI 13"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 387 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 388 if(rr_data->sc_data.selection_type EQ CELL_RESELECTION_ON_GPRS_ACT) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 389 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 390 TIMERSTOP(T_RESELECT); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 391 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 392 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 393 switch (GET_STATE(STATE_GPRS)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 394 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 395 case GPRS_PIM_PBCCH: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 396 att_gprs_stop_pl(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 397 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 398 case GPRS_PIM_BCCH: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 399 att_build_idle_req(SC_INDEX, MODE_SYS_INFO_CHANGE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 400 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 401 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 402 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 403 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 404 att_signal_gprs_support(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 405 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 406 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 407 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 408 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 409 case CR_INDEX: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 410 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 411 * for 2 case:system information 2 is only important to speed up the | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 412 * PLMN available search. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 413 * for 2bis case:system information type 2bis message is stored. This is needed | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 414 * for PLMN available search. Really taken in account after | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 415 * reception of system info 2,3 or 4. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 416 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 417 att_copy_sys_info_2_2bis_par (CR_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 418 sys_info_2_2bis, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 419 new_2_2bis_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 420 ncell_ext, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 421 si_type, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 422 FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 423 if (si_type EQ SI_TYPE_2) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 424 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 425 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 426 * if all is read, add the PLMN to the found list | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 427 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 428 switch (rr_data->ms_data.req_mm_service) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 429 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 430 case FUNC_NET_SRCH_BY_MMI: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 431 att_check_bcch_carrier_si (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 432 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 433 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 434 TRACE_EVENT_P1 ( "req_mm_service:%d", rr_data->ms_data.req_mm_service ); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 435 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 436 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 437 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 438 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 439 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 440 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 441 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 442 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 443 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 444 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 445 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 446 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 447 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 448 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 449 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 450 | STATE : code ROUTINE : att_for_sysinfo_type2ter | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 451 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 452 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 453 PURPOSE : A system information message 2ter has received. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 454 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 455 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 456 GLOBAL void att_for_sysinfo_type2ter (USHORT arfcn, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 457 T_D_SYS_INFO_2TER *sys_info_2ter, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 458 T_LIST *new_2ter_list) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 459 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 460 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 461 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 462 * get the storage area by checking the channel number | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 463 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 464 UBYTE index = att_get_index (arfcn); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 465 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 466 TRACE_FUNCTION ("att_for_sysinfo_type2ter()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 467 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 468 switch (GET_STATE (STATE_ATT)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 469 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 470 case ATT_CS2: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 471 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 472 * during cell selection only CR_INDEX is taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 473 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 474 if (index EQ CR_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 475 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 476 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 477 * copy relevant parameters and check bcch carrier | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 478 * if the BCCH is read completely. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 479 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 480 att_copy_sys_info_2ter_par (CR_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 481 sys_info_2ter, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 482 new_2ter_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 483 FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 484 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 485 att_check_bcch_carrier_si (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 486 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 487 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 488 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 489 case ATT_CS3: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 490 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 491 * during cell selection only CR_INDEX is taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 492 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 493 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 494 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 495 * copy relevant parameters and check bcch carrier | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 496 * if the BCCH is read completely. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 497 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 498 att_copy_sys_info_2ter_par (index, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 499 sys_info_2ter, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 500 new_2ter_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 501 FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 502 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 503 if (index EQ CR_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 504 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 505 att_check_neighbourcell_si_reestab(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 506 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 507 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 508 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 509 case ATT_IDLE: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 510 case ATT_CON_EST: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 511 switch (index) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 512 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 513 case SC_INDEX: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 514 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 515 * changed system information type 2bis message received for | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 516 * the serving cell. Store relevant parameter and reconfigure | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 517 * Layer 1 and MM if needed | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 518 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 519 att_copy_sys_info_2ter_par (SC_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 520 sys_info_2ter, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 521 new_2ter_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 522 TRUE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 523 #ifdef GPRS | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 524 if(att_gprs_is_avail() AND (rr_data->sc_data.cd.sys_info_read EQ ALL_SYS_INFO_READ)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 525 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 526 TRACE_EVENT ("SI 2ter received after SI 13"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 527 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 528 if(rr_data->sc_data.selection_type EQ CELL_RESELECTION_ON_GPRS_ACT) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 529 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 530 TIMERSTOP(T_RESELECT); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 531 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 532 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 533 switch (GET_STATE(STATE_GPRS)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 534 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 535 case GPRS_PIM_PBCCH: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 536 att_gprs_stop_pl(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 537 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 538 case GPRS_PIM_BCCH: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 539 att_build_idle_req(SC_INDEX, MODE_SYS_INFO_CHANGE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 540 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 541 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 542 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 543 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 544 att_signal_gprs_support(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 545 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 546 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 547 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 548 case CR_INDEX: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 549 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 550 * system information type 2bis message is stored. This is needed | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 551 * for PLMN available search. Really taken in account after | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 552 * reception of system info 2,3 or 4. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 553 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 554 att_copy_sys_info_2ter_par (CR_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 555 sys_info_2ter, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 556 new_2ter_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 557 FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 558 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 559 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 560 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 561 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 562 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 563 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 564 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 565 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 566 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 567 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 568 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 569 | STATE : code ROUTINE : att_for_sysinfo_type3 | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 570 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 571 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 572 PURPOSE : A system information message 3 has received. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 573 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 574 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 575 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 576 GLOBAL void att_for_sysinfo_type3 (USHORT arfcn, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 577 T_D_SYS_INFO_3 *sys_info_3) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 578 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 579 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 580 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 581 * get the storage area by checking the channel number | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 582 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 583 UBYTE index = att_get_index (arfcn); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 584 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 585 TRACE_FUNCTION ("att_for_sysinfo_type3()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 586 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 587 TRACE_EVENT_P8 ("SI3: MCC=%X%X%X MNC=%X%X%X LAC=%04X CID=%04X", | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 588 sys_info_3->loc_area_ident.mcc[0], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 589 sys_info_3->loc_area_ident.mcc[1], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 590 sys_info_3->loc_area_ident.mcc[2], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 591 sys_info_3->loc_area_ident.mnc[0], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 592 sys_info_3->loc_area_ident.mnc[1], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 593 sys_info_3->loc_area_ident.mnc[2], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 594 sys_info_3->loc_area_ident.lac, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 595 sys_info_3->cell_ident); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 596 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 597 if ( index EQ NOT_PRESENT_8BIT ) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 598 return; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 599 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 600 #ifdef GPRS | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 601 rr_data->nc_data[index].si13_loc_ind = SI13_NOT_PRESENT; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 602 if(sys_info_3->si3_rest_oct.v_gprs_indic) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 603 if(sys_info_3->si3_rest_oct.gprs_indic.si13_pos EQ SI13_ON_BCCH_EXT) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 604 rr_data->nc_data[index].si13_loc_ind = EXTENDED_BCCH; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 605 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 606 rr_data->nc_data[index].si13_loc_ind = NORMAL_BCCH; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 607 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 608 switch (GET_STATE (STATE_ATT)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 609 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 610 case ATT_CS2: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 611 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 612 * during cell selection only CR_INDEX is taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 613 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 614 if (index EQ CR_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 615 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 616 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 617 * copy relevant parameters and check bcch carrier | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 618 * if the BCCH is read completely. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 619 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 620 att_copy_sys_info_3_par (CR_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 621 sys_info_3, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 622 FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 623 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 624 * During Cell Selection if received SI3 from a PLMN which doesn't match | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 625 * requested PLMN then no need to wait for remaining SI messages | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 626 * The First Scan First Attempt is for Full Service search and only | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 627 * the carriers with Normal Priority is scanned and for this if the PLMN | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 628 * doesnot match, then no need to read remaining SIs. In the sucessive scans | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 629 * i.e First Scan Second Attempt and Second scan all the carriers are scanned | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 630 * irrespective of the priority and all the SI messages need to be read. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 631 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 632 if ((rr_data->cs_data.scan_mode EQ CS_FIRST_SCAN_FIRST_ATTEMPT) AND | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 633 (rr_data->ms_data.req_mm_service EQ FUNC_PLMN_SRCH) AND | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 634 (!dat_plmn_equal_req (sys_info_3->loc_area_ident.mcc, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 635 sys_info_3->loc_area_ident.mnc, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 636 rr_data->ms_data.plmn.mcc, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 637 rr_data->ms_data.plmn.mnc))) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 638 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 639 att_set_sys_info_read ( SYS_INFO_4_READ | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 640 SYS_INFO_1_READ | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 641 SYS_INFO_2_READ | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 642 SYS_INFO_2BIS_READ | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 643 SYS_INFO_2TER_READ, index); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 644 #ifdef GPRS | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 645 att_set_sys_info_read (SYS_INFO_13_READ, index); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 646 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 647 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 648 #ifdef GPRS | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 649 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 650 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 651 att_check_gprs_supp (sys_info_3->si3_rest_oct.v_gprs_indic, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 652 &sys_info_3->si3_rest_oct.gprs_indic); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 653 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 654 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 655 att_check_bcch_carrier_si (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 656 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 657 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 658 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 659 case ATT_CS3: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 660 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 661 * during cell reselection only CR_INDEX is taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 662 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 663 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 664 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 665 * copy relevant parameters and check neighbourcell bcch carrier | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 666 * if the BCCH is read completely. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 667 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 668 att_copy_sys_info_3_par (index, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 669 sys_info_3, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 670 FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 671 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 672 if (index EQ CR_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 673 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 674 #ifdef GPRS | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 675 att_check_gprs_supp (sys_info_3->si3_rest_oct.v_gprs_indic, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 676 &sys_info_3->si3_rest_oct.gprs_indic); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 677 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 678 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 679 att_check_neighbourcell_si_reestab(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 680 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 681 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 682 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 683 /* We have received some SYS INFO which is not the CR candidate */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 684 rr_data->nc_data[index].bcch_status = DECODED; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 685 rr_data->nc_data[index].bcch_counter = 0; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 686 rr_data->nc_data[index].c1_counter = 0; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 687 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 688 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 689 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 690 case ATT_IDLE: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 691 case ATT_CON_EST: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 692 switch (index) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 693 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 694 case SC_INDEX: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 695 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 696 * changed system information type 3 message received for | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 697 * the serving cell. Store relevant parameter and reconfigure | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 698 * Layer 1 and MM if needed | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 699 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 700 #ifdef GPRS | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 701 att_check_gprs_supp (sys_info_3->si3_rest_oct.v_gprs_indic, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 702 &sys_info_3->si3_rest_oct.gprs_indic); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 703 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 704 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 705 att_copy_sys_info_3_par (SC_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 706 sys_info_3, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 707 TRUE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 708 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 709 att_check_barred_status_in_idle (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 710 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 711 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 712 case CR_INDEX: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 713 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 714 * it is for a cell which is read in parallel during idle mode | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 715 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 716 att_copy_sys_info_3_par (CR_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 717 sys_info_3, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 718 FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 719 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 720 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 721 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 722 * depending on the requested MM service | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 723 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 724 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 725 /* Implements RR Clone findings #30 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 726 att_sys_info_read(SYS_INFO_4_READ); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 727 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 728 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 729 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 730 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 731 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 732 case NOT_PRESENT_8BIT: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 733 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 734 * unexpected channel number | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 735 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 736 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 737 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 738 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 739 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 740 BOOL plmn_ok = TRUE; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 741 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 742 if(rr_data->ms_data.rr_service EQ FULL_SERVICE) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 743 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 744 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 745 * Sometimes the BA list contains cells from other PLMN's | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 746 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 747 plmn_ok = dat_plmn_equal_req (sys_info_3->loc_area_ident.mcc, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 748 sys_info_3->loc_area_ident.mnc, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 749 rr_data->ms_data.plmn.mcc, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 750 rr_data->ms_data.plmn.mnc); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 751 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 752 if(plmn_ok) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 753 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 754 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 755 * neighbour cell, copy parameters and set status to decoded. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 756 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 757 att_copy_sys_info_3_par (index,sys_info_3,FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 758 att_bcch_status_to_decoded (index); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 759 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 760 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 761 TRACE_EVENT_P2("[%u]i%u Ignoring SI3 as plmn_ok = FALSE", rr_data->nc_data[index].arfcn, index); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 762 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 763 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 764 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 765 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 766 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 767 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 768 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 769 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 770 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 771 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 772 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 773 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 774 | STATE : code ROUTINE : att_for_sysinfo_type4 | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 775 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 776 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 777 PURPOSE : A system information message 4 has received. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 778 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 779 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 780 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 781 GLOBAL void att_for_sysinfo_type4 (USHORT arfcn, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 782 T_D_SYS_INFO_4 *sys_info_4) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 783 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 784 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 785 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 786 * get the storage area by checking the channel number | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 787 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 788 UBYTE index = att_get_index (arfcn); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 789 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 790 TRACE_FUNCTION ("att_for_sysinfo_type4()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 791 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 792 TRACE_EVENT_P7 ("SI4: MCC=%X%X%X MNC=%X%X%X LAC=%04X", | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 793 sys_info_4->loc_area_ident.mcc[0], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 794 sys_info_4->loc_area_ident.mcc[1], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 795 sys_info_4->loc_area_ident.mcc[2], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 796 sys_info_4->loc_area_ident.mnc[0], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 797 sys_info_4->loc_area_ident.mnc[1], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 798 sys_info_4->loc_area_ident.mnc[2], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 799 sys_info_4->loc_area_ident.lac); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 800 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 801 if ( index EQ NOT_PRESENT_8BIT ) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 802 return; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 803 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 804 #ifdef GPRS | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 805 rr_data->nc_data[index].si13_loc_ind = SI13_NOT_PRESENT; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 806 if(sys_info_4->si4_rest_oct.v_gprs_indic) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 807 if(sys_info_4->si4_rest_oct.gprs_indic.si13_pos EQ SI13_ON_BCCH_EXT) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 808 rr_data->nc_data[index].si13_loc_ind = EXTENDED_BCCH; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 809 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 810 rr_data->nc_data[index].si13_loc_ind = NORMAL_BCCH; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 811 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 812 switch (GET_STATE (STATE_ATT)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 813 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 814 case ATT_CS2: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 815 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 816 * during cell selection only CR_INDEX is taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 817 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 818 if (index EQ CR_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 819 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 820 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 821 * copy relevant parameters and check bcch carrier | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 822 * if the BCCH is read completely. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 823 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 824 att_copy_sys_info_4_par (CR_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 825 sys_info_4, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 826 FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 827 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 828 * During Cell Selection if received SI4 from a PLMN which doesn't match | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 829 * requested PLMN then no need to wait for remaining SI messages | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 830 * The First Scan First Attempt is for Full Service search and only | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 831 * the carriers with Normal Priority is scanned and for this if the PLMN | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 832 * doesnot match, then no need to read remaining SIs. In the sucessive scans | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 833 * i.e First Scan Second Attempt and Second scan all the carriers are scanned | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 834 * irrespective of the priority and all the SI messages need to be read. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 835 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 836 if ((rr_data->cs_data.scan_mode EQ CS_FIRST_SCAN_FIRST_ATTEMPT) AND | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 837 (rr_data->ms_data.req_mm_service EQ FUNC_PLMN_SRCH) AND | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 838 (!dat_plmn_equal_req (sys_info_4->loc_area_ident.mcc, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 839 sys_info_4->loc_area_ident.mnc, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 840 rr_data->ms_data.plmn.mcc, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 841 rr_data->ms_data.plmn.mnc))) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 842 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 843 att_set_sys_info_read ( SYS_INFO_3_READ | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 844 SYS_INFO_1_READ | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 845 SYS_INFO_2_READ | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 846 SYS_INFO_2BIS_READ | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 847 SYS_INFO_2TER_READ, index); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 848 #ifdef GPRS | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 849 att_set_sys_info_read (SYS_INFO_13_READ, index); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 850 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 851 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 852 #ifdef GPRS | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 853 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 854 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 855 if (!sys_info_4->cell_select.acs) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 856 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 857 att_check_gprs_supp(sys_info_4->si4_rest_oct.v_gprs_indic, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 858 &sys_info_4->si4_rest_oct.gprs_indic); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 859 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 860 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 861 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 862 att_check_bcch_carrier_si (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 863 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 864 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 865 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 866 case ATT_CS3: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 867 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 868 * during cell reselection only CR_INDEX is taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 869 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 870 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 871 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 872 * copy relevant parameters and check neighbourcell bcch carrier | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 873 * if the BCCH is read completely. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 874 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 875 att_copy_sys_info_4_par (index, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 876 sys_info_4, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 877 FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 878 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 879 if (index EQ CR_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 880 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 881 #ifdef GPRS | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 882 if (!sys_info_4->cell_select.acs) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 883 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 884 att_check_gprs_supp(sys_info_4->si4_rest_oct.v_gprs_indic, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 885 &sys_info_4->si4_rest_oct.gprs_indic); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 886 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 887 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 888 att_check_neighbourcell_si_reestab(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 889 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 890 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 891 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 892 if (!sys_info_4->cell_select.acs) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 893 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 894 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 895 * if system information type 4 contains all information | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 896 * for calculation C2, copy this parameter and declare channel | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 897 * as decoded, that means as a candidate for cell reselection. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 898 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 899 att_copy_c2_parameter_si4 (index, &sys_info_4->si4_rest_oct); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 900 rr_data->nc_data[index].bcch_status = DECODED; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 901 rr_data->nc_data[index].bcch_counter = 0; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 902 rr_data->nc_data[index].c1_counter = 0; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 903 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 904 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 905 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 906 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 907 case ATT_IDLE: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 908 case ATT_CON_EST: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 909 switch (index) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 910 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 911 case SC_INDEX: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 912 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 913 * changed system information type 4 message received for | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 914 * the serving cell. Store relevant parameter and reconfigure | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 915 * Layer 1 and MM if needed | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 916 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 917 att_copy_sys_info_4_par (SC_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 918 sys_info_4, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 919 TRUE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 920 att_check_barred_status_in_idle (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 921 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 922 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 923 case NOT_PRESENT_8BIT: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 924 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 925 * unexpected channel number, ignore | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 926 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 927 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 928 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 929 case CR_INDEX: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 930 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 931 * channel for which RR searches in parallel | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 932 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 933 att_copy_sys_info_4_par (CR_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 934 sys_info_4, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 935 FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 936 if (!sys_info_4->cell_select.acs) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 937 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 938 att_copy_c2_parameter_si4 (index, &sys_info_4->si4_rest_oct); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 939 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 940 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 941 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 942 * depending on the service requested by MM | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 943 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 944 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 945 /* Implements RR Clone findings #30 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 946 att_sys_info_read(SYS_INFO_3_READ); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 947 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 948 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 949 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 950 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 951 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 952 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 953 BOOL plmn_ok = TRUE; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 954 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 955 if(rr_data->ms_data.rr_service EQ FULL_SERVICE) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 956 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 957 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 958 * Sometimes the BA list contains cells from other PLMN's | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 959 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 960 plmn_ok = dat_plmn_equal_req (sys_info_4->loc_area_ident.mcc, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 961 sys_info_4->loc_area_ident.mnc, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 962 rr_data->ms_data.plmn.mcc, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 963 rr_data->ms_data.plmn.mnc); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 964 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 965 if(plmn_ok) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 966 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 967 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 968 * Neighbour cell BCCH | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 969 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 970 att_copy_sys_info_4_par (index, sys_info_4, FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 971 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 972 if (!sys_info_4->cell_select.acs) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 973 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 974 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 975 * if system information type 4 contains all information | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 976 * for calculation C2, copy this parameter and declare channel | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 977 * as decoded, that means as a candidate for cell reselection. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 978 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 979 att_copy_c2_parameter_si4 (index, &sys_info_4->si4_rest_oct); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 980 att_bcch_status_to_decoded (index); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 981 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 982 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 983 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 984 TRACE_EVENT_P2("[%u]i%u Ignoring SI4 as plmn_ok = FALSE", rr_data->nc_data[index].arfcn, index); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 985 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 986 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 987 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 988 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 989 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 990 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 991 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 992 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 993 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 994 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 995 /* Implements RR Clone findings #2 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 996 /*unify functions: att_for_sysinfo_type5, att_for_sysinfo_type5bis by adding a parameter si_type*/ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 997 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 998 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 999 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1000 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1001 | STATE : code ROUTINE : att_for_sysinfo_type5_5bis | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1002 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1003 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1004 PURPOSE : This function handles the system information type 5 and 5bis | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1005 common parameters. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1006 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1007 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1008 GLOBAL void att_for_sysinfo_type5_5bis(USHORT arfcn, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1009 T_LIST *new_5_5bis_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1010 UBYTE old_index, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1011 UBYTE ncell_ext, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1012 T_SI_TYPE si_type) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1013 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1014 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1015 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1016 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1017 * calculate the index for the channel | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1018 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1019 UBYTE index = att_get_index (arfcn); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1020 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1021 USHORT cur_si_type_read; /*Current SI type*/ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1022 USHORT oth_si_type_read; /*The other SI type in this function*/ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1023 USHORT oth_si_to_clean;/*The other SI to clean in this function*/ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1024 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1025 TRACE_FUNCTION("att_for_sysinfo_type5_5bis()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1026 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1027 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1028 * only messages for the serving cell are taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1029 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1030 if (index NEQ SC_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1031 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1032 return; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1033 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1034 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1035 switch (GET_STATE (STATE_ATT)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1036 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1037 case ATT_DEDICATED: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1038 case ATT_CON_EST: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1039 if (dat_check_error_flag (SEND_NO_RR_STATUS)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1040 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1041 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1042 * receiving a modified BA indicator forces discarding the current BA | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1043 * receiving a SI5 while the bit SYS_INFO_5_READ is set or | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1044 * receiving a SI5Bis while the bit SYS_INFO_5Bis_READ is set | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1045 * indicates a change of the BA list | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1046 * => clear old channel list | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1047 * => delete other SI5x read bit mask | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1048 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1049 if(si_type EQ SI_TYPE_5) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1050 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1051 cur_si_type_read = SYS_INFO_5_READ; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1052 oth_si_type_read = SYS_INFO_5BIS_READ; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1053 oth_si_to_clean = IND_SI_5BIS; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1054 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1055 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1056 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1057 cur_si_type_read = SYS_INFO_5BIS_READ; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1058 oth_si_type_read = SYS_INFO_5_READ; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1059 oth_si_to_clean = IND_SI_5; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1060 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1061 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1062 if (old_index NEQ rr_data->sc_data.ba_index OR | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1063 (rr_data->sc_data.cd.sys_info_read & ( cur_si_type_read) )EQ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1064 (cur_si_type_read)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1065 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1066 srv_copy_list (&rr_data->sc_data.cd.ncell_list, new_5_5bis_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1067 sizeof (T_LIST)); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1068 srv_clear_list(&rr_data->sc_data.five_ter_list); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1069 rr_data->sc_data.cd.sys_info_read &= | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1070 ~((oth_si_type_read) | SYS_INFO_5TER_READ); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1071 att_clean_buf( (USHORT)((oth_si_to_clean) | IND_SI_5TER)); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1072 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1073 else if ( (rr_data->sc_data.cd.sys_info_read & | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1074 (cur_si_type_read | oth_si_type_read)) EQ 0 ) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1075 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1076 /* neither SI5 nor SI5bis received before */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1077 srv_copy_list (&rr_data->sc_data.cd.ncell_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1078 new_5_5bis_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1079 sizeof (T_LIST)); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1080 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1081 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1082 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1083 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1084 * SI5bis/SI5 received before | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1085 * merge list of sys info 5/sys info 5bis with the old neighbour cell list | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1086 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1087 srv_merge_list (&rr_data->sc_data.cd.ncell_list, new_5_5bis_list); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1088 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1089 /* CSI-LLD section:4.1.1.11 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1090 * This function Updates the black list with the BA list received in si5/si5bis | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1091 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1092 cs_remove_BA_MA_from_black_list(rr_data->cs_data.region,new_5_5bis_list); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1093 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1094 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1095 * set concerning bit mask | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1096 * if the extension indication not set, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1097 * the sys info carries the complete BA | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1098 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1099 att_set_sys_info_read ((cur_si_type_read), SC_INDEX); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1100 if (!ncell_ext) /* in case of 5bis, is't possible, that 5bis carries the complete BA???*/ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1101 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1102 att_set_sys_info_read ((oth_si_type_read), SC_INDEX); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1103 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1104 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1105 att_code_mph_ncell_req_dedicated (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1106 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1107 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1108 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1109 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1110 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1111 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1112 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1113 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1114 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1115 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1116 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1117 | STATE : code ROUTINE : att_for_sysinfo_type5ter | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1118 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1119 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1120 PURPOSE : A system information message 5ter has received. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1121 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1122 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1123 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1124 GLOBAL void att_for_sysinfo_type5ter (USHORT arfcn, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1125 T_LIST *new_5ter_list) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1126 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1127 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1128 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1129 * calculate the index for the channel | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1130 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1131 UBYTE index = att_get_index (arfcn); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1132 TRACE_FUNCTION ("att_for_sysinfo_type5ter()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1133 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1134 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1135 * only messages for the serving cell are taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1136 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1137 if (index NEQ SC_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1138 return; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1139 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1140 switch (GET_STATE (STATE_ATT)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1141 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1142 case ATT_DEDICATED: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1143 case ATT_CON_EST: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1144 if (dat_check_error_flag (SEND_NO_RR_STATUS)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1145 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1146 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1147 * if there is received a new SI5ter, it replaces the old | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1148 * five_ter_list | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1149 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1150 att_set_sys_info_read (SYS_INFO_5TER_READ, SC_INDEX); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1151 srv_copy_list (&rr_data->sc_data.five_ter_list, new_5ter_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1152 sizeof (T_LIST)); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1153 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1154 /* CSI-LLD section:4.1.1.11 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1155 * This function Updates the black list with the BA list received in si5ter | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1156 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1157 cs_remove_BA_MA_from_black_list(rr_data->cs_data.region,new_5ter_list); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1158 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1159 att_code_mph_ncell_req_dedicated (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1160 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1161 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1162 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1163 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1164 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1165 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1166 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1167 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1168 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1169 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1170 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1171 | STATE : code ROUTINE : att_for_sysinfo_type6 | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1172 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1173 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1174 PURPOSE : A system information type 6 message has received. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1175 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1176 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1177 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1178 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1179 * two tables to convert air-interface coding for dtx (depending on full | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1180 * or halfrate) to the internal coding | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1181 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1182 static const UBYTE dtx_halfrate [8] = | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1183 { FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE }; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1184 static const UBYTE dtx_fullrate [8] = | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1185 { TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, FALSE, TRUE }; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1186 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1187 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1188 GLOBAL void att_for_sysinfo_type6 (USHORT arfcn, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1189 T_D_SYS_INFO_6 *sys_info_6) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1190 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1191 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1192 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1193 * calculate the index for the channel | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1194 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1195 UBYTE index = att_get_index (arfcn); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1196 UBYTE transfer = FALSE; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1197 UBYTE new_dtx; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1198 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1199 TRACE_FUNCTION ("att_for_sysinfo_type6()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1200 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1201 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1202 * only messages for the serving cell are taken in account | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1203 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1204 if (index NEQ SC_INDEX) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1205 return; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1206 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1207 switch (GET_STATE (STATE_ATT)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1208 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1209 case ATT_DEDICATED: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1210 case ATT_CON_EST: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1211 if (dat_check_error_flag (SEND_NO_RR_STATUS)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1212 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1213 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1214 * store location information for the serving cell | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1215 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1216 rr_data->nc_data[SC_INDEX].cell_id = sys_info_6->cell_ident; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1217 memcpy (&rr_data->nc_data[SC_INDEX].lai, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1218 &sys_info_6->loc_area_ident, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1219 sizeof (T_loc_area_ident)); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1220 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1221 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1222 * set new dtx values | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1223 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1224 rr_data->sc_data.cd.dtx_half = dtx_halfrate [(sys_info_6->cell_opt_sacch.dtx2_s << 2) + | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1225 sys_info_6->cell_opt_sacch.dtx_s]; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1226 rr_data->sc_data.cd.dtx_full = dtx_fullrate [(sys_info_6->cell_opt_sacch.dtx2_s << 2) + | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1227 sys_info_6->cell_opt_sacch.dtx_s]; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1228 if (rr_data->sc_data.chan_desc.chan_type EQ 2 OR | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1229 rr_data->sc_data.chan_desc.chan_type EQ 3) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1230 new_dtx = rr_data->sc_data.cd.dtx_half; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1231 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1232 new_dtx = rr_data->sc_data.cd.dtx_full; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1233 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1234 #ifdef TI_PS_FF_QUAD_BAND_SUPPORT | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1235 rr_data->sc_data.cd.band_indicator = sys_info_6->si6_rest_oct.band_indicator; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1236 att_update_std_band_indicator (rr_data->sc_data.cd.band_indicator); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1237 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1238 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1239 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1240 * Check change of DTX value | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1241 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1242 if (rr_data->sc_data.cd.dtx NEQ new_dtx) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1243 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1244 transfer = TRUE; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1245 rr_data->sc_data.cd.dtx = new_dtx; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1246 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1247 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1248 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1249 * Check Power Control Indicator | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1250 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1251 if (rr_data->sc_data.cd.cell_options.pow_ctrl NEQ sys_info_6->cell_opt_sacch.pow_ctrl) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1252 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1253 transfer = TRUE; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1254 rr_data->sc_data.cd.cell_options.pow_ctrl = sys_info_6->cell_opt_sacch.pow_ctrl; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1255 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1256 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1257 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1258 * Check Radio Link Timeout | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1259 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1260 if (rr_data->sc_data.cd.cell_options.rlt NEQ sys_info_6->cell_opt_sacch.rlt) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1261 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1262 transfer = TRUE; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1263 rr_data->sc_data.cd.cell_options.rlt = sys_info_6->cell_opt_sacch.rlt; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1264 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1265 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1266 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1267 * Copy NCC Permitted | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1268 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1269 rr_data->sc_data.cd.ncc_permitted = sys_info_6->ncc_permit; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1270 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1271 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1272 * transfer changed values to layer 1 if available | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1273 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1274 if (transfer) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1275 dat_code_sys_info_change (rr_data->sc_data.cd.dtx, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1276 rr_data->sc_data.cd.cell_options.pow_ctrl, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1277 rr_data->sc_data.cd.cell_options.rlt); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1278 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1279 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1280 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1281 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1282 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1283 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1284 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1285 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1286 | STATE : code ROUTINE : att_for_sysinfo_type7_8 | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1287 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1288 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1289 PURPOSE : a system information message type 7 or 8 has received. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1290 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1291 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1292 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1293 GLOBAL void att_for_sysinfo_type7_8 (USHORT arfcn, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1294 T_D_SYS_INFO_8 *sys_info_8) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1295 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1296 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1297 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1298 * calculate the index for the channel | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1299 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1300 UBYTE index = att_get_index (arfcn); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1301 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1302 TRACE_FUNCTION ("att_for_sysinfo_type7_8()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1303 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1304 if ( index EQ NOT_PRESENT_8BIT ) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1305 return; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1306 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1307 switch (GET_STATE (STATE_ATT)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1308 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1309 case ATT_CS2: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1310 case ATT_IDLE: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1311 case ATT_CON_EST: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1312 switch (index) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1313 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1314 case SC_INDEX: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1315 att_copy_sys_info_7_8_par (SC_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1316 sys_info_8); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1317 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1318 case CR_INDEX: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1319 att_copy_sys_info_7_8_par (CR_INDEX, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1320 sys_info_8); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1321 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1322 case NOT_PRESENT_8BIT: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1323 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1324 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1325 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1326 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1327 * Neighbour cell BCCH requested | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1328 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1329 att_copy_sys_info_7_8_par (index, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1330 sys_info_8); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1331 att_bcch_status_to_decoded (index); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1332 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1333 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1334 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1335 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1336 case ATT_CS3: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1337 att_copy_sys_info_7_8_par (index, sys_info_8); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1338 rr_data->nc_data[index].bcch_status = DECODED; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1339 rr_data->nc_data[index].bcch_counter = 0; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1340 rr_data->nc_data[index].c1_counter = 0; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1341 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1342 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1343 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1344 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1345 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1346 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1347 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1348 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1349 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1350 | STATE : code ROUTINE : att_bsic_ind | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1351 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1352 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1353 PURPOSE : Handling of the signal att_bsic_ind from the cell selection | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1354 process. The signal is the positive result of a bsic request | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1355 to layer 1. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1356 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1357 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1358 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1359 GLOBAL void att_bsic_ind (USHORT arfcn, UBYTE rxlev, UBYTE bsic) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1360 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1361 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1362 TRACE_FUNCTION ("att_bsic_ind()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1363 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1364 switch (GET_STATE (STATE_ATT)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1365 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1366 case ATT_CS1: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1367 case ATT_CS2: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1368 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1369 * during cell selection | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1370 * | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1371 * store parameters of the carrier | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1372 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1373 rr_data->nc_data[CR_INDEX].arfcn = arfcn; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1374 rr_data->nc_data[CR_INDEX].rxlev = rxlev; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1375 rr_data->nc_data[CR_INDEX].bsic = bsic; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1376 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1377 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1378 * prepare reading of the BCCH, clear bitmap | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1379 * and start timer to control the end of BCCH reading. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1380 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1381 att_init_cr_data(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1382 TIMERSTART (T_RESELECT, TRESELECT_VALUE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1383 rr_data->nc_data[CR_INDEX].bcch_error = 0; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1384 srv_clear_list (&rr_data->cr_data.cd.ncell_list); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1385 SET_STATE (STATE_ATT, ATT_CS2); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1386 srv_use_stored_prim (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1387 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1388 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1389 case ATT_IDLE: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1390 case ATT_CON_EST: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1391 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1392 * A search in parallel to the idle mode is ongoing. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1393 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1394 if (arfcn EQ rr_data->nc_data[SC_INDEX].arfcn) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1395 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1396 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1397 * short cut if this is the current serving cell | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1398 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1399 PALLOC (mph_sync_req, MPH_SYNC_REQ); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1400 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1401 mph_sync_req->cs = CS_STOP_BCCH_READING; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1402 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1403 PSENDX (PL, mph_sync_req); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1404 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1405 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1406 * simulate BCCH reading by copying serving cell data | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1407 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1408 memcpy (&rr_data->nc_data[CR_INDEX], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1409 &rr_data->nc_data[SC_INDEX], | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1410 sizeof (T_NC_DATA)); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1411 /* Copy the neighbour cell list also */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1412 memcpy (&rr_data->cr_data.cd, &rr_data->sc_data.cd, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1413 sizeof (T_CELL_DATA)); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1414 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1415 rr_data->nc_data[CR_INDEX].arfcn = arfcn; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1416 rr_data->nc_data[CR_INDEX].rxlev = rxlev; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1417 rr_data->nc_data[CR_INDEX].bsic = bsic; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1418 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1419 att_check_bcch_carrier (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1420 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1421 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1422 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1423 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1424 * store the data from the BSIC confirmation | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1425 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1426 rr_data->nc_data[CR_INDEX].arfcn = arfcn; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1427 rr_data->nc_data[CR_INDEX].rxlev = rxlev; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1428 rr_data->nc_data[CR_INDEX].bsic = bsic; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1429 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1430 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1431 * initialize parameters for BCCH reading | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1432 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1433 att_init_cr_data(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1434 TIMERSTART (T_RESELECT, TRESELECT_VALUE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1435 srv_use_stored_prim (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1436 rr_data->nc_data[CR_INDEX].bcch_error = 0; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1437 srv_clear_list (&rr_data->cr_data.cd.ncell_list); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1438 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1439 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1440 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1441 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1442 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1443 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1444 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1445 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1446 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1447 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1448 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1449 | STATE : code ROUTINE : att_no_bsic_ind | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1450 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1451 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1452 PURPOSE : no bsic indication from cell selection process indicates | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1453 the end of the search for a carrier by BSIC requests. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1454 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1455 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1456 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1457 GLOBAL void att_no_bsic_ind (void) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1458 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1459 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1460 TRACE_FUNCTION ("att_no_bsic_ind()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1461 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1462 switch (GET_STATE (STATE_ATT)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1463 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1464 case ATT_CS1: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1465 case ATT_CS2: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1466 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1467 * depending on the service requested by MM | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1468 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1469 switch (rr_data->ms_data.req_mm_service) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1470 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1471 case FUNC_NET_SRCH_BY_MMI: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1472 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1473 * MM has requested the list of available | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1474 * PLMNs. Allow cell reselection decision | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1475 * again and send list to MM. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1476 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1477 rr_data->ms_data.rr_service = NO_SERVICE; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1478 att_code_rr_abort_ind (RRCS_ABORT_CEL_SEL_FAIL); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1479 SET_STATE (STATE_ATT, ATT_NO_SERVICE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1480 att_start_registration_timer (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1481 srv_use_stored_prim (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1482 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1483 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1484 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1485 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1486 * limited or full serivce requested by MM | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1487 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1488 switch (rr_data->ms_data.req_mm_service) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1489 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1490 case FUNC_LIM_SERV_ST_SRCH: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1491 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1492 * If MM has requested FUNC_PLMN_SRCH | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1493 * but no suitable cell was found and | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1494 * RR tried to reach limited service | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1495 * or MM only requested limited service | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1496 * but RR could not find an acceptable cell | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1497 * return no service | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1498 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1499 rr_data->ms_data.rr_service = NO_SERVICE; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1500 att_reset_old_lai_rac(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1501 att_code_rr_abort_ind (RRCS_ABORT_CEL_SEL_FAIL); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1502 SET_STATE (STATE_ATT, ATT_NO_SERVICE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1503 att_start_registration_timer (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1504 srv_use_stored_prim (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1505 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1506 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1507 case FUNC_PLMN_SRCH: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1508 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1509 * no BCCH for full service found | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1510 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1511 if(rr_data->cs_data.scan_mode EQ CS_FIRST_SCAN_FIRST_ATTEMPT) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1512 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1513 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1514 rr_data->cs_data.scan_mode = CS_FIRST_SCAN_SECOND_ATTEMPT; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1515 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1516 TRACE_EVENT("First Scan First Attempt done"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1517 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1518 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1519 * first attempt then look for low priority cells | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1520 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1521 if (cs_def_list (LOW_PRIORITY_CELL)) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1522 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1523 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1524 TRACE_EVENT("First Scan Second attempt started"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1525 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1526 * low priority cells available, then try it again | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1527 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1528 cs_start_sync (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1529 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1530 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1531 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1532 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1533 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1534 * no BCCH for full service available and the low | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1535 * priority cells have been tried. Then try | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1536 * to reach limited service by checking | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1537 * for emergency cells | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1538 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1539 if (cs_def_list (EMERGENCY_CELL) AND | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1540 rr_data->cs_data.scan_mode EQ CS_FIRST_SCAN_SECOND_ATTEMPT) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1541 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1542 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1543 * emergency cells available | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1544 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1545 rr_data->cs_data.scan_mode = CS_SECOND_SCAN; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1546 rr_data->ms_data.rr_service = LIMITED_SERVICE; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1547 TRACE_EVENT ("no suitable cell found, find acceptable cell"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1548 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1549 * clear any pending RR_ESTABLISH_REQ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1550 * MM would retransmit RR_ESTABLISH_REQ for emergency calls | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1551 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1552 srv_clear_stored_prim (RR_ESTABLISH_REQ); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1553 cs_start_sync (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1554 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1555 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1556 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1557 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1558 * no emergency cells availabe, then no service. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1559 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1560 srv_clear_stored_prim (RR_ESTABLISH_REQ); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1561 rr_data->ms_data.rr_service = NO_SERVICE; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1562 att_reset_old_lai_rac(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1563 att_code_rr_abort_ind (RRCS_ABORT_CEL_SEL_FAIL); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1564 SET_STATE (STATE_ATT, ATT_NO_SERVICE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1565 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1566 /* CSI-LLD section:4.1.1.10 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1567 * This function updates the black list after the first successful | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1568 * FUNC_PLMN_SEARCH | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1569 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1570 if(rr_data->cs_data.initial_plmn_search EQ INITIAL_PLMN_SEARCH_ACTIVE) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1571 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1572 cs_update_black_list(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1573 rr_data->cs_data.initial_plmn_search = INITIAL_PLMN_SEARCH_DONE; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1574 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1575 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1576 att_start_registration_timer (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1577 TRACE_EVENT ("no acceptable cell found"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1578 srv_use_stored_prim (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1579 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1580 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1581 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1582 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1583 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1584 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1585 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1586 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1587 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1588 case ATT_IDLE: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1589 case ATT_CON_EST: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1590 switch (rr_data->ms_data.req_mm_service) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1591 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1592 case FUNC_NET_SRCH_BY_MMI: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1593 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1594 * allow cell reselection decision | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1595 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1596 att_code_rr_abort_ind (RRCS_ABORT_CEL_SEL_FAIL); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1597 att_start_registration_timer (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1598 srv_use_stored_prim (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1599 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1600 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1601 case FUNC_PLMN_SRCH: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1602 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1603 * no BCCH for full service found | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1604 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1605 TRACE_EVENT ("Full Requested, end of Search"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1606 if (rr_data->ms_data.rr_service EQ LIMITED_SERVICE) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1607 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1608 /* we trap here if RR tried to reach the from MM requested | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1609 FUNC_PLMN_SRCH service | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1610 but could not find a suitable cell | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1611 The acceptable cell will be the serving cell | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1612 we don't look for another one. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1613 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1614 att_reset_old_lai_rac(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1615 att_code_rr_abort_ind (RRCS_ABORT_CEL_SEL_FAIL); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1616 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1617 else | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1618 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1619 /* this was a search for the HPLMN don't inform | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1620 * MM because we have FULL_SERVICE on a VPLMN | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1621 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1622 att_notify_stop_plmn_search (FALSE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1623 #if 0 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1624 if (rr_data->gprs_data.gprs_indic) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1625 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1626 att_signal_gprs_support(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1627 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1628 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1629 EM_HPLMN_SEARCH_FAILED; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1630 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1631 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1632 att_start_registration_timer (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1633 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1634 case FUNC_LIM_SERV_ST_SRCH: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1635 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1636 * no BCCH for limited service found | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1637 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1638 rr_data->ms_data.rr_service = NO_SERVICE; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1639 att_reset_old_lai_rac(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1640 att_code_rr_abort_ind (RRCS_ABORT_CEL_SEL_FAIL); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1641 SET_STATE (STATE_ATT, ATT_NO_SERVICE); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1642 att_start_registration_timer (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1643 srv_use_stored_prim (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1644 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1645 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1646 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1647 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1648 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1649 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1650 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1651 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1652 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1653 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1654 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1655 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1656 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1657 | STATE : code ROUTINE : att_full_service_found | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1658 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1659 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1660 PURPOSE : Performs all tasks required after reaching Full Service | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1661 CSI-LLD section:4.1.3.4.1.7 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1662 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1663 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1664 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1665 GLOBAL void att_full_service_found(void) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1666 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1667 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1668 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1669 TRACE_FUNCTION("att_full_service_found()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1670 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1671 /* Stop search mode timers */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1672 TIMERSTOP(T_FAST_CS); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1673 TIMERSTOP(T_NORMAL_CS); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1674 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1675 /* Update the white list */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1676 dat_convert_white_list(); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1677 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1678 /* Send SI2 info to MM */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1679 dat_send_bcchinfo_mm (rr_data->cr_data.cr_white_list.si2); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1680 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1681 TRACE_EVENT("RR SERVICE = FULL SERVICE"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1682 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1683 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1684 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1685 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1686 /*convert into a function (si_type {SI3,SI4})*/ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1687 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1688 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1689 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1690 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1691 | STATE : code ROUTINE : att_sys_info_read | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1692 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1693 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1694 PURPOSE : This function sets the sys_info_read flag based on the passed | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1695 system information type | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1696 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1697 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1698 LOCAL void att_sys_info_read(USHORT mess_bit) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1699 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1700 GET_INSTANCE_DATA; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1701 TRACE_FUNCTION("att_sys_info_read()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1702 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1703 switch (rr_data->ms_data.req_mm_service) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1704 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1705 case FUNC_NET_SRCH_BY_MMI: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1706 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1707 * PLMN available search | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1708 * | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1709 * it is useless to read system info 1, 2ter and 4 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1710 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1711 att_set_sys_info_read ( mess_bit | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1712 SYS_INFO_1_READ | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1713 SYS_INFO_2_READ | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1714 SYS_INFO_2BIS_READ | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1715 SYS_INFO_2TER_READ, CR_INDEX); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1716 #ifdef GPRS | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1717 att_set_sys_info_read (SYS_INFO_13_READ, CR_INDEX); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1718 #endif | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1719 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1720 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1721 * enough info available for PLMN available search | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1722 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1723 att_check_bcch_carrier_si (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1724 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1725 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1726 case FUNC_PLMN_SRCH: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1727 switch (rr_data->ms_data.rr_service) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1728 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1729 case LIMITED_SERVICE: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1730 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1731 * RR is in limited service. So this search triggered by | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1732 * RR shall reach full service again. | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1733 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1734 att_check_fplmn_cell (); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1735 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1736 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1737 default: | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1738 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1739 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1740 break; | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1741 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1742 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1743 /* | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1744 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1745 | PROJECT : GSM-PS (6147) MODULE : RR_ATT | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1746 | STATE : code ROUTINE : att_copy_sys_info_2_2bis_par | | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1747 +--------------------------------------------------------------------+ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1748 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1749 PURPOSE : This function handles system information type 2 and 2bis common | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1750 parameters | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1751 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1752 */ | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1753 LOCAL void att_copy_sys_info_2_2bis_par(UBYTE index, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1754 T_VOID_STRUCT *sys_info_2_2bis, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1755 T_LIST *new_2_2bis_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1756 UBYTE ncell_ext, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1757 T_SI_TYPE si_type, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1758 UBYTE indicate_changes) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1759 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1760 TRACE_FUNCTION("att_copy_sys_info_2_2bis_par()"); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1761 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1762 if (si_type EQ SI_TYPE_2) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1763 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1764 att_copy_sys_info_2_par (index, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1765 (T_D_SYS_INFO_2 *)sys_info_2_2bis, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1766 new_2_2bis_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1767 ncell_ext, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1768 indicate_changes); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1769 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1770 else if (si_type EQ SI_TYPE_2BIS) | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1771 { | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1772 att_copy_sys_info_2bis_par (index, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1773 (T_D_SYS_INFO_2BIS *)sys_info_2_2bis, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1774 new_2_2bis_list, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1775 ncell_ext, | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1776 indicate_changes); | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1777 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1778 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1779 } | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1780 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1781 | 
| 
27a4235405c6
src/g23m-gsm: import from LoCosto source
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1782 #endif | 
