VOS_VOID TAF_MMA_USIMRefreshFileProc( VOS_UINT16 usEfId, VOS_UINT16 usEfLen, VOS_UINT8 *pucEf ) { USIMM_READFILE_CNF_STRU *pUsimTafMsg; VOS_UINT8 *pucImsi = VOS_NULL_PTR; MMA_GET_ICC_ID_ST *pstIccId = VOS_NULL_PTR; pucImsi = TAF_SDC_GetSimImsi(); pstIccId = TAF_MMA_GetIccIdInfo(); switch (usEfId) { case USIMM_GSM_EFONS_ID: /*lint -e961*/ pUsimTafMsg = (USIMM_READFILE_CNF_STRU *)PS_MEM_ALLOC(WUEPS_PID_MMA, (VOS_UINT32)(sizeof(USIMM_READFILE_CNF_STRU) - 4 + usEfLen)); /*lint +e961*/ if (VOS_NULL_PTR == pUsimTafMsg) { MMA_ERRORLOG("MMA_USIMReadRefreshFileProc():ERROR:MALLOC FAIL"); return; } /*lint -e961*/ PS_MEM_SET(pUsimTafMsg, 0, (VOS_UINT32)(sizeof(USIMM_READFILE_CNF_STRU) - 4 + usEfLen)); /*lint +e961*/ pUsimTafMsg->stCmdResult.ulResult = MMA_SUCCESS; pUsimTafMsg->usEfLen = usEfLen; PS_MEM_CPY(pUsimTafMsg->aucEf, pucEf, usEfLen); TAF_MMA_ReadCphsFileCnf(pUsimTafMsg); PS_MEM_FREE(WUEPS_PID_MMA, pUsimTafMsg); break; case USIMM_ICCID_ID: MMA_MEM_SET(&(pstIccId->stIccId), 0, sizeof(TAF_PH_ICC_ID_STRU)); MMA_MEM_CPY(pstIccId->stIccId.aucIccId, pucEf, usEfLen); pstIccId->stIccId.ucLen = (VOS_UINT8)usEfLen; TAF_MMA_ReadIccIdFileCnf(); break; case USIMM_USIM_EFIMSI_ID: case USIMM_GSM_EFIMSI_ID: /* 判断IMSI是否改变 */ if (0 != VOS_MemCmp(pucImsi, pucEf, NAS_MAX_IMSI_LENGTH)) { if (TAF_MMA_FSM_MAIN != TAF_MMA_GetCurrFsmId()) { TAF_MMA_SndInterUsimChangeInd(); break; } if (STA_FSM_NULL == g_StatusContext.ulFsmState) { break; } TAF_MMA_SndInterUsimChangeInd(); } MMA_WARNINGLOG("MMA_USIMReadRefreshFileProc():WARNING:Refresh File Id IMSI"); break; case USIMM_USIM_EFPNN_ID: case USIMM_USIM_EFPNNI_ID: MMA_INFOLOG("MMA_USIMReadRefreshFileProc():INFO:Refresh File PNN"); break; case USIMM_USIM_EFOPL_ID: case USIMM_GSM_EFOPL_ID: MMA_INFOLOG("MMA_USIMReadRefreshFileProc():INFO:Refresh File OPL"); break; case USIMM_GSM_EFCSP_ID: TAF_MMA_RcvCustomerServiceProfileFile(VOS_OK, usEfLen, pucEf); break; case USIMM_ATTUSIM_EFRATMODE_ID: TAF_MMA_RcvRatModeFileRefresh(usEfLen, pucEf); break; default: MMA_WARNINGLOG("MMA_USIMReadRefreshFileProc():WARNING:UNKNOW EFID RECEIVE!"); break; } }
VOS_UINT32 TAF_MMA_SndMmcStartReq( MMA_MMC_CARD_STATUS_ENUM_UINT8 enCardStatus, MMA_MMC_PLMN_RAT_PRIO_STRU *pstPlmnRatPrio ) { VOS_UINT32 ulRet; MMA_MMC_START_REQ_STRU *pstMsg = VOS_NULL_PTR; /* 申请内存 */ pstMsg = (MMA_MMC_START_REQ_STRU *)PS_ALLOC_MSG(WUEPS_PID_MMA, sizeof(MMA_MMC_START_REQ_STRU) - VOS_MSG_HEAD_LENGTH); if ( VOS_NULL_PTR == pstMsg ) { NAS_ERROR_LOG(WUEPS_PID_MMA, "TAF_MMA_SndMmcStartReq:ERROR: Memory Alloc Error for pMsg"); return VOS_ERR; } PS_MEM_SET((VOS_INT8*)pstMsg + VOS_MSG_HEAD_LENGTH, 0, sizeof(MMA_MMC_START_REQ_STRU) - VOS_MSG_HEAD_LENGTH); pstMsg->MsgHeader.ulReceiverCpuId = VOS_LOCAL_CPUID; pstMsg->MsgHeader.ulReceiverPid = WUEPS_PID_MMC; pstMsg->MsgHeader.ulSenderCpuId = VOS_LOCAL_CPUID; pstMsg->MsgHeader.ulSenderPid = WUEPS_PID_MMA; pstMsg->MsgHeader.ulLength = sizeof(MMA_MMC_START_REQ_STRU) - VOS_MSG_HEAD_LENGTH; pstMsg->MsgHeader.ulMsgName = ID_MMA_MMC_START_REQ; pstMsg->enRegDomain = TAF_MMA_GetRegDomain(); pstMsg->enCardStatus = enCardStatus; pstMsg->stPlmnRatPrio = *pstPlmnRatPrio; /* 开机请求适配新的接口,支持CDMA技术接口 */ if (VOS_TRUE == TAF_MMA_IsPowerOnCLInterWork())/* C+L模式 */ { pstMsg->enRegCtrl = MMA_MMC_REG_CONTROL_BY_3GPP2_CBP; pstMsg->st3Gpp2Rat.ucRatNum = 1; pstMsg->st3Gpp2Rat.auc3GPP2Rat[0] = MMA_MMC_3GPP2_RAT_TYPE_HRPD; } else { pstMsg->enRegCtrl = MMA_MMC_REG_CONTROL_BY_3GPP_MMC; pstMsg->st3Gpp2Rat.ucRatNum = 0; } if (MMA_MMC_CARD_STATUS_ABSENT != enCardStatus) { PS_MEM_CPY(pstMsg->aucImsi, TAF_SDC_GetSimImsi(), NAS_MAX_IMSI_LENGTH); } /* 调用VOS发送原语 */ ulRet = PS_SEND_MSG( WUEPS_PID_MMA, pstMsg ); if ( VOS_OK != ulRet ) { NAS_ERROR_LOG(WUEPS_PID_MMA, "TAF_MMA_SndMmcStartReq:ERROR:PS_SEND_MSG FAILURE"); return VOS_ERR; } NAS_TRACE_HIGH("Send Msg!"); return VOS_OK; }
VOS_UINT32 TAF_MMA_UsimGetFileRspPreProc( VOS_UINT32 ulEventType, struct MsgCB *pstMsg ) { VOS_UINT32 ulRet; TAF_PH_USIM_SPN_CNF_STRU stSpnTmp; MMA_GET_ICC_ID_ST *pstIccId = VOS_NULL_PTR; USIMM_READFILE_CNF_STRU *pUsimTafMsg = VOS_NULL_PTR; USIMM_DEF_FILEID_ENUM_UINT32 enFileID; PS_MEM_SET(&stSpnTmp, 0xFF, sizeof(TAF_PH_USIM_SPN_CNF_STRU)); pUsimTafMsg = (USIMM_READFILE_CNF_STRU *)pstMsg; if (VOS_OK != USIMM_ChangePathToDefFileID(pUsimTafMsg->stCmdResult.enApptype, pUsimTafMsg->stFilePath.ulPathLen, pUsimTafMsg->stFilePath.acPath, &enFileID)) { return VOS_FALSE; } pstIccId = TAF_MMA_GetIccIdInfo(); pUsimTafMsg = (USIMM_READFILE_CNF_STRU*)pstMsg; TAF_MMA_ClearWaitSimFilesCnfFlg(enFileID); switch (enFileID) { case USIMM_USIM_EFSPN_ID: case USIMM_GSM_EFSPN_ID: if (MMA_SUCCESS == pUsimTafMsg->stCmdResult.ulResult) { if (pUsimTafMsg->usEfLen > sizeof(TAF_PH_USIM_SPN_CNF_STRU)) { MMA_MEM_CPY(&stSpnTmp, (VOS_UINT8*)(VOS_UINT32)(pUsimTafMsg->aucEf), sizeof(TAF_PH_USIM_SPN_CNF_STRU)); } else { MMA_MEM_CPY(&stSpnTmp, pUsimTafMsg->aucEf, pUsimTafMsg->usEfLen); } MMA_ReadSpnFileCnf((TAF_PH_USIM_SPN_CNF_STRU *)&stSpnTmp, enFileID); } break; case USIMM_GSM_EFONS_ID: TAF_MMA_ReadCphsFileCnf(pUsimTafMsg); break; case USIMM_ICCID_ID: MMA_MEM_SET(&(pstIccId->stIccId), 0, sizeof(TAF_PH_ICC_ID_STRU)); MMA_MEM_CPY(pstIccId->stIccId.aucIccId, pUsimTafMsg->aucEf, pUsimTafMsg->usEfLen); pstIccId->stIccId.ucLen = (VOS_UINT8)pUsimTafMsg->usEfLen; TAF_MMA_ReadIccIdFileCnf(); break; case USIMM_USIM_EFIMSI_ID: case USIMM_GSM_EFIMSI_ID: ulRet = MMA_CheckPin1SatusSimple(); if ( MMA_NONEED_PIN1 == ulRet ) { if (pUsimTafMsg->usEfLen< 10 ) { MMA_MEM_CPY(TAF_SDC_GetSimImsi(), pUsimTafMsg->aucEf, pUsimTafMsg->usEfLen); /* 检查是否锁卡 */ (VOS_VOID)MMA_CheckMePersonalisationStatus(); } } break; case USIMM_USIM_EFPNN_ID: case USIMM_GSM_EFPNN_ID: TAF_MMA_ReadPnnFileCnf(pUsimTafMsg, enFileID); break; case USIMM_USIM_EFOPL_ID: case USIMM_GSM_EFOPL_ID: TAF_MMA_ReadOplFileCnf(pUsimTafMsg, enFileID); break; case USIMM_USIM_EFSPDI_ID: case USIMM_GSM_EFSPDI_ID: TAF_MMA_ReadSpdiFileCnf(pUsimTafMsg, enFileID); break; case USIMM_USIM_EFAD_ID: case USIMM_GSM_EFAD_ID: TAF_MMA_GetUsimHplmnMncLenFileInd(pUsimTafMsg); break; case USIMM_GSM_EFCSP_ID: TAF_MMA_RcvCustomerServiceProfileFile(pUsimTafMsg->stCmdResult.ulResult, pUsimTafMsg->usEfLen, pUsimTafMsg->aucEf); break; #if (FEATURE_ON == FEATURE_UE_MODE_CDMA) case USIMM_CSIM_EFRUIMID_ID: case USIMM_CDMA_EFRUIMID_ID: TAF_MMA_RcvUsimmReadRuimidFile(pUsimTafMsg); break; #endif case USIMM_USIM_EFEHPLMN_ID: TAF_MMA_GetUsimEHplmnFileInd(pUsimTafMsg); break; case USIMM_ATTGSM_EFACTINGHPLMN_ID: TAF_MMA_GetSimActingHplmnFileInd(pUsimTafMsg); break; default: MMA_WARNINGLOG("TAf_MMA_UsimGetFileRspMsgProc():WARNING:UNKNOW EFID RECEIVE!"); break; } if (TAF_MMA_READ_USIM_FILE_FLG_NULL == TAF_MMA_GetWaitSimFilesCnfFlg()) { TAF_MMA_StopTimer(TI_TAF_MMA_WAIT_READ_SIM_FILES); } return VOS_TRUE; }