VOS_VOID  NAS_UTRANCTRL_InitCtx(
    VOS_UINT8                           ucInitType
)
{
#if (FEATURE_ON == FEATURE_UE_MODE_TDS)
    NAS_UTRANCTRL_CTX_STRU             *pstCtx;

    pstCtx = NAS_UTRANCTRL_GetUtranCtrlCtx();

    /* 初始化MS配置信息 */
    NAS_UTRANCTRL_InitMsCfgCtx(&(pstCtx->stMsCfgInfo));

    /* 初始化UTRANCTRL当前状态机上下文 */
    NAS_UTRANCTRL_InitCurrFsmCtx(&(pstCtx->stCurFsm));


    /* 初始化UTRANCTRL模块主控信息 */
    NAS_UTRANCTRL_InitMainCtrlInfo(&(pstCtx->stMainCtrlInfo));

    /* 初始化UTRANCTRL状态机缓存消息队列上下文 */
    NAS_UTRANCTRL_InitFsmBufferEntryMsgQueueCtx(&(pstCtx->stBufferEntryMsgQueue));

    /* 初始化UTRANCTRL状态机搜网控制上下文 */
    NAS_UTRANCTRL_InitFsmPlmnSearchCtrlCtx(&(pstCtx->stPlmnSearchCtrl));

    /* 初始化可维可测信息 */
    NAS_UTRANCTRL_InitMaintainInfo( ucInitType,
                                    &(pstCtx->stMaintainInfo));

    /* 状态机表的初始化 */
    NAS_UTRANCTRL_RegFsm();

#endif
}
VOS_UINT32 NAS_UTRANCTRL_RestoreContextData_Main(
    VOS_UINT32                          ulEventType,
    struct MsgCB                       *pstMsg
)
{
    NAS_UTRANCTRL_CTX_STRU                                  *pstUtranCtrlCtx;
    NAS_MML_PC_REPLAY_COMPRESS_CONTEXT_STRU                 *pstRcMsg;
    VOS_UINT32                                               ulExpectCount;
    VOS_UINT32                                               ulCount;
    VOS_UINT32                                               ulItemCount;
    VOS_UINT8                                               *pucDest;
    VOS_UINT8                                               *pucSrc;
    VOS_UINT32                                               ulDestLen;

    pstUtranCtrlCtx     = NAS_UTRANCTRL_GetUtranCtrlCtx();

    ulExpectCount = 0;
    ulCount       = 0;
    ulItemCount   = 0;
    ulExpectCount = sizeof(NAS_UTRANCTRL_CTX_STRU);

    /*注册状态机*/
    NAS_UTRANCTRL_RegFsm();

    pstRcMsg = (NAS_MML_PC_REPLAY_COMPRESS_CONTEXT_STRU *)pstMsg;
    pucSrc   = pstRcMsg->aucData;

    /* 解析总长度 */
    PS_MEM_CPY(&ulCount, pucSrc, sizeof(VOS_UINT32));
    pucSrc += sizeof(VOS_UINT32);

    if( ulExpectCount != ulCount )
    {
        return VOS_FALSE;
    }

    /* g_stNasUtranCtrlCtx目标地址 */
    pucDest     = (VOS_UINT8 *)pstUtranCtrlCtx;
    ulDestLen   = sizeof(NAS_UTRANCTRL_CTX_STRU);

    /* 解压缩 */
    if (VOS_FALSE == NAS_MML_UnCompressData(pucDest, &ulDestLen, pucSrc, &ulItemCount) )
    {
        return VOS_FALSE;
    }

    pucSrc += (ulItemCount);

    NAS_UTRANCTRL_ReloadFsmDesc(NAS_UTRANCTRL_GetCurFsmAddr(), pstUtranCtrlCtx->stCurFsm.enFsmId);


    NAS_INFO_LOG(WUEPS_PID_MMC, "UTRANCTRL: NAS_UTRANCTRL_RestoreContextData_Main - data is restored.");

    return VOS_TRUE;
}