VOS_UINT32 USIMM_GetCardIMSI_Instance( MODEM_ID_ENUM_UINT16 enModemID, VOS_UINT8 *pucImsi) { if (MODEM_ID_0 == enModemID) { USIMM_NORMAL_LOG("USIMM_GetCardIMSI_Instance: call USIMM_GetCardIMSI"); return USIMM_GetCardIMSI(pucImsi); } #if (FEATURE_MULTI_MODEM == FEATURE_ON) if (MODEM_ID_1 == enModemID) { USIMM_NORMAL_LOG("USIMM_GetCardIMSI_Instance: call I1_USIMM_GetCardIMSI"); return I1_USIMM_GetCardIMSI(pucImsi); } #endif USIMM_ERROR_LOG("USIMM_GetCardIMSI_Instance: Para Is Error"); return USIMM_API_WRONG_PARA; }
VOS_VOID TAF_MMA_UsimRefreshIndFileListChangedMsgProc(USIMM_STKREFRESH_IND_STRU *pUsimTafMsg) { VOS_UINT16 usEfId; VOS_UINT32 ulEfLen; VOS_UINT8 *pucEf; VOS_UINT32 ulResult; VOS_UINT16 i; NAS_USIMM_GETFILE_INFO_STRU stGetFileInfo; VOS_UINT8 *pucOldImsi; VOS_UINT8 aucNewImsi[TAF_SDC_MAX_IMSI_LEN]; #if (FEATURE_ON == FEATURE_UE_MODE_CDMA) VOS_UINT8 aucIMSIM[NAS_MAX_IMSIM_DATA_LEN]; PS_MEM_SET(aucIMSIM, 0x00, sizeof(aucIMSIM)); #endif PS_MEM_SET(&stGetFileInfo, 0x00, sizeof(stGetFileInfo)); pucEf = VOS_NULL_PTR; usEfId = USIMM_DEF_FILEID_BUTT; ulEfLen = 0; /*依次读取上报的refresh文件*/ for (i = 0; i < pUsimTafMsg->usEfNum; i++) { usEfId = pUsimTafMsg->astEfId[i].usFileId; switch (usEfId) { case USIMM_USIM_EFSPN_ID: case USIMM_GSM_EFSPN_ID: TAF_MMA_ReadSpnFile(); break; case USIMM_USIM_EFSPDI_ID: case USIMM_GSM_EFSPDI_ID: TAF_MMA_ReadSpdiFile(); break; case USIMM_USIM_EFPNN_ID: case USIMM_GSM_EFPNN_ID: TAF_MMA_ReadPnnFile(); break; case USIMM_USIM_EFOPL_ID: case USIMM_GSM_EFOPL_ID: TAF_MMA_ReadOplFile(); break; #if (FEATURE_ON == FEATURE_ECALL) case USIMM_USIM_EFUST_ID: case USIMM_GSM_EFSST_ID: case USIMM_USIM_EFEST_ID: (VOS_VOID)TAF_MMA_ProcPihUsimRefreshIndEfUstFileChanged_PreProc(); break; #endif /* 如果IMSI发生变更,发送卡状态发生变更,有业务启动定时器 */ case USIMM_USIM_EFIMSI_ID: case USIMM_GSM_EFIMSI_ID: pucOldImsi = TAF_SDC_GetLastSimImsi(); PS_MEM_SET(aucNewImsi, 0, sizeof(aucNewImsi)); if (USIMM_API_SUCCESS == USIMM_GetCardIMSI(aucNewImsi)) { if (0 != VOS_MemCmp(pucOldImsi, aucNewImsi, TAF_SDC_MAX_IMSI_LEN)) { if (VOS_TRUE == TAF_SDC_GetCsEccExistFlg()) { /* 存在CS业务,则启动定时器等待CS业务结束后关机 */ TAF_MMA_StartTimer(TI_TAF_MMA_WAIT_CS_SERVICE_DISCONN, TI_TAF_MMA_WAIT_CS_SERVICE_DISCONN_LEN); } else { TAF_MMA_SndInterUsimChangeInd(); } } } break; #if (FEATURE_ON == FEATURE_UE_MODE_CDMA) case USIMM_CSIM_EFEPRL_ID: case USIMM_CDMA_EFEPRL_ID: case USIMM_CDMA_EFPRL_ID: case USIMM_CSIM_EFPRL_ID: TAF_MMA_SndInterUsimChangeInd(); break; case USIMM_CDMA_EFIMSIM_ID: case USIMM_CSIM_EFIMSIM_ID: pucOldImsi = TAF_SDC_GetCsimImsi(); PS_MEM_SET(aucNewImsi, 0x00, sizeof(aucNewImsi)); if (USIMM_API_SUCCESS != USIMM_GetCdmaIMSIM(aucIMSIM)) { MMA_WARNINGLOG("USIMM_GetCdmaIMSIM:Get Imsim Failed"); break; } (VOS_VOID)TAF_SDC_ConvertCImsiBcdCode(aucIMSIM, aucNewImsi); if (0 != VOS_MemCmp(pucOldImsi, aucNewImsi, TAF_SDC_MAX_IMSI_LEN)) { PS_MEM_CPY(pucOldImsi, aucNewImsi, TAF_SDC_MAX_IMSI_LEN); if (VOS_TRUE == TAF_SDC_GetCsEccExistFlg()) { /* 存在CS业务,则启动定时器等待CS业务结束后关机 */ TAF_MMA_StartTimer(TI_TAF_MMA_WAIT_CS_SERVICE_DISCONN, TI_TAF_MMA_WAIT_CS_SERVICE_DISCONN_LEN); } else { TAF_MMA_SndInterUsimChangeInd(); } } break; #endif default: ulResult = NAS_USIMMAPI_GetCachedFile(usEfId, &ulEfLen, &pucEf, pUsimTafMsg->astEfId[i].enAppType); if (USIMM_API_SUCCESS != ulResult) { /*读当前文件失败,读取下一个文件*/ MMA_ERRORLOG("MMA_UsimRefreshFileIndMsgProc():ERROR:READ FILE FAIL!"); continue; } /* 增加可维可测 */ TAF_MMA_SndOmGetCacheFile(usEfId, ulEfLen, pucEf); /*读取文件成功后,MMA内部做相应处理*/ TAF_MMA_USIMRefreshFileProc(usEfId, (VOS_UINT16)ulEfLen, pucEf); break; } } return; }