FreeCalypso > hg > fc-tourmaline
annotate src/g23m-gprs/sndcp/sndcp_pdp.c @ 197:a963d8cd8682
bwsplash/README: additional notes
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sun, 28 Mar 2021 23:51:56 +0000 | 
| parents | fa8dc04885d8 | 
| children | 
| rev | line source | 
|---|---|
| 
1
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 +----------------------------------------------------------------------------- | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 | Project : GPRS (8441) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 | Modul : sndcp_pdp.c | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 +----------------------------------------------------------------------------- | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 | All rights reserved. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 | This file is confidential and a trade secret of Texas | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 | Instruments Berlin, AG | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 | The receipt of or possession of this file does not convey | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 | any rights to reproduce or disclose its contents or to | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | manufacture, use, or sell anything it may describe, in | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 | whole, or in part, without the specific written consent of | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 | Texas Instruments Berlin, AG. | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 +----------------------------------------------------------------------------- | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 | Purpose : This modul is part of the entity SNDCP and implements all | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 | functions to handles the incoming primitives as described in | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 | the SDL-documentation (PD-statemachine) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 +----------------------------------------------------------------------------- | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 #define ENTITY_SNDCP | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 /*==== INCLUDES =============================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 #include "typedefs.h" /* to get Condat data types */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 #include "vsi.h" /* to get a lot of macros */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 #include "macdef.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 #include "prim.h" /* to get the definitions of used SAP and directions */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 #include "dti.h" | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 #include "sndcp.h" /* to get the global entity definitions */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 #include "sndcp_f.h" /* to get the functions to access the global arrays*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 #include "sndcp_sds.h" /* to get the signals to sd. */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 /*==== CONST ================================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 /*==== LOCAL VARS ===========================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 /*==== PRIVATE FUNCTIONS ====================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 /*==== PUBLIC FUNCTIONS =====================================================*/ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 +------------------------------------------------------------------------------ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 | Function : pd_ll_unitdata_ind | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 +------------------------------------------------------------------------------ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 | Description : Handles the primitive LL_UNITDATA_IND | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 | Parameters : *ll_unitdata_ind - Ptr to primitive payload | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 | | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 +------------------------------------------------------------------------------ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 GLOBAL void pd_ll_unitdata_ind ( T_LL_UNITDATA_IND *ll_unitdata_ind ) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 UBYTE sapi_index = 0; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 #ifdef FLOW_TRACE | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 sndcp_trace_flow_control(FLOW_TRACE_SNDCP, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 FLOW_TRACE_DOWN, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 FLOW_TRACE_BOTTOM, | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 FALSE); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 #endif | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 TRACE_FUNCTION( "pd_ll_unitdata_ind" ); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 /* | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 * set service instance according to sapi in primitive | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 sndcp_get_sapi_index(ll_unitdata_ind->sapi, &sapi_index); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 sndcp_data->pd = & sndcp_data->pd_base[sapi_index]; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 switch( GET_STATE( PD ) ) | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 case PD_DEFAULT: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 #ifdef SNDCP_TRACE_ALL | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 TRACE_EVENT_P1("downlink at LL SAP: %d octets", | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 ll_unitdata_ind->sdu.l_buf >> 3); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 sndcp_trace_sdu(& ll_unitdata_ind->sdu); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 #endif | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 sig_pd_sd_unitdata_ind(ll_unitdata_ind); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 default: | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 TRACE_ERROR( "LL_UNITDATA_IND unexpected" ); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 if (ll_unitdata_ind != NULL) { | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 PFREE (ll_unitdata_ind); | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 break; | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 } | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 } /* pd_ll_unitdata_ind() */ | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 | 
| 
 
fa8dc04885d8
src/g23m-*: import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 | 
