diff src/aci2/aci/cmh_sm.h @ 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_sm.h	Mon Sep 26 00:29:36 2016 +0000
@@ -0,0 +1,260 @@
+/* 
++----------------------------------------------------------------------------- 
+|  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 :  Definitions for the command handler of the
+|             GPRS session management ( SM ).
++----------------------------------------------------------------------------- 
+*/ 
+
+#ifdef GPRS
+
+#ifndef CMH_SM_H
+#define CMH_SM_H
+
+/*==== CONSTANTS ==================================================*/
+
+/* dynamic numbers of nsapis */
+#define SMH_FIRST_FREE_NSAPIS   SMREG_NSAPI_5
+#define SMH_LAST_FREE_NSAPIS    SMREG_NSAPI_15
+#define SMH_NSAPI_MAX           16
+
+/* invalid values */
+#define INVALID_NSAPI  (0xFF)          /* marks an invalid nsapi */
+
+/* not used nsapi */
+#define UNUSED_NSAPI   (0x00)          /* nsapi currently not in use */
+
+/* for network requested context activation */
+#define MAX_GPRS_CALL_TABLE_ENTRIES   2
+  /* MAX_PDP_TYPE_LEN + MAX_PDP_ADDR_LEN + MAX_L2P_LENGTH = 7 + 21 + 6 = 34 */
+#define MAX_CRING_INFORMATION_LENGTH  42
+
+/* undefiend smreg_ti */
+#define UNDEFINED_TI 0xFF
+
+typedef enum
+{
+  PCO_USER,
+  PCO_NETWORK
+
+} T_PCO_TYPE;
+
+typedef enum
+{
+  SNDCP_PEER_NORMAL,
+  SNDCP_PEER_SWITCHED
+
+} T_SNDCP_PEER;
+
+typedef enum
+{
+  GCTT_NORMAL = 0,
+  GCTT_REACTIVATION
+
+} T_GPRS_CALL_TABLE_TYPE;
+
+/*==== TYPES ======================================================*/
+
+typedef struct
+{
+  UBYTE   len;
+  UBYTE   pco[251];
+} T_GPRS_CONT_PCO;
+
+typedef struct
+{
+  T_CONTEXT_STATE       state;
+  UBYTE                 nsapi;
+  UBYTE                 smreg_ti;
+  T_DTI_CONN_LINK_ID    link_id_sn;
+  T_DTI_CONN_LINK_ID    link_id_uart;
+  T_DTI_CONN_LINK_ID    link_id_new;
+  T_DTI_ENTITY_ID       entity_id;
+  T_GPRS_CONT_REC       con;
+  T_QOS                 qos;
+  T_PDP_ADDRESS         allocated_pdp_addr;
+  T_ACI_CMD_SRC         owner;
+  T_GPRS_CONT_PCO       user_pco;     /* setup with %CGPCO=... */
+  T_GPRS_CONT_PCO       network_pco;  /* setup with SMREG_PDP_ACTIVATE_CNF */
+} T_GPRS_CONT_CLASS;
+
+typedef struct
+{
+  T_SMREG_PDP_ACTIVATE_IND    sm_ind;
+  char                        L2P[MAX_L2P_LENGTH];
+  SHORT                       cid;
+  UBYTE                       reactivation;         /* T_GPRS_CALL_TABLE_TYPE */
+
+} T_GPRS_CALL_TABLE;
+
+typedef enum            /* GPRS Packet Data Protocol type */
+{
+  PDP_T_NONE = 0,       /* no valid PDP type */
+  PDP_T_X25,            /* ITU-T/CCITT X.25 layer 3 */
+  PDP_T_IP,             /* Internet Protocol (IETF STD 5) */
+  PDP_T_MAX             /* maximum GPRS PDP types */
+
+} T_GACI_PDP_TYPE;
+
+#ifdef CO_UDP_IP
+typedef void  T_SM_IP_CB (T_ACI_RETURN result);
+#endif /* WAP || SAT E */
+
+/*==== PROTOTYPES =================================================*/
+EXTERN void   cmhSM_NetDeactivate       ( void );
+EXTERN void   cmhSM_Deactivated         ( void );
+EXTERN void   cmhSM_NetActivate         ( void );
+EXTERN SHORT  cmhSM_NoActivate          ( void );
+EXTERN SHORT  cmhSM_Activated           ( T_SMREG_PDP_ACTIVATE_CNF *pdp_cnf );
+EXTERN void   cmhSM_NetModify           ( USHORT nsapi_set, T_smreg_qos *qos );
+
+EXTERN void   cmhSM_Init                ( void );
+EXTERN void   cmhSM_Reset               ( void );
+EXTERN void   cmhSM_ResetNonWorkingContexts( void );
+EXTERN void   cmhSM_empty_call_table    ( void );
+EXTERN void   cmhSM_GiveNSapiFree       ( USHORT cid );
+EXTERN void   cmhSM_contextDeactivated  ( void );
+EXTERN USHORT cmhSM_pdp_typ_to_string   ( UBYTE pdp_typ_no, char* string );
+EXTERN UBYTE  cmhSM_Get_pdp_type        ( void );
+EXTERN void   cmhSM_Get_pdp_address     ( T_pdp_address *pdp_address );
+EXTERN SHORT  cmhSM_pdp_address_to_ip   ( T_PDP_ADDRESS *pdp_address, UBYTE *ip );
+EXTERN void   cmhSM_ip_to_pdp_address   ( UBYTE *ip, T_PDP_ADDRESS pdp_address );
+EXTERN void   cmhSM_Get_smreg_apn       ( T_smreg_apn   *smreg_apn );
+EXTERN UBYTE  cmhSM_Get_h_comp          ( void );
+EXTERN UBYTE  cmhSM_Get_d_comp          ( void );
+EXTERN void   cmhSM_change_def_QOS      ( T_QOS *qos );
+EXTERN void   cmhSM_change_def_QOS_min  ( T_QOS *qos );
+EXTERN void   cmhSM_Set_default_QOS     ( SHORT cid );
+EXTERN void   cmhSM_Set_default_QOS_min ( SHORT cid );
+EXTERN void   cmhSM_Get_QOS             ( T_smreg_qos     *dest_qos );
+EXTERN void   cmhSM_Get_QOS_min         ( T_smreg_min_qos *dest_qos_min );
+EXTERN char*  cmhSM_ring_gprs_par       ( void );
+EXTERN BOOL   cmhSM_call_answer         ( UBYTE ring_counter, T_ACI_CRING_MOD mode );
+EXTERN BOOL   cmhSM_call_reject         ( UBYTE ring_counter, T_ACI_CRING_MOD mode );
+EXTERN BOOL   cmhSM_sAT_H               ( T_ACI_CMD_SRC srcId, T_ACI_RETURN *aci_ret );
+EXTERN BOOL   cmhSM_sAT_A               ( T_ACI_CMD_SRC srcId, T_ACI_RETURN *aci_ret );
+EXTERN USHORT cmhSM_Give_nsapi_set      ( SHORT cid );
+EXTERN BOOL   cmhSM_pdp_addr_well_formed( USHORT type, T_PDP_ADDRESS pdp_addr );
+EXTERN BOOL   cmhSM_apn_well_formed     ( T_APN apn );
+EXTERN USHORT cmhSM_transform_pdp_type  ( char *pdp_type );
+EXTERN void   cmhSM_cgerep_buffer       ( void );
+EXTERN void   cmhSM_save_event          ( T_CGEREP_EVENT event, T_CGEREP_EVENT_REP_PARAM *param );
+EXTERN void   cmhSM_set_sms_service     ( T_CGSMS_SERVICE service );
+EXTERN void   cmhSM_sms_service_changed ( UBYTE service );
+EXTERN SHORT  cmhSM_get_cid             ( USHORT nsapi );
+EXTERN BOOL   cmhSM_next_work_cid       ( T_ACI_AT_CMD curCmd );
+EXTERN SHORT  cmhSM_define_cid_list     ( T_ACI_CMD_SRC srcId, SHORT *cids );
+
+EXTERN SHORT  cmhSM_get_pdp_addr_for_CGPADDR  ( SHORT cid, T_PDP_ADDRESS pdp_adress );
+
+EXTERN T_ACI_RETURN cmhSM_GprsAttached        ( SHORT state );
+EXTERN T_ACI_RETURN cmhSM_activate_context    (void);
+EXTERN void   cmhSM_data_link_context         (void);
+
+#ifdef DTI
+EXTERN SHORT  cmhSM_connect_context           ( SHORT cid, T_DTI_ENTITY_ID peer, UBYTE ppp_hc, UBYTE msid );
+#endif /* DTI */
+
+EXTERN SHORT  cmhSM_context_connected         ( USHORT nsapi);
+
+EXTERN BOOL   cmhSM_is_smreg_ti_used          ( UBYTE smreg_ti, SHORT *cid );
+EXTERN void   cmhSM_context_reactivation      ( void );
+EXTERN void   cmhSM_stop_context_reactivation ( void );
+EXTERN void   cmhSM_next_call_table_entry     ( void );
+
+EXTERN SHORT  cmhSM_connect_working_cid       ( void );
+
+EXTERN void   cmhSM_set_PCO( SHORT cid, T_PCO_TYPE pco_type, UBYTE* buf_addr, UBYTE length);
+#if defined (CO_UDP_IP) || defined (FF_GPF_TCPIP)
+EXTERN void   cmhSM_IP_activate_cb        (T_ACI_RETURN result);
+EXTERN void   cmhSM_IP_Enable             (T_DTI_CONN_LINK_ID link_id );
+EXTERN void   cmhSM_IP_Disable            (void);
+#endif /* CO_UDP_IP || FF_GPF_TCPIP */
+
+/* execution AT set command without parameter check */
+EXTERN void sAT_PlusCGDCONT_exec ( T_ACI_CMD_SRC srcId, SHORT cid, T_GPRS_CONT_REC *inputCtxt);
+
+EXTERN ULONG  cmhSM_get_link_id_SNDCP_peer    ( SHORT cid, T_SNDCP_PEER which );
+EXTERN void   cmhSM_context_deactivated       ( USHORT nsapi_set );
+EXTERN void   cmhSM_connection_down           ( UBYTE dti_id );
+
+EXTERN T_ACI_CMD_SRC cmhSM_getSrcIdOfRunningCGACTDeactivation(SHORT cid);
+EXTERN BOOL isContextDeactivationRequestedByCGACT(SHORT cid);
+
+EXTERN T_ACI_RETURN cmhSM_deactivateContexts   ( T_ACI_CMD_SRC srcId, SHORT *cids);
+EXTERN T_ACI_RETURN cmhSM_deactivateAContext   ( T_ACI_CMD_SRC srcId, SHORT cid );
+
+#ifdef DTI
+EXTERN void   cmhSNDCP_Disable                ( T_DTI_CONN_LINK_ID link_id );
+#endif /* DTI */
+
+EXTERN void   cmhSM_ip_to_pdp_address         ( UBYTE *ip, T_PDP_ADDRESS pdp_address );
+
+#ifdef FF_SAT_E
+EXTERN T_QOS* cmhSM_getCurQOS                 ( SHORT cid );
+#endif /* FF_SAT_E */
+
+EXTERN BOOL   cmhSM_isContextActive           ( void );
+
+#ifdef DTI
+EXTERN  void  set_conn_param_on_working_cid ( UBYTE owner, T_DTI_ENTITY_ID entity_id );
+EXTERN  void  set_conn_param_on_all_working_cids ( UBYTE owner, T_DTI_ENTITY_ID entity_id );
+#endif /* DTI */
+
+/*==== EXPORT =====================================================*/
+#ifdef CMH_SMF_C
+
+GLOBAL T_ENT_STAT   smEntStat;
+
+T_GPRS_CONT_CLASS   pdp_context[MAX_CID];
+SHORT               work_cids[MAX_CID_PLUS_EINS];
+SHORT               cid_pointer;
+T_GPRS_CONT_REC     defaultCtx;
+
+SHORT               automatic_response_mode;
+
+/* network requested context activation */
+T_GPRS_CALL_TABLE   gprs_call_table[MAX_GPRS_CALL_TABLE_ENTRIES];
+SHORT               current_gprs_ct_index;
+SHORT               gprs_ct_index;
+
+T_CGSMS_SERVICE     sm_cgsms_service;
+
+#else
+
+EXTERN T_ENT_STAT          smEntStat;
+
+EXTERN T_GPRS_CONT_CLASS   pdp_context[MAX_CID];
+EXTERN SHORT               work_cids[MAX_CID_PLUS_EINS];
+EXTERN SHORT               cid_pointer;
+EXTERN T_GPRS_CONT_REC     defaultCtx;
+
+EXTERN SHORT               automatic_response_mode;
+
+/* network requested context activation */
+EXTERN T_GPRS_CALL_TABLE   gprs_call_table[MAX_GPRS_CALL_TABLE_ENTRIES];
+EXTERN SHORT               current_gprs_ct_index;
+EXTERN SHORT               gprs_ct_index;
+
+EXTERN T_CGSMS_SERVICE     sm_cgsms_service;
+
+#endif /* CMH_SMF_C */
+
+#endif /* CMH_SM_H */
+
+
+#endif  /* GPRS */
+/*==== EOF =======================================================*/