FreeCalypso > hg > fc-magnetite
view src/aci2/aci/gaci_cmh.h @ 337:0df0668f8bea
FCHG: task core function implemented
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 14 Dec 2017 21:47:40 +0000 |
parents | 93999a60b835 |
children |
line wrap: on
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 : GPRS Command handler interface definitions. +----------------------------------------------------------------------------- */ #ifndef GACI_CMH_H #define GACI_CMH_H /*==== MACROS =====================================================*/ #define GPRS_EVENT_REPORTING_BUFFER_SIZE 10 /*==== DEFINES ====================================================*/ /* the maximum length of strings to describe the PDP typ, PDP address, APN and L2P */ #define MAX_PDP_TYPE_LEN 7 #define MAX_APN_LEN 103 #define MAX_DNS_LEN 15 #define MAX_USER_LEN 63 /* this is a common value for Routers etc... */ #define MAX_PWD_LEN 63 #define MAX_PDP_ADDR_LEN 21 #if defined (FF_PKTIO) OR defined (FF_TCP_IP) || defined(FF_GPF_TCPIP) OR defined (FF_PSI) #define MAX_L2P_LENGTH 6 #else /* FF_PKTIO || FF_TCP_IP || FF_GPF_TCPIP OR FF_PSI */ #define MAX_L2P_LENGTH 4 #endif /* FF_PKTIO || FF_TCP_IP || FF_GPF_TCPIP OR FF_PSI */ typedef enum /* CGDCONT command d_comp */ { GPRS_CID_OMITTED = 0, /* value is omitted */ GPRS_CID_1, /* PDP data compression off (default) */ GPRS_CID_2, /* PDP data compression on */ #if defined (FF_PKTIO) OR defined (FF_PSI) GPRS_CID_3, GPRS_CID_4, GPRS_CID_5, GPRS_CID_6, #endif /* FF_PKTIO OR FF_PSI */ GPRS_CID_INVALID /* invalid value */ } T_GPRS_CID; #define INVALID_CID GPRS_CID_OMITTED #if defined (FF_PKTIO) OR defined (FF_PSI) #define MAX_CID GPRS_CID_6 #else /* FF_PKTIO OR FF_PSI */ #define MAX_CID GPRS_CID_2 #endif /* FF_PKTIO OR FF_PSI */ #define MAX_CID_PLUS_EINS GPRS_CID_INVALID /*==== TYPES ======================================================*/ #define GPRS_QOS_OMITTED 0 typedef struct { UBYTE preced; UBYTE delay; UBYTE relclass; UBYTE peak; UBYTE mean; } T_QOS; typedef char T_PDP_ADDRESS [MAX_PDP_ADDR_LEN]; typedef char T_PDP_TYPE [MAX_PDP_TYPE_LEN]; typedef char T_APN [MAX_APN_LEN]; typedef char T_L2P [MAX_L2P_LENGTH]; typedef struct { T_APN apn; T_PDP_TYPE pdp_type; T_PDP_ADDRESS pdp_addr; SHORT d_comp; SHORT h_comp; T_QOS qos; T_QOS min_qos; } T_GPRS_CONT_REC; /*---- Types of -----------------------------------------*/ typedef enum /* CGDCONT command d_comp */ { CGDCONT_D_COMP_OMITTED = -1, /* value is omitted */ CGDCONT_D_COMP_OFF, /* PDP data compression off (default) */ CGDCONT_D_COMP_ON, /* PDP data compression on */ CGDCONT_D_COMP_INVALID /* invalid value */ } T_CGDCONT_D_COMP; typedef enum /* CGDCONT command h_comp */ { CGDCONT_H_COMP_OMITTED = -1, /* value is omitted */ CGDCONT_H_COMP_OFF, /* PDP header compression off (default) */ CGDCONT_H_COMP_ON, /* PDP header compression on */ CGDCONT_H_COMP_INVALID /* invalid value */ } T_CGDCONT_H_COMP; typedef enum /* CGATT command state */ { CGATT_STATE_OMITTED = -1, /* value is omitted */ CGATT_STATE_DETACHED, /* GPRS detached */ CGATT_STATE_ATTACHED, /* GPRS attached */ CGATT_STATE_INVALID /* invalid value */ } T_CGATT_STATE; typedef enum /* CGACT command state */ { CGACT_STATE_OMITTED = -1, /* value is omitted */ CGACT_STATE_DEACTIVATED, /* PDP context detached */ CGACT_STATE_ACTIVATED, /* PDP context attached */ CGACT_STATE_INVALID /* invalid value */ } T_CGACT_STATE; typedef enum /* CGAUTO command n */ { CGAUTO_N_OMITTED = -1, /* value is omitted */ CGAUTO_N_GPRS_RES_OFF, /* turn off automatic response for GPRS only */ CGAUTO_N_GPRS_RES_ON, /* turn on automatic response for GPRS only */ CGAUTO_N_MCM_GPRS_ONLY, /* modem compabitbility mode, GPRS only */ CGAUTO_N_MCM_GPRS_CSC, /* modem compabitbility mode, GPRS and circuit switched calls (default) */ CGAUTO_N_INVALID /* invalid value */ } T_CGAUTO_N; typedef enum /* CGANS command response */ { CGANS_RESPONSE_OMITTED = -1, /* value is omitted */ CGANS_RESPONSE_REJECT, /* reject the request */ CGANS_RESPONSE_ACCEPT, /* accept and request that the PDP context be activated */ CGANS_RESPONSE_INVALID /* invalid value */ } T_CGANS_RESPONSE; typedef enum /* CGANS command response */ { CGCLASS_CLASS_OMITTED = -1, /* value is omitted */ CGCLASS_CLASS_A, /* mobile class A (highest) */ CGCLASS_CLASS_B, /* mobile class B (if necessary consider NET III) */ CGCLASS_CLASS_CG, /* mobile class CG (GPRS only mode) */ CGCLASS_CLASS_CC, /* mobile class CC (circuit switched only mode - lowest) */ CGCLASS_CLASS_MAX /* invalid value */ } T_CGCLASS_CLASS; typedef enum /* CGANS command response */ { PERCENT_CGCLASS_OMITTED = -1, /* value is omitted */ PERCENT_CGCLASS_A, /* mobile class A (highest) */ PERCENT_CGCLASS_B, /* mobile class B */ PERCENT_CGCLASS_BG, /* mobile class BG */ PERCENT_CGCLASS_BC, /* mobile class BC */ PERCENT_CGCLASS_BX, /* mobile class BX */ PERCENT_CGCLASS_CG, /* mobile class CG (GPRS only mode) */ PERCENT_CGCLASS_CC, /* mobile class CC (circuit switched only mode - lowest) */ PERCENT_CGCLASS_MAX /* invalid value */ } T_PERCENT_CGCLASS; typedef enum /* CGEREP command mode */ { CGEREP_MODE_OMITTED = -1, /* value is omitted */ CGEREP_MODE_BUFFER, /* buffer unsolicited result codes */ CGEREP_MODE_DICARD_RESERVED, /* discard unsolicited result codes when MT-TE link is reserved */ CGEREP_MODE_BUFFER_RESERVED, /* buffer unsolicited result codes in the MT when MT-TE link is reserved */ CGEREP_MODE_INVALID /* invalid value */ } T_CGEREP_MODE; typedef enum /* CGEREP command bfr */ { CGEREP_BFR_OMITTED = -1, /* value is omitted */ CGEREP_BFR_CLEAR, /* buffer unsolicited result codes */ CGEREP_BFR_FLUSH, /* discard unsolicited result codes when MT-TE link is reserved */ CGEREP_BFR_INVALID /* invalid value */ } T_CGEREP_BFR; typedef enum /* CGREG command read stat */ { CGREG_STAT_NOT_PRESENT = -1, /* not present, last state is not indicated */ CGREG_STAT_NOT_REG, /* not registered, no searching */ CGREG_STAT_REG_HOME, /* registered, home network */ CGREG_STAT_SEARCHING, /* not registered, but searching */ CGREG_STAT_REG_DEN, /* registration denied */ CGREG_STAT_UNKN, /* unknown */ CGREG_STAT_REG_ROAM /* registered, roaming */ } T_CGREG_STAT; typedef enum /* %CGREG command read stat */ { P_CGREG_STAT_NOT_PRESENT = -1, /* not present, last state is not indicated */ P_CGREG_STAT_NOT_REG, /* not registered, no searching */ P_CGREG_STAT_REG_HOME, /* registered, home network */ P_CGREG_STAT_SEARCHING, /* not registered, but searching */ P_CGREG_STAT_REG_DEN, /* registration denied */ P_CGREG_STAT_UNKN, /* unknown */ P_CGREG_STAT_REG_ROAM, /* registered, roaming */ P_CGREG_STAT_LIMITED, /* limited service */ P_CGREG_STAT_GSM_CALL, /* GSM call is active */ P_CGREG_STAT_NO_CELL, /* no cell available */ P_CGREG_STAT_TRY_TO_UPDATE /* next attempt to update MS */ } T_P_CGREG_STAT; typedef enum /* CGSMS command service */ { CGSMS_SERVICE_OMITTED = -1, /* value is omitted */ CGSMS_SERVICE_GPRS, /* GPRS */ CGSMS_SERVICE_CS, /* circuit switched */ CGSMS_SERVICE_GPRS_PREFERRED, /* GPRS preferred */ CGSMS_SERVICE_CS_PREFERRED, /* circuit switched preferred */ CGSMS_SERVICE_INVALID /* invalid value */ } T_CGSMS_SERVICE; typedef enum /* CGAATT command automatic attach mode */ { CGAATT_ATTACH_MODE_OMITTED = -1, /* value is omitted */ CGAATT_ATTACH_MODE_AUTOMATIC, /* automatic attach */ CGAATT_ATTACH_MODE_MANUAL, /* manual attach */ CGAATT_ATTACH_MODE_INVALID /* invalid value */ } T_CGAATT_ATTACH_MODE; typedef enum /* CGAATT command automatic detach after context deactivation */ { CGAATT_DETACH_MODE_OMITTED = -1, /* value is omitted */ CGAATT_DETACH_MODE_ON, /* on */ CGAATT_DETACH_MODE_OFF, /* off */ CGAATT_DETACH_MODE_INVALID /* invalid value */ } T_CGAATT_DETACH_MODE; /*---- Types for event reporting-----------------------------------*/ typedef enum /* Defined events for GPRS event reporting */ { CGEREP_EVENT_INVALID = -1, /* reserved value */ CGEREP_EVENT_REJECT, /* network request context activation */ CGEREP_EVENT_NW_REACT, /* network requested context reactivation */ CGEREP_EVENT_NW_DEACT, /* network forced context deactivation */ CGEREP_EVENT_ME_DEACT, /* mobile equipment forced context deactivation */ CGEREP_EVENT_NW_DETACH, /* network forced detach */ CGEREP_EVENT_ME_DETACH, /* mobile equipment forced detach */ CGEREP_EVENT_NW_CLASS, /* network forced class change */ CGEREP_EVENT_ME_CLASS, /* mobile equipment forced class change */ CGEREP_EVENT_NW_ACT, /* network requested context activation */ CGEREP_EVENT_ME_ACT /* mobile equipment initiated context activation */ } T_CGEREP_EVENT; typedef struct /* parameter of unsolicited event: REJECT */ { T_PDP_TYPE pdp_type; T_PDP_ADDRESS pdp_addr; } T_EVENT_REJECT; typedef struct /* parameter of unsolicited event: NW REACT, NW DEACT, ME DEACT */ { T_PDP_TYPE pdp_type; T_PDP_ADDRESS pdp_addr; SHORT cid; } T_EVENT_ACT; typedef union { T_EVENT_REJECT reject; T_EVENT_ACT act; T_CGCLASS_CLASS mobile_class; } T_CGEREP_EVENT_REP_PARAM; /*---- %CGPCO -----------------------------------------------------*/ #define ACI_PCO_MAX_LEN 251 #define ACI_PCO_CONTENTMASK_AUTH 0x00000001 #define ACI_PCO_CONTENTMASK_DNS1 0x00000002 #define ACI_PCO_CONTENTMASK_DNS2 0x00000004 #define ACI_PCO_CONFIG_PROT_PPP 0 #define ACI_PCO_AUTH_PROT_PAP 0xc023 #define ACI_PCO_PAP_OVERHEAD 9 #define ACI_PCO_IPCP_OVERHEAD 7 #define ACI_PCO_PAP_AUTH_REQ 0x01 #define ACI_PCO_IPCP_PROT_MSB 0x80 #define ACI_PCO_IPCP_PROT_LSB 0x21 #define ACI_PCO_IPCP_CONF_REQ 0x01 #define ACI_PCO_IPCP_CONF_ACK 0x02 #define ACI_PCO_IPCP_CONF_NAK 0x03 #define ACI_PCO_IPCP_TYPE_IP 3 #define ACI_PCO_IPCP_TYPE_DNS1 129 #define ACI_PCO_IPCP_TYPE_DNS2 131 #define ACI_PCO_IPCP_LENGTH_IP 6 #define ACI_PCO_IPCP_LENGTH_DNS1 6 #define ACI_PCO_IPCP_LENGTH_DNS2 6 typedef enum { CGPCO_FORMAT_HEX = 0, CGPCO_FORMAT_ASCII }T_ACI_CGPCO_FORMAT; typedef enum { CGPCO_MODE_SET_PCO = 0, CGPCO_MODE_QUERY_PCO }T_ACI_CGPCO_MODE; /*==== PROTOTYPES =================================================*/ /*** set commands ***/ EXTERN T_ACI_RETURN sAT_PercentCGPCO (T_ACI_CMD_SRC srcId, SHORT cid, USHORT protocol, CHAR *user, CHAR *pwd,CHAR *dns1, CHAR *dns2); EXTERN T_ACI_RETURN qAT_PercentCGPCO ( UBYTE srcId, ULONG * gateway, ULONG * dns1,ULONG * dns2, USHORT cid); EXTERN T_ACI_RETURN sAT_PlusCGDCONT ( T_ACI_CMD_SRC srcId, SHORT cid, T_GPRS_CONT_REC *inputCtxt); EXTERN T_ACI_RETURN sAT_PlusCGQREQ ( T_ACI_CMD_SRC srcId, SHORT cid ,T_QOS *qos); EXTERN T_ACI_RETURN sAT_PlusCGQMIN ( T_ACI_CMD_SRC srcId, SHORT cid ,T_QOS *qos); EXTERN T_ACI_RETURN sAT_PlusCGATT ( T_ACI_CMD_SRC srcId, T_CGATT_STATE state ); EXTERN T_ACI_RETURN sAT_PlusCGACT ( T_ACI_CMD_SRC srcId, T_CGACT_STATE state, SHORT *cids ); EXTERN T_ACI_RETURN sAT_PlusCGDATA ( T_ACI_CMD_SRC srcId, char *L2P, SHORT *cids ); EXTERN T_ACI_RETURN sAT_PlusCGPADDR ( T_ACI_CMD_SRC srcId, SHORT *cids, T_PDP_ADDRESS *pdp_adress ); EXTERN T_ACI_RETURN sAT_PlusCGAUTO ( T_ACI_CMD_SRC srcId, T_CGAUTO_N n ); EXTERN T_ACI_RETURN sAT_PlusCGANS ( T_ACI_CMD_SRC srcId, SHORT response, char *l2p, SHORT cid ); EXTERN T_ACI_RETURN sAT_PlusCGCLASS ( T_ACI_CMD_SRC srcId, T_CGCLASS_CLASS m_class ); EXTERN T_ACI_RETURN sAT_PlusCGEREP ( T_ACI_CMD_SRC srcId, T_CGEREP_MODE mode, T_CGEREP_BFR bfr ); EXTERN T_ACI_RETURN sAT_PlusCGSMS ( T_ACI_CMD_SRC srcId, T_CGSMS_SERVICE service ); EXTERN T_ACI_RETURN sAT_PercentCGAATT ( T_ACI_CMD_SRC srcId, T_CGAATT_ATTACH_MODE att_m, T_CGAATT_DETACH_MODE det_m ); EXTERN T_ACI_RETURN sAT_PercentCGMM ( T_ACI_CMD_SRC srcId, UBYTE cipher_on, UBYTE tlli_handling ); EXTERN T_ACI_RETURN sAT_PercentSNCNT( T_ACI_CMD_SRC srcId, BOOL reset_counter ); EXTERN T_ACI_RETURN sAT_PercentCGPPP( T_ACI_CMD_SRC srcId, T_ACI_PPP_PROT protocol ); EXTERN T_ACI_RETURN sAT_PercentCGCLASS ( T_ACI_CMD_SRC srcId, T_PERCENT_CGCLASS m_class ); EXTERN T_ACI_RETURN qAT_PercentCGPPP( T_ACI_CMD_SRC srcId, T_ACI_PPP_PROT *protocol ); /*** read commands ***/ EXTERN T_ACI_RETURN qAT_PlusCGDCONT ( T_ACI_CMD_SRC srcId, T_GPRS_CONT_REC (*Ctxt)[MAX_CID_PLUS_EINS], SHORT *cid ); EXTERN T_ACI_RETURN qAT_PlusCGQREQ ( T_ACI_CMD_SRC srcId, T_QOS **qos, SHORT *cid); EXTERN T_ACI_RETURN qAT_PlusCGQMIN ( T_ACI_CMD_SRC srcId, T_QOS **qos, SHORT *cid); EXTERN T_ACI_RETURN qAT_PlusCGATT ( T_ACI_CMD_SRC srcId, T_CGATT_STATE *state ); EXTERN T_ACI_RETURN qAT_PlusCGACT ( T_ACI_CMD_SRC srcId, BOOL *states, SHORT *cid ); EXTERN T_ACI_RETURN qAT_PlusCGAUTO ( T_ACI_CMD_SRC srcId, T_CGAUTO_N *n); EXTERN T_ACI_RETURN qAT_PlusCGCLASS ( T_ACI_CMD_SRC srcId, T_CGCLASS_CLASS *m_class ); EXTERN T_ACI_RETURN qAT_PlusCGEREP ( T_ACI_CMD_SRC srcId, T_CGEREP_MODE *mode, T_CGEREP_BFR *bfr ); EXTERN T_ACI_RETURN qAT_PlusCGREG ( T_ACI_CMD_SRC srcId, T_CGREG_STAT *stat, USHORT *lac, USHORT *ci ); EXTERN T_ACI_RETURN qAT_PercentCGREG( T_ACI_CMD_SRC srcId, T_P_CGREG_STAT *stat, USHORT *lac, USHORT *ci ); EXTERN T_ACI_RETURN qAT_PlusCGSMS ( T_ACI_CMD_SRC srcId, T_CGSMS_SERVICE *service ); EXTERN T_ACI_RETURN qAT_PercentCGAATT ( T_ACI_CMD_SRC srcId, T_CGAATT_ATTACH_MODE *att_m, T_CGAATT_DETACH_MODE *det_m ); EXTERN T_ACI_RETURN qAT_PercentCGCLASS ( T_ACI_CMD_SRC srcId, T_PERCENT_CGCLASS *m_class, T_PERCENT_CGCLASS *currentClass ); /*** test commands ***/ EXTERN T_ACI_RETURN tAT_PlusCGPADDR ( T_ACI_CMD_SRC srcId, SHORT *cids); EXTERN T_ACI_RETURN tAT_PlusCGSMS ( T_ACI_CMD_SRC srcId, SHORT *service_list); /*--------------- extension mechansim ----------------------------*/ /*--------------- constants --------------------------------------*/ /*--------------- configuration ----------------------------------*/ /*--------------- Extension Handler -> AT Interpreter ------------*/ /*--------------- AT Interpreter -> Extension Handler ------------*/ /*------- call-backs for MMI --------------------------------------*/ #ifdef CMH_F_C /*lint -save -e18 */ /* Turn off Lint errors for this "construct" */ EXTERN void rAT_PlusCGACT ( void ); EXTERN void rAT_PlusCGDATA ( void ); EXTERN void rAT_PlusCGANS ( void ); EXTERN void rAT_PlusCGEREP ( void ); EXTERN void rAT_PlusCGREG ( void ); EXTERN void rAT_changedQOS ( void ); EXTERN void rAT_PercentSNCNT ( void ); EXTERN void rAT_PercentCGREG ( void ); EXTERN void rAT_PercentCGEV ( void ); /*lint -restore */ #else EXTERN void rAT_PlusCGACT ( SHORT link_id ); EXTERN void rAT_PlusCGDATA ( SHORT link_id ); EXTERN void rAT_PlusCGANS ( SHORT link_id ); EXTERN void rAT_PlusCGEREP ( T_CGEREP_EVENT event, T_CGEREP_EVENT_REP_PARAM *param ); EXTERN void rAT_PlusCGREG ( T_CGREG_STAT stat, USHORT lac, USHORT ci ); EXTERN void rAT_changedQOS ( SHORT cid, T_QOS *qos ); EXTERN void rAT_PercentSNCNT ( UBYTE c_id, ULONG octets_uplink, ULONG octets_downlink, ULONG packets_uplink, ULONG packets_downlink ); EXTERN void rAT_PercentCGREG ( T_P_CGREG_STAT stat, USHORT lac, USHORT ci, BOOL bActiveContext ); EXTERN void rAT_PercentCGEV ( T_CGEREP_EVENT event, T_CGEREP_EVENT_REP_PARAM *param ); #endif /*--------------- call-backs for AT CI ----------------------------*/ #ifdef CMH_F_C /*lint -save -e18 */ /* Turn off Lint errors for this "construct" */ EXTERN void rCI_PlusCGACT ( void ); EXTERN void rCI_PlusCGDATA ( void ); EXTERN void rCI_PlusCGANS ( void ); EXTERN void rCI_PlusCGEREP ( void ); EXTERN void rCI_PlusCGREG ( void ); EXTERN void rCI_changedQOS ( void ); EXTERN void rCI_PercentSNCNT ( void ); EXTERN void rCI_PercentCGREG ( void ); EXTERN void rCI_PercentCGEV ( void ); /*lint -restore */ #else EXTERN void rCI_PlusCGACT ( SHORT link_id ); EXTERN void rCI_PlusCGDATA ( SHORT link_id ); EXTERN void rCI_PlusCGANS ( SHORT link_id ); EXTERN void rCI_PlusCGEREP ( T_CGEREP_EVENT event, T_CGEREP_EVENT_REP_PARAM *param ); EXTERN void rCI_PlusCGREG ( T_CGREG_STAT stat, USHORT lac, USHORT ci ); EXTERN void rCI_changedQOS ( SHORT cid, T_QOS *qos ); EXTERN void rCI_PercentSNCNT ( UBYTE c_id, ULONG octets_uplink, ULONG octets_downlink, ULONG packets_uplink, ULONG packets_downlink ); EXTERN void rCI_PercentCGREG ( T_P_CGREG_STAT stat, USHORT lac, USHORT ci, BOOL bActiveContext ); EXTERN void rCI_PercentCGEV ( T_CGEREP_EVENT event, T_CGEREP_EVENT_REP_PARAM *param ); #endif #endif /*==== EOF ========================================================*/