VOS_UINT32 NAS_EMM_PreProcMsgEmmStatus( NAS_EMM_CN_MSG_STRU_UNION * pCnMsg ) { NAS_EMM_CN_EMM_STATU_STRU *pstTmpRcvMsg = NAS_EMM_NULL_PTR; NAS_LMM_PUBM_LOG_NORM("NAS_EMM_PreProcMsgEmmStatus enter!"); /*结构化消息,取出消息体*/ pstTmpRcvMsg = (NAS_EMM_CN_EMM_STATU_STRU *)pCnMsg; NAS_LMM_PUBM_LOG1_NORM("NAS_EMM_PreProcMsgEmmStatus: EMM ERROR CAUSE ",pstTmpRcvMsg->ucEmmCause); return NAS_LMM_MSG_HANDLED; }
/*lint -e961*/ VOS_UINT32 NAS_LMM_GetPlmnExactlyComparaFlg( VOS_VOID ) { NAS_LMM_PUBM_LOG1_NORM("NAS_LMM_GetPlmnExactlyComparaFlg:NAS_MML_GetPlmnExactlyComparaFlg() =", NAS_MML_GetPlmnExactlyComparaFlg()); #ifndef __PS_WIN32_RECUR__ if (VOS_TRUE == NAS_MML_GetPlmnExactlyComparaFlg()) { NAS_LMM_LogPlmnexactlyCmpFlag(VOS_TRUE); return NAS_LMM_SUCC; } NAS_LMM_LogPlmnexactlyCmpFlag(VOS_FALSE); return NAS_LMM_FAIL; #else if (VOS_TRUE == Stub_NAS_MML_GetPlmnExactlyComparaFlg()) { return NAS_LMM_SUCC; } return NAS_LMM_FAIL; #endif }
VOS_VOID NAS_LMM_PrintFsmTimer(NAS_LMM_PARALLEL_FSM_ENUM_UINT16 enParallelFsmId) { NAS_LMM_FSM_STATE_STRU *pstCurFsm; /* 状态机地址 */ NAS_LMM_TIMER_CTRL_STRU *pstTimerSta; /* 状态定时器 */ NAS_LMM_TIMER_CTRL_STRU *pstTimerPtl; /* 协议定时器 */ VOS_UINT16 usPtlTid; /* 入口检查 */ if ( NAS_LMM_PARA_FSM_ID_INVALID(enParallelFsmId)) { NAS_LMM_PUBM_LOG1_ERR("NAS_LMM_FSM_PushTimer, The input is illegal! enParalFsmId", enParallelFsmId); return; } pstCurFsm = NAS_LMM_GetCurFsmAddr(NAS_LMM_PARALLEL_FSM_EMM); pstTimerSta = NAS_LMM_GetMmTimerStaCtrlAddrByIdx(pstCurFsm->enStaTId); /*判断当前状态定时器状态为停止和挂起*/ if(VOS_NULL_PTR == pstTimerSta->psthTimer) { /*状态定时器处于挂起状态*/ if((NAS_LMM_TIMER_SS_SUSPENDING == pstTimerSta->ucTimerSs) && (NAS_LMM_TIMER_RS_RUNNING == pstTimerSta->ucTimerRs)) { NAS_LMM_PUBM_LOG1_WARN("NAS_LMM_PrintFsmTimer: State Timer is suspended! enStaTId:", pstCurFsm->enStaTId); } /*状态定时器处于停止状态*/ else { NAS_LMM_PUBM_LOG1_WARN("NAS_LMM_PrintFsmTimer: State Timer is stoped! enStaTId:", pstCurFsm->enStaTId); } } /*状态定时器处于运行状态*/ /*协议定时器*/ for(usPtlTid = TI_NAS_LMM_PTL_TI_PUB_BOUNDARY_START+1; usPtlTid < NAS_LMM_PTL_TI_BUTT; usPtlTid++) { pstTimerPtl = NAS_LMM_GetMmTimerPtlCtrlAddrByIdx(usPtlTid); /*协议定时器处于运行状态*/ if(VOS_NULL_PTR != pstTimerPtl->psthTimer) { NAS_LMM_PUBM_LOG1_NORM("NAS_LMM_PrintFsmTimer: Ptl Timer is running! PtlTid:", usPtlTid); } /*协议定时器处于停止状态*/ else { NAS_LMM_PUBM_LOG1_NORM("NAS_LMM_PrintFsmTimer: Ptl Timer is stoped! PtlTid:", usPtlTid); } } return; }
VOS_UINT32 NAS_LMM_OutMsgFromQue( NAS_LMM_PARALLEL_FSM_ENUM_UINT16 enParalFsmId, VOS_UINT32 ulBufPriLevel, NAS_LMM_BUFF_MSG_STRU *pstGetMsg) { VOS_UINT32 ulLoop; VOS_UINT8 *pucMsgCnt = NAS_LMM_NULL_PTR; NAS_LMM_BUFF_MSG_STRU *pstBuffer = NAS_LMM_NULL_PTR; NAS_LMM_FSM_MSG_BUF_STRU *pstFsmMsgBuffAddr = NAS_LMM_NULL_PTR; VOS_UINT32 ulRslt = NAS_LMM_NOT_TRAVEL_BUFFER_MSG; /* 参数检查*/ if (enParalFsmId != NAS_LMM_PARALLEL_FSM_EMM ) { NAS_LMM_PUBM_LOG1_WARN("NAS_LMM_OutMsgFromQue: FsmId error, FsmId:", enParalFsmId); return ulRslt; } if (NAS_LMM_NULL_PTR == pstGetMsg) { NAS_LMM_PUBM_LOG_WARN("NAS_LMM_OutMsgFromQue: pstGetMsg is null"); return ulRslt; } /* 获取缓存FSM Buffer的地址 */ pstFsmMsgBuffAddr = NAS_LMM_GetFsmBufAddr( enParalFsmId ); if(NAS_LMM_NULL_PTR == pstFsmMsgBuffAddr) { NAS_LMM_PUBM_LOG_WARN( "NAS_LMM_OutMsgFromQue, Get pstFsmMsgBuffAddr Fail!"); return ulRslt; } /* 依据优先级取相关参数*/ if (NAS_LMM_STORE_HIGH_PRIO_MSG == ulBufPriLevel) { NAS_LMM_PUBM_LOG_NORM("NAS_LMM_OutMsgFromQue: high prio buff"); pstBuffer = pstFsmMsgBuffAddr->astHighPrioBufQue; pucMsgCnt = &(pstFsmMsgBuffAddr->ucHighPrioCnt); } else if (NAS_LMM_STORE_LOW_PRIO_MSG == ulBufPriLevel) { NAS_LMM_PUBM_LOG_NORM("NAS_LMM_OutMsgFromQue: low prio buff"); pstBuffer = pstFsmMsgBuffAddr->astLowPrioBufQue; pucMsgCnt = &(pstFsmMsgBuffAddr->ucLowPrioCnt); } else { NAS_LMM_PUBM_LOG_WARN("NAS_LMM_OutMsgFromQue is entered"); return ulRslt; } /* 队列中有消息存在 */ if ((*pucMsgCnt > 0) && (*pucMsgCnt <= NAS_EMM_BUF_MSG_MAX_NUM)) { NAS_LMM_PUBM_LOG1_NORM("NAS_LMM_OutMsgFromQue: ucMsgCnt valid, *pucMsgCnt = ",*pucMsgCnt); /* 将第一个发送出来 */ pstGetMsg->ulEvtType = pstBuffer[0].ulEvtType; pstGetMsg->pBuffMsg = pstBuffer[0].pBuffMsg; /* 后面的依次前移 */ for (ulLoop = 1; ulLoop < *pucMsgCnt; ulLoop++) { pstBuffer[ulLoop - 1].pBuffMsg = pstBuffer[ulLoop].pBuffMsg; pstBuffer[ulLoop - 1].ulEvtType = pstBuffer[ulLoop].ulEvtType; } /* 将消息缓存指针置空 */ pstBuffer[*pucMsgCnt - 1].pBuffMsg = VOS_NULL_PTR; pstBuffer[*pucMsgCnt - 1].ulEvtType = 0; /* 数目-1 */ (*pucMsgCnt) --; ulRslt = NAS_LMM_TRAVEL_BUFFER_MSG; } else { NAS_LMM_PUBM_LOG_NORM("NAS_LMM_OutMsgFromQue: *pucMsgCnt is invalid"); } return ulRslt; }