view src/g23m-aci/aci/cmh_sm.h @ 268:f5c10ec9c5fd
init.c: module passes compilation,
Init_Drivers() and Init_Serial_Flows() functions are good,
Init_Target() and Init_Unmask_IT() need further work
author |
Mychaela Falconia <falcon@freecalypso.org> |
date |
Sun, 06 Aug 2017 09:21:57 +0000 (2017-08-06) |
parents |
53929b40109c |
children |
|
line source
/*
+-----------------------------------------------------------------------------
| 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 NAS_NSAPI_5
#define SMH_LAST_FREE_NSAPIS NAS_NSAPI_15
#define SMH_NSAPI_MAX 16
/* invalid values */
#define INVALID_NSAPI (0xFF) /* marks an invalid nsapi */
/* 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 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;
typedef enum
{
GPRS_DETACH = 0,
GPRS_ATTACH
} T_GPRS_ATTACH_STATE;
/*==== MACROS =====================================================*/
#define GET_NUM_OF_DTI_ENTITIES(A) (sizeof(A)/(sizeof(A##[0])))
/*==== TYPES ======================================================*/
typedef struct
{
UBYTE len;
UBYTE pco[251];
} T_GPRS_CONT_PCO;
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_PPP = SMREG_PDP_PPP, /* Point to Point Protocol (IETF STD 51) */
PDP_T_IP = SMREG_PDP_IPV4, /* Internet Protocol, version 4, IETF STD 5 */
PDP_T_IPV6 = SMREG_PDP_IPV6, /* Internet Protocol, version 6, IETF RFC 2460 */
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 /* WCO_UDP_IP */
/*==== 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 ( T_SMREG_PDP_MODIFY_IND *smreg_pdp_modify_ind );
#ifdef REL99
EXTERN SHORT cmhSM_Modified ( T_SMREG_PDP_MODIFY_CNF *smreg_pdp_modify_cnf );
EXTERN SHORT cmhSM_NoModify ( T_SMREG_PDP_MODIFY_REJ *smreg_pdp_nodify_rej );
EXTERN SHORT cmhSM_ActivatedSecondary ( T_SMREG_PDP_ACTIVATE_SEC_CNF *p_smreg_pdp_activate_sec_cnf );
EXTERN SHORT cmhSM_NoActivateSecondary ( T_SMREG_PDP_ACTIVATE_SEC_REJ *p_smreg_pdp_activate_sec_rej );
#endif
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_NAS_ip_address *pdp_address, T_NAS_ctrl_ip_address * ctrl_ip_address );
EXTERN UBYTE cmhSM_pdp_address_to_ip ( T_PDP_TYPE pdp_type, T_NAS_ip *pdp_addr_str, U8 *ip );
EXTERN void cmhSM_ip_to_pdp_address ( UBYTE *ip, T_NAS_ip 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_PS_qos *qos, T_PS_ctrl_qos ctrl_qos );
EXTERN void cmhSM_change_def_QOS_min ( T_PS_min_qos *qos, T_PS_ctrl_min_qos ctrl_min_qos );
EXTERN void cmhSM_Set_default_QOS ( U8 cid );
EXTERN void cmhSM_Set_default_QOS_min ( U8 cid );
EXTERN void cmhSM_Get_QOS ( T_PS_qos *dest_qos );
EXTERN void cmhSM_Get_QOS_min ( T_PS_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 ( U8 cid );
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 T_ACI_RETURN cmhSM_activate_context_For_WAP(void);
EXTERN BOOL cmhSM_next_work_cid ( T_ACI_AT_CMD curCmd );
EXTERN T_PDP_CONTEXT_STATE pdp_context_get_state_for_cid( U8 cid );
EXTERN BOOL pdp_context_type_omitted ( char *p_type );
EXTERN BOOL pdp_context_type_valid ( char *p_type );
EXTERN BOOL pdp_context_apn_omitted ( char *p_apn );
EXTERN BOOL pdp_context_apn_valid ( char *p_apn );
EXTERN BOOL pdp_context_addr_omitted ( T_NAS_ip *p_addr );
EXTERN BOOL pdp_context_addr_valid ( T_NAS_ip *p_addr );
EXTERN BOOL pdp_context_cid_used_by_other( U8 cid );
EXTERN SHORT cmhSM_make_active_cid_list ( T_ACI_CMD_SRC srcId, U8 *cids );
EXTERN void cmhSM_Set_pdp_type( U8 cid, char *pdp_type );
EXTERN U8 cmhSM_get_pdp_addr_for_CGPADDR ( U8 cid, T_NAS_ip * pdp_adress );
EXTERN void cmhSM_GprsAttached ( T_GPRS_ATTACH_STATE state );
EXTERN void cmhSM_activate_context (void);
EXTERN void cmhSM_data_link_context (void);
#ifdef DTI
EXTERN SHORT cmhSM_connect_context ( U8 cid, T_DTI_ENTITY_ID peer );
#endif /* DTI */
EXTERN SHORT cmhSM_context_connected ( USHORT nsapi);
EXTERN BOOL cmhSM_is_smreg_ti_used ( UBYTE ti, U8 *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 ( U8 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) || defined (FF_GPF_TCPIP) */
/* execution AT set command without parameter check */
EXTERN void sAT_PlusCGDCONT_exec ( U8 cid, T_PDP_CONTEXT *inputCtxt);
EXTERN BOOL sAT_PlusCGDSCONT_exec ( U8 cid, T_PDP_CONTEXT *p_pdp_context_input);
EXTERN T_ACI_RETURN cmhSM_CGPCO_HEX ( U8 cid, UBYTE *pco_array, UBYTE pco_len );
EXTERN ULONG cmhSM_get_link_id_UPM_peer ( U8 cid );
EXTERN void cmhSM_context_deactivated ( USHORT nsapi_set );
EXTERN void cmhSM_connection_down ( UBYTE dti_id );
EXTERN T_ACI_RETURN cmhSM_deactivateContexts ( T_ACI_CMD_SRC srcId, SHORT *cids);
EXTERN T_ACI_RETURN cmhSM_deactivateAContext ( T_ACI_CMD_SRC srcId, U8 cid );
EXTERN BOOL isContextDeactivationRequestedByCGACT(SHORT cid);
//EXTERN void cmhSM_ip_to_pdp_address ( UBYTE *ip, T_NAS_ip pdp_address );
EXTERN T_PS_qos* cmhSM_getCurQOS ( U8 cid );
EXTERN BOOL cmhSM_isContextActive ( void );
EXTERN void cmhSM_connection_down ( UBYTE dti_id );
#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 */
EXTERN BOOL PKTIO_SNDCP_connect_dti_cb(UBYTE dti_id, T_DTI_CONN_STATE result_type);
EXTERN void cmhSM_free_pdpcontext_list(void);
EXTERN UBYTE cmhSM_mapSM2ACI_Cause(U16 cause_value);
EXTERN void cmhSM_clear_work_cids(U8 cid);
/*==== EXPORT =====================================================*/
#ifdef CMH_SMF_C
GLOBAL T_ENT_STAT smEntStat;
U8 work_cids[PDP_CONTEXT_CID_MAX + 1];
U8 cid_pointer;
T_PDP_CONTEXT_INTERNAL pdp_context_default;
T_PS_qos pdp_context_default_qos;
T_PS_min_qos pdp_context_default_qos_min;
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;
/* command values */
T_CGEREP_MODE sm_cgerep_mode;
T_CGEREP_BFR sm_cgerep_bfr;
T_CGSMS_SERVICE sm_cgsms_service;
T_ACI_CMD_SRC sm_cgerep_srcId;
#else
EXTERN T_ENT_STAT smEntStat;
EXTERN U8 work_cids[PDP_CONTEXT_CID_MAX + 1];
EXTERN U8 cid_pointer;
EXTERN T_GPRS_CONT_REC defaultCtx;
EXTERN T_PDP_CONTEXT_INTERNAL pdp_context_default;
EXTERN T_PS_qos pdp_context_default_qos;
EXTERN T_PS_min_qos pdp_context_default_qos_min;
EXTERN T_PDP_CONTEXT_PCO pdp_context_default_pco;
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;
/* command values */
EXTERN T_CGEREP_MODE sm_cgerep_mode;
EXTERN T_CGEREP_BFR sm_cgerep_bfr;
EXTERN T_CGSMS_SERVICE sm_cgsms_service;
EXTERN T_ACI_CMD_SRC cmhSM_getSrcIdOfRunningCGACTDeactivation(U8 cid);
EXTERN T_ACI_CMD_SRC sm_cgerep_srcId;
#endif /* CMH_SMF_C */
#endif /* CMH_SM_H */
#endif /* GPRS */
/*==== EOF =======================================================*/