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));
}
示例#2
0
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;
}
示例#3
0
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));
}
示例#4
0
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_UINT32 TTF_MNTN_InitErrLogEnt(VOS_UINT32 ulPid)
{
    VOS_UINT32                  ulRslt;
    VOS_UINT32                  ulTtfCommInfoBufLen;
    MODEM_ID_ENUM_UINT16        enModemId = VOS_GetModemIDFromPid(ulPid);

    if (MODEM_ID_BUTT <= enModemId)
    {
        enModemId = MODEM_ID_0;
    }

    if (VOS_YES == TTF_ERR_LOG_ENT_STATE_GET(enModemId))
    {
        return VOS_OK;
    }

    PS_MEM_SET(apErrLogRptCb, 0, sizeof(apErrLogRptCb));

    if (TTF_MEMCTRL_MODEL_SUPPORT_YES == TTF_MEM_GET_SUPPORT_WCDMA(enModemId))
    {
        /* 初始化WCDMA基本配置信息结构体 */
        ulTtfCommInfoBufLen =   sizeof(TTF_MNTN_WCDMA_COMM_INFO_STRU);

        TTF_ERR_LOG_ENT_WCDMA_COMM_INFO_GET(enModemId) = (TTF_MNTN_WCDMA_COMM_INFO_STRU *)PS_ALLOC_STATIC_MEM(ulPid, ulTtfCommInfoBufLen);
        if (VOS_NULL_PTR == TTF_ERR_LOG_ENT_WCDMA_COMM_INFO_GET(enModemId))
        {
                TTF_LOG1(ulPid, 0, PS_PRINT_ERROR,
                    "TTF_MNTN_InitErrLogEnt: PS_ALLOC_STATIC_MEM fail!", enModemId);

            return VOS_ERR;
        }

        PS_MEM_SET(TTF_ERR_LOG_ENT_WCDMA_COMM_INFO_GET(enModemId), 0, sizeof(TTF_MNTN_WCDMA_COMM_INFO_STRU));

        TTF_ERR_LOG_FILL_HEADER(
            &(TTF_ERR_LOG_ENT_WCDMA_COMM_INFO_GET(enModemId)->stHeader),
            enModemId,
            TTF_ERR_LOG_ALM_ID_WCDMA_COMM_INFO,
            TTF_ERR_LOG_ALM_LEV_CRITICAL,
            (sizeof(TTF_MNTN_WCDMA_COMM_INFO_STRU) - sizeof(OM_ERR_LOG_HEADER_STRU)));
    }

    if (TTF_MEMCTRL_MODEL_SUPPORT_YES == TTF_MEM_GET_SUPPORT_GSM(enModemId))
    {
        /* 初始化GSM基本配置信息结构体 */
        ulTtfCommInfoBufLen =   sizeof(TTF_MNTN_GSM_COMM_INFO_STRU);

        TTF_ERR_LOG_ENT_GSM_COMM_INFO_GET(enModemId) = (TTF_MNTN_GSM_COMM_INFO_STRU *)PS_ALLOC_STATIC_MEM(ulPid, ulTtfCommInfoBufLen);
        if (VOS_NULL_PTR == TTF_ERR_LOG_ENT_GSM_COMM_INFO_GET(enModemId))
        {
                TTF_LOG1(ulPid, 0, PS_PRINT_ERROR,
                    "TTF_MNTN_InitErrLogEnt: PS_ALLOC_STATIC_MEM fail!", enModemId);

            return VOS_ERR;
        }

        PS_MEM_SET(TTF_ERR_LOG_ENT_GSM_COMM_INFO_GET(enModemId), 0, sizeof(TTF_MNTN_GSM_COMM_INFO_STRU));

        TTF_ERR_LOG_FILL_HEADER(
            &(TTF_ERR_LOG_ENT_GSM_COMM_INFO_GET(enModemId)->stHeader),
            enModemId,
            TTF_ERR_LOG_ALM_ID_GSM_COMM_INFO,
            TTF_ERR_LOG_ALM_LEV_CRITICAL,
            (sizeof(TTF_MNTN_GSM_COMM_INFO_STRU) - sizeof(OM_ERR_LOG_HEADER_STRU)));
    }

    /* 创建互斥信号量,每个Modem 1个 */
    ulRslt    = VOS_SmMCreate("TFEL", VOS_SEMA4_FIFO,
                    (VOS_SEM *)(&TTF_ERR_LOG_ENT_SEM_GET(enModemId)));

    if (VOS_OK != ulRslt)
    {
            TTF_LOG2(ulPid, 0, PS_PRINT_ERROR,
            "TTF_MNTN_InitErrLogEnt: Create TTF_ERR_LOG_ENT_SEM<1>, ulRslt<2> fail!", enModemId, (VOS_INT32)ulRslt);

        return ulRslt;
    }

    /* 读NV项获取当前上报状态 */
    ulRslt = NV_ReadEx(enModemId, en_NV_Item_ErrLogCtrlInfo,
               &g_stTtfMntnErrlogEnt.stCtrlInfo[enModemId],
               sizeof(NV_ID_ERR_LOG_CTRL_INFO_STRU));

    if (VOS_OK != ulRslt)
    {
            TTF_LOG1(ulPid, 0, PS_PRINT_ERROR,
            "TTF_MNTN_InitErrLogEnt: NV_ReadEx fail!",  (VOS_INT32)ulRslt);

        TTF_ERR_LOG_ENT_CTRL_STATUS_SET(enModemId, OM_APP_STATUS_CLOSE);
    }

    TTF_MNTN_InitErrlogBuffer(enModemId);

    TTF_ERR_LOG_ENT_STATE_SET(enModemId, VOS_YES);

    return VOS_OK;
}
示例#6
0
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;
}