VOS_VOID NAS_MMC_SndLmmEquPlmn_InterSysChangeLte()
{
    NAS_MML_EQUPLMN_INFO_STRU                              *pstEquPlmnInfo = VOS_NULL_PTR;
    NAS_MML_EQUPLMN_INFO_STRU                               stSndEquPlmnInfo;
    NAS_MML_PLMN_WITH_RAT_STRU                             *pstUserSpecPlmnId   = VOS_NULL_PTR;
    VOS_UINT32                                              ulEplmnValidFlg;
    VOS_UINT32                                              ulRegFlag;
    VOS_UINT32                                              ulIsSimPlmnIdInDestBcchPlmnList;
    VOS_UINT32                                              ulIsBcchPlmnIdInDestSimPlmnList;

    PS_MEM_SET(&stSndEquPlmnInfo, 0, sizeof(NAS_MML_EQUPLMN_INFO_STRU));

    pstEquPlmnInfo = NAS_MML_GetEquPlmnList();
    PS_MEM_CPY(&stSndEquPlmnInfo, pstEquPlmnInfo, sizeof(NAS_MML_EQUPLMN_INFO_STRU));

    pstUserSpecPlmnId = NAS_MMC_GetUserSpecPlmnId();

    ulEplmnValidFlg     = NAS_MML_GetEplmnValidFlg();
    ulRegFlag           = NAS_MMC_GetUserSpecPlmnRegisterStatus();

    ulIsSimPlmnIdInDestBcchPlmnList = NAS_MML_IsSimPlmnIdInDestBcchPlmnList(&(pstUserSpecPlmnId->stPlmnId),
                                                                            stSndEquPlmnInfo.ucEquPlmnNum,
                                                                            stSndEquPlmnInfo.astEquPlmnAddr);

    ulIsBcchPlmnIdInDestSimPlmnList = NAS_MML_IsBcchPlmnIdInDestSimPlmnList(&(pstUserSpecPlmnId->stPlmnId),
                                                                            stSndEquPlmnInfo.ucEquPlmnNum,
                                                                            stSndEquPlmnInfo.astEquPlmnAddr);

    /* 手动模式下,如果用户指定的网络不在EPLMN列表中,则通知LMM当前的EPLMN信息为用户指定的网络
       否则通知LMM当前EPLMN信息 */
    if (NAS_MMC_PLMN_SELECTION_MODE_MANUAL == NAS_MMC_GetPlmnSelectionMode())
    {
        if ( (VOS_FALSE == ulIsSimPlmnIdInDestBcchPlmnList)
           && (VOS_FALSE == ulIsBcchPlmnIdInDestSimPlmnList) )
        {
            if ( (VOS_TRUE == ulRegFlag)                                        /* 指定PLMN注册成功 */
              && (VOS_TRUE == ulEplmnValidFlg) )                                /* EPLMN 标志存在 */
            {
                /* 将指定搜放在最后 */
                stSndEquPlmnInfo.ucEquPlmnNum++;
                stSndEquPlmnInfo.ucEquPlmnNum = (stSndEquPlmnInfo.ucEquPlmnNum <= NAS_MML_MAX_EQUPLMN_NUM) ? stSndEquPlmnInfo.ucEquPlmnNum : NAS_MML_MAX_EQUPLMN_NUM;
                stSndEquPlmnInfo.astEquPlmnAddr[stSndEquPlmnInfo.ucEquPlmnNum - 1].ulMcc = pstUserSpecPlmnId->stPlmnId.ulMcc;
                stSndEquPlmnInfo.astEquPlmnAddr[stSndEquPlmnInfo.ucEquPlmnNum - 1].ulMnc = pstUserSpecPlmnId->stPlmnId.ulMnc;
            }
            else
            {
                /* 只准备通知用户指定的网络 */
                stSndEquPlmnInfo.ucEquPlmnNum = 1;
                stSndEquPlmnInfo.astEquPlmnAddr[0].ulMcc = pstUserSpecPlmnId->stPlmnId.ulMcc;
                stSndEquPlmnInfo.astEquPlmnAddr[0].ulMnc = pstUserSpecPlmnId->stPlmnId.ulMnc;
            }
        }
    }

    NAS_MMC_BuildSndLmmEquPlmnInfo(&stSndEquPlmnInfo);
    NAS_MMC_SndLmmEquPlmnReq(&stSndEquPlmnInfo);
    NAS_MMC_SndOmEquPlmn();

    return;
}
VOS_UINT32  NAS_MMC_RcvMmaSysCfgSetReq_SysCfg_Init(
    VOS_UINT32                          ulEventType,
    struct MsgCB                       *pstMsg
)
{
    MMA_MMC_SYS_CFG_SET_REQ_STRU        *pstSysCfgMsg        = VOS_NULL_PTR;

    VOS_UINT32                          ulRrcConnExistFlag;
    VOS_UINT32                          ulNeedSyscfgPlmnSrch;
    NAS_MML_NET_RAT_TYPE_ENUM_UINT8     enCurrRat;
    VOS_UINT32                          ulFlg;
    VOS_UINT32                          ulUsimStausFlg;
    NAS_MMC_PLMN_SELECTION_MODE_ENUM_UINT8 enPlmnSelectionMode;

    NAS_MML_PLMN_RAT_PRIO_STRU         *pstPrePrioRatList;
    NAS_MML_PLMN_RAT_PRIO_STRU          stSyscfgPrioRatList;

    pstPrePrioRatList = NAS_MML_GetMsPrioRatList();

    /* 取得当前的SYSCFG消息 */
    pstSysCfgMsg         = (MMA_MMC_SYS_CFG_SET_REQ_STRU *)pstMsg;


    /* 若用户设置的SYSCFG消息只有漫游特性改变,则不需要通知接入层 */
    if ( VOS_TRUE == pstSysCfgMsg->ucOnlyRoamParaChanged )
    {
        /* 向MMA回复SYSCFG设置成功原语 */
        NAS_MMC_SndMmaSysCfgCnf(MMA_MMC_SYS_CFG_SET_SUCCESS);

        /* 默认漫游设置不需要进行搜网 */
        ulNeedSyscfgPlmnSrch = VOS_FALSE;

        /* 判断SYSCFG对ROAM特性的设置是否需要导致搜网 */
        ulUsimStausFlg = NAS_MML_IsUsimStausValid();
        ulFlg          = NAS_MMC_CheckRoamSettingPlmnSelection_SysCfg(pstSysCfgMsg);
        if ( (VOS_TRUE == ulUsimStausFlg)
          && (VOS_TRUE == ulFlg) )
        {
            ulNeedSyscfgPlmnSrch = VOS_TRUE;
            /*手动模式时,syscfg需要触发搜网时,需要将当前正常服务的plmn和接入技术保存一下作为用户重选的plmn id和接入技术 */
            enPlmnSelectionMode = NAS_MMC_GetPlmnSelectionMode();
            if ( NAS_MMC_PLMN_SELECTION_MODE_MANUAL == enPlmnSelectionMode)
            {
                /* 保存指定搜网前驻留的PlmnID及接入技术 */
                NAS_MMC_SaveUserReselPlmnInfo();
            }
        }

        /* 保存用户设置的漫游信息 */
        NAS_MML_SetRoamCapability(pstSysCfgMsg->enRoamCapability);

        /* 通知上层状态机SYSCFG状态机运行结果,syscfg设置成功 */
        NAS_MMC_SndSysCfgRslt(VOS_TRUE, ulNeedSyscfgPlmnSrch);

        /* 退出SYSCFG状态机 */
        NAS_MMC_FSM_QuitFsmL2();

        return VOS_TRUE;
    }


    /* 保存入口消息 */
    NAS_MMC_SaveCurEntryMsg(ulEventType, pstMsg);


    /* 根据当前模信息,完成向接入层下发SYSCFG顺序表的设置  */
    NAS_MMC_SetSysCfgSendingOrder_SysCfg( NAS_MMC_GetDestModeRat_SysCfg(pstSysCfgMsg) );

    /* 判断SYSCFG设置是否需要发起搜网 */
    ulNeedSyscfgPlmnSrch = NAS_MMC_IsPlmnSelectionNeeded_SysCfg(pstSysCfgMsg);

    /* 保存搜网信息到状态机上下文中 */
    NAS_MMC_SetPlmnSearchFlag_SysCfg(ulNeedSyscfgPlmnSrch);

    /*手动模式时,syscfg需要触发搜网时,需要将当前正常服务的plmn和接入技术保存一下作为用户重选的plmn id和接入技术 */
    enPlmnSelectionMode = NAS_MMC_GetPlmnSelectionMode();
    if ( ( NAS_MMC_PLMN_SELECTION_MODE_MANUAL == enPlmnSelectionMode)
      && (VOS_TRUE == ulNeedSyscfgPlmnSrch))
    {
        /* 保存指定搜网前驻留的PlmnID及接入技术 */
        NAS_MMC_SaveUserReselPlmnInfo();
    }

    /* 保持syscfg设置前的接入技术和优先级 */
    NAS_MMC_SetPrePrioRatList_SysCfg(pstPrePrioRatList);

    /* 赋值用户设置的接入技术优先级 */
    PS_MEM_CPY(&stSyscfgPrioRatList,
               &(pstSysCfgMsg->stRatPrioList),
               sizeof(NAS_MML_PLMN_RAT_PRIO_STRU) );
    NAS_MML_SetMsSysCfgPrioRatList(&stSyscfgPrioRatList);

    /* 获取当前模的信令链接存在信息 */
    ulRrcConnExistFlag   = NAS_MML_IsRrcConnExist();

    if ( (VOS_TRUE == ulNeedSyscfgPlmnSrch) && (VOS_FALSE == ulRrcConnExistFlag) )
    {
        /* 向GMM发送搜网指示 */
        NAS_MMC_SndGmmPlmnSchInit();

        /* 向MM发送搜网指示 */
        NAS_MMC_SndMmPlmnSchInit();
    }

    /* 当前不需要搜网或不存在信令链接 */
    if ( (VOS_FALSE == ulNeedSyscfgPlmnSrch)
      || (VOS_FALSE == ulRrcConnExistFlag) )
    {
        /* 获取需要设置SYSCFG的接入技术 */
        enCurrRat             = NAS_MMC_GetNextSettingRat_SysCfg();
        NAS_MMC_SetRatModeSysCfgReq_SysCfg(enCurrRat, pstSysCfgMsg);

        return VOS_TRUE;
    }

    /* 当前SYSCFG设置完后需要搜网,且当前有信令链接存在,则进行如下设置 */
#if (FEATURE_ON == FEATURE_LTE)

    /* 取得当前的接入模式 */
    enCurrRat            = NAS_MML_GetCurrNetRatType();
    if ( NAS_MML_NET_RAT_TYPE_LTE == enCurrRat )
    {
        /* 当前为L模,向lmm下发链接释放请求  */
        NAS_MMC_SndLmmRelReq();

        NAS_MMC_SetRelRequestFlag_SysCfg(VOS_TRUE);

        /* 进行SYSCFG状态机的子状态的迁移:迁移到等待链接释放子状态 */
        NAS_MMC_FSM_SetCurrState(NAS_MMC_SYSCFG_STA_WAIT_EPS_CONN_REL_IND);

        /* 启动等待L模回复定时器 */
        NAS_MMC_StartTimer(TI_NAS_MMC_WAIT_EPS_CONN_REL_IND, TI_NAS_MMC_WAIT_EPS_CONN_REL_IND_LEN);

        return VOS_TRUE;
    }
#endif

    /* 当前在GU模下,主动请求释放链接 */
    NAS_MMC_SndMmRelReq();
    NAS_MMC_SndGmmRelReq();

    NAS_MMC_SetSpecPlmnSearchState(NAS_MMC_SPEC_PLMN_SEARCH_RUNNING);

    NAS_MMC_SetRelRequestFlag_SysCfg(VOS_TRUE);

    /* 进行SYSCFG状态机的子状态的迁移:迁移到等待链接释放子状态 */
    NAS_MMC_FSM_SetCurrState(NAS_MMC_SYSCFG_STA_WAIT_RRC_CONN_REL_IND);

    /* 启动等待回复定时器 */
    NAS_MMC_StartTimer(TI_NAS_MMC_WAIT_RRC_CONN_REL, TI_NAS_MMC_WAIT_RRC_CONN_REL_LEN);

    return VOS_TRUE;
}