FreeCalypso > hg > fc-selenite
annotate src/g23m-gsm/mm/mm_tim.c @ 30:c8a4561ef581
scripts/test-{make,setup}.sh: component compilation test
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Mon, 16 Jul 2018 00:10:23 +0000 | 
| parents | d393cd9bb723 | 
| children | 
| rev | line source | 
|---|---|
| 1 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 +----------------------------------------------------------------------------- | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 | Project : GSM-PS (8410) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | Modul : MM_TIM | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 +----------------------------------------------------------------------------- | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 | All rights reserved. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 | This file is confidential and a trade secret of Texas | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 | Instruments Berlin, AG | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | The receipt of or possession of this file does not convey | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 | any rights to reproduce or disclose its contents or to | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 | manufacture, use, or sell anything it may describe, in | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 | whole, or in part, without the specific written consent of | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 | Texas Instruments Berlin, AG. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 +----------------------------------------------------------------------------- | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | Purpose : This Modul defines the timer handling functions | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 | for the component MM of the mobile station | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 +----------------------------------------------------------------------------- | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 #ifndef MM_TIM_C | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 #define MM_TIM_C | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 #define ENTITY_MM | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 /*==== INCLUDES ===================================================*/ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 #if defined (NEW_FRAME) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 #include <string.h> | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 #include <stdlib.h> | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 #include <stddef.h> | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 #include "typedefs.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 #include "pcm.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 #include "pconst.cdg" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 #include "mconst.cdg" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 #include "message.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 #include "ccdapi.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 #include "vsi.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 #include "custom.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 #include "gsm.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 #include "prim.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 #include "cnf_mm.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 #include "mon_mm.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 #include "pei.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 #include "tok.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 #include "mm.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 #else | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 #include <string.h> | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 #include <stdlib.h> | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 #include <stddef.h> | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 #include "stddefs.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 #include "pcm.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 #include "pconst.cdg" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 #include "mconst.cdg" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 #include "message.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 #include "ccdapi.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 #include "custom.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 #include "gsm.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 #include "prim.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 #include "cnf_mm.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 #include "mon_mm.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 #include "vsi.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 #include "pei.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 #include "tok.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 #include "mm.h" | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 #endif | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 /*==== EXPORT =====================================================*/ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 /*==== PRIVAT =====================================================*/ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 /*==== VARIABLES ==================================================*/ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 #if defined (OPTION_TIMER) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 LOCAL T_TIMER_CONFIG config_table[NUM_OF_MM_TIMERS]; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 #endif | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 /*==== FUNCTIONS ==================================================*/ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 #if defined (OPTION_TIMER) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 | STATE : code ROUTINE : tim_init_timer | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 PURPOSE : Initialise Time-out FIFO and configuration data. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 GLOBAL BOOL tim_init_timer (void) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 USHORT i; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 TRACE_FUNCTION ("tim_init_timer()"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 for (i = 0; i < NUM_OF_MM_TIMERS; i++) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 config_table[i].t_mode = TIMER_RESET; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 config_table[i].t_val = 0L; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 return TRUE; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 #endif /* #if defined (OPTION_TIMER) */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 #if defined (OPTION_TIMER) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 | STATE : code ROUTINE : tim_config_timer | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 PURPOSE : Configure Timer | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 GLOBAL void tim_config_timer (UBYTE t_num, UBYTE t_mod, ULONG t_val) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 TRACE_FUNCTION ("tim_config_timer()"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 assert (t_num < NUM_OF_MM_TIMERS); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 if (t_num < NUM_OF_MM_TIMERS) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 config_table[t_num].t_mode = t_mod; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 config_table[t_num].t_val = t_val; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 else | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 TRACE_ERROR ("tim_config_timer(): index out of range"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 #endif /* #if defined (OPTION_TIMER) */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 #if defined (NEW_FRAME) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 | STATE : code ROUTINE : tim_exec_timeout | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 PURPOSE : execute timeout | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 GLOBAL void tim_exec_timeout (USHORT index) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 /* typedef void (*T_VOID_FUNC)(); */ /* Already defined */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 static const T_VOID_FUNC timer_jump_table[NUM_OF_MM_TIMERS] = | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 tim_t_reg, /* T_REGISTRATION */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 tim_t3210, /* T3210 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 tim_t3211, /* T3211 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 tim_t3212, /* T3212 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 tim_t3213, /* T3213 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 tim_t3220, /* T3220 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 tim_t3230, /* T3230 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 tim_t3240, /* T3240 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 tim_t_hplmn /* T_HPLMN */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 #ifdef REL99 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 , tim_t3241 /* T3241 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 #endif | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 }; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 if (index < NUM_OF_MM_TIMERS) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 * Timeout is handled in SDL like the reception of a primitive, | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 178 * so enable also this trace if primitive traces are enabled only | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 /* Implements Measure#36 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 #if defined(NCONFIG) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 182 /* partab is not defined when NCONFIG is defined */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 183 TRACE_EVENT_P1 ("tim_exec_timeout: index (%d)", index); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 184 #else /* not (NCONFIG) */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 185 #if defined (TRACE_PRIM) AND defined(OPTION_TIMER) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 186 TRACE_EVENT_P1 ("tim_exec_timeout (%s)", partab[index].keyword); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 187 #endif | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 188 #endif /* NCONFIG */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 189 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 190 mm_data->t_running[index] = FALSE; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 191 timer_jump_table[index](); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 193 else | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 194 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 195 TRACE_ERROR ("tim_exec_timeout(): index out of range"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 196 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 197 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 198 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 199 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 200 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 203 | STATE : code ROUTINE : tim_stop_timer | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 204 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 205 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 PURPOSE : stop timer | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 207 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 208 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 GLOBAL void tim_stop_timer (USHORT index) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 211 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 212 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 213 assert (index < NUM_OF_MM_TIMERS); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 214 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 215 if (index < NUM_OF_MM_TIMERS) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 216 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 /* Implements Measure#36 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 218 #if defined(NCONFIG) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 219 /* partab is not defined when NCONFIG is defined */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 220 TRACE_EVENT_P1 ("tim_stop_timer: index (%d)", index); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 221 #else /* not (NCONFIG) */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 #if defined (TRACE_PRIM) AND defined(OPTION_TIMER) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 223 TRACE_EVENT_P1 ("tim_stop_timer (%s)", partab[index].keyword); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 224 #endif | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 225 #endif /* NCONFIG */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 226 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 227 mm_data->t_running[index] = FALSE; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 228 TIMER_STOP (mm_handle, index); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 229 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 230 else | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 231 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 232 TRACE_ERROR ("tim_stop_timer(): index out of range"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 233 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 234 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 235 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 236 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 237 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 238 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 239 | STATE : code ROUTINE : tim_start_timer | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 240 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 241 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 242 PURPOSE : start timer | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 243 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 244 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 245 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 246 GLOBAL void tim_start_timer (USHORT index, T_TIME value) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 247 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 248 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 249 assert (index < NUM_OF_MM_TIMERS); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 250 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 251 if (index < NUM_OF_MM_TIMERS) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 252 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 253 /* Implements Measure#36 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 254 #if defined(NCONFIG) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 255 /* partab is not defined when NCONFIG is defined */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 256 TRACE_EVENT_P1 ("tim_start_timer: index (%d)", index); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 257 #else /* not (NCONFIG) */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 258 #if defined (TRACE_PRIM) AND defined(OPTION_TIMER) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 259 TRACE_EVENT_P1 ("tim_start_timer (%s)", partab[index].keyword); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 260 #endif | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 261 #endif /* NCONFIG */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 262 #if defined (OPTION_TIMER) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 263 switch (config_table[index].t_mode) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 264 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 265 case TIMER_SET: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 266 value = config_table[index].t_val; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 267 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 268 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 269 case TIMER_RESET: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 270 value = value; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 271 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 272 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 273 case TIMER_SPEED_UP: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 274 value = value / config_table[index].t_val; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 275 if (value == 0) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 276 value = 1; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 277 TRACE_EVENT_P1 ("timer_speed_up (%d)", value); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 278 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 279 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 280 case TIMER_SLOW_DOWN: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 281 value = value * config_table[index].t_val; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 282 TRACE_EVENT_P1 ("timer_speed_down (%d)", value); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 283 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 284 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 285 default: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 286 TRACE_FUNCTION ("ERROR: UNKNOWN MODE"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 287 return; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 288 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 289 #endif | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 290 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 291 mm_data->t_running[index] = TRUE; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 292 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 293 TIMER_START (mm_handle, index, value); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 294 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 295 else | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 296 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 297 TRACE_ERROR ("tim_start_timer(): index out of range"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 298 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 299 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 300 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 301 #endif /* #if defined (NEW_FRAME) */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 302 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 303 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 304 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 305 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 306 | STATE : code ROUTINE : tim_t3210 | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 307 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 308 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 309 PURPOSE : Timeout of timer T3210 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 310 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 311 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 312 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 313 GLOBAL void tim_t3210 (void) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 314 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 315 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 316 TRACE_FUNCTION ("tim_t3210()"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 317 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 318 switch (GET_STATE (STATE_MM)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 319 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 320 case MM_LUP_INITIATED: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 321 case MM_WAIT_FOR_RR_CONN_LUP: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 322 TIMERSTOP (T3240); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 323 mm_abort_connection (ABCS_NORM); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 324 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 325 * The RR connection is aborted normally. RR guarantees that this will | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 326 * be answered by RR_RELEASE_IND. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 327 * This has the advange that GMM gets the MMGMM_NREG_IND after the | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 328 * channel release of layer 2 if GPRS present without any disadvantage | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 329 * for a GSM only protocol stack. No state change here. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 330 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 331 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 332 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 333 default: /* Ignore event */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 334 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 335 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 336 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 337 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 338 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 339 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 340 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 341 | STATE : code ROUTINE : tim_t3211 | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 342 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 343 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 344 PURPOSE : Timeout of timer T3211 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 345 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 346 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 347 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 348 // T3211 handling routine does the same as T3213 handling routine now ... | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 349 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 350 GLOBAL void tim_t3211 (void) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 351 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 352 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 353 TRACE_FUNCTION ("tim_t3211()"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 354 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 355 switch (GET_STATE (STATE_MM)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 356 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 357 // If we leave these states and reenter a full service IDLE state, | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 358 // mm_release_rr_connection() | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 359 // for MM_WAIT_FOR_OUTG_MM_CONN and MM_WAIT_FOR_RR_CONN_MM will | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 360 // handle the update. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 361 // mm_rr_activate_cnf() for MM_WAIT_FOR_RR_ACTIVE will also | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 362 // handle the an outstanding update if coming back to full | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 363 // service IDLE state. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 364 // mm_rr_abort_ind() will be called if the state was | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 365 // MM_PLMN_SEARCH_NORMAL_SERVICE, if there is an outstanding | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 366 // updating procedure and the new service is full service, | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 367 // this will be checked there after state transition. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 368 // MM_IDLE_NO_CELL_AVAILABLE / RR_ACTIVATE_IND is handled also. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 369 // No need to store the timer anymore into the queue. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 370 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 371 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 372 // case MM_WAIT_FOR_OUTG_MM_CONN: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 373 // case MM_WAIT_FOR_RR_CONN_MM: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 374 // case MM_WAIT_FOR_RR_ACTIVE: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 375 case MM_PLMN_SEARCH_NORMAL_SERVICE: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 376 // case MM_IDLE_NO_CELL_AVAILABLE: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 377 mm_write_entry (TIMEOUT, T3211, 0); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 378 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 379 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 380 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 381 case MM_IDLE_ATTEMPT_TO_UPDATE: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 382 case MM_IDLE_NORMAL_SERVICE: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 383 mm_continue_running_update (); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 384 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 385 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 386 default: /* Ignore event */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 387 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 388 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 389 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 390 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 391 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 392 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 393 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 394 | STATE : code ROUTINE : tim_t3212 | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 395 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 396 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 397 PURPOSE : Timeout of counter timer for timer T3212 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 398 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 399 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 400 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 401 GLOBAL void tim_t3212 (void) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 402 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 403 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 404 TRACE_FUNCTION ("tim_t3212()"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 405 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 406 switch (GET_STATE (STATE_MM)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 407 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 408 case MM_NULL: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 409 case MM_IDLE_NO_IMSI: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 410 break; /* Forget the event */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 411 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 412 case MM_IDLE_NORMAL_SERVICE: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 413 mm_data->t3212_timeout = TRUE; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 414 mm_data->attempt_cnt = 0; /* Expiry of timer T3212 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 415 if (!mm_normal_upd_needed()) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 416 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 417 /* MM is updated on the cell, no Imm Ass Rej, no cell barred */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 418 if (mm_lup_allowed_by_gmm()) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 419 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 420 mm_periodic_loc_upd (); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 421 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 422 else | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 423 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 424 mm_mmgmm_lup_needed_ind (MMGMM_T3212); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 425 /* No state change, remains in MM_IDLE_NORMAL_SERVICE */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 426 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 427 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 428 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 429 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 430 case MM_IDLE_ATTEMPT_TO_UPDATE: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 431 if (mm_data->mm.mm_info.t3212 NEQ T3212_NO_PRD_UPDAT) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 432 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 433 mm_data->t3212_timeout = TRUE; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 434 mm_data->attempt_cnt = 0; /* Expiry of timer T3212 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 435 if (mm_lup_allowed_by_gmm()) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 436 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 437 mm_normal_loc_upd (); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 438 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 439 else | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 440 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 441 mm_mmgmm_lup_needed_ind (MMGMM_T3212); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 442 /* No state change, remains in MM_IDLE_ATTEMPT_TO_UPDATE */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 443 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 444 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 445 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 446 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 447 default: /* Store the event until it is possible to handle it */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 448 mm_data->t3212_timeout = TRUE; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 449 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 450 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 451 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 452 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 453 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 454 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 455 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 456 | STATE : code ROUTINE : tim_t3213 | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 457 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 458 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 459 PURPOSE : Timeout of timer T3213 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 460 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 461 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 462 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 463 GLOBAL void tim_t3213 (void) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 464 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 465 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 466 TRACE_FUNCTION ("tim_t3213()"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 467 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 468 switch (GET_STATE (STATE_MM)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 469 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 470 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 471 case MM_WAIT_FOR_OUTG_MM_CONN: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 472 case MM_WAIT_FOR_RR_CONN_MM: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 473 case MM_WAIT_FOR_RR_ACTIVE: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 474 case MM_PLMN_SEARCH_NORMAL_SERVICE: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 475 mm_write_entry (TIMEOUT, T3213, 0); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 476 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 477 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 478 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 479 case MM_IDLE_ATTEMPT_TO_UPDATE: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 480 case MM_IDLE_NORMAL_SERVICE: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 481 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 482 * if something is received from RR or T3213 was already restarted 2 times --> delay of additional 8 seconds | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 483 * continue the LUP attempts | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 484 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 485 mm_data->t3213_restart++; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 486 if (mm_data->t3213_restart > MAX_REST_T3213) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 487 mm_continue_running_update (); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 488 else | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 489 TIMERSTART (T3213, T_3213_VALUE); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 490 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 491 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 492 default: /* Ignore event */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 493 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 494 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 495 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 496 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 497 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 498 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 499 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 500 | STATE : code ROUTINE : tim_t3220 | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 501 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 502 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 503 PURPOSE : Timeout of timer T3220 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 504 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 505 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 506 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 507 GLOBAL void tim_t3220 (void) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 508 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 509 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 510 TRACE_FUNCTION ("tim_t3220()"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 511 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 512 switch (GET_STATE (STATE_MM)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 513 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 514 case MM_IMSI_DETACH_INIT: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 515 case MM_WAIT_FOR_RR_CONN_DETACH: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 516 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 517 * The RR connection is aborted normally. RR guarantees that this will | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 518 * be answered by RR_RELEASE_IND. If MM receives the RR_RELEASE_IND, | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 519 * the IMSI DETACH procedure ends and appropriate actions are taken. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 520 * This has the advange that GMM gets the MMGMM_NREG_CNF after the | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 521 * channel release of layer 2 if GPRS present without any disadvantage | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 522 * for a GSM only protocol stack. No state change here. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 523 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 524 mm_abort_connection (ABCS_NORM); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 525 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 526 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 527 default: /* Ignore event */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 528 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 529 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 530 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 531 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 532 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 533 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 534 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 535 | STATE : code ROUTINE : tim_t3230 | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 536 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 537 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 538 PURPOSE : Timeout of timer T3230 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 539 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 540 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 541 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 542 GLOBAL void tim_t3230 (void) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 543 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 544 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 545 TRACE_FUNCTION ("tim_t3230()"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 546 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 547 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 548 * If T3230 expires (i.e. no response is given but a RR connection is | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 549 * available) the MM connection establishment is aborted and the requesting | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 550 * CM sublayer is informed. If no other MM connection exists then the mobile | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 551 * station shall proceed as described in section 4.5.3.1 for release of the | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 552 * RR connection. Otherwise the mobile station shall return to the MM | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 553 * sublayer state where the request of an MM connection was received, | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 554 * i.e. to MM sublayer state MM connection active. Other ongoing | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 555 * MM connections (if any) shall not be affected. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 556 * [GSM 04.08 subclause 4.5.1.2 b)] | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 557 * | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 558 * If all MM connections are released by their CM entities, the | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 559 * mobile station shall set timer T3240 and enter the state | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 560 * WAIT FOR NETWORK COMMAND, expecting the release of the RR connection. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 561 * [Excerpt from GSM 04.08 subclause 4.5.3.1] | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 562 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 563 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 564 switch (GET_STATE (STATE_MM)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 565 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 566 case MM_WAIT_FOR_REESTABLISH: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 567 case MM_WAIT_FOR_OUTG_MM_CONN: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 568 mm_mmxx_rel_ind (MMCS_TIMER_RECOVERY, CM_ACTIVE); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 569 mm_mmxx_rel_ind (MMCS_TIMER_RECOVERY, CM_PENDING); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 570 mm_data->wait_for_accept = FALSE; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 571 TIMERSTART (T3240, T_3240_VALUE); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 572 SET_STATE (STATE_MM, MM_WAIT_FOR_NW_CMD); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 573 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 574 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 575 case MM_CONN_ACTIVE: /* wait_for_accept expected to be TRUE */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 576 mm_mmxx_rel_ind (MMCS_TIMER_RECOVERY, CM_PENDING); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 577 mm_data->wait_for_accept = FALSE; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 578 if ((mm_count_connections (CM_ACTIVE) EQ 0) AND | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 579 (mm_count_connections (CM_STORE) EQ 0)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 580 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 581 TIMERSTART (T3240, T_3240_VALUE); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 582 SET_STATE (STATE_MM, MM_WAIT_FOR_NW_CMD); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 583 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 584 USE_STORED_ENTRIES(); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 585 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 586 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 587 default: /* Ignore event */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 588 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 589 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 590 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 591 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 592 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 593 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 594 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 595 | STATE : code ROUTINE : tim_t3240 | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 596 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 597 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 598 PURPOSE : Timeout of timer T3240 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 599 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 600 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 601 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 602 GLOBAL void tim_t3240 (void) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 603 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 604 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 605 TRACE_FUNCTION ("tim_t3240()"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 606 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 607 switch (GET_STATE (STATE_MM)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 608 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 609 case MM_PROCESS_PROMPT: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 610 case MM_WAIT_FOR_NW_CMD: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 611 mm_abort_connection (ABCS_NORM); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 612 mm_mmxx_rel_ind (MMCS_TIMER_RECOVERY, CM_ACTIVE); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 613 mm_mmxx_rel_ind (MMCS_TIMER_RECOVERY, CM_PENDING); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 614 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 615 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 616 * The RR connection is aborted normally. RR guarantees that this will | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 617 * be answered by RR_RELEASE_IND. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 618 * This has the advange that GMM gets the MMGMM_CM_RELEASE_IND after the | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 619 * channel release of layer 2 if GPRS present without any disadvantage | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 620 * for a GSM only protocol stack. No state change here. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 621 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 622 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 623 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 624 case MM_LUP_REJECTED: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 625 mm_abort_connection (ABCS_NORM); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 626 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 627 * The RR connection is aborted normally. RR guarantees that this will | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 628 * be answered by RR_RELEASE_IND. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 629 * This has the advange that GMM gets the MMGMM_NREG_IND after the | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 630 * channel release of layer 2 if GPRS present without any disadvantage | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 631 * for a GSM only protocol stack. No state change here. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 632 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 633 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 634 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 635 default: /* Ignore event */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 636 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 637 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 638 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 639 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 640 #ifdef REL99 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 641 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 642 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 643 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 644 | STATE : code ROUTINE : tim_t3241 | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 645 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 646 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 647 PURPOSE : Timeout of timer T3241 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 648 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 649 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 650 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 651 GLOBAL void tim_t3241 (void) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 652 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 653 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 654 TRACE_FUNCTION ("tim_t3241()"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 655 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 656 switch (GET_STATE (STATE_MM)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 657 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 658 case MM_RR_CONN_RELEASE_NOT_ALLOWED: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 659 mm_abort_connection (ABCS_NORM); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 660 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 661 * The RR connection is aborted normally. RR guarantees that this will | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 662 * be answered by RR_RELEASE_IND. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 663 * This has the advange that GMM gets the MMGMM_CM_RELEASE_IND after the | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 664 * channel release of layer 2 if GPRS present without any disadvantage | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 665 * for a GSM only protocol stack. No state change here. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 666 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 667 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 668 default: /* Ignore event */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 669 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 670 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 671 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 672 #endif | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 673 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 674 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 675 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 676 +----------------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 677 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 678 | STATE : code ROUTINE : tim_t_hplmn | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 679 +----------------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 680 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 681 PURPOSE : Timeout of timer T_HPLMN. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 682 This timer allows control of the PPLMN rescan and | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 683 national roaming procedure to recover the HPLMN. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 684 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 685 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 686 GLOBAL void tim_t_hplmn (void) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 687 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 688 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 689 TRACE_FUNCTION ("tim_t_hplmn()"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 690 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 691 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 692 * Launch the scan procedure if it still makes sense to do it according to | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 693 * MM state. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 694 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 695 if (mm_full_service_pplmn_scan()) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 696 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 697 mm_data->plmn_scan_mm = TRUE; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 698 mm_data->first_attach_mem = FALSE; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 699 mm_func_mmgmm_net_req(); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 700 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 701 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 702 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 703 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 704 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 705 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 706 | PROJECT : GSM-PS (6147) MODULE : MM_TIM | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 707 | STATE : code ROUTINE : tim_t_reg | | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 708 +--------------------------------------------------------------------+ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 709 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 710 PURPOSE : Timeout of timer T_REG. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 711 This timer is not foreseen by the recommendations. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 712 It is MM's health monitor timer, checking | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 713 the conditions whether an update has been missed. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 714 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 715 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 716 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 717 GLOBAL void tim_t_reg (void) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 718 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 719 GET_INSTANCE_DATA; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 720 TRACE_FUNCTION ("tim_t_reg()"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 721 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 722 switch (GET_STATE (STATE_MM)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 723 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 724 case MM_NULL: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 725 break; /* No timer activity in this state */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 726 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 727 case MM_IDLE_NORMAL_SERVICE: /* 19.1 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 728 /* Restart the registration timer */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 729 TIMERSTART (T_REGISTRATION, T_REG_VALUE); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 730 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 731 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 732 * As it is not expected that the timer catches in state | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 733 * MM_IDLE_NORMAL_SERVICE in FTA, there is no test | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 734 * here for a test SIM. The goal is to have an MM | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 735 * where the timer never catches in MM_IDLE_NORMAL_SERVICE. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 736 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 737 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 738 /* Check whether T3211, T3213 are running retriggering update anyway */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 739 if ((TIMERACTIVE (T3211) OR TIMERACTIVE (T3213)) AND | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 740 (mm_data->loc_upd_type.lut NEQ NOT_RUNNING)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 741 return; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 742 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 743 /* Check whether MM is temporary barred and cannot update now */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 744 if ((mm_data->idle_entry EQ RRCS_ACCESS_BARRED) OR | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 745 (mm_data->idle_entry EQ RRCS_RND_ACC_DELAY)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 746 return; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 747 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 748 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 749 * Check whether we are in an ATTACH update procedure, but there is no | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 750 * T3211, T3213 timer running and MM is not temporary barred. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 751 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 752 if (mm_attach_upd_needed() OR mm_normal_upd_needed()) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 753 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 754 TRACE_ERROR ("Recover ATTACH/NORMAL"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 755 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 756 mm_mmgmm_lup_needed_ind (MMGMM_REG_TIMER); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 757 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 758 if (mm_normal_upd_needed ()) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 759 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 760 mm_data->attempt_cnt = 0; /* New location area */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 761 mm_normal_loc_upd (); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 762 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 763 else | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 764 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 765 mm_attach_loc_upd (); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 766 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 767 return; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 768 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 769 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 770 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 771 * Check whether T3212 should run, but is not running. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 772 * If so, something irregular has happened and | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 773 * we have to start the update immediately. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 774 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 775 if (mm_data->mm.mm_info.t3212 NEQ T3212_NO_PRD_UPDAT AND | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 776 (!TIMERACTIVE (T3212) OR mm_data->t3212_timeout)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 777 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 778 /* | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 779 * The networks says we have periodic updating, | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 780 * but unexpectedly T3212 is not running or T3212 timed out. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 781 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 782 TRACE_ERROR ("Recover PERIODIC"); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 783 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 784 if (mm_lup_allowed_by_gmm()) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 785 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 786 mm_periodic_loc_upd (); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 787 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 788 else | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 789 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 790 // Don't add recovery code now for GPRS, maybe more has to be done. | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 791 // mm_mmgmm_lup_needed_ind (MMGMM_REG_TIMER); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 792 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 793 return; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 794 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 795 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 796 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 797 case MM_IDLE_ATTEMPT_TO_UPDATE: /* 19.2 */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 798 /* Restart the registration timer */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 799 TIMERSTART (T_REGISTRATION, T_REG_VALUE); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 800 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 801 /* Timer only handled in this state if a normal SIM is present */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 802 if (mm_data->reg.op.sim_ins EQ SIM_NO_INSRT OR | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 803 mm_data->reg.op.ts EQ TS_AVAIL) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 804 return; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 805 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 806 /* Check whether T3211, T3213 are running retriggering update anyway */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 807 if ((TIMERACTIVE (T3211) OR TIMERACTIVE (T3213)) AND | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 808 (mm_data->loc_upd_type.lut NEQ NOT_RUNNING)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 809 return; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 810 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 811 if (TIMERACTIVE (T3212)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 812 return; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 813 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 814 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 815 /* Check whether MM is temporary barred and cannot update now */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 816 if ((mm_data->idle_entry EQ RRCS_ACCESS_BARRED) OR | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 817 (mm_data->idle_entry EQ RRCS_RND_ACC_DELAY)) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 818 return; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 819 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 820 if (mm_gsm_alone ()) | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 821 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 822 mm_normal_loc_upd (); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 823 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 824 else | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 825 { | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 826 mm_mmgmm_lup_needed_ind (MMGMM_REG_TIMER); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 827 /* No state change, remains in MM_IDLE_ATTEMPT_TO_UPDATE */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 828 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 829 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 830 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 831 default: | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 832 /* Restart the registration timer */ | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 833 TIMERSTART (T_REGISTRATION, T_REG_VALUE); | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 834 break; | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 835 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 836 } | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 837 | 
| 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 838 #endif | 
