comparison src/aci2/aci/cmh_smq.c @ 3:93999a60b835

src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 26 Sep 2016 00:29:36 +0000
parents
children
comparison
equal deleted inserted replaced
2:c41a534f33c6 3:93999a60b835
1 /*
2 +-----------------------------------------------------------------------------
3 | Project :
4 | Modul :
5 +-----------------------------------------------------------------------------
6 | Copyright 2002 Texas Instruments Berlin, AG
7 | All rights reserved.
8 |
9 | This file is confidential and a trade secret of Texas
10 | Instruments Berlin, AG
11 | The receipt of or possession of this file does not convey
12 | any rights to reproduce or disclose its contents or to
13 | manufacture, use, or sell anything it may describe, in
14 | whole, or in part, without the specific written consent of
15 | Texas Instruments Berlin, AG.
16 +-----------------------------------------------------------------------------
17 | Purpose : This module provides the query functions related to the
18 | protocol stack adapter for GPRS session management ( SM ).
19 +-----------------------------------------------------------------------------
20 */
21
22 #ifdef GPRS
23
24 #ifndef CMH_SMQ_C
25 #define CMH_SMQ_C
26 #endif
27
28 #include "aci_all.h"
29
30 /*==== INCLUDES ===================================================*/
31 #include "dti.h" /* functionality of the dti library */
32 #include "aci_cmh.h"
33 #include "ati_cmd.h"
34 #include "aci_cmd.h"
35
36 #include "pcm.h"
37
38 #include "dti_conn_mng.h"
39 #include "dti_cntrl_mng.h"
40
41 #include "gaci.h"
42 #include "gaci_cmh.h"
43 #include "psa.h"
44 #include "psa_sm.h"
45
46 #include "cmh.h"
47 #include "cmh_sm.h"
48
49 #include "psa_gmm.h"
50
51 /*==== CONSTANTS ==================================================*/
52
53 /*==== EXPORT =====================================================*/
54
55 /*==== VARIABLES ==================================================*/
56
57 /*==== FUNCTIONS ==================================================*/
58
59 /*
60 +--------------------------------------------------------------------+
61 | PROJECT : GPRS (8441) MODULE : CMH_SMQ |
62 | STATE : finished ROUTINE : qAT_PlusCGQREQ |
63 +--------------------------------------------------------------------+
64
65 PURPOSE : This is the functional counterpart to the +CGQREG? AT
66 command which returns current settings for each defined PDP context.
67 */
68 GLOBAL T_ACI_RETURN qAT_PlusCGQREQ ( T_ACI_CMD_SRC srcId, T_QOS **qos, SHORT *cid)
69 {
70 USHORT i, j;
71 TRACE_FUNCTION ("qAT_PlusCGQREQ()");
72
73 /*
74 *-------------------------------------------------------------------
75 * check command source - should be Serial link ?
76 *-------------------------------------------------------------------
77 */
78 if ( !cmh_IsVldCmdSrc (srcId) ) {
79 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
80 return( AT_FAIL );
81 }
82
83 /*
84 *-------------------------------------------------------------------
85 * fill in parameters
86 *-------------------------------------------------------------------
87 */
88 for ( i=j=0; i < MAX_CID; i++ )
89 {
90 if ( get_state_over_cid((SHORT) (i + 1)) EQ CS_DEFINED )
91 {
92 qos[j] = &pdp_context[i].con.qos;
93 cid [j] = i + 1 ;
94 j++;
95 }
96 }
97 qos[j] = NULL;
98 cid[j] = -1;
99
100 return( AT_CMPL );
101 }
102
103
104 /*
105 +--------------------------------------------------------------------+
106 | PROJECT : GPRS (8441) MODULE : CMH_SMQ |
107 | STATE : finished ROUTINE : qAT_PlusCGQMIN |
108 +--------------------------------------------------------------------+
109
110 PURPOSE : This is the functional counterpart to the +CGQMIN? AT
111 command which returns current settings for each defined PDP context.
112 */
113 GLOBAL T_ACI_RETURN qAT_PlusCGQMIN ( T_ACI_CMD_SRC srcId, T_QOS **qos, SHORT *cid)
114 {
115 USHORT i,j;
116 TRACE_FUNCTION ("qAT_PlusCGQMIN()");
117
118 /*
119 *-------------------------------------------------------------------
120 * check command source - should be Serial link ?
121 *-------------------------------------------------------------------
122 */
123 if ( !cmh_IsVldCmdSrc (srcId) ) {
124 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
125 return( AT_FAIL );
126 }
127
128 /*
129 *-------------------------------------------------------------------
130 * fill in parameters
131 *-------------------------------------------------------------------
132 */
133 for ( i=j=0; i < MAX_CID; i++ )
134 {
135 if ( get_state_over_cid((SHORT) (i + 1)) EQ CS_DEFINED )
136 {
137 qos[j] = &pdp_context[i].con.min_qos;
138 cid[j] = i + 1 ;
139 j++;
140 }
141 }
142 qos[j] = NULL;
143 cid [j] = -1;
144
145 return( AT_CMPL );
146 }
147
148 /*
149 +--------------------------------------------------------------------+
150 | PROJECT : GPRS (8441) MODULE : CMH_SMQ |
151 | STATE : finished ROUTINE : qAT_PlusCGDCONT |
152 +--------------------------------------------------------------------+
153
154 PURPOSE : This is the functional counterpart to the +CGCONT? AT
155 command which returns current settings for each defined PDP context.
156 */
157
158 GLOBAL T_ACI_RETURN qAT_PlusCGDCONT ( T_ACI_CMD_SRC srcId, T_GPRS_CONT_REC (*Ctxt)[MAX_CID_PLUS_EINS],
159 SHORT *cid )
160 {
161 T_CONTEXT_STATE state;
162 USHORT i,j;
163 TRACE_FUNCTION ("qAT_PlusCGDCONT()");
164
165 /*
166 *-------------------------------------------------------------------
167 * check command source - should be Serial link ?
168 *-------------------------------------------------------------------
169 */
170 if ( !cmh_IsVldCmdSrc (srcId) ) {
171 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
172 return( AT_FAIL );
173 }
174
175 /*
176 *-------------------------------------------------------------------
177 * fill in parameters
178 *-------------------------------------------------------------------
179 */
180 for ( i=j=0; i < MAX_CID; i++ )
181 {
182 state = get_state_over_cid((SHORT) (i + 1));
183 if ( state NEQ CS_UNDEFINED )
184 {
185 memcpy (&((*Ctxt)[j]), &pdp_context[i].con, sizeof(T_GPRS_CONT_REC));
186
187 if ( state EQ CS_ACTIVATED || state EQ CS_DATA_LINK)
188 if ( strcmp(pdp_context[i].con.pdp_addr, pdp_context[i].allocated_pdp_addr) )
189 (*Ctxt)[j].pdp_addr[0] = 0;
190
191 cid[j] = i + 1 ;
192 j++;
193 }
194 }
195 cid [j] = INVALID_CID;
196
197 return( AT_CMPL );
198 }
199
200 /*
201 +--------------------------------------------------------------------+
202 | PROJECT : GPRS (8441) MODULE : CMH_SMQ |
203 | STATE : finished ROUTINE : qAT_PlusCGACT |
204 +--------------------------------------------------------------------+
205
206 PURPOSE : This is the functional counterpart to the +CGACT? AT
207 command which returns current activation states for all defined PDP context.
208 */
209
210 GLOBAL T_ACI_RETURN qAT_PlusCGACT ( T_ACI_CMD_SRC srcId, BOOL *states, SHORT *cid )
211 {
212 T_CONTEXT_STATE state = CS_INVALID_STATE;
213 USHORT i,j;
214
215 TRACE_FUNCTION ("qAT_PlusCGACT()");
216
217 /*
218 *-------------------------------------------------------------------
219 * check command source - should be Serial link ?
220 *-------------------------------------------------------------------
221 */
222 if ( !cmh_IsVldCmdSrc (srcId) ) {
223 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
224 return( AT_FAIL );
225 }
226
227 /*
228 *-------------------------------------------------------------------
229 * fill in parameters
230 *-------------------------------------------------------------------
231 */
232 for ( i=j=0; i < MAX_CID; i++ )
233 {
234 state = get_state_over_cid((SHORT) (i + 1));
235 if ( state NEQ CS_UNDEFINED && state NEQ CS_INVALID_STATE )
236 {
237 if ( state EQ CS_ACTIVATED || state EQ CS_DATA_LINK )
238 states[j] = TRUE;
239 else
240 states[j] = FALSE;
241
242 cid[j] = i + 1 ;
243 j++;
244 }
245 }
246 cid [j] = INVALID_CID;
247
248 return( AT_CMPL );
249 }
250
251 /*
252 +--------------------------------------------------------------------+
253 | PROJECT : GPRS (8441) MODULE : CMH_SMQ |
254 | STATE : finished ROUTINE : qAT_PlusCGAUTO |
255 +--------------------------------------------------------------------+
256
257 PURPOSE : This is the functional counterpart to the +CGAUTO? AT
258 command which returns current mode of automatic response
259 to network requests.
260 */
261
262 GLOBAL T_ACI_RETURN qAT_PlusCGAUTO ( T_ACI_CMD_SRC srcId, T_CGAUTO_N *n)
263 {
264
265 TRACE_FUNCTION ("qAT_PlusCGAUTO()");
266
267 /*
268 *-------------------------------------------------------------------
269 * check command source - should be Serial link ?
270 *-------------------------------------------------------------------
271 */
272 if ( !cmh_IsVldCmdSrc (srcId) ) {
273 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
274 return( AT_FAIL );
275 }
276
277 /*
278 *-------------------------------------------------------------------
279 * fill in parameters
280 *-------------------------------------------------------------------
281 */
282 *n = (T_CGAUTO_N) automatic_response_mode;
283
284 return( AT_CMPL );
285 }
286
287 GLOBAL T_ACI_RETURN qAT_PlusCGEREP ( T_ACI_CMD_SRC srcId, T_CGEREP_MODE *mode, T_CGEREP_BFR *bfr )
288 {
289
290 TRACE_FUNCTION ("qAT_PlusCGEREP()");
291
292 /*
293 *-------------------------------------------------------------------
294 * check command source - should be Serial link ?
295 *-------------------------------------------------------------------
296 */
297 if ( !cmh_IsVldCmdSrc (srcId) ) {
298 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
299 return( AT_FAIL );
300 }
301
302 /*
303 *-------------------------------------------------------------------
304 * fill in parameters
305 *-------------------------------------------------------------------
306 */
307 *mode = ati_user_output_cfg[srcId].CGEREP_mode;
308 *bfr = ati_user_output_cfg[srcId].CGEREP_bfr;
309
310 return( AT_CMPL );
311 }
312
313 GLOBAL T_ACI_RETURN qAT_PlusCGSMS ( T_ACI_CMD_SRC srcId, T_CGSMS_SERVICE *service )
314 {
315
316 TRACE_FUNCTION ("qAT_PlusCGSMS()");
317
318 /*
319 *-------------------------------------------------------------------
320 * check command source - should be Serial link ?
321 *-------------------------------------------------------------------
322 */
323 if ( !cmh_IsVldCmdSrc (srcId) ) {
324 ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
325 return( AT_FAIL );
326 }
327
328 /*
329 *-------------------------------------------------------------------
330 * fill in parameters
331 *-------------------------------------------------------------------
332 */
333 *service = sm_cgsms_service;
334
335 return( AT_CMPL );
336 }
337
338 #endif /* GPRS */
339 /*==== EOF ========================================================*/