FreeCalypso > hg > fc-magnetite
diff src/aci2/aci/cmh.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.h Mon Sep 26 00:29:36 2016 +0000 @@ -0,0 +1,392 @@ +/* ++----------------------------------------------------------------------------- +| Project : GSM-F&D (8411) +| Modul : CMH ++----------------------------------------------------------------------------- +| 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 AT Command Handler ++----------------------------------------------------------------------------- +*/ + +#ifndef CMH_H +#define CMH_H + + +/*==== CONSTANTS ==================================================*/ +typedef enum +{ + RAT_OK = 0, + RAT_CONNECT, + RAT_CME, + RAT_NO_CARRIER, + RAT_CRING, + RAT_DR, + RAT_CR, + RAT_CPIN, + RAT_COPS, + RAT_CREG, + RAT_CCWA, + RAT_CLIP, + RAT_CDIP, + RAT_COLP, + RAT_CRING_OFF, + +#ifdef FF_FAX + RAT_FCO, + RAT_FIS, + RAT_FTI, + RAT_FCS, + RAT_FCI, +#endif + + RAT_CMS, + RAT_CSMS, + RAT_CMGS, + RAT_CMSS, + RAT_CMGW, + RAT_CDS, + RAT_CMGC, + RAT_CMGD, + RAT_CMGR, + RAT_CMGL, + RAT_CMTI, + RAT_CMT, + RAT_CBM, + RAT_CPMS, + +#ifdef FF_FAX + RAT_FHT, + RAT_FHR, + RAT_FSA, + RAT_FPA, + RAT_FPW, + RAT_FET, + RAT_FVO, + RAT_FPO, + RAT_FPI, + RAT_FNF, + RAT_FNS, + RAT_FNC, + RAT_FHS, + RAT_FPS, + RAT_FTC, +#endif + + RAT_ILRR, + RAT_BUSY, + RAT_NO_ANSWER, + RAT_SIMREM, + RAT_CLIR, + RAT_COLR, + RAT_CSSI, + RAT_CSSU, + RAT_CUSD, + RAT_CCFC, + RAT_CLCK, + RAT_CIMI, + RAT_SATI, + RAT_SATE, + RAT_KSIR, + RAT_CPI, + RAT_CTYI, + RAT_CNUM, + RAT_CPOL, + RAT_CCCM, + RAT_CTV, + RAT_SATN, + RAT_SATA, + RAT_SMS_READY, + RAT_PHB_STATUS, + RAT_SIMINS, + RAT_CRSM, + RAT_CSIM, + RAT_CCBS, + RAT_CCWV, + RAT_CNAP, + RAT_SIG_SMS, + RAT_CLAN, + RAT_CLAE, + RAT_CSQ, + RAT_ALS, + RAT_CTZV, + RAT_P_CREG, + +#ifdef GPRS + RAT_CGACT, + RAT_CGDATA, + RAT_CGANS, + RAT_CGEREP, + RAT_CGREG, + RAT_QOS_MOD, + RAT_SNCNT, + RAT_P_CGREG, + RAT_P_CGEV, +#endif /* GPRS */ + +#ifdef FF_EM_MODE + RAT_EM, + RAT_EMET, + RAT_EMETS, +#endif /* FF_EM_MODE */ + +#ifdef FF_CPHS + RAT_CPNUMS, + RAT_CPVWI, + RAT_CPROAM, +#endif /* FF_CPHS */ + + RAT_CIEV, + RAT_RDL, + RAT_RDLB, + RAT_CCCN, + RAT_CSSN, + + RAT_CSTAT, + RAT_Z, + RAT_CPRSM, + RAT_P_CTZV, + RAT_P_CPRI, + RAT_P_SIMEF, + RAT_P_CNIV, + RAT_P_COPS, + RAT_P_CMGR, + RAT_P_CMGL, + RAT_MAX + +} RAT_ID; + +/*==== TYPES ======================================================*/ +typedef struct entStatus /* entity status */ +{ + T_ACI_CMD_SRC entOwn; /* entity owner */ + T_ACI_AT_CMD curCmd; /* current command processing */ +} T_ENT_STAT; + +typedef struct mmCmdPrm /* command parameters related to MM */ +{ + T_ACI_COPS_FRMT COPSfrmt; + T_ACI_NRG_RGMD NRGregMode; + T_ACI_NRG_SVMD NRGsrvMode; + T_ACI_NRG_FRMT NRGoprFrmt; + T_ACI_CSQ_MODE CSQworkStat; + T_ACI_CTZR_MODE CTZRMode; + T_ACI_CTZU_MODE CTZUMode; + T_ACI_PCTZV_MODE PCTZVMode; + T_ACI_CNIV_MODE CNIVMode; + T_ACI_IND_MODE sIndicationParam; +} T_MM_CMD_PRM; + +typedef struct ccCmdPrm /* command parameters related to CC */ +{ + T_ACI_CLIR_MOD CLIRmode; + T_ACI_DCD_MOD DCDmode; + T_ACI_TOA CSTAtoa; + BOOL CSTAdef; + T_ACI_CHLD_MOD CHLDmode; + T_ACI_CCUG_IDX CCUGidx; + T_ACI_CCUG_INFO CCUGinfo; + T_ACI_CCUG_MOD CCUGmode; + USHORT mltyCncFlg; + USHORT mltyDscFlg; + T_ACI_ALS_MOD ALSmode; /* mode for Alternate Line Service */ + T_ACI_CTTY_MOD CTTYmode; /* TTY Service notification */ + T_ACI_CC_CSCN_MOD CSCNcc_mode; +} T_CC_CMD_PRM; + +typedef struct simCmdPrm /* command parameters related to SIM */ +{ + UBYTE CNUMActRec; + UBYTE CNUMOutput; + T_ACI_CPOL_FRMT CPOLfrmt; + UBYTE CPOLact; + UBYTE CPOLidx; + UBYTE CPOLidx2; + T_ACI_CPOL_MOD CPOLmode; + UBYTE CPOLplmn[3]; + UBYTE CLANact; +} T_SIM_CMD_PRM; + +typedef struct ssCmdPrm /* command parameters related to SS */ +{ + UBYTE CXXXpwd[MAX_PWD_NUM+1]; + UBYTE CXXXnewPwd[MAX_PWD_NUM+1]; + UBYTE CXXXnewPwd2[MAX_PWD_NUM+1]; + USHORT mltyTrnFlg; + T_ACI_SS_CSCN_MOD CSCNss_mode; +} T_SS_CMD_PRM; + +typedef struct phbCmdPrm /* command parameters related to PHB */ +{ + T_ACI_PB_STOR cmhStor; + UBYTE phbStor; /* T_PHB_TYPE */ + USHORT order_num; /* Next matching entry, 0 if none */ + SHORT fndRec; + UBYTE wrtRec; + T_ACI_CSVM_MOD CSVMmode; + T_ACI_CLAE_MOD CLAEmode; + UBYTE curCmd; + UBYTE temp_cmhStor; /* These data types are used to hold */ + UBYTE temp_phbStor; /* the phone book storage types temprorily, in + case of SIM PIN-2 verification. These values + are assigned to the actual storage fileds + when SIM PIN-2 verification confirmation + comes without any ERROR. */ +} T_PHB_CMD_PRM; + +/* Fax and data related command parameters have been moved to a specific +structure in cmh_ra.h */ +typedef struct cmhCmdPrm /* handler command parameter */ +{ + T_MM_CMD_PRM mmCmdPrm; + T_CC_CMD_PRM ccCmdPrm; + T_SIM_CMD_PRM simCmdPrm; + T_SS_CMD_PRM ssCmdPrm; + T_PHB_CMD_PRM phbCmdPrm; + +} T_CMH_PRM; + +/*==== PROTOTYPES =================================================*/ +EXTERN void cmh_Init ( void ); +EXTERN void cmh_Reset ( T_ACI_CMD_SRC srcId, BOOL atz ); +EXTERN BOOL cmh_IsVldCmdSrc ( T_ACI_CMD_SRC cmdSrc ); +EXTERN UBYTE cmh_mergeTOA ( UBYTE ton, UBYTE npi ); +EXTERN UBYTE cmh_mergeTOS ( UBYTE tos, UBYTE oe ); +EXTERN void cmh_demergeTOA ( UBYTE toa, UBYTE* ton, UBYTE* npi ); +EXTERN void cmh_demergeTOS ( UBYTE tosa, UBYTE* tos, UBYTE* oe ); +EXTERN CHAR* cmh_setToaDef ( CHAR* number, T_ACI_TOA *toa ); +EXTERN USHORT cmh_packBCD ( UBYTE *bcd_out, const UBYTE *char_in, + USHORT len_in); +EXTERN USHORT cmh_unpackBCD ( UBYTE *char_out, const UBYTE *bcd_in, + USHORT len_in); +EXTERN void cmh_unpackSCTS ( T_ACI_VP_ABS *scts, + const UBYTE *buf_in ); +EXTERN void cmh_logRslt ( T_ACI_CMD_SRC dest, RAT_ID rat, + T_ACI_AT_CMD cmd, SHORT cId, + T_ACI_BS_SPEED spd, T_ACI_CME_ERR err ); +EXTERN void cmh_cvtToDefGsm ( CHAR* in, + CHAR* out, + USHORT* len ); +EXTERN void cmh_cvtFromDefGsm ( CHAR* in, + USHORT len, + CHAR* out ); +EXTERN UBYTE cmh_set_delayed_call( UCHAR (*call) (void*), void* arg ); +EXTERN UBYTE cmh_start_delayed_call ( ULONG ms ); +EXTERN UBYTE cmh_timeout ( USHORT handle ); +EXTERN SHORT cmh_bldCalPrms ( char * pDialStr, T_CLPTY_PRM * calPrm ); +EXTERN UBYTE qAT_CallActive ( void ); +EXTERN void cmhSMS_disableAccess ( void ); +EXTERN T_ACI_RETURN cmhSIM_ReadTranspEF ( T_ACI_CMD_SRC srcId, + T_ACI_AT_CMD cmd, + USHORT datafield, + USHORT offset, + UBYTE explen, + UBYTE * exchData, + void (*rplyCB)(SHORT)); +EXTERN T_ACI_RETURN cmhSIM_WriteTranspEF (T_ACI_CMD_SRC srcId, + T_ACI_AT_CMD cmd, + USHORT datafield, + USHORT offset, + UBYTE datalen, + UBYTE * exchData, + void (*rplyCB)(SHORT)); +#ifdef GPRS +GLOBAL void cp_pdp_primitive(T_SMREG_PDP_ACTIVATE_CNF * pdp_activate_cnf, + T_PPP_PDP_ACTIVATE_RES *activate_result); +#endif +GLOBAL T_ACI_RETURN cmhSIM_WriteRecordEF (T_ACI_CMD_SRC srcId, + T_ACI_AT_CMD cmd, + USHORT datafield, + UBYTE record, + UBYTE datalen, + UBYTE * exchData, + void (*rplyCB)(SHORT)); +GLOBAL T_ACI_RETURN cmhSIM_ReadRecordEF ( T_ACI_CMD_SRC srcId, + T_ACI_AT_CMD cmd, + USHORT datafield, + UBYTE record, + UBYTE explen, + UBYTE * exchData, + void (*rplyCB)(SHORT)); +GLOBAL T_ACI_RETURN cmhSMS_ReadParams (T_ACI_CMD_SRC srcId, + T_ACI_AT_CMD cmd, + SHORT recNr); +GLOBAL T_ACI_RETURN cmhSMS_WriteParams (T_ACI_CMD_SRC srcId, + T_ACI_AT_CMD cmd, + SHORT recNr); +GLOBAL T_ACI_RETURN cmhSIM_GetSIMError ( T_ACI_CMD_SRC srcBuf, + T_ACI_AT_CMD cmdBuf ); +GLOBAL T_ACI_RETURN cmhSIM_CheckSimPinStatus ( T_ACI_CMD_SRC srcBuf, + T_ACI_AT_CMD cmdBuf ); +GLOBAL T_ACI_RETURN cmhSIM_Read_AD ( ); + +EXTERN void percentCSTAT_indication(T_ACI_ENTITY_ID_MSG entityId, + T_ACI_ENTITY_STATE_MSG entityState); + +EXTERN void cmhSMS_ReadCbDtaDwnl ( T_SIM_MMI_INSERT_IND *sim_mmi_insert_ind ); + +GLOBAL void cmhSIM_Get_CSP(); +GLOBAL void cmhSIM_Read_CSP(); +#ifdef SIM_PERS +GLOBAL void cmhSIM_WriteDefaultValue_DCK(); +#endif + + +GLOBAL UBYTE cmhSIM_isplmnmodebit_set(); + +GLOBAL T_ACI_CMD_MODE aci_rat_cmd_mode(RAT_ID cmd,T_ACI_CMD_SRC src); +GLOBAL T_ACI_CMD_MODE aci_cmd_src_mode_get(T_ACI_CMD_SRC src_id); +GLOBAL void aci_cmd_src_mode_set(UBYTE src_id,T_ACI_CMD_MODE mode); + +/*==== MACROS =====================================================*/ + +EXTERN T_ACI_CMD_MODE _mode; +EXTERN UBYTE srcId_cb; +EXTERN USHORT used_sources; + +#define IS_SRC_USED(x) ((used_sources >> x) & 0x01) +#define IS_SRC_BT(x) ((used_sources >> (x + 8)) & 0x01) + + +/* we set the src id only when the src id NEQ local. Bec in ASC test we intentionally + set the src from TST to LCL for some purpose, but the srcId_cb should remain TST */ +#define R_AT(cmd,src)\ + _mode=aci_rat_cmd_mode(cmd,src);\ + if (src > CMD_SRC_LCL)\ + srcId_cb=(UBYTE)src;\ + if (_mode NEQ CMD_MODE_NONE AND RATJmpTbl[cmd][_mode])\ + RATJmpTbl[cmd][_mode] + + +#define ACI_ERR_DESC( errCls, errNr )\ + {aciErrDesc=(((errCls)<<16) | ((errNr)&0xFFFF));} + +/*==== EXPORT =====================================================*/ +#ifdef CMH_F_C + +GLOBAL T_CMH_PRM cmhPrm[OWN_MAX]; +GLOBAL T_ACI_ALS_MOD ALSlock = ALS_MOD_NOTPRESENT; +GLOBAL T_ACI_ERR_DESC aciErrDesc = -1; + +#else + +EXTERN T_CMH_PRM cmhPrm[OWN_MAX]; +EXTERN T_ACI_ALS_MOD ALSlock; +EXTERN T_ACI_ERR_DESC aciErrDesc; + +EXTERN const T_VOID_FUNC RATJmpTbl[RAT_MAX][CMD_MODE_MAX]; /* SMI/MFW & ATI */ + +#endif /* of #ifndef CMH_F_C */ + +#endif /* CMH_H */ + +/*==== EOF =======================================================*/