FreeCalypso > hg > fc-tourmaline
annotate src/g23m-gsm/sms/sms_for.c @ 304:58c7961bd0b0 default tip
TCH tap: extend DL sniffing feature to support CSD modes
Our debug feature for TCH DL sniffing reads the content of the DSP's
a_dd_0 buffer (or a_dd_1 for TCH/H subchannel 1) at appropriate times
and forwards captured bits to the host.  This feature was originally
implemented for TCH/FS, TCH/EFS and TCH/HS - now extend it to cover
TCH/F data modes too.
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Mon, 25 Nov 2024 23:33:27 +0000 | 
| parents | fa8dc04885d8 | 
| children | 
| rev | line source | 
|---|---|
| 
1
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 +----------------------------------------------------------------------------- | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 | Project : GSM-F&D (8411) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 | Modul : SMS_FOR | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 +----------------------------------------------------------------------------- | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 | All rights reserved. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 | This file is confidential and a trade secret of Texas | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 | Instruments Berlin, AG | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 | The receipt of or possession of this file does not convey | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 | any rights to reproduce or disclose its contents or to | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | manufacture, use, or sell anything it may describe, in | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 | whole, or in part, without the specific written consent of | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 | Texas Instruments Berlin, AG. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 +----------------------------------------------------------------------------- | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 | Purpose : This Modul defines the functions for the formatter | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 | of the component SMS. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 +----------------------------------------------------------------------------- | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 #ifndef SMS_FOR_C | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 #define SMS_FOR_C | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 #define ENTITY_SMS | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 /*==== INCLUDES ===================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 #include <string.h> | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 #include <stdlib.h> | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 #include <stddef.h> | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 #include "typedefs.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 #include "pcm.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 #include "vsi.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 #include "custom.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 #include "gsm.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 #include "message.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 #include "ccdapi.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 #include "prim.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 #include "cus_sms.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 #include "cnf_sms.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 #include "mon_sms.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 #include "pei.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 #include "tok.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 #include "sms.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 #include "sms_em.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 /*==== EXPORT ======================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 /*==== PRIVAT ======================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 /*==== VARIABLES ===================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 #if !defined (SHARED_CCD_BUF) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 GLOBAL UBYTE _decodedMsg [MAX_MSTRUCT_LEN_SMS]; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 #else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 GLOBAL UBYTE * _decodedMsg; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 GLOBAL UBYTE _CCDbuf = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 #endif | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 /*==== FUNCTIONS ===================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 | PROJECT : GSM-PS (8410) MODULE : SMS_FOR | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 | STATE : code ROUTINE : for_init_sms | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 PURPOSE : Initialize the formatter (void) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 GLOBAL void for_init_sms (void) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 // TRACE_FUNCTION ("for_init_sms()"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 | PROJECT : GSM-PS (8410) MODULE : SMS_FOR | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 | STATE : code ROUTINE : for_get_pd_ti | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 PURPOSE : Get protocol discriminator and transaction identifier if | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 the incoming message is of sufficient length to contain | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 anythiny useful, this means at least PD, TI and message type. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 LOCAL BOOL for_get_pd_ti (T_sdu *p_sdu, UBYTE *p_pd, UBYTE *p_ti) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 if (p_sdu->l_buf >= 16) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 *p_pd = p_sdu->buf[p_sdu->o_buf >> 3] & 0x0F; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 *p_ti = p_sdu->buf[p_sdu->o_buf >> 3] >> 4; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 *p_ti ^= 0x8; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 p_sdu->o_buf += BSIZE_TI_PD; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 p_sdu->l_buf -= BSIZE_TI_PD; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 return TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 TRACE_EVENT ("message too short"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 return FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 | PROJECT : GSM-PS (8410) MODULE : SMS_FOR | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 | STATE : code ROUTINE : for_get_new_mt_instance | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 PURPOSE : This function gets a new MT instance. Basically the same | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 is done here as in GET_NEW_SMS_INSTANCE(), but additionally | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 the special case that the CP-Layer of an old MT transaction | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 waits for the last CP-ACK before the MMSMS_RELEASE_REQ is | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 sent is handled. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 LOCAL T_SMS_DATA * for_get_new_mt_instance (UBYTE ti) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 GET_INSTANCE_DATA; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 TRACE_FUNCTION ("for_get_new_mt_instance()"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 * Check here whether we are awaiting the last CP-ACK for a MT transaction. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 * If so, take the new MT message as implicit CP-ACK. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 if (sms_data NEQ NULL) /*lint !e774 (sms_data NEQ NULL) always */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 if (sms_data->data[INST_MT].ti NEQ 0) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 /* Old MT instance still exists */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 sms_data->inst = INST_MT; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 switch (SMS_INST_GET_STATE (STATE_CP)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 case CP_WAIT_FOR_ACK: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 #ifdef GPRS | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 case CP_GSMS_MT_WAIT_FOR_CP_ACK: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 #endif | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 if (SMS_INST.r_flag) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 * No further message for the old MT instance expected. Take the | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 * MMSMS_ESTABLISH_IND as implicit CP-ACK for the old instance. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 TRACE_EVENT ("Implicit CP-ACK"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 cp_data_ind_cp_ack (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 break; /* Do nothing */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 sms_data = GET_NEW_SMS_INSTANCE(ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 return sms_data; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 | PROJECT : GSM-PS (8410) MODULE : SMS_FOR | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 | STATE : code ROUTINE : for_ccd_rp_error_send | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 PURPOSE : Perform CCD Error check and send rp errors | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 LOCAL BOOL for_ccd_rp_error_send (T_D_CP_DATA *cp_data, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 T_SMS_DATA *sms_data, UBYTE rp_error) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 BOOL rp_error_send = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 MCAST (cp_data1, U_CP_DATA); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 if((SMS_INST_GET_STATE (STATE_CP)) EQ CP_MM_CONNECTION_ESTABLISHED) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 rp_error_send = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 rl_build_rp_error (cp_data->cp_user_data_dl.reference, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 rp_error,cp_data1, NULL); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 SMS_EM_SEND_RP_ERROR; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 cp_data_req (cp_data1); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 cp_send_release_req (SMS_INST.ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 FREE_SMS_INSTANCE (SMS_INST.ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 return rp_error_send; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 | PROJECT : GSM-PS (8410) MODULE : SMS_FOR | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 | STATE : code ROUTINE : for_ccd_error_check | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 PURPOSE : Perform CCD Error check and returns errors | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 LOCAL BOOL for_ccd_error_check (UBYTE *_decodedMsg,T_sdu *buf_sdu, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 T_SMS_DATA *sms_data,UBYTE ti) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 ULONG ccd_err = ERR_NO_MORE_ERROR; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 T_CCD_ERR_ENTRY *ccd_err_entry; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 UBYTE p_sdu; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 UBYTE cp_error_cause = 0; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 UBYTE length = 0; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 BOOL cp_error_send = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 BOOL rp_error_send = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 /* Message offset value */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 p_sdu = (buf_sdu->o_buf/8) - 1; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 ccd_err = ccd_getFirstFault(&ccd_err_entry); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
220 do | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 * Need to set these values everytime we go through fault list of ccd | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
224 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 cp_error_send = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
226 rp_error_send = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
227 /*lint -e415 Likely access of out-of-bounds pointer*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 switch(ccd_err) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 case ERR_ELEM_LEN: /* ignore message & send STATUS #96 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 * This ccd error will come when there is any error in IE length. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 * If cp user data length is greater than 249 Octets then this error | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 * is because CP Message IE, so send CP-ERROR | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 * if cp user data length is less than 249, then this ccd error is | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 * because of rp IE length, so RP-ERROR | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 switch(_decodedMsg[0]) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 case D_CP_DATA: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 length = buf_sdu->buf[p_sdu+2]; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 * If CP User data length is more than 249 then CCD error is because | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 * of CP Message IE else it will be becasue of RP message IE | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
246 * Send error accordingly | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
247 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 if(length < MAX_LEN_CP_USER_DATA) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 rp_error_send = for_ccd_rp_error_send((T_D_CP_DATA *)_decodedMsg, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 sms_data, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 SMS_RP_CS_INV_MAND_INFO); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
253 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 if(rp_error_send EQ FALSE) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 cp_error_send = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 cp_error_cause = SMS_CP_CS_INV_MAND_INFO; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
259 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 * If Message is CP-ACK or CP-ERROR then this ccd error is due to CP | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 * no need to differentiate between RP and CP, These two messages are | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 * intended for CP Layer, So send CP-ERROR | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
265 case B_CP_ACK: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
266 case B_CP_ERROR: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 /* This flag will become FALSE, in case there is CCD warning, so make it | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 * TRUE till we get CCD Error, especially this will happen in default case | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 cp_error_send = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 cp_error_cause = SMS_CP_CS_INV_MAND_INFO; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
275 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 case ERR_COMPREH_REQUIRED: /* ignore message & send STATUS #96 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 * This error will come when Comprehension bit required set is having error in | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 * IE.Comprehension bits can be set inside only CP-DATA message | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
280 * for RP-ERROR or RP-ACK | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 if(_decodedMsg[0] EQ D_CP_DATA) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 * Comprehension bit error is in RP_ERROR or RP_ACK after RP Cause element | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
286 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 rp_error_send = for_ccd_rp_error_send((T_D_CP_DATA *)_decodedMsg, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 sms_data, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 SMS_RP_CS_INV_MAND_INFO); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 if(rp_error_send EQ FALSE) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 cp_error_send = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 cp_error_cause = SMS_CP_CS_INV_MAND_INFO; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 case ERR_MAND_ELEM_MISS: /* ignore message & send STATUS #96 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 /* See bit postions to check whether it is CP or RP Error */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
301 * Checking whether this error is in CP message element or RP | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
302 * message element. This is required to check because both CP and RP | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 * Layer decoding is done inside same CCD function | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 /* This is for CP Message decoding error - in Length*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 length = (buf_sdu->l_buf/8); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 switch(buf_sdu->buf[1]) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
308 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
309 case D_CP_DATA: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
310 /* Evaluate length of Mandatory CP-DATA/CP-ERROR message */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
311 if(length < MIN_CP_LEN) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
312 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
313 cp_error_send = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
314 cp_error_cause = SMS_CP_CS_INV_MAND_INFO; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
315 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
316 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
317 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
318 cp_error_send = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
319 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
320 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
321 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
322 case B_CP_ERROR:/* This will not have RP DATA, so no need to check for RP */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
323 /* Evaluate length of Mandatory CP-DATA/CP-ERROR message */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
324 if(length < MIN_CP_LEN) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
325 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
326 cp_error_send = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
327 cp_error_cause = SMS_CP_CS_INV_MAND_INFO; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
328 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
329 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
330 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
331 case B_CP_ACK:/* This will not have RP DATA, so no need to check for RP */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
332 if(length < MIN_CP_ACK_LEN) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
333 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
334 cp_error_send = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
335 cp_error_cause = SMS_CP_CS_INV_MAND_INFO; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
336 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
337 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
338 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
339 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
340 cp_error_send = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
341 cp_error_cause = SMS_CP_CS_INV_MAND_INFO; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
342 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
343 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
344 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
345 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
346 case ERR_INVALID_MID: /* ignore message & send STATUS #97 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
347 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
348 * Checking whether this error is in CP message element or RP | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
349 * message element. This is required to check because both CP and RP | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
350 * Layer decoding is done inside same CCD function | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
351 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
352 /* See bit postions to check whether it is CP or RP Error */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
353 /* This is for CP Message decoding error - in Length*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
354 if ((buf_sdu->buf[1] NEQ D_CP_DATA)||(buf_sdu->buf[1] NEQ B_CP_ACK) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
355 ||(buf_sdu->buf[1] NEQ B_CP_ERROR)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
356 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
357 cp_error_send = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
358 cp_error_cause = SMS_CP_CS_MSG_TYPE_NON_EXIST; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
359 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
360 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
361 /* Let RP Layer Handle This ccd error, eventually RP Layer will | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
362 * send RP-ERROR | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
363 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
364 /* This is for RP Message decoding error - in Length*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
365 cp_error_send = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
366 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
367 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
368 case ERR_MSG_LEN: /* ignore message & send STATUS #96 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
369 /* Send CP-ERROR, some problem with Message Length, whole message is garbled */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
370 cp_error_send = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
371 cp_error_cause = SMS_CP_CS_INV_MAND_INFO; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
372 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
373 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
374 case ERR_LEN_MISMATCH: /* ignore message & send STATUS #96 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
375 /* Send CP-ERROR, some problem with Message Length, whole message is garbled */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
376 cp_error_send = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
377 cp_error_cause = SMS_CP_CS_INV_MAND_INFO; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
378 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
379 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
380 TRACE_EVENT_P1 ("Unexpected warnings/errors = %u", ccd_err); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
381 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
382 *Default warnings pass it to RP Layer, decoding at TP will take care of it | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
383 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
384 cp_error_send = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
385 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
386 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
387 /*lint +e415 Likely access of out-of-bounds pointer*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
388 ccd_err = ccd_getNextFault(&ccd_err_entry); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
389 }while(ccd_err != ERR_NO_MORE_ERROR); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
390 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
391 if(cp_error_send) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
392 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
393 cp_build_cp_error (cp_error_cause); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
394 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
395 * Check if the cmms_mode is enabled or not | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
396 * If enabled dont release the MM connection | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
397 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
398 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
399 if(!CMMS_ACTIVE) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
400 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
401 cp_send_release_req (ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
402 SMS_INST_SET_STATE (STATE_CP, CP_IDLE); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
403 SMS_INST.r_flag = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
404 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
405 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
406 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
407 sms_data->cmms_release_pending = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
408 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
409 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
410 rl_error_ind (CAUSE_MAKE(DEFBY_STD, ORIGSIDE_MS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
411 SMSCP_ORIGINATING_ENTITY, cp_error_cause)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
412 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
413 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
414 FREE_SMS_INSTANCE (ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
415 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
416 /* These flags return value will decide whether to pass to rp layer further */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
417 return (!rp_error_send && !cp_error_send); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
418 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
419 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
420 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
421 /*---- PRIMITIVES --------------------------------------------------*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
422 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
423 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
424 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
425 | PROJECT : GSM-PS (8410) MODULE : SMS_FOR | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
426 | STATE : code ROUTINE : for_mmsms_establish_ind | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
427 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
428 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
429 PURPOSE : Processing the primitive MMSMS_ESTABLISH_IND | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
430 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
431 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
432 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
433 GLOBAL void for_mmsms_establish_ind (T_MMSMS_ESTABLISH_IND *mmsms_establish_ind) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
434 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
435 UBYTE ti; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
436 UBYTE pd; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
437 CHAR *msg_type; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
438 BOOL pass_to_rp = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
439 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
440 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
441 /* Enable the PCO to correctly decode the message */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
442 PPASS (mmsms_establish_ind, establish_ind, MMSMS_ESTABLISH_IND); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
443 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
444 TRACE_FUNCTION ("for_mmsms_establish_ind()"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
445 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
446 if (for_get_pd_ti (&establish_ind->sdu, &pd, &ti)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
447 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
448 if ((ti & 0x8) AND (pd EQ PD_SMS)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
449 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
450 register T_SMS_DATA *sms_data = for_get_new_mt_instance (ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
451 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
452 TRACE_EVENT_P1 ("TI %u", ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
453 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
454 if (sms_data) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
455 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
456 #if defined (GPRS) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
457 SMS_INST.downlink = SMS_DOWNLINK_MMSMS; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
458 #endif | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
459 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
460 SMS_INST.cp_ack_pending = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
461 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
462 CCD_START; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
463 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
464 if(ccd_decodeMsg (CCDENT_SMS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
465 DOWNLINK, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
466 (T_MSGBUF *) &establish_ind->sdu, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
467 (UBYTE *)_decodedMsg, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
468 NOT_PRESENT_8BIT) EQ ccdError) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
469 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
470 pass_to_rp = for_ccd_error_check(_decodedMsg,&establish_ind->sdu,sms_data,ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
471 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
472 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
473 if(pass_to_rp) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
474 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
475 switch (_decodedMsg[0]) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
476 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
477 case D_CP_DATA: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
478 cp_est_ind_cp_data ((T_D_CP_DATA *)_decodedMsg); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
479 msg_type = "D_CP_DATA"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
480 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
481 SMS_EM_RECEIVE_CP_DATA; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
482 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
483 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
484 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
485 case B_CP_ERROR: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
486 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
487 MCAST (error, B_CP_ERROR); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
488 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
489 cp_est_ind_cp_error (error->cp_cause); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
490 msg_type = "B_CP_ERROR"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
491 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
492 SMS_EM_RECEIVE_CP_ERROR; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
493 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
494 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
495 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
496 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
497 case B_CP_ACK: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
498 cp_est_ind_cp_ack (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
499 msg_type = "B_CP_ACK"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
500 SMS_EM_RECEIVE_CP_ACKNOWLEDGE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
501 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
502 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
503 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
504 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
505 cp_est_ind_cp_unknown (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
506 msg_type = "UNKNOWN_MESSAGE"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
507 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
508 SMS_EM_RECEIVE_UNKNOWN; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
509 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
510 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
511 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
512 TRACE_BINDUMP(sms_handle, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
513 TC_USER4, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
514 msg_type, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
515 (&(establish_ind->sdu.buf[0]) + ((establish_ind->sdu.o_buf >> 3) -1)), | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
516 ((establish_ind->sdu.l_buf >> 3) + 1)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
517 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
518 CCD_END; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
519 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
520 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
521 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
522 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
523 * no further instance available | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
524 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
525 CCD_START; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
526 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
527 ccd_decodeMsg (CCDENT_SMS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
528 DOWNLINK, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
529 (T_MSGBUF *) &establish_ind->sdu, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
530 (UBYTE *) _decodedMsg, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
531 NOT_PRESENT_8BIT); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
532 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
533 switch (_decodedMsg[0]) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
534 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
535 case D_CP_DATA: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
536 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
537 MCAST (d_cp_data, D_CP_DATA); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
538 MCAST (cp_data, U_CP_DATA); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
539 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
540 * U_CP_DATA contains a maximum of 252 Bytes | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
541 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
542 PALLOC_SDU (data_req, MMSMS_DATA_REQ, LEN_U_CP_DATA); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
543 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
544 data_req->sdu.o_buf = ENCODE_OFFSET; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
545 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
546 rl_build_rp_error (d_cp_data->cp_user_data_dl.reference, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
547 SMS_RP_CS_PROTOCOL_ERROR, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
548 cp_data, NULL); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
549 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
550 cp_data->msg_type = U_CP_DATA; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
551 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
552 ccd_codeMsg (CCDENT_SMS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
553 UPLINK, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
554 (T_MSGBUF *)&data_req->sdu, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
555 (UBYTE *)cp_data, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
556 NOT_PRESENT_8BIT); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
557 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
558 cp_add_pd_ti (ti, &data_req->sdu); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
559 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
560 TRACE_BINDUMP(sms_handle, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
561 TC_USER4, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
562 "U_CP_DATA", | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
563 (&(data_req->sdu.buf[0]) + ((data_req->sdu.o_buf >> 3) -1)), | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
564 ((data_req->sdu.l_buf >> 3) + 1)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
565 PSENDX (MM, data_req); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
566 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
567 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
568 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
569 TRACE_EVENT_P1 ("Unexpected Message = %u", _decodedMsg[0]); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
570 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
571 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
572 CCD_END; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
573 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
574 PALLOC (release_req, MMSMS_RELEASE_REQ); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
575 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
576 release_req->ti = ti; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
577 PSENDX (MM, release_req); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
578 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
579 SMS_EM_UNKNOWN_TRANSACTION; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
580 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
581 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
582 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
583 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
584 TRACE_EVENT_P2 ("TI or PD wrong, PD=%d, TI=%d", pd, ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
585 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
586 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
587 PFREE (establish_ind); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
588 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
589 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
590 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
591 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
592 | PROJECT : GSM-PS (8410) MODULE : SMS_FOR | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
593 | STATE : code ROUTINE : for_mmsms_data_ind | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
594 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
595 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
596 PURPOSE : Processing the primitive MMSMS_DATA_IND | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
597 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
598 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
599 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
600 GLOBAL void for_mmsms_data_ind (T_MMSMS_DATA_IND *mmsms_data_ind) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
601 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
602 UBYTE ti; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
603 UBYTE pd; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
604 CHAR *msg_type; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
605 BOOL pass_to_rp = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
606 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
607 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
608 /* Enable the PCO to correctly decode the message */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
609 PPASS (mmsms_data_ind, data_ind, MMSMS_DATA_IND); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
610 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
611 if (for_get_pd_ti (&data_ind->sdu, &pd, &ti)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
612 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
613 TRACE_FUNCTION_P1 ("for_mmsms_data_ind(TI=%u)", ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
614 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
615 if (/*((! ti) OR (ti >= 8)) AND*/ (pd EQ PD_SMS)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
616 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
617 register T_SMS_DATA *sms_data = GET_SMS_INSTANCE(ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
618 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
619 if (sms_data) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
620 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
621 CCD_START; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
622 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
623 if(ccd_decodeMsg (CCDENT_SMS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
624 DOWNLINK, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
625 (T_MSGBUF *) &data_ind->sdu, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
626 (UBYTE *)_decodedMsg, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
627 NOT_PRESENT_8BIT) EQ ccdError) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
628 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
629 pass_to_rp = for_ccd_error_check(_decodedMsg,&data_ind->sdu,sms_data,ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
630 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
631 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
632 if(pass_to_rp) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
633 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
634 switch (_decodedMsg[0]) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
635 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
636 case D_CP_DATA: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
637 cp_data_ind_cp_data ((T_D_CP_DATA *)_decodedMsg); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
638 msg_type = "D_CP_DATA"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
639 break ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
640 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
641 case B_CP_ERROR: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
642 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
643 MCAST (error, B_CP_ERROR); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
644 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
645 cp_data_ind_cp_error (error->cp_cause); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
646 msg_type = "B_CP_ERROR"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
647 break ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
648 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
649 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
650 case B_CP_ACK: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
651 cp_data_ind_cp_ack (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
652 msg_type = "B_CP_ACK"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
653 break ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
654 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
655 cp_data_ind_cp_unknown (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
656 msg_type = "UNKNOWN MESSAGE"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
657 break ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
658 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
659 TRACE_BINDUMP(sms_handle, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
660 TC_USER4, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
661 msg_type, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
662 (&(data_ind->sdu.buf[0]) + ((data_ind->sdu.o_buf >> 3) -1)), | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
663 ((data_ind->sdu.l_buf >> 3) + 1)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
664 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
665 CCD_END; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
666 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
667 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
668 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
669 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
670 TRACE_EVENT_P1 ("PD wrong, PD=%d", pd); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
671 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
672 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
673 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
674 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
675 TRACE_ERROR("for_mmsms_data_ind() error evaluating PD TI"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
676 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
677 PFREE (data_ind) ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
678 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
679 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
680 #if defined (GPRS) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
681 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
682 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
683 | PROJECT : GSM-PS (8410) MODULE : SMS_CP | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
684 | STATE : code ROUTINE : cp_ll_unitdata_ind | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
685 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
686 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
687 PURPOSE : Processing the signal LL_UNITDATA_IND (GSMS only). | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
688 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
689 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
690 GLOBAL void for_ll_unitdata_ind (T_LL_UNITDATA_IND *ll_unitdata_ind) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
691 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
692 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
693 UBYTE ti; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
694 UBYTE pd; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
695 CHAR *msg_type; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
696 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
697 T_SMS_DATA *sms_global = GET_INSTANCE(0); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
698 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
699 /* Enable the PCO to correctly decode the message */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
700 PPASS (ll_unitdata_ind, unitdata_ind, LL_UNITDATA_IND); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
701 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
702 TRACE_FUNCTION ("for_ll_unitdata_ind()"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
703 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
704 if (!(unitdata_ind->sapi EQ LL_SAPI_7)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
705 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
706 TRACE_EVENT ("SAPI not LL_SAPI_7"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
707 PFREE (unitdata_ind); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
708 return; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
709 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
710 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
711 if (sms_global) /*lint !e774 (sms_global) always */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
712 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
713 if (SMS_SMS_FLOW(sms_global) NEQ SMS_FLOW_AVAILABLE) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
714 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
715 TRACE_ERROR ("unexpected primitive"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
716 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
717 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
718 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
719 * data has been received, mark flow status as busy | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
720 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
721 SMS_SMS_FLOW(sms_global) = SMS_FLOW_BUSY; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
722 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
723 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
724 if (for_get_pd_ti (&unitdata_ind->sdu, &pd, &ti)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
725 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
726 if (/*((! ti) OR (ti >= 8)) AND*/ (pd EQ PD_SMS)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
727 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
728 register T_SMS_DATA *sms_data = GET_SMS_INSTANCE(ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
729 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
730 if (sms_data) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
731 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
732 CCD_START; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
733 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
734 ccd_decodeMsg (CCDENT_SMS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
735 DOWNLINK, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
736 (T_MSGBUF *) &unitdata_ind->sdu, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
737 (UBYTE *) _decodedMsg, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
738 NOT_PRESENT_8BIT); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
739 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
740 switch (_decodedMsg[0]) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
741 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
742 case D_CP_DATA: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
743 cp_data_ind_cp_data ((T_D_CP_DATA *)_decodedMsg); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
744 msg_type = "D_CP_DATA"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
745 break ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
746 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
747 case B_CP_ERROR: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
748 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
749 MCAST (error, B_CP_ERROR); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
750 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
751 cp_data_ind_cp_error (error->cp_cause); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
752 msg_type = "B_CP_ERROR"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
753 break ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
754 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
755 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
756 case B_CP_ACK: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
757 cp_data_ind_cp_ack (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
758 msg_type = "B_CP_ACK"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
759 break ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
760 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
761 cp_data_ind_cp_unknown (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
762 msg_type = "UNKNOWN MESSAGE"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
763 break ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
764 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
765 CCD_END; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
766 TRACE_BINDUMP(sms_handle, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
767 TC_USER4, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
768 msg_type, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
769 (&(unitdata_ind->sdu.buf[0]) + ((unitdata_ind->sdu.o_buf >> 3) -1)), | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
770 ((unitdata_ind->sdu.l_buf >> 3) + 1)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
771 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
772 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
773 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
774 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
775 * no SMS instance associated with pid, try to create new one | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
776 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
777 if (ti & 0x8) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
778 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
779 register T_SMS_DATA *sms_data = for_get_new_mt_instance (ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
780 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
781 if (sms_data) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
782 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
783 CCD_START; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
784 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
785 ccd_decodeMsg (CCDENT_SMS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
786 DOWNLINK, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
787 (T_MSGBUF *) &unitdata_ind->sdu, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
788 (UBYTE *) _decodedMsg, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
789 NOT_PRESENT_8BIT); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
790 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
791 SMS_INST_SET_STATE (STATE_CP, CP_GSMS_IDLE); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
792 SMS_INST.downlink = SMS_DOWNLINK_LL; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
793 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
794 switch (_decodedMsg[0]) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
795 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
796 case D_CP_DATA: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
797 cp_data_ind_cp_data ((T_D_CP_DATA*) _decodedMsg); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
798 msg_type = "D_CP_DATA"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
799 break ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
800 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
801 case B_CP_ERROR: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
802 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
803 MCAST (error, B_CP_ERROR); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
804 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
805 cp_data_ind_cp_error (error->cp_cause); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
806 msg_type = "B_CP_ERROR"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
807 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
808 break ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
809 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
810 case B_CP_ACK: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
811 cp_data_ind_cp_ack (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
812 msg_type = "B_CP_ACK"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
813 break ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
814 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
815 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
816 cp_data_ind_cp_unknown (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
817 msg_type = "UNKNOWN MESSAGE"; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
818 break ; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
819 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
820 CCD_END; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
821 TRACE_BINDUMP(sms_handle, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
822 TC_USER4, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
823 msg_type, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
824 (&(unitdata_ind->sdu.buf[0]) + ((unitdata_ind->sdu.o_buf >> 3) -1)), | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
825 ((unitdata_ind->sdu.l_buf >> 3) + 1)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
826 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
827 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
828 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
829 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
830 * no further instance available, send rp error message | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
831 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
832 register T_SMS_DATA* sms_data_main = GET_INSTANCE(0); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
833 CCD_START; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
834 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
835 ccd_decodeMsg (CCDENT_SMS, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
836 DOWNLINK, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
837 (T_MSGBUF *) &unitdata_ind->sdu, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
838 (UBYTE *) _decodedMsg, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
839 NOT_PRESENT_8BIT); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
840 if (sms_data_main) /*lint !e774 (sms_data_main) always */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
841 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
842 if ((_decodedMsg[0] EQ D_CP_DATA) && | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
843 (sms_data_main->llc_flow EQ SMS_LLC_AVAILABLE)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
844 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
845 UBYTE msg_ref; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
846 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
847 MCAST (d_cp_data, D_CP_DATA); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
848 MCAST (cp_data, U_CP_DATA); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
849 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
850 * U_CP_DATA contains a maximum of 252 Bytes | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
851 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
852 PALLOC_SDU (unitdata_req, LL_UNITDATA_REQ, LEN_U_CP_DATA); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
853 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
854 cp_init_ll_unitdata_req (unitdata_req); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
855 msg_ref = d_cp_data->cp_user_data_dl.reference; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
856 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
857 rl_build_rp_error_gprs (ti, unitdata_req, SMS_RP_CS_PROTOCOL_ERROR, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
858 msg_ref, cp_data, NULL); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
859 sms_data_main->llc_flow = SMS_LLC_BUSY; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
860 TRACE_BINDUMP(sms_handle, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
861 TC_USER4, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
862 "U_CP_DATA", | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
863 (&(unitdata_req->sdu.buf[0]) + ((unitdata_req->sdu.o_buf >> 3) -1)), | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
864 ((unitdata_req->sdu.l_buf >> 3) + 1)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
865 PSENDX (LLC, unitdata_req); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
866 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
867 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
868 CCD_END; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
869 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
870 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
871 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
872 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
873 TRACE_EVENT_P1 ("Unknown TI with response flag set, TI=%d", ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
874 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
875 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
876 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
877 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
878 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
879 TRACE_EVENT_P1 ("PD wrong, PD=%d", pd); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
880 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
881 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
882 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
883 PFREE (unitdata_ind); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
884 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
885 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
886 * Receive ready, if sending is not blocked | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
887 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
888 // if (SMS_LLC_FLOW(sms_global) NEQ SMS_LLC_BUSY_WAITING) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
889 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
890 cp_send_getunitdata_req (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
891 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
892 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
893 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
894 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
895 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
896 | PROJECT : GSM-PS (8410) MODULE : SMS_CP | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
897 | STATE : code ROUTINE : for_ll_unitready_ind | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
898 +--------------------------------------------------------------------+ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
899 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
900 PURPOSE : Processing the signal LL_UNITREADY_IND (GSMS only). | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
901 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
902 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
903 GLOBAL void for_ll_unitready_ind (T_LL_UNITREADY_IND *unitready_ind) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
904 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
905 GET_INSTANCE_DATA; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
906 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
907 TRACE_FUNCTION ("ll_unitready_ind()"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
908 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
909 if ((unitready_ind->sapi NEQ LL_SAPI_7) || !sms_data) /*lint !e774 (!sms_data) never */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
910 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
911 TRACE_EVENT ("ll_unitready_ind(): SAPI not LL_SAPI_7 or no SMS instance"); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
912 PFREE (unitready_ind); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
913 return; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
914 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
915 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
916 if (SMS_LLC_FLOW(sms_data) EQ SMS_LLC_BUSY_WAITING) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
917 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
918 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
919 * find the message waiting for LLC | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
920 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
921 GET_MO_INSTANCE(sms_data); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
922 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
923 if (SMS_INST_GET_STATE (STATE_CP) EQ CP_GSMS_IDLE) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
924 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
925 switch (SMS_CP_ACK_TYPE(sms_data)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
926 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
927 case SMS_CP_ACK: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
928 cp_build_cp_ack (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
929 SMS_LLC_FLOW(sms_data) = SMS_LLC_BUSY; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
930 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
931 if (SMS_CP_UDL(sms_data) NEQ NULL) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
932 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
933 rl_data_ind (SMS_CP_UDL(sms_data)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
934 MFREE(SMS_CP_UDL(sms_data)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
935 SMS_CP_UDL(sms_data) = NULL; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
936 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
937 if (SMS_INST.r_flag) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
938 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
939 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
940 * terminate SMS instance | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
941 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
942 SMS_INST_SET_STATE (STATE_CP, CP_IDLE); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
943 SMS_INST.r_flag = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
944 FREE_SMS_INSTANCE (SMS_INST.ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
945 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
946 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
947 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
948 case SMS_CP_ERROR: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
949 cp_build_cp_error (SMS_CP_CAUSE(sms_data)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
950 SMS_LLC_FLOW(sms_data) = SMS_LLC_BUSY; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
951 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
952 * terminate SMS instance | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
953 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
954 SMS_INST_SET_STATE (STATE_CP, CP_IDLE); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
955 SMS_INST.r_flag = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
956 FREE_SMS_INSTANCE (SMS_INST.ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
957 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
958 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
959 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
960 SMS_LLC_FLOW(sms_data) = SMS_LLC_AVAILABLE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
961 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
962 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
963 SMS_CP_ACK_TYPE(sms_data) = SMS_CP_NONE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
964 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
965 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
966 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
967 SMS_LLC_FLOW(sms_data) = SMS_LLC_AVAILABLE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
968 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
969 if (SMS_LLC_FLOW(sms_data) EQ SMS_LLC_AVAILABLE) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
970 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
971 GET_MT_INSTANCE(sms_data); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
972 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
973 switch (SMS_INST_GET_STATE (STATE_CP)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
974 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
975 case CP_GSMS_IDLE: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
976 case CP_GSMS_MT_WAIT_FOR_RP_ACK: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
977 case CP_GSMS_MT_WAIT_FOR_CP_ACK: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
978 switch (SMS_CP_ACK_TYPE(sms_data)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
979 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
980 case SMS_CP_ACK: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
981 cp_build_cp_ack (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
982 if (SMS_INST_GET_STATE (STATE_CP) EQ CP_GSMS_MT_WAIT_FOR_CP_ACK) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
983 { /* stored CP-DATA will follow */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
984 SMS_LLC_FLOW(sms_data) = SMS_LLC_BUSY_WAITING; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
985 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
986 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
987 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
988 SMS_LLC_FLOW(sms_data) = SMS_LLC_BUSY; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
989 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
990 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
991 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
992 case SMS_CP_ERROR: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
993 cp_build_cp_error (SMS_CP_CAUSE(sms_data)); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
994 SMS_LLC_FLOW(sms_data) = SMS_LLC_BUSY; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
995 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
996 * terminate SMS instance | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
997 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
998 SMS_INST_SET_STATE (STATE_CP, CP_IDLE); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
999 SMS_INST.r_flag = FALSE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1000 FREE_SMS_INSTANCE (SMS_INST.ti); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1001 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1002 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1003 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1004 if (SMS_INST_GET_STATE (STATE_CP) EQ CP_GSMS_MT_WAIT_FOR_CP_ACK | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1005 AND SMS_DATA_REQ(sms_data) NEQ 0) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1006 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1007 cp_send_data_gsms (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1008 SMS_LLC_FLOW(sms_data) = SMS_LLC_BUSY; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1009 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1010 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1011 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1012 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1013 SMS_CP_ACK_TYPE(sms_data) = SMS_CP_NONE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1014 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1015 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1016 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1017 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1018 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1019 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1020 if (SMS_LLC_FLOW(sms_data) EQ SMS_LLC_AVAILABLE) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1021 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1022 GET_MO_INSTANCE(sms_data); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1023 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1024 switch (SMS_INST_GET_STATE (STATE_CP)) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1025 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1026 case CP_GSMS_MO_WAIT_FOR_CP_ACK: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1027 cp_send_data_gsms (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1028 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1029 SMS_LLC_FLOW(sms_data) = SMS_LLC_BUSY; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1030 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1031 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1032 case CP_GSMS_IDLE: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1033 cp_send_data_gsms (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1034 rl_proceed (); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1035 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1036 SMS_INST.r_flag = TRUE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1037 SMS_INST_SET_STATE (STATE_CP, CP_GSMS_MO_WAIT_FOR_CP_ACK); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1038 SMS_LLC_FLOW(sms_data) = SMS_LLC_BUSY; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1039 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1040 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1041 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1042 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1043 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1044 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1045 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1046 else | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1047 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1048 SMS_LLC_FLOW(sms_data) = SMS_LLC_AVAILABLE; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1049 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1050 PFREE (unitready_ind); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1051 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1052 // cp_send_getunitdata_req (sms_data); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1053 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1054 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1055 #endif /* GPRS */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1056 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1057 #endif /* #ifndef SMS_FOR_C */ | 
