VOS_VOID GTTF_MNTN_ErrlogTbfAbnmlEvt(VOS_UINT32 ulPid, VOS_UINT16 usType) { TTF_MNTN_ERR_LOG_GRLC_TBF_ABNML_STRU stTbfAbnml; VOS_UINT8 ucAlmLev; MODEM_ID_ENUM_UINT16 enModemId; ucAlmLev = TTF_ERR_LOG_GET_ALM_LEV(TTF_ERR_LOG_ALM_ID_GPRS_TBF_ABNML); enModemId = VOS_GetModemIDFromPid(ulPid); if (MODEM_ID_BUTT <= enModemId) { TTF_LOG1(ulPid, 0, PS_PRINT_ERROR, "GTTF_MNTN_ErrlogTbfAbnmlEvt: Invalid ModemId ", enModemId); return; } if (!TTF_ERR_LOG_NEED_RPT_LEV(enModemId, ucAlmLev)) { return; } TTF_ERR_LOG_FILL_HEADER( &stTbfAbnml.stHeader, enModemId, TTF_ERR_LOG_ALM_ID_GPRS_TBF_ABNML, ucAlmLev, (sizeof(TTF_MNTN_ERR_LOG_GRLC_TBF_ABNML_STRU) - sizeof(OM_ERR_LOG_HEADER_STRU))); stTbfAbnml.usAbnmlType = (VOS_UINT16)usType; TTF_MNTN_ErrlogBufPut(ulPid, (VOS_CHAR *)&stTbfAbnml, sizeof(TTF_MNTN_ERR_LOG_GRLC_TBF_ABNML_STRU)); }
VOS_VOID WTTF_MNTN_ErrlogTfciFailEvt(VOS_UINT8 ucMacState, TTF_MNTN_ERR_LOG_TFC_ERR_NO_CHOICE_ENUM8 enType) { VOS_UINT8 ucAlmLev; WTTF_MNTN_TFCI_FAIL_STRU stTtfMNtnTfciFail; MODEM_ID_ENUM_UINT16 enModemId; ucAlmLev = TTF_ERR_LOG_GET_ALM_LEV(TTF_ERR_LOG_ALM_ID_WRLC_TFCI_FAIL); enModemId = VOS_GetModemIDFromPid(WUEPS_PID_RLC); if (!TTF_ERR_LOG_NEED_RPT_LEV(enModemId, ucAlmLev)) { return; } TTF_ERR_LOG_FILL_HEADER( &stTtfMNtnTfciFail.stHeader, enModemId, TTF_ERR_LOG_ALM_ID_WRLC_TFCI_FAIL, ucAlmLev, (sizeof(WTTF_MNTN_TFCI_FAIL_STRU) - sizeof(OM_ERR_LOG_HEADER_STRU))); stTtfMNtnTfciFail.ucMacState = ucMacState; stTtfMNtnTfciFail.enType = enType; /* 异常事件写入缓存中 */ TTF_MNTN_ErrlogBufPut(WUEPS_PID_MAC, (VOS_CHAR *)&stTtfMNtnTfciFail, sizeof(WTTF_MNTN_TFCI_FAIL_STRU)); return; }
VOS_VOID WTTF_MNTN_ErrlogRlcResetEvt(VOS_UINT8 ucRbId, TTF_MNTN_ERR_LOG_WRLC_RESET_TYPE_ENUM_UINT8 enResetType) { TTF_MNTN_ERR_LOG_WRLC_RESET_STRU stTtfMntnWrlcReset; VOS_UINT8 ucAlmLev; MODEM_ID_ENUM_UINT16 enModemId; ucAlmLev = TTF_ERR_LOG_GET_ALM_LEV(TTF_ERR_LOG_ALM_ID_WRLC_RESET); enModemId = VOS_GetModemIDFromPid(WUEPS_PID_RLC); if (!TTF_ERR_LOG_NEED_RPT_LEV(enModemId, ucAlmLev)) { return; } TTF_ERR_LOG_FILL_HEADER( &stTtfMntnWrlcReset.stHeader, enModemId, TTF_ERR_LOG_ALM_ID_WRLC_RESET, ucAlmLev, (sizeof(TTF_MNTN_ERR_LOG_WRLC_RESET_STRU) - sizeof(OM_ERR_LOG_HEADER_STRU))); stTtfMntnWrlcReset.ucRbId = ucRbId; stTtfMntnWrlcReset.enResetType = enResetType; stTtfMntnWrlcReset.usResetCnt = 1; /* 生成Reset事件 */ TTF_MNTN_ErrlogBufPut(WUEPS_PID_RLC, (VOS_CHAR *)&stTtfMntnWrlcReset, sizeof(TTF_MNTN_ERR_LOG_WRLC_RESET_STRU)); }
VOS_VOID GTTF_MNTN_ErrlogMdlErrEvt(VOS_UINT32 ulPid, VOS_VOID *pMdlErr) { TTF_MNTN_ERR_LOG_GDL_MDL_ERR_STRU stMdlErrEvt; VOS_UINT8 ucAlmLev; MODEM_ID_ENUM_UINT16 enModemId; if (VOS_NULL_PTR == pMdlErr) { return; } ucAlmLev = TTF_ERR_LOG_GET_ALM_LEV(TTF_ERR_LOG_ALM_ID_GSM_MDL_ERR); enModemId = VOS_GetModemIDFromPid(ulPid); if (!TTF_ERR_LOG_NEED_RPT_LEV(enModemId, ucAlmLev)) { return; } TTF_ERR_LOG_FILL_HEADER( &stMdlErrEvt.stHeader, enModemId, TTF_ERR_LOG_ALM_ID_GSM_MDL_ERR, ucAlmLev, (sizeof(TTF_MNTN_ERR_LOG_GDL_MDL_ERR_STRU) - sizeof(OM_ERR_LOG_HEADER_STRU))); PS_MEM_CPY(&stMdlErrEvt.stDlMdlErrInfo, pMdlErr, sizeof(TTF_MNTN_GDL_MDL_ERR_INFO_STRU)); TTF_MNTN_ErrlogBufPut(ulPid, (VOS_CHAR *)&stMdlErrEvt, sizeof(TTF_MNTN_ERR_LOG_GDL_MDL_ERR_STRU)); }
VOS_VOID WTTF_MNTN_ErrlogFlushRlcErrEvt(VOS_VOID) { VOS_UINT8 ucAlmLev; VOS_UINT8 ucRbIdIdx; VOS_UINT8 ucRbId; MODEM_ID_ENUM_UINT16 enModemId; ucAlmLev = TTF_ERR_LOG_GET_ALM_LEV(TTF_ERR_LOG_ALM_ID_WRLC_LI_ERR); enModemId = VOS_GetModemIDFromPid(WUEPS_PID_RLC); if (!TTF_ERR_LOG_NEED_RPT_LEV(enModemId, ucAlmLev)) { return; } for (ucRbIdIdx = 0; ucRbIdIdx < g_stErrLogLiErrCtx.ucLiErrRbCnt; ucRbIdIdx++) { ucRbId = g_stErrLogLiErrCtx.aucLiErrRbs[ucRbIdIdx]; if (ucRbId > UTRAN_MAX_RB_ID) { PS_MEM_SET(&g_stErrLogLiErrCtx, 0 ,sizeof(TTF_MNTN_ERR_LOG_WRLC_LI_ERR_CTX_STRU)); PS_LOG2(WUEPS_PID_RLC, 0, PS_PRINT_WARNING, "WTTF_MNTN_ErrlogFlushRlcErrEvt, the rbIdx <1> in g_stErrLogLiErrCtx.ucLiErrRbCnt is RbId <2>.", ucRbIdIdx, ucRbId); return; } /* 异常事件写入缓存中 */ TTF_MNTN_ErrlogBufPut(WUEPS_PID_RLC, (VOS_CHAR *)&(g_stErrLogLiErrCtx.astWrlcLiErrInfo[ucRbId]), sizeof(TTF_MNTN_ERR_LOG_WRLC_LI_ERR_STRU)); } PS_MEM_SET(&g_stErrLogLiErrCtx, 0 ,sizeof(TTF_MNTN_ERR_LOG_WRLC_LI_ERR_CTX_STRU)); return; }
VOS_VOID WTTF_MNTN_ErrlogRlcLiErrEvt(VOS_UINT8 ucRbId, TTF_MNTN_ERR_LOG_LI_ERR_TYPE_ENUM8 enLiErrType) { VOS_UINT8 ucAlmLev; MODEM_ID_ENUM_UINT16 enModemId; if (ucRbId > UTRAN_MAX_RB_ID) { PS_LOG1(WUEPS_PID_RLC, 0, PS_PRINT_WARNING, "WTTF_MNTN_ErrlogRlcLiErrEvt, ucRbId exceed the range.", ucRbId); return; } /* check need th record the Li error number */ ucAlmLev = TTF_ERR_LOG_GET_ALM_LEV(TTF_ERR_LOG_ALM_ID_WRLC_LI_ERR); enModemId = VOS_GetModemIDFromPid(WUEPS_PID_RLC); if (!TTF_ERR_LOG_NEED_RPT_LEV(enModemId, ucAlmLev)) { return; } if (0 == g_stErrLogLiErrCtx.ucLiErrRbCnt) { /* register the Li error callback function */ TTF_MNTN_ErrlogCbReg(WUEPS_PID_RLC, WTTF_MNTN_ErrlogFlushRlcErrEvt); } if (0 == g_stErrLogLiErrCtx.astWrlcLiErrInfo[ucRbId].stLiErrInfo.ulLiErrCnt) { /* if ucLiErrRbCnt is full,but the rb is avaible, the g_stErrLogLiErrCtx is fail */ if (g_stErrLogLiErrCtx.ucLiErrRbCnt >= UTRAN_MAX_RB_NUM) { PS_MEM_SET(&g_stErrLogLiErrCtx, 0 ,sizeof(TTF_MNTN_ERR_LOG_WRLC_LI_ERR_CTX_STRU)); PS_LOG1(WUEPS_PID_RLC, 0, PS_PRINT_WARNING, "WTTF_MNTN_ErrlogRlcLiErrEvt, g_stErrLogLiErrCtx.ucLiErrRbCnt exceed the range.", g_stErrLogLiErrCtx.ucLiErrRbCnt); return; } g_stErrLogLiErrCtx.aucLiErrRbs[g_stErrLogLiErrCtx.ucLiErrRbCnt] = ucRbId; g_stErrLogLiErrCtx.ucLiErrRbCnt ++; TTF_ERR_LOG_FILL_HEADER( &g_stErrLogLiErrCtx.astWrlcLiErrInfo[ucRbId].stHeader, enModemId, TTF_ERR_LOG_ALM_ID_WRLC_LI_ERR, ucAlmLev, (sizeof(TTF_MNTN_ERR_LOG_WRLC_LI_ERR_STRU) - sizeof(OM_ERR_LOG_HEADER_STRU))); g_stErrLogLiErrCtx.astWrlcLiErrInfo[ucRbId].stLiErrInfo.ulLstUpdtTs = 0; g_stErrLogLiErrCtx.astWrlcLiErrInfo[ucRbId].stLiErrInfo.ulLiErrCnt = 1; g_stErrLogLiErrCtx.astWrlcLiErrInfo[ucRbId].stLiErrInfo.ucRbId = ucRbId; TTF_ERR_LOG_ENT_UPDT_BUF_RSV_LEN(VOS_GetModemIDFromPid(WUEPS_PID_RLC), sizeof(TTF_MNTN_ERR_LOG_WRLC_LI_ERR_STRU)); } else { g_stErrLogLiErrCtx.astWrlcLiErrInfo[ucRbId].stLiErrInfo.ulLstUpdtTs = VOS_GetSlice(); g_stErrLogLiErrCtx.astWrlcLiErrInfo[ucRbId].stLiErrInfo.ulLiErrCnt ++; } g_stErrLogLiErrCtx.astWrlcLiErrInfo[ucRbId].stLiErrInfo.enType = enLiErrType; return; }