VOS_UINT32 TAF_APS_GetNextCachedMsg( TAF_APS_ENTRY_MSG_STRU *pstEntryMsg ) { TAF_APS_MSG_QUEUE_STRU *pstMsgQueue = VOS_NULL_PTR; pstMsgQueue = TAF_APS_GetCachMsgBufferAddr(); if ( 0 == pstMsgQueue->ucCacheMsgNum ) { TAF_INFO_LOG(WUEPS_PID_TAF,"TAF_APS_GetNextCachedMsg:Empty buffer"); return VOS_FALSE; } /* 按照先入先出原则,默认取第1个缓存内容 */ PS_MEM_CPY(pstEntryMsg, &(pstMsgQueue->astMsgQueue[0].stMsgEntry), sizeof(TAF_APS_ENTRY_MSG_STRU)); /* 消息已经取出则清除当前缓存 */ TAF_APS_ClearCacheMsg(pstEntryMsg->ulEventType); return VOS_TRUE; }
TAF_MMA_INTERNAL_MSG_BUF_STRU* TAF_MMA_GetNextInternalMsg( VOS_VOID ) { TAF_MMA_INTERNAL_MSG_BUF_STRU *pstNextMsg = VOS_NULL_PTR; TAF_MMA_CONTEXT_STRU *pstMmaCtx = VOS_NULL_PTR; VOS_UINT8 ucNextIndex; pstMmaCtx = TAF_MMA_GetMmaCtxAddr(); if (pstMmaCtx->stInternalMsgQueue.ucHeader != pstMmaCtx->stInternalMsgQueue.ucTail) { ucNextIndex = pstMmaCtx->stInternalMsgQueue.ucHeader; pstNextMsg = (TAF_MMA_INTERNAL_MSG_BUF_STRU *)&(pstMmaCtx->stInternalMsgQueue.astMmaMsgQueue[ucNextIndex]); /* 取完一条消息,头指针向后偏移 */ (pstMmaCtx->stInternalMsgQueue.ucHeader)++; (pstMmaCtx->stInternalMsgQueue.ucHeader) %= TAF_MMA_MAX_MSG_QUEUE_SIZE; return pstNextMsg; } TAF_INFO_LOG(WUEPS_PID_MMA, "TAF_MMA_GetNextInternalMsg:Empty Internal Msg"); return VOS_NULL_PTR; }
VOS_UINT32 TAF_MMA_GetNextCachedMsg( TAF_MMA_ENTRY_MSG_STRU *pstEntryMsg ) { TAF_MMA_MSG_QUEUE_STRU *pstMsgQueue = VOS_NULL_PTR; pstMsgQueue = TAF_MMA_GetCachMsgBufferAddr(); if (0 == pstMsgQueue->ucCacheMsgNum ) { TAF_INFO_LOG(WUEPS_PID_MMA, "TAF_MMA_GetNextCachedMsg:Empty buffer"); return VOS_FALSE; } if (VOS_TRUE == TAF_MMA_GetNextPrioCachedMsg(pstEntryMsg, TAF_MMA_MSG_CACHE_PRIO_HIGH)) { return VOS_TRUE; } if (VOS_TRUE == TAF_MMA_GetNextPrioCachedMsg(pstEntryMsg, TAF_MMA_MSG_CACHE_PRIO_MIDDLE)) { return VOS_TRUE; } if (VOS_TRUE == TAF_MMA_GetNextPrioCachedMsg(pstEntryMsg, TAF_MMA_MSG_CACHE_PRIO_LOW)) { return VOS_TRUE; } return VOS_FALSE; }
VOS_VOID TAF_CBA_RcvMmcNetModeInd( VOS_UINT8 ucCurrNet ) { TAF_CBA_NET_RAT_TYPE_ENUM_UINT8 enNetType; /* 接入技术进行转换 */ TAF_CBA_ConvertMnNetModeToCbaFormat(ucCurrNet, &enNetType); /* 如果模式无效,直接返回,不更改*/ if ( TAF_CBA_NET_RAT_TYPE_BUTT == enNetType ) { TAF_INFO_LOG(WUEPS_PID_TAF, "TAF_CBA_RcvMmcNetModeInd:INVALID Mode "); return; } /* 如果模式未发生改变,则不需要通知AS */ if ( enNetType == TAF_CBA_GetNetRatType() ) { TAF_INFO_LOG(WUEPS_PID_TAF, "TAF_CBA_RcvMmcNetModeInd:Same Mode "); return; } /* 记录新的接入模式 */ TAF_CBA_SetNetRatType(enNetType); /* 当前宏开关未打开或CBS未激活,则直接返回 */ if ( VOS_FALSE == TAF_CBA_IsNeedActAsCbs()) { TAF_INFO_LOG(WUEPS_PID_TAF, "TAF_CBA_RcvMmcNetModeInd:CBS Disable "); return; } /* 查询是否从USIM中获取到CBS ID相关内容,如果当前未获取则不进行任何处理直接返回 等待USIM初始化完成后,在继续下发相关消息进行处理 */ /* 激活列表不为空时激活AS的CBS功能 */ if (VOS_FALSE == TAF_CBA_IsCbsActiveListEmpty()) { TAF_CBA_SndAsActiveCbsReq(TAF_CBS_CFG_ACTIVE); } }
VOS_VOID TAF_MMA_InitDelayRptCtrlInfo(VOS_VOID) { /* GUL模试下,服务状态延时上报nv项初始化,初始化为关闭 */ TAF_MMA_SetDelayReportServiceStatusFlg(VOS_FALSE); TAF_MMA_SetDelayReportServiceStatusTimerLen(0); #if (FEATURE_ON == FEATURE_UE_MODE_CDMA) /* CL模试下,服务状态延时上报nv项初始化,初始化为关闭 */ TAF_MMA_SetCLDelayReptSrvStatusFlg(VOS_FALSE); TAF_MMA_SetCLDelayReptSrvStatusTimerLen(0); #endif PS_MEM_SET(TAF_MMA_GetCLNoServiceDelayRptInfo(), 0x00, sizeof(TAF_MMA_CL_NO_SERVICE_DELAY_RPT_STRU)); TAF_MMA_GetCLNoServiceDelayRptInfo()->enDelayType = TAF_MMA_DELAY_CL_REPORT_TYPE_BUTT; TAF_INFO_LOG(WUEPS_PID_MMA, "CLNoServiceDelayRptInfo Init To 0"); }
VOS_UINT32 TAF_CBA_IsDupMidsInActiveList( TAF_CBA_CBMI_RANGE_LIST_STRU *pstAddbMids ) { VOS_UINT32 ulCbmirInx; VOS_UINT32 ulRet; TAF_CBA_CBMI_RANGE_LIST_STRU *pstMemCbmiRangList; TAF_CBA_CBMI_RANGE_STRU *pstAddCbmirInfo; VOS_UINT32 ulCbmidIdx; pstMemCbmiRangList = TAF_CBA_GetCbMiRangeList(); ulRet = VOS_FALSE; if ( pstAddbMids->usCbmirNum > TAF_CBA_MAX_CBMID_RANGE_NUM) { TAF_ERROR_LOG(WUEPS_PID_TAF, "TAF_CBA_IsDupMidsInActiveList: usCbmirNum Error."); pstAddbMids->usCbmirNum = TAF_CBA_MAX_CBMID_RANGE_NUM; } pstAddCbmirInfo = pstAddbMids->astCbmiRangeInfo; /* 检查是否有存在 */ for ( ulCbmirInx = 0 ; ulCbmirInx < pstAddbMids->usCbmirNum; ulCbmirInx++ ) { ulRet = TAF_CBA_IsCbmirExist(&pstAddCbmirInfo[ulCbmirInx], pstMemCbmiRangList, &ulCbmidIdx); if ( VOS_TRUE == ulRet ) { TAF_INFO_LOG(WUEPS_PID_TAF, "TAF_CBA_IsDupMidsInActiveList: Cross Mids."); return VOS_TRUE; } } return VOS_FALSE; }
VOS_UINT32 TAF_MMA_IsExistCacheMsg( VOS_UINT32 ulEventType, VOS_UINT32 *pulIndex ) { TAF_MMA_MSG_QUEUE_STRU *pstMsgQueue = VOS_NULL_PTR; VOS_UINT32 i; pstMsgQueue = TAF_MMA_GetCachMsgBufferAddr(); *pulIndex = 0; for ( i = 0 ; i < pstMsgQueue->ucCacheMsgNum ; i++ ) { if ( ulEventType == pstMsgQueue->astMsgQueue[i].stMsgEntry.ulEventType) { *pulIndex = i; return VOS_TRUE; } } TAF_INFO_LOG(WUEPS_PID_MMA, "TAF_MMA_IsExistCacheMsg:not match MSG"); return VOS_FALSE; }