diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/aci2/aci/cmh_smq.c	Mon Sep 26 00:29:36 2016 +0000
@@ -0,0 +1,339 @@
+/* 
++----------------------------------------------------------------------------- 
+|  Project :  
+|  Modul   :  
++----------------------------------------------------------------------------- 
+|  Copyright 2002 Texas Instruments Berlin, AG 
+|                 All rights reserved. 
+| 
+|                 This file is confidential and a trade secret of Texas 
+|                 Instruments Berlin, AG 
+|                 The receipt of or possession of this file does not convey 
+|                 any rights to reproduce or disclose its contents or to 
+|                 manufacture, use, or sell anything it may describe, in 
+|                 whole, or in part, without the specific written consent of 
+|                 Texas Instruments Berlin, AG. 
++----------------------------------------------------------------------------- 
+|  Purpose :  This module provides the query functions related to the
+|             protocol stack adapter for GPRS session management ( SM ).
++----------------------------------------------------------------------------- 
+*/ 
+
+#ifdef GPRS
+
+#ifndef CMH_SMQ_C
+#define CMH_SMQ_C
+#endif
+
+#include "aci_all.h"
+
+/*==== INCLUDES ===================================================*/
+#include "dti.h"      /* functionality of the dti library */
+#include "aci_cmh.h"
+#include "ati_cmd.h"
+#include "aci_cmd.h"
+
+#include "pcm.h"
+
+#include "dti_conn_mng.h"
+#include "dti_cntrl_mng.h"
+
+#include "gaci.h"
+#include "gaci_cmh.h"
+#include "psa.h"
+#include "psa_sm.h"
+
+#include "cmh.h"
+#include "cmh_sm.h"
+
+#include "psa_gmm.h"
+
+/*==== CONSTANTS ==================================================*/
+
+/*==== EXPORT =====================================================*/
+
+/*==== VARIABLES ==================================================*/
+
+/*==== FUNCTIONS ==================================================*/
+
+/*
++--------------------------------------------------------------------+
+| PROJECT : GPRS (8441)           MODULE  : CMH_SMQ                  |
+| STATE   : finished              ROUTINE : qAT_PlusCGQREQ           |
++--------------------------------------------------------------------+
+
+  PURPOSE : This is the functional counterpart to the +CGQREG? AT
+            command which returns current settings for each defined PDP context.
+*/
+GLOBAL T_ACI_RETURN qAT_PlusCGQREQ ( T_ACI_CMD_SRC srcId, T_QOS **qos, SHORT *cid)
+{
+  USHORT i, j;
+  TRACE_FUNCTION ("qAT_PlusCGQREQ()");
+
+/*
+ *-------------------------------------------------------------------
+ * check command source - should be Serial link ?
+ *-------------------------------------------------------------------
+ */
+   if ( !cmh_IsVldCmdSrc (srcId) ) {
+      ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
+      return( AT_FAIL );
+   }
+
+/*
+ *-------------------------------------------------------------------
+ * fill in parameters
+ *-------------------------------------------------------------------
+ */
+  for ( i=j=0; i < MAX_CID; i++ )
+  {
+    if ( get_state_over_cid((SHORT) (i + 1)) EQ CS_DEFINED )
+    {
+      qos[j] = &pdp_context[i].con.qos;
+      cid [j] = i + 1 ;
+      j++;
+    }
+  }
+  qos[j] = NULL;
+  cid[j] = -1;
+
+  return( AT_CMPL );
+}
+
+
+/*
++--------------------------------------------------------------------+
+| PROJECT : GPRS (8441)           MODULE  : CMH_SMQ                  |
+| STATE   : finished              ROUTINE : qAT_PlusCGQMIN           |
++--------------------------------------------------------------------+
+
+  PURPOSE : This is the functional counterpart to the +CGQMIN? AT
+            command which returns current settings for each defined PDP context.
+*/
+GLOBAL T_ACI_RETURN qAT_PlusCGQMIN ( T_ACI_CMD_SRC srcId, T_QOS **qos, SHORT *cid)
+{
+  USHORT i,j;
+  TRACE_FUNCTION ("qAT_PlusCGQMIN()");
+
+/*
+ *-------------------------------------------------------------------
+ * check command source - should be Serial link ?
+ *-------------------------------------------------------------------
+ */
+   if ( !cmh_IsVldCmdSrc (srcId) ) {
+      ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
+      return( AT_FAIL );
+   }
+
+/*
+ *-------------------------------------------------------------------
+ * fill in parameters
+ *-------------------------------------------------------------------
+ */
+  for ( i=j=0; i < MAX_CID; i++ )
+  {
+    if ( get_state_over_cid((SHORT) (i + 1)) EQ CS_DEFINED )
+    {
+      qos[j] = &pdp_context[i].con.min_qos;
+      cid[j] = i + 1 ;
+      j++;
+    }
+  }
+  qos[j] = NULL;
+  cid [j] = -1;
+
+   return( AT_CMPL );
+}
+
+/*
++--------------------------------------------------------------------+
+| PROJECT : GPRS (8441)           MODULE  : CMH_SMQ                  |
+| STATE   : finished              ROUTINE : qAT_PlusCGDCONT          |
++--------------------------------------------------------------------+
+
+  PURPOSE : This is the functional counterpart to the +CGCONT? AT
+            command which returns current settings for each defined PDP context.
+*/
+
+GLOBAL T_ACI_RETURN qAT_PlusCGDCONT ( T_ACI_CMD_SRC srcId, T_GPRS_CONT_REC (*Ctxt)[MAX_CID_PLUS_EINS],
+                                      SHORT *cid )
+{
+  T_CONTEXT_STATE state;
+  USHORT i,j;
+  TRACE_FUNCTION ("qAT_PlusCGDCONT()");
+
+/*
+ *-------------------------------------------------------------------
+ * check command source - should be Serial link ?
+ *-------------------------------------------------------------------
+ */
+   if ( !cmh_IsVldCmdSrc (srcId) ) {
+      ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
+      return( AT_FAIL );
+   }
+
+/*
+ *-------------------------------------------------------------------
+ * fill in parameters
+ *-------------------------------------------------------------------
+ */
+  for ( i=j=0; i < MAX_CID; i++ )
+  {
+    state = get_state_over_cid((SHORT) (i + 1));
+    if ( state NEQ CS_UNDEFINED )
+    {
+      memcpy (&((*Ctxt)[j]), &pdp_context[i].con, sizeof(T_GPRS_CONT_REC));
+
+      if ( state EQ CS_ACTIVATED || state EQ CS_DATA_LINK)
+        if ( strcmp(pdp_context[i].con.pdp_addr, pdp_context[i].allocated_pdp_addr) )
+          (*Ctxt)[j].pdp_addr[0] = 0;
+
+      cid[j] = i + 1 ;
+      j++;
+    }
+  }
+  cid [j] = INVALID_CID;
+
+   return( AT_CMPL );
+}
+
+/*
++--------------------------------------------------------------------+
+| PROJECT : GPRS (8441)           MODULE  : CMH_SMQ                  |
+| STATE   : finished              ROUTINE : qAT_PlusCGACT            |
++--------------------------------------------------------------------+
+
+  PURPOSE : This is the functional counterpart to the +CGACT? AT
+            command which returns current activation states for all defined PDP context.
+*/
+
+GLOBAL T_ACI_RETURN qAT_PlusCGACT ( T_ACI_CMD_SRC srcId, BOOL *states, SHORT *cid )
+{
+  T_CONTEXT_STATE state = CS_INVALID_STATE;
+  USHORT i,j;
+
+  TRACE_FUNCTION ("qAT_PlusCGACT()");
+
+/*
+ *-------------------------------------------------------------------
+ * check command source - should be Serial link ?
+ *-------------------------------------------------------------------
+ */
+   if ( !cmh_IsVldCmdSrc (srcId) ) {
+      ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
+      return( AT_FAIL );
+   }
+
+/*
+ *-------------------------------------------------------------------
+ * fill in parameters
+ *-------------------------------------------------------------------
+ */
+  for ( i=j=0; i < MAX_CID; i++ )
+  {
+    state = get_state_over_cid((SHORT) (i + 1));
+    if ( state NEQ CS_UNDEFINED && state NEQ CS_INVALID_STATE )
+    {
+      if ( state EQ CS_ACTIVATED || state EQ CS_DATA_LINK )
+        states[j] = TRUE;
+      else
+        states[j] = FALSE;
+
+      cid[j] = i + 1 ;
+      j++;
+    }
+  }
+  cid [j] = INVALID_CID;
+
+   return( AT_CMPL );
+}
+
+/*
++--------------------------------------------------------------------+
+| PROJECT : GPRS (8441)           MODULE  : CMH_SMQ                  |
+| STATE   : finished              ROUTINE : qAT_PlusCGAUTO           |
++--------------------------------------------------------------------+
+
+  PURPOSE : This is the functional counterpart to the +CGAUTO? AT
+            command which returns current mode of automatic response
+            to network requests.
+*/
+
+GLOBAL T_ACI_RETURN qAT_PlusCGAUTO  ( T_ACI_CMD_SRC srcId, T_CGAUTO_N *n)
+{
+
+  TRACE_FUNCTION ("qAT_PlusCGAUTO()");
+
+/*
+ *-------------------------------------------------------------------
+ * check command source - should be Serial link ?
+ *-------------------------------------------------------------------
+ */
+   if ( !cmh_IsVldCmdSrc (srcId) ) {
+      ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
+      return( AT_FAIL );
+   }
+
+/*
+ *-------------------------------------------------------------------
+ * fill in parameters
+ *-------------------------------------------------------------------
+ */
+  *n = (T_CGAUTO_N) automatic_response_mode;
+
+  return( AT_CMPL );
+}
+
+GLOBAL T_ACI_RETURN qAT_PlusCGEREP  ( T_ACI_CMD_SRC srcId, T_CGEREP_MODE *mode, T_CGEREP_BFR *bfr )
+{
+
+  TRACE_FUNCTION ("qAT_PlusCGEREP()");
+
+/*
+ *-------------------------------------------------------------------
+ * check command source - should be Serial link ?
+ *-------------------------------------------------------------------
+ */
+   if ( !cmh_IsVldCmdSrc (srcId) ) {
+      ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
+      return( AT_FAIL );
+   }
+
+/*
+ *-------------------------------------------------------------------
+ * fill in parameters
+ *-------------------------------------------------------------------
+ */
+  *mode = ati_user_output_cfg[srcId].CGEREP_mode;
+  *bfr  = ati_user_output_cfg[srcId].CGEREP_bfr;
+
+  return( AT_CMPL );
+}
+
+GLOBAL T_ACI_RETURN qAT_PlusCGSMS   ( T_ACI_CMD_SRC srcId, T_CGSMS_SERVICE *service )
+{
+
+  TRACE_FUNCTION ("qAT_PlusCGSMS()");
+
+/*
+ *-------------------------------------------------------------------
+ * check command source - should be Serial link ?
+ *-------------------------------------------------------------------
+ */
+   if ( !cmh_IsVldCmdSrc (srcId) ) {
+      ACI_ERR_DESC( ACI_ERR_CLASS_Ext, EXT_ERR_Parameter );
+      return( AT_FAIL );
+   }
+
+/*
+ *-------------------------------------------------------------------
+ * fill in parameters
+ *-------------------------------------------------------------------
+ */
+  *service = sm_cgsms_service;
+
+  return( AT_CMPL );
+}
+
+#endif  /* GPRS */
+/*==== EOF ========================================================*/