FreeCalypso > hg > fc-magnetite
annotate src/g23m-gprs/sndcp/sndcp_sds.c @ 673:62a5285e014a
Lorekeeping: allow tpudrv-leonardo.lib on Leonardo/Tango
Back in 2015 the Mother's idea was to produce a FreeCalypso development
board that would be a clone of TI Leonardo, including the original
quadband RFFE; one major additional stipulation was that this board
needed to be able to run original unmodified TCS211-20070608 firmware
with all blobs intact, with only minimal binary patches to main.lib
and tpudrv.lib.  The necessary patched libs were produced at that time
in the tcs211-patches repository.
That plan was changed and we produced FCDEV3B instead, with Openmoko's
triband RFFE instead of Leonardo quadband, but when FC Magnetite started
in 2016, a TPUDRV_blob= provision was still made, allowing the possibility
of patching OM's tpudrv.lib for a restored Leonardo RFFE.
Now in 2020 we have FC Tango which is essentially a verbatim clone of
Leonardo core, including the original quadband RFFE.  We have also
deblobbed our firmware so much that we have absolutely no real need
for a blob version of tpudrv.lib - but I thought it would be neat to put
the ancient TPUDRV_blob= mechanism (classic config) to its originally
intended use, just for the heck of it.
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Fri, 29 May 2020 03:55:36 +0000 | 
| parents | 219afcfc6250 | 
| children | 
| rev | line source | 
|---|---|
| 
183
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 +----------------------------------------------------------------------------- | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 | Project : GPRS (8441) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 | Modul : sndcp_sds.c | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 +----------------------------------------------------------------------------- | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 | All rights reserved. | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 | This file is confidential and a trade secret of Texas | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 | Instruments Berlin, AG | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 | The receipt of or possession of this file does not convey | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 | any rights to reproduce or disclose its contents or to | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | manufacture, use, or sell anything it may describe, in | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 | whole, or in part, without the specific written consent of | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 | Texas Instruments Berlin, AG. | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 +----------------------------------------------------------------------------- | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 | Purpose : This modul is part of the entity SNDCP and implements all | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 | functions to handles the incoming process internal signals as | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 | described in the SDL-documentation (SD-statemachine) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 +----------------------------------------------------------------------------- | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 #define ENTITY_SNDCP | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 /*==== INCLUDES =============================================================*/ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 #include "typedefs.h" /* to get Condat data types */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 #include "vsi.h" /* to get a lot of macros */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 #include "macdef.h" | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 #include "gsm.h" /* to get a lot of macros */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 #include "prim.h" /* to get the definitions of used SAP and directions */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 #include "dti.h" | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 #include "sndcp.h" /* to get the global entity definitions */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 #include "sndcp_f.h" /* to get the functions to access the global arrays*/ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 #include "sndcp_sdf.h" /* to get the internal functions of this service */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 #include "sndcp_nds.h" /* to get signals to nd service */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 /*==== CONST ================================================================*/ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 /*==== LOCAL VARS ===========================================================*/ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 /*==== PRIVATE FUNCTIONS ====================================================*/ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 /*==== PUBLIC FUNCTIONS =====================================================*/ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 | Function : sig_cia_sd_cia_decomp_ind | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 | Description : Handles the internal signal SIG_CIA_SD_CIA_DECOMP_CNF | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 | Parameters : cia_decomp_ind, p_id | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 GLOBAL void sig_cia_sd_cia_decomp_ind (T_CIA_DECOMP_IND* cia_decomp_ind, UBYTE p_id) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 UBYTE sapi_index = 0; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 UBYTE sapi = 0; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 UBYTE nsapi = cia_decomp_ind->pdu_ref.ref_nsapi; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 BOOL rec = FALSE; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 T_SN_UNITDATA_IND* sn_unitdata_ind = NULL; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 TRACE_ISIG( "sig_cia_sd_cia_decomp_ind" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 * set service instance according to sapi in primitive | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 sndcp_get_nsapi_sapi(cia_decomp_ind->pdu_ref.ref_nsapi, &sapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 sndcp_get_sapi_index(sapi, &sapi_index); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 sndcp_data->sd = & sndcp_data->sd_base[sapi_index]; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 switch( sndcp_get_nsapi_rec_state(nsapi) ) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 case SD_UNACK_DISCARD: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 case SD_UNACK_RECEIVE_FIRST_SEGMENT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 case SD_UNACK_RECEIVE_SUBSEQUENT_SEGMENT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 MALLOC(sn_unitdata_ind, sizeof(T_SN_UNITDATA_IND)); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 #ifdef _SNDCP_DTI_2_ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 sn_unitdata_ind->desc_list2.first = cia_decomp_ind->desc_list2.first; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 sn_unitdata_ind->desc_list2.list_len = | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 cia_decomp_ind->desc_list2.list_len; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 #endif /*_SNDCP_DTI_2_*/ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 #ifdef SNDCP_TRACE_ALL | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 sndcp_data->cia.cia_decomp_ind_number[nsapi] --; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 TRACE_EVENT_P1("number of cia_decomp_ind: % d", | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 sndcp_data->cia.cia_decomp_ind_number[nsapi]); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 #endif /* SNDCP_TRACE_ALL */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 sn_unitdata_ind->nsapi = nsapi; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 sn_unitdata_ind->p_id = p_id; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 sd_is_nsapi_rec(nsapi, &rec); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 if (rec) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 sig_sd_nd_unitdata_ind(nsapi, sn_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 sd_set_nsapi_rec(nsapi, FALSE); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 sd_get_unitdata_if_nec(sapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 } else { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 if (sndcp_data->sd->cur_sn_unitdata_ind[nsapi] NEQ NULL) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 #ifndef NTRACE | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 #ifdef SNDCP_TRACE_ALL | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 TRACE_EVENT_P1("Discard cur_sn.. in %s", sndcp_data->sd->state_name); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 #endif /* SNDCP_TRACE_ALL */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 #endif /* NTRACE */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 sd_delete_cur_sn_unitdata_ind(nsapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 sndcp_data->sd->cur_sn_unitdata_ind[nsapi] = sn_unitdata_ind; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 sndcp_set_nsapi_rec_state(nsapi, SD_UNACK_WAIT_NSAPI); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 MFREE(cia_decomp_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 default: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 TRACE_ERROR( "SIG_CIA_SD_CIA_DECOMP_IND unexpected" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 MFREE_PRIM(cia_decomp_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 } /* sig_cia_sd_cia_decomp_ind() */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 | Function : sig_mg_sd_delete_npdus | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 | Description : Handles the internal signal SIG_MG_SD_DELETE_NPDUS | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 | Parameters : | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 GLOBAL void sig_mg_sd_delete_npdus (UBYTE nsapi, | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 UBYTE sapi) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 UBYTE sapi_index = 0; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 TRACE_ISIG( "sig_mg_sd_delete_npdus" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 * set service instance according to sapi in primitive | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 sndcp_get_sapi_index(sapi, &sapi_index); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 sndcp_data->sd = & sndcp_data->sd_base[sapi_index]; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 switch( sndcp_get_nsapi_rec_state(nsapi) ) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 case SD_UNACK_DISCARD: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 case SD_UNACK_RECEIVE_FIRST_SEGMENT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 case SD_UNACK_RECEIVE_SUBSEQUENT_SEGMENT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 if (sndcp_data->sd->cur_sn_unitdata_ind[nsapi] != NULL) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 sd_delete_cur_sn_unitdata_ind(nsapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 sndcp_set_nsapi_rec_state(nsapi, SD_UNACK_RECEIVE_FIRST_SEGMENT); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 } else { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 sndcp_set_nsapi_rec_state(nsapi, SD_UNACK_RECEIVE_FIRST_SEGMENT); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 case SD_UNACK_WAIT_NSAPI: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 if (sndcp_data->sd->cur_sn_unitdata_ind[nsapi] != NULL) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 sd_delete_cur_sn_unitdata_ind(nsapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 sd_get_unitdata_if_nec(sapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 sndcp_set_nsapi_rec_state(nsapi, SD_UNACK_RECEIVE_FIRST_SEGMENT); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 default: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 TRACE_ERROR( "SIG_MG_SD_DELETE_NPDUS unexpected" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 } /* sig_mg_sd_delete_npdus() */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 | Function : sig_mg_sd_getunitdata | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 | Description : Handles the internal signal SIG_MG_SD_GETUNITDATA | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 | Parameters : sapi | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 GLOBAL void sig_mg_sd_getunitdata (UBYTE sapi, UBYTE nsapi) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 UBYTE sapi_index = 0; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 TRACE_ISIG( "sig_mg_sd_getunitdata" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 * set service instance according to sapi in primitive | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 sndcp_get_sapi_index(sapi, &sapi_index); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 sndcp_data->sd = & sndcp_data->sd_base[sapi_index]; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 switch( GET_STATE(SD) ) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 case SD_DEFAULT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 sd_get_unitdata_if_nec(sapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 sndcp_set_nsapi_rec_state(nsapi, SD_UNACK_RECEIVE_FIRST_SEGMENT); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 default: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 TRACE_ERROR( "SIG_MG_SD_GETUNITDATA unexpected" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 } /* sig_mg_sd_getunitdata() */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 | Function : sig_nd_sd_getunitdata_req | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
220 | Description : Handles the internal signal SIG_ND_SD_GETUNITDATA_REQ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 | Parameters : affected sapi, affected nsapi | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
224 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
226 GLOBAL void sig_nd_sd_getunitdata_req (UBYTE sapi, | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
227 UBYTE nsapi) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 UBYTE sapi_index = 0; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 TRACE_ISIG( "sig_nd_sd_getunitdata_req" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 * set service instance according to sapi in primitive | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 sndcp_get_sapi_index(sapi, &sapi_index); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 sndcp_data->sd = & sndcp_data->sd_base[sapi_index]; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 switch( sndcp_get_nsapi_rec_state(nsapi) ) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 case SD_UNACK_DISCARD: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 case SD_UNACK_RECEIVE_FIRST_SEGMENT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 case SD_UNACK_RECEIVE_SUBSEQUENT_SEGMENT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 sd_set_nsapi_rec(nsapi, TRUE); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
246 case SD_UNACK_WAIT_NSAPI: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
247 if (sndcp_data->sd->cur_sn_unitdata_ind[nsapi] NEQ NULL) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 * Send the just reassembled N-PDU (must be present because of state!). | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 sig_sd_nd_unitdata_ind(nsapi, sndcp_data->sd->cur_sn_unitdata_ind[nsapi]); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 sndcp_data->sd->cur_sn_unitdata_ind[nsapi] = NULL; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
253 sd_get_unitdata_if_nec(sapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 sndcp_set_nsapi_rec_state(nsapi, SD_UNACK_RECEIVE_FIRST_SEGMENT); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 } else { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 * Set the receptive for the given nsapi. | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
259 sd_set_nsapi_rec(nsapi, TRUE); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 default: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 TRACE_ERROR( "SIG_ND_SD_GETUNITDATA_REQ unexpected" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
265 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
266 } /* sig_nd_sd_getunitdata_req() */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 | Function : sig_mg_sd_reset_ind | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 | Description : Handles the internal signal SIG_MG_SD_RESET_IND | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 | Parameters : affected nsapi | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
275 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 GLOBAL void sig_mg_sd_reset_ind (UBYTE nsapi) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
280 TRACE_ISIG( "sig_mg_sd_reset_ind" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 switch( sndcp_get_nsapi_rec_state(nsapi) ) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 case SD_UNACK_DISCARD: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 case SD_UNACK_RECEIVE_FIRST_SEGMENT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
286 case SD_UNACK_RECEIVE_SUBSEQUENT_SEGMENT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 case SD_UNACK_WAIT_NSAPI: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 sndcp_data->cur_dcomp[nsapi] = 0; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 sndcp_data->cur_pcomp[nsapi] = 0; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 default: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 TRACE_ERROR( "SIG_MG_SD_RESET_IND unexpected" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 } /* sig_mg_sd_reset_ind() */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 | Function : sig_pd_sd_unitdata_ind | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
301 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
302 | Description : Handles the signal PD_SD_UNITDATA_IND | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 | Parameters : *ll_unitdata_ind - Ptr to primitive payload | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
308 GLOBAL void sig_pd_sd_unitdata_ind ( T_LL_UNITDATA_IND *ll_unitdata_ind ) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
309 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
310 UBYTE sapi_index = 0; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
311 BOOL valid = FALSE; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
312 UBYTE nsapi = 0; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
313 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
314 TRACE_ISIG( "sig_pd_sd_unitdata_ind" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
315 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
316 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
317 * set service instance according to sapi in primitive | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
318 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
319 sndcp_get_sapi_index(ll_unitdata_ind->sapi, &sapi_index); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
320 sndcp_data->sd = & sndcp_data->sd_base[sapi_index]; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
321 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
322 sd_get_nsapi(ll_unitdata_ind, &nsapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
323 sndcp_data->big_head[nsapi] = FALSE; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
324 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
325 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
326 * LLC has now "used up" it's pending LL_GETUNITDATA_REQ and will have | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
327 * to wait for the next one. | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
328 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
329 sndcp_data->sd->llc_may_send = FALSE; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
330 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
331 switch( sndcp_get_nsapi_rec_state(nsapi) ) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
332 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
333 case SD_UNACK_DISCARD: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
334 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
335 * Invalid segments are discarded without error notification | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
336 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
337 sd_is_seg_valid(ll_unitdata_ind, &valid); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
338 if (!valid) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
339 if (ll_unitdata_ind != NULL) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
340 UBYTE sapi = ll_unitdata_ind->sapi; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
341 PFREE(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
342 sd_get_unitdata_if_nec(sapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
343 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
344 return; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
345 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
346 if (sd_f_bit(ll_unitdata_ind)) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
347 if (sd_m_bit(ll_unitdata_ind)) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
348 sd_un_d_f1_m1(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
349 } else { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
350 sd_un_d_f1_m0(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
351 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
352 } else { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
353 if (sd_m_bit(ll_unitdata_ind)) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
354 sd_un_d_f0_m1(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
355 } else { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
356 sd_un_d_f0_m0(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
357 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
358 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
359 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
360 case SD_UNACK_RECEIVE_FIRST_SEGMENT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
361 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
362 * Invalid segments are discarded without error notification | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
363 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
364 sd_is_seg_valid(ll_unitdata_ind, &valid); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
365 if (!valid) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
366 if (ll_unitdata_ind != NULL) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
367 UBYTE sapi = ll_unitdata_ind->sapi; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
368 PFREE (ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
369 sd_get_unitdata_if_nec(sapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
370 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
371 return; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
372 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
373 if (sd_f_bit(ll_unitdata_ind)) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
374 if (sd_m_bit(ll_unitdata_ind)) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
375 sd_un_f_f1_m1(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
376 } else { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
377 sd_un_f_f1_m0(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
378 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
379 } else { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
380 if (sd_m_bit(ll_unitdata_ind)) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
381 sd_un_f_f0_m1(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
382 } else { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
383 sd_un_f_f0_m0(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
384 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
385 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
386 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
387 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
388 case SD_UNACK_RECEIVE_SUBSEQUENT_SEGMENT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
389 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
390 * Invalid segments are discarded without error notification | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
391 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
392 sd_is_seg_valid(ll_unitdata_ind, &valid); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
393 if (!valid) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
394 if (ll_unitdata_ind != NULL) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
395 UBYTE sapi = ll_unitdata_ind->sapi; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
396 PFREE(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
397 sd_get_unitdata_if_nec(sapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
398 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
399 return; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
400 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
401 if (sd_f_bit(ll_unitdata_ind)) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
402 if (sd_m_bit(ll_unitdata_ind)) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
403 sd_un_s_f1_m1(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
404 } else { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
405 sd_un_s_f1_m0(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
406 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
407 } else { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
408 if (sd_m_bit(ll_unitdata_ind)) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
409 sd_un_s_f0_m1(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
410 } else { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
411 sd_un_s_f0_m0(ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
412 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
413 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
414 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
415 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
416 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
417 case SD_UNACK_WAIT_NSAPI: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
418 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
419 * This NSAPI is waiting for the DL flow control prim | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
420 * from upper layer. The data for other NSAPI's could get passed, | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
421 * but since this packet is for the blocked NSAPI, the prim is discarded | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
422 * and next packet is not requested. | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
423 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
424 if (ll_unitdata_ind != NULL) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
425 PFREE (ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
426 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
427 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
428 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
429 default: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
430 TRACE_ERROR( "SIG_PD_SD_UNITDATA_IND unexpected" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
431 if (ll_unitdata_ind != NULL) { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
432 UBYTE sapi = ll_unitdata_ind->sapi; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
433 PFREE (ll_unitdata_ind); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
434 sd_get_unitdata_if_nec(sapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
435 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
436 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
437 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
438 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
439 } /* sig_pd_sd_unitdata_ind() */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
440 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
441 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
442 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
443 | Function : sig_cia_sd_getunitdata | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
444 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
445 | Description : Handles the internal signal SIG_CIA_SD_GETUNITDATA | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
446 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
447 | Parameters : sapi | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
448 | | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
449 +------------------------------------------------------------------------------ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
450 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
451 GLOBAL void sig_cia_sd_getunitdata (UBYTE sapi, UBYTE nsapi) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
452 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
453 UBYTE sapi_index = 0; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
454 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
455 TRACE_ISIG( "sig_cia_sd_getunitdata" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
456 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
457 /* | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
458 * set service instance according to sapi in primitive | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
459 */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
460 sndcp_get_sapi_index(sapi, &sapi_index); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
461 sndcp_data->sd = & sndcp_data->sd_base[sapi_index]; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
462 | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
463 switch( sndcp_get_nsapi_rec_state(nsapi) ) | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
464 { | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
465 case SD_UNACK_DISCARD: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
466 case SD_UNACK_RECEIVE_FIRST_SEGMENT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
467 case SD_UNACK_RECEIVE_SUBSEQUENT_SEGMENT: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
468 case SD_UNACK_WAIT_NSAPI: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
469 sd_get_unitdata_if_nec(sapi); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
470 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
471 default: | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
472 TRACE_ERROR( "SIG_CIA_SD_GETUNITDATA unexpected" ); | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
473 break; | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
474 } | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
475 } /* sig_cia_sd_getunitdata() */ | 
| 
 
219afcfc6250
src/g23m-gprs: initial import from TCS3.2/LoCosto
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
476 | 
