VOS_VOID MN_CALL_LineInfo( MNPH_USIM_STATUS_ENUM_U32 enUsimStatus ) { MN_CALL_ALS_LINE_INFO_STRU stAlsInfo; VOS_UINT8 aucMmaImsi[9]; VOS_BOOL bWriteNvim; VOS_UINT32 ulLength; ulLength = 0; stAlsInfo.enAlsLine = MN_CALL_ALS_LINE_NO_BUTT; PS_MEM_SET(stAlsInfo.aucMmaImsi, 0x00, sizeof(stAlsInfo.aucMmaImsi)); if ( MNPH_USIM_STATUS_AVILABLE == enUsimStatus ) { bWriteNvim = VOS_FALSE; if ( NV_OK != NV_Read(en_NV_Item_ALS_LINE_Config,&stAlsInfo,sizeof(stAlsInfo))) { return; } if ( USIMM_API_SUCCESS != NAS_USIMMAPI_GetCardIMSI(aucMmaImsi) ) { return ; } /*线路号值不在取值范围内*/ if ( ( MN_CALL_ALS_LINE_NO_1 != stAlsInfo.enAlsLine ) && ( MN_CALL_ALS_LINE_NO_2 != stAlsInfo.enAlsLine ) ) { stAlsInfo.enAlsLine = MN_CALL_ALS_LINE_NO_1; bWriteNvim = VOS_TRUE; } /*判断NV中当前使用线路号对应的IMSI和SIM卡中IMSI是否相同,若不同则清NV 项,并填入默认线路号1*/ if ( 0 != VOS_StrCmp( (VOS_CHAR *)aucMmaImsi, (VOS_CHAR *)stAlsInfo.aucMmaImsi) ) { stAlsInfo.enAlsLine = MN_CALL_ALS_LINE_NO_1; PS_MEM_CPY(stAlsInfo.aucMmaImsi,aucMmaImsi,9); bWriteNvim = VOS_TRUE; } /*需要更新NVIM*/ if ( VOS_TRUE == bWriteNvim ) { NV_GetLength(en_NV_Item_ALS_LINE_Config, &ulLength); if (NV_OK != NV_Write(en_NV_Item_ALS_LINE_Config, &stAlsInfo, ulLength) ) { TAF_WARNING_LOG(WUEPS_PID_TAF, "MN_CALL_LineInfo: en_NV_Item_ALS_LINE_Config NV Write Fail!"); } } MN_CALL_UpdateAlsLineInfo(stAlsInfo.enAlsLine,VOS_FALSE); } }
VOS_VOID MN_CALL_LineInfo( MNPH_USIM_STATUS_ENUM_U32 enUsimStatus ) { MN_CALL_ALS_LINE_INFO_STRU stAlsInfo; VOS_UINT8 aucMmaImsi[9]; VOS_BOOL bWriteNvim; VOS_UINT32 ulLength; VOS_UINT32 ulGetCardImsiRslt; ulGetCardImsiRslt = USIMM_API_RESULT_BUTT; ulLength = 0; stAlsInfo.enAlsLine = MN_CALL_ALS_LINE_NO_BUTT; PS_MEM_SET(stAlsInfo.aucMmaImsi, 0x00, sizeof(stAlsInfo.aucMmaImsi)); if ( MNPH_USIM_STATUS_AVILABLE == enUsimStatus ) { bWriteNvim = VOS_FALSE; if ( NV_OK != NV_Read(en_NV_Item_ALS_LINE_Config,&stAlsInfo,sizeof(stAlsInfo))) { return; } ulGetCardImsiRslt = NAS_USIMMAPI_GetCardIMSI(aucMmaImsi); if ( USIMM_API_SUCCESS != ulGetCardImsiRslt) { if (VOS_TRUE == TAF_SDC_IsImsiAvailableInCurrSimStatus(TAF_SDC_GetSimStatus())) { #if (FEATURE_ON == FEATURE_PTM) /* 记录获取卡IMSI异常log */ TAF_SDC_GetCardImsiFailRecord(ulGetCardImsiRslt, aucMmaImsi); #endif } return ; } /*线路号值不在取值范围内*/ if ( ( MN_CALL_ALS_LINE_NO_1 != stAlsInfo.enAlsLine ) && ( MN_CALL_ALS_LINE_NO_2 != stAlsInfo.enAlsLine ) ) { stAlsInfo.enAlsLine = MN_CALL_ALS_LINE_NO_1; bWriteNvim = VOS_TRUE; } /*判断NV中当前使用线路号对应的IMSI和SIM卡中IMSI是否相同,若不同则清NV 项,并填入默认线路号1*/ if ( 0 != VOS_StrCmp( (VOS_CHAR *)aucMmaImsi, (VOS_CHAR *)stAlsInfo.aucMmaImsi) ) { stAlsInfo.enAlsLine = MN_CALL_ALS_LINE_NO_1; PS_MEM_CPY(stAlsInfo.aucMmaImsi,aucMmaImsi,9); bWriteNvim = VOS_TRUE; } /*需要更新NVIM*/ if ( VOS_TRUE == bWriteNvim ) { (VOS_VOID)NV_GetLength(en_NV_Item_ALS_LINE_Config, &ulLength); if (NV_OK != NV_Write(en_NV_Item_ALS_LINE_Config, &stAlsInfo, ulLength) ) { TAF_WARNING_LOG(WUEPS_PID_TAF, "MN_CALL_LineInfo: en_NV_Item_ALS_LINE_Config NV Write Fail!"); } } (VOS_VOID)MN_CALL_UpdateAlsLineInfo(stAlsInfo.enAlsLine,VOS_FALSE); } }