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