/*lint -e961*/ VOS_VOID NAS_EMM_SER_Init(VOS_VOID) { NAS_EMM_SER_LOG_NORM("NAS_EMM_SER_Init START INIT..."); NAS_LMM_MEM_SET(&g_stEmmSERCtrlTbl, 0, sizeof(g_stEmmSERCtrlTbl)); NAS_LMM_MEM_SET(&g_stEmmEsmMsgBuf, 0, sizeof(g_stEmmEsmMsgBuf)); return; }
VOS_VOID NAS_EMM_MmSendCsfbSerEndInd ( MM_LMM_CSFB_SERVICE_RSLT_ENUM_UINT32 enCsfbSrvRslt, NAS_EMM_CN_CAUSE_ENUM_UINT8 ucEMMCnCause ) { LMM_MM_CSFB_SERVICE_END_IND_STRU *pstMmCsfbSerEndInd = VOS_NULL_PTR; /* 如果已经收到ABORT消息,则不用通知MM终止CSFB流程 */ if (NAS_EMM_CSFB_ABORT_FLAG_VALID == NAS_EMM_SER_GetEmmSerCsfbAbortFlag()) { NAS_EMM_SER_LOG_NORM("NAS_EMM_MmSendCsfbSerEndInd:CSFB is already aborted!"); return ; } /* 申请DOPRA消息 */ pstMmCsfbSerEndInd = (VOS_VOID *) NAS_LMM_GetLmmMmcMsgBuf(sizeof(LMM_MM_CSFB_SERVICE_END_IND_STRU)); if (NAS_LMM_NULL_PTR == pstMmCsfbSerEndInd) { /* 打印异常,ERROR_LEVEL */ NAS_EMM_SER_LOG_ERR("NAS_EMM_MmSendCsfbSerEndInd: MSG ALLOC ERROR!!!"); return ; } /* 清空 */ NAS_LMM_MEM_SET(pstMmCsfbSerEndInd, 0, sizeof(LMM_MM_CSFB_SERVICE_END_IND_STRU)); /* 打包VOS消息头 */ EMM_PUBU_COMP_MM_MSG_HEADER((pstMmCsfbSerEndInd), NAS_EMM_GET_MSG_LENGTH_NO_HEADER(LMM_MM_CSFB_SERVICE_END_IND_STRU)); /* 填充消息ID */ pstMmCsfbSerEndInd->ulMsgId = ID_LMM_MM_CSFB_SERVICE_END_IND; /* 填充消息体 */ pstMmCsfbSerEndInd->ulOpId = NAS_EMM_OPID_MM; pstMmCsfbSerEndInd->enCsfbSrvRslt = enCsfbSrvRslt; pstMmCsfbSerEndInd->ulCnCause = ucEMMCnCause; /* 发送DOPRA消息 */ NAS_LMM_SendLmmMmcMsg((VOS_VOID*)pstMmCsfbSerEndInd); return; }
VOS_VOID NAS_EMM_SER_ClearResource( VOS_VOID ) { NAS_EMM_SER_LOG_NORM("NAS_EMM_SER_ClearResource entered."); /* 清空SER全局变量*/ NAS_LMM_MEM_SET(&g_stEmmSERCtrlTbl, 0, sizeof(g_stEmmSERCtrlTbl)); /* 释放缓存的ESM消息*/ NAS_EMM_SerClearEsmDataBuf(); /* 清空接入Bar信息*/ NAS_EMM_ClearBarResouce(); /* 停止Service流程相关的所有定时器*/ NAS_LMM_StopStateTimer(TI_NAS_EMM_STATE_SERVICE_T3417); NAS_LMM_StopStateTimer(TI_NAS_EMM_STATE_T3440); NAS_LMM_StopStateTimer(TI_NAS_EMM_STATE_SERVICE_T3417_EXT); return; }