diff src/g23m-aci/aci/cmh_sim.h @ 1:d393cd9bb723

src/g23m-*: initial import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 04:40:46 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/g23m-aci/aci/cmh_sim.h	Sun Jul 15 04:40:46 2018 +0000
@@ -0,0 +1,285 @@
+/* 
++----------------------------------------------------------------------------- 
+|  Project :  GSM-PS (6147)
+|  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 command handler of the 
+|             Subscriber Identity Module ( SIM )
++----------------------------------------------------------------------------- 
+*/ 
+
+#ifndef CMH_SIM_H
+#define CMH_SIM_H
+
+/*==== CONSTANTS ==================================================*/
+ 
+#define ACI_SIZE_EF_CCP          14
+#define ACI_MIN_SIZE_EF_MSISDN   14
+#define ACI_MIN_SIZE_EF_PLMN_SEL 24
+#define ACI_LEN_PLMN_SEL_NTRY     3   /* length of an entry in bytes */
+#define ACI_LEN_PLMN_SEL_FLD     MAX_PREF_PLMN /* Moved to SAP SIM to be consistent with MM */
+
+ 
+#define ACI_LEN_LAN_NTRY          2   /* length of an entry in bytes */
+#define ACI_MAX_LAN_NTRY          10   /* number of supported entries */
+#define ACI_MIN_SIZE_EF_LAN       16
+#define ACI_LEN_LAN_FLD (ACI_LEN_LAN_NTRY*ACI_MAX_LAN_NTRY)
+
+
+#define ACI_LEN_LAN_LP_NTRY       1   /* length of an entry in bytes */
+#define ACI_MAX_LAN_LP_NTRY       5   /* number of supported entries */
+#define ACI_LEN_LAN_LP_FLD (ACI_LEN_LAN_LP_NTRY*ACI_MAX_LAN_LP_NTRY)
+
+#define SIM_ALS_LOCK    (SIM_FDN_DISABLE+1) /* To distinguish between the different operations */
+#define SIM_ALS_UNLOCK  (SIM_FDN_DISABLE+2) /* which require a CHV2 authentication */
+
+#ifdef FF_CPHS_REL4
+#define ACI_SIZE_EF_CFIS         16
+#define ACI_SIZE_EF_MBDN         34
+#define ACI_SIZE_EF_MBI           4
+#define ACI_SIZE_EF_MWIS          5
+#endif /* FF_CPHS_REL4 */
+
+typedef enum 
+{
+  EF_STAT_UNKNWN = 0,       /* status of EF unknown */
+  EF_STAT_READ,             /* EF already read */
+  EF_STAT_NOT_AVAIL         /* EF is not available */ 
+} EF_STAT;
+
+typedef enum
+{
+  CPOL_ACT_None = 0,        /* no action */
+  CPOL_ACT_Write,           /* write entry */
+  CPOL_ACT_Delete,          /* delete entry */
+  CPOL_ACT_Read,            /* read entry */
+  CPOL_ACT_Test             /* test number of entries */
+} ACI_CPOL_ACT;
+ 
+typedef enum
+{
+  CLAN_ACT_None = 0,        /* no action */
+  CLAN_ACT_Write,           /* write entry */
+  CLAN_ACT_Read             /* read entry */
+} ACI_CLAN_ACT;
+
+/*==== TYPES ======================================================*/
+
+/*==== PROTOTYPES =================================================*/
+
+EXTERN void            cmhSIM_SIMActivated       ( void );
+EXTERN void            cmhSIM_PINVerified        ( void );
+EXTERN void            cmhSIM_SIMSync            ( void );
+EXTERN void            cmhSIM_SIMInserted        ( void );
+EXTERN void            cmhSIM_SIMRemoved         ( void );
+#ifdef FF_DUAL_SIM
+EXTERN void            cmhSIM_SIMSelected        ( void );
+#endif /*FF_DUAL_SIM*/
+EXTERN void            cmhSIM_FillInPIN          ( CHAR*     PINStr,
+                                                   CHAR*     PINFld, 
+                                                   UBYTE     len      );
+EXTERN void            cmhSIM_GetHomePLMN        ( SHORT*    mccBuf,
+                                                   SHORT*    mncBuf   );
+GLOBAL BOOL            cmhSIM_plmn_equal_sim     ( SHORT     bcch_mcc,
+                                                   SHORT     bcch_mnc, 
+                                                   SHORT     sim_mcc, 
+                                                   SHORT     sim_mnc);
+EXTERN BOOL            cmhSIM_plmn_is_hplmn      ( SHORT     bcch_mcc, 
+                                                   SHORT     bcch_mnc);
+EXTERN T_ACI_RETURN    cmhSIM_ReqMsisdn          ( T_ACI_CMD_SRC srcId,
+                                                   UBYTE     record   );
+EXTERN void            cmhSIM_CnfMsisdn          ( SHORT     table_id );
+EXTERN T_ACI_RETURN    cmhSIM_ReqCcp             ( T_ACI_CMD_SRC srcId,
+                                                   UBYTE     record   );
+EXTERN void            cmhSIM_CnfCcp             ( SHORT     table_id );
+EXTERN void            cmhSIM_RdCnfPlmnSel       ( SHORT     table_id );
+EXTERN void            cmhSIM_WrCnfPlmnSel       ( SHORT     table_id );
+EXTERN T_ACI_CME_ERR   cmhSIM_GetCmeFromSim      ( USHORT    errCode  );
+EXTERN SHORT           cmhSIM_FillPlmnSelList    ( UBYTE              index, 
+                                                   T_ACI_CPOL_FRMT    frmt,
+                                                   T_ACI_CPOL_OPDESC* operLst,
+                                                   UBYTE              length,
+                                                   UBYTE*             pData );
+
+EXTERN T_ACI_RETURN     getSupLangFromPCM       ( T_ACI_LAN_SUP *lanlst, 
+                                                  SHORT         *lastIdx  );
+
+EXTERN BOOL           checkSuppLang             (T_ACI_LAN_SUP  *lanlst,
+                                                  SHORT          lastIdx, 
+                                                  T_ACI_LAN_SUP  *clng);
+
+EXTERN BOOL           checkSuppLangInLP         ( T_ACI_LAN_SUP  *lanlst,
+                                                  SHORT          lastIdx, 
+                                                  T_ACI_LAN_SUP  *clng);
+                                                   
+EXTERN SHORT           cmhSIM_UsdPlmnSelNtry     ( UBYTE              length,
+                                                   UBYTE*             pData  );
+EXTERN void            cmhSIM_CmpctPlmnSel       ( UBYTE              length,
+                                                   UBYTE*             pData );
+EXTERN T_ACI_BS_SPEED  cmhSIM_GetUserRate        ( UBYTE  userRate );
+EXTERN T_ACI_CNUM_ITC  cmhSIM_GetItc             ( UBYTE  itc      );
+EXTERN T_ACI_CNUM_SERV cmhSIM_GetSrvFromSync     ( UBYTE  sync     );
+EXTERN T_ACI_CNUM_SERV cmhSIM_GetSrvFromItc      ( UBYTE  itc      );
+EXTERN void            cmhSIM_getMncMccFrmPLMNsel( const UBYTE* ntry, 
+                                                         SHORT* mcc, 
+                                                         SHORT* mnc );
+EXTERN BOOL            cmhSIM_GetCodedPLMN       ( const CHAR *oper, 
+                                                   T_ACI_CPOL_FRMT format, 
+                                                   UBYTE *sim_plmn );
+EXTERN T_ACI_RETURN    cmhSIM_DelPlmnSel         ( T_ACI_CMD_SRC srcId,
+                                                   SHORT index,
+                                                   T_ACI_CPOL_MOD mode );
+EXTERN T_ACI_RETURN    cmhSIM_FndEmptyPlmnSel    ( T_ACI_CMD_SRC srcId,
+                                                   UBYTE *plmn );
+EXTERN T_ACI_RETURN    cmhSIM_UpdPlmnSel         ( T_ACI_CMD_SRC srcId,
+                                                   SHORT index,
+                                                   UBYTE *plmn,
+                                                   T_ACI_CPOL_MOD mode );
+EXTERN T_ACI_RETURN    cmhSIM_ChgPlmnSel         ( T_ACI_CMD_SRC srcId,
+                                                   SHORT index,
+                                                   SHORT index2 );
+EXTERN void            cmhSIM_SIMResponseData    ( T_SIM_TRNS_RSP_PRM* rsp );
+
+EXTERN void            cmhSIM_RdCnfLangELP        ( SHORT     table_id );
+
+
+EXTERN void            cmhSIM_RdCnfLangPrfELP      (SHORT     table_id);
+
+EXTERN void            cmhSIM_RdCnfLangLP           ( SHORT     table_id );
+
+
+EXTERN void            cmhSIM_RdCnfLangPrfLP        (SHORT     table_id);
+
+EXTERN BOOL            cmhSIM_AD_Update             ( int, T_SIM_FILE_UPDATE_IND *);
+EXTERN BOOL            cmhSIM_CSP_Update             ( int, T_SIM_FILE_UPDATE_IND *);
+EXTERN BOOL            cmhSIM_ONS_Update             ( int, T_SIM_FILE_UPDATE_IND *);
+EXTERN void cmhSIM_Read_AD_cb(SHORT table_id);
+EXTERN void cmhSIM_Read_AD_cb(SHORT table_id);
+EXTERN T_opl_field* cmhSIM_GetOPL();
+EXTERN void cmhSIM_GetSrvTab( UBYTE*  ptrSrvTab );
+EXTERN void cmhSIM_Get_CSP_cb(SHORT table_id);
+EXTERN void cmhSIM_Read_CSP_cb(SHORT table_id);
+
+#ifdef FF_CPHS_REL4
+EXTERN void            cmhSIM_RdCnfCfis( SHORT table_id );
+EXTERN void            cmhSIM_WrCnfCfis( SHORT table_id );
+EXTERN T_ACI_RETURN    cmhSIM_WrCfis (T_ACI_CMD_SRC srcId,
+                                      T_ACI_CFIS_MOD mode, UBYTE index,
+                                      UBYTE mspId,UBYTE cfuStat,CHAR *number, 
+                                      T_ACI_TOA *type,UBYTE cc2_id);
+EXTERN void cmhSIM_RdCnfMwis( SHORT table_id );
+EXTERN void cmhSIM_WrCnfMwis( SHORT table_id );
+EXTERN T_ACI_RETURN cmhSIM_WrMwis (T_ACI_CMD_SRC srcId,
+                                   T_ACI_MWIS_MOD mode,
+                                   UBYTE mspId,
+                                   T_ACI_MWIS_MWI *mwis);
+EXTERN T_ACI_RETURN cmhSIM_WrMbdn (T_ACI_CMD_SRC srcId,
+                                   T_ACI_MBN_MODE mode, UBYTE index,
+                                   CHAR* number, T_ACI_TOA* type,
+                                   UBYTE cc2_id, T_ACI_PB_TEXT *text);
+EXTERN void cmhSIM_WrCnfMbdn ( SHORT table_id );
+EXTERN void cmhSIM_RdCnfMbi ( SHORT table_id );
+EXTERN void cmhSIM_RdCnfMbdn ( SHORT table_id );
+#endif /* FF_CPHS_REL4 */
+
+#ifdef SIM_PERS_OTA
+EXTERN BOOL         cmhSIM_Register_Read_DCK     ( int, T_SIM_FILE_UPDATE_IND *);
+EXTERN void cmhSIM_Read_DCK_cb(SHORT table_id);
+EXTERN void cmhSIM_Read_DCK_init_cb(SHORT table_id);
+#endif
+
+#ifdef SIM_PERS
+EXTERN void cmhSIM_UnlockTimeout(void);
+#endif
+
+/* EONS */
+EXTERN void cmhSIM_OpReadOplRcdCb(SHORT table_id);
+EXTERN void cmhSIM_OpReadPnnRcdCb(SHORT table_id);
+EXTERN BOOL cmhSIM_OpUpdate(int ref, T_SIM_FILE_UPDATE_IND*  fu);
+EXTERN void cmhSIM_InitOperatorName();
+EXTERN BOOL cmhSIM_StartOperatorName();
+EXTERN BOOL cmhSIM_UpdateOperatorName(USHORT reqDataFld);
+
+EXTERN void cmhSIM_AD_Updated(UBYTE ad_len, UBYTE* ad_data);
+
+#ifdef DTI
+EXTERN BOOL SIM_ENT_CSDconnect_dti_cb(UBYTE dti_id, T_DTI_CONN_STATE result_type);
+#endif
+#if defined (GPRS) AND defined (DTI)
+EXTERN BOOL SIM_SNDCP_connect_dti_cb(UBYTE dti_id, T_DTI_CONN_STATE result_type);
+EXTERN BOOL SIM_ENT_GPRSconnect_dti_cb(UBYTE dti_id, T_DTI_CONN_STATE result_type);
+#endif
+
+EXTERN T_ACI_RETURN cmhSIM_Req_or_Write_PlmnSel ( T_ACI_CMD_SRC srcId, 
+                                                  T_SIM_ACTP accType );
+EXTERN void cmhSIM_CardUnblocked_PINChanged ( BOOL PINChanged );
+EXTERN void cmhSIM_PINEnabledDisabled ( void );
+EXTERN BOOL cmhSIM_ReqLanguagePrf_LP_or_ELP  ( USHORT reqDataFld,
+                                               UBYTE recMax,
+                                               UBYTE *exchData,
+                                               void (*rplyCB)(SHORT) );
+EXTERN T_ACI_RETURN cmhSIM_ReqLanguage_LP_or_ELP  ( T_ACI_CMD_SRC srcId,
+                                                    USHORT reqDataFld );
+
+/*==== EXPORT =====================================================*/
+
+#ifdef CMH_SIMF_C
+
+GLOBAL T_ENT_STAT     simEntStat;
+
+GLOBAL T_ACI_CFUN_FUN CFUNfun         = CFUN_FUN_Minimum;
+
+GLOBAL UBYTE          CNUMMaxRec      = 0;
+GLOBAL T_ACI_CNUM_LST CNUMMsisdn;
+GLOBAL UBYTE          CNUMMsisdnIdx   = 0;
+GLOBAL UBYTE          CNUMLenEfMsisdn = 0;
+GLOBAL UBYTE          EfPLMNselStat   = EF_STAT_UNKNWN;
+GLOBAL UBYTE          CPOLSimEfDataLen;
+GLOBAL UBYTE          CPOLSimEfData[ACI_LEN_PLMN_SEL_FLD];
+
+GLOBAL UBYTE          CLANimEfDataLen;
+GLOBAL UBYTE          CLANSimEfData[ACI_LEN_LAN_FLD];
+GLOBAL UBYTE          CLANSimEfDataLP[ACI_LEN_LAN_LP_FLD];
+#ifdef FF_CPHS_REL4
+GLOBAL UBYTE          CFISIndex       = 0; 
+GLOBAL UBYTE          MWISIndex       = 0;
+GLOBAL UBYTE          MBI_Index       = 0;
+#endif
+#else
+
+EXTERN T_ENT_STAT     simEntStat;
+
+EXTERN T_ACI_CFUN_FUN CFUNfun;
+
+EXTERN UBYTE          CNUMMaxRec;
+EXTERN T_ACI_CNUM_LST CNUMMsisdn;
+EXTERN UBYTE          CNUMMsisdnIdx;
+EXTERN UBYTE          CNUMLenEfMsisdn;
+EXTERN UBYTE          EfPLMNselStat;
+EXTERN UBYTE          CPOLSimEfDataLen;
+EXTERN UBYTE          CPOLSimEfData[];
+
+EXTERN UBYTE          CLANimEfDataLen;
+EXTERN UBYTE          CLANSimEfData[];
+EXTERN UBYTE          CLANSimEfDataLP[];
+#ifdef FF_CPHS_REL4
+EXTERN UBYTE          CFISIndex ;
+EXTERN UBYTE          MWISIndex;
+EXTERN UBYTE          MBI_Index;
+#endif
+#endif /* CMH_SIMF_C */
+
+#endif /* CMH_SIM_H */
+
+/*==== EOF =======================================================*/