VOS_VOID TTF_MNTN_ErrlogBufGet(VOS_UINT32 ulPid, MODEM_ID_ENUM_UINT16 enModemId, VOS_CHAR *pBuffer, VOS_UINT32 ulBytes) { VOS_UINT32 ulRslt; OM_RING_ID pRingId; if (VOS_NULL_PTR == pBuffer) { TTF_LOG(ulPid, 0, PS_PRINT_ERROR, "TTF_MNTN_ErrlogBufGet: pBuffer NULL PTR"); return; } if (enModemId >= MODEM_ID_BUTT) { TTF_LOG1(ulPid, 0, PS_PRINT_ERROR, "TTF_MNTN_ErrlogBufGet: Invalid ModemId ", enModemId); return; } pRingId = TTF_ERR_LOG_ENT_RINGID_GET(enModemId); if (VOS_NULL_PTR == pRingId) { TTF_LOG(ulPid, 0, PS_PRINT_ERROR, "TTF_MNTN_ErrlogBufGet: pRingId NULL PTR"); return; } ulRslt = VOS_SmP(TTF_ERR_LOG_ENT_SEM_GET(enModemId), TTF_ERR_SEM_TIMEOUT_LEN); if(VOS_OK != ulRslt) { TTF_LOG2(ulPid, 0, PS_PRINT_WARNING, "TTF_MNTN_ErrlogBufGet: VOS_SmP <1>, ulRslt<2> fail!", enModemId, (VOS_INT32)ulRslt); return; } ulRslt = (VOS_UINT32)OM_RingBufferGet(pRingId, pBuffer, (VOS_INT)ulBytes); if (ulRslt != ulBytes) { OM_RingBufferFlush(pRingId); TTF_LOG2(ulPid, 0, PS_PRINT_ERROR, "TTF_MNTN_ErrlogBufGet: ERROR OM_RingBufferGet fail!", (VOS_INT32)ulRslt, (VOS_INT32)ulBytes); } VOS_SmV(TTF_ERR_LOG_ENT_SEM_GET(enModemId)); }
VOS_VOID TTF_MNTN_ErrlogShow(VOS_VOID) { VOS_UINT32 ulIndx; vos_printf("Errlog 实体状态: %u \r\n", TTF_ERR_LOG_ENT_STATE_GET()); for(ulIndx = 0; ulIndx < MODEM_ID_BUTT; ulIndx++) { vos_printf("\r\n******************MODEM ID %u*************************\r\n", ulIndx); vos_printf("Errlog Modem %d 开关状态: %u \r\n", ulIndx, TTF_ERR_LOG_ENT_CTRL_STATUS_GET(ulIndx)); vos_printf("Errlog Modem %d 当前上报级别: %u \r\n", ulIndx, TTF_ERR_LOG_ENT_CTRL_LEV_GET(ulIndx)); vos_printf("Errlog Modem %d RingBuff Mem Addr: 0x%x \r\n", ulIndx, TTF_ERR_LOG_ENT_BUF_GET(ulIndx)); vos_printf("Errlog Modem %d RingBuff ID: 0x%x \r\n", ulIndx, TTF_ERR_LOG_ENT_RINGID_GET(ulIndx)); vos_printf("Errlog Modem %d SemId: 0x%x \r\n", ulIndx, TTF_ERR_LOG_ENT_SEM_GET(ulIndx)); vos_printf("Errlog Modem %d Buffer保留长度: %u \r\n", ulIndx, TTF_ERR_LOG_ENT_GET_BUF_RSV_LEN(ulIndx)); vos_printf("Errlog Modem %d Buffer中的数据长度: %u \r\n", ulIndx, OM_RingBufferNBytes(TTF_ERR_LOG_ENT_RINGID_GET(ulIndx))); TTF_ERR_LOG_CB_SHOW(ulIndx, MODULE_ID_PDCP); TTF_ERR_LOG_CB_SHOW(ulIndx, MODULE_ID_WRM); TTF_ERR_LOG_CB_SHOW(ulIndx, MODULE_ID_GRM); TTF_ERR_LOG_CB_SHOW(ulIndx, MODULE_ID_LLC); TTF_ERR_LOG_CB_SHOW(ulIndx, MODULE_ID_SN); TTF_ERR_LOG_CB_SHOW(ulIndx, MODULE_ID_DL); } }
VOS_UINT32 TTF_MNTN_InitErrLogEnt(VOS_UINT32 ulPid) { MODEM_ID_ENUM_UINT16 enModemId; VOS_UINT32 ulRslt; if (VOS_YES == TTF_ERR_LOG_ENT_STATE_GET()) { return VOS_OK; } PS_MEM_SET(&g_stTtfMntnErrlogEnt, 0, sizeof(TTF_MNTN_ERR_LOG_ENT_STRU)); PS_MEM_SET(apErrLogRptCb, 0, sizeof(apErrLogRptCb)); /* 创建互斥信号量,每个Modem 1个 */ for (enModemId = 0; enModemId < MODEM_ID_BUTT; enModemId++) { ulRslt = VOS_SmMCreate("TFEL", VOS_SEMA4_FIFO, (VOS_UINT32 *)(&TTF_ERR_LOG_ENT_SEM_GET(enModemId))); if (VOS_OK != ulRslt) { PS_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) { PS_LOG1(ulPid, 0, PS_PRINT_ERROR, "TTF_MNTN_InitErrLogEnt: NV_Read fail!", (VOS_INT32)ulRslt); TTF_ERR_LOG_ENT_CTRL_STATUS_SET(enModemId, OM_APP_STATUS_CLOSE); } TTF_MNTN_InitErrlogBuffer(enModemId); } PS_MEM_SET(&g_stErrLogLiErrCtx, 0, sizeof(TTF_MNTN_ERR_LOG_WRLC_LI_ERR_CTX_STRU)); TTF_ERR_LOG_ENT_STATE_SET(VOS_YES); return VOS_OK; }
VOS_VOID TTF_MNTN_ErrlogShow(VOS_VOID) { VOS_UINT32 ulIndx; for(ulIndx = 0; ulIndx < MODEM_ID_BUTT; ulIndx++) { (VOS_VOID)vos_printf("\r\n******************MODEM ID %u*************************\r\n", ulIndx); if (VOS_NO == TTF_ERR_LOG_ENT_STATE_GET(ulIndx)) { (VOS_VOID)vos_printf("Errlog 实体不存在! %u \r\n"); continue; } (VOS_VOID)vos_printf("Errlog Modem %d 开关状态: %u \r\n", ulIndx, TTF_ERR_LOG_ENT_CTRL_STATUS_GET(ulIndx)); (VOS_VOID)vos_printf("Errlog Modem %d 当前上报级别: %u \r\n", ulIndx, TTF_ERR_LOG_ENT_CTRL_LEV_GET(ulIndx)); (VOS_VOID)vos_printf("Errlog Modem %d RingBuff Mem Addr: 0x%x \r\n", ulIndx, TTF_ERR_LOG_ENT_BUF_GET(ulIndx)); (VOS_VOID)vos_printf("Errlog Modem %d RingBuff ID: 0x%x \r\n", ulIndx, TTF_ERR_LOG_ENT_RINGID_GET(ulIndx)); (VOS_VOID)vos_printf("Errlog Modem %d SemId: 0x%x \r\n", ulIndx, TTF_ERR_LOG_ENT_SEM_GET(ulIndx)); (VOS_VOID)vos_printf("Errlog Modem %d Buffer保留长度: %u \r\n", ulIndx, TTF_ERR_LOG_ENT_GET_BUF_RSV_LEN(ulIndx)); (VOS_VOID)vos_printf("Errlog Modem %d Buffer中的数据长度: %u \r\n", ulIndx, OM_RingBufferNBytes(TTF_ERR_LOG_ENT_RINGID_GET(ulIndx))); (VOS_VOID)vos_printf("Errlog Modem %d W Comm Addr: 0x%x \r\n", ulIndx, TTF_ERR_LOG_ENT_WCDMA_COMM_INFO_GET(ulIndx)); (VOS_VOID)vos_printf("Errlog Modem %d G Comm Addr: 0x%x \r\n", ulIndx, TTF_ERR_LOG_ENT_GSM_COMM_INFO_GET(ulIndx)); TTF_ERR_LOG_CB_SHOW(ulIndx, MODULE_ID_PDCP); TTF_ERR_LOG_CB_SHOW(ulIndx, MODULE_ID_WRM); TTF_ERR_LOG_CB_SHOW(ulIndx, MODULE_ID_GRM); TTF_ERR_LOG_CB_SHOW(ulIndx, MODULE_ID_LLC); TTF_ERR_LOG_CB_SHOW(ulIndx, MODULE_ID_SN); TTF_ERR_LOG_CB_SHOW(ulIndx, MODULE_ID_DL); } return; }
VOS_VOID TTF_MNTN_ErrlogBufPut(VOS_UINT32 ulPid, VOS_CHAR *pBuffer, VOS_UINT32 ulBytes) { MODEM_ID_ENUM_UINT16 enModemId; VOS_UINT32 ulRslt; VOS_UINT32 ulBuffFreeSize; OM_RING_ID pRingId; if (VOS_NULL_PTR == pBuffer) { TTF_LOG(ulPid, 0, PS_PRINT_WARNING, "TTF_MNTN_ErrlogBufPut: pBuffer NULL PTR"); return; } enModemId = VOS_GetModemIDFromPid(ulPid); if (enModemId >= MODEM_ID_BUTT) { TTF_LOG1(ulPid, 0, PS_PRINT_ERROR, "TTF_MNTN_ErrlogBufPut: Invalid ModemId ", enModemId); return; } pRingId = TTF_ERR_LOG_ENT_RINGID_GET(enModemId); if (VOS_NULL_PTR == pRingId) { TTF_LOG(ulPid, 0, PS_PRINT_WARNING, "TTF_MNTN_ErrlogBufPut: pRingId NULL PTR"); return; } ulRslt = VOS_SmP(TTF_ERR_LOG_ENT_SEM_GET(enModemId), TTF_ERR_SEM_TIMEOUT_LEN); if(VOS_OK != ulRslt) { TTF_LOG2(ulPid, 0, PS_PRINT_WARNING, "TTF_MNTN_ErrlogBufPut: Create TTF_ERR_LOG_ENT_SEM<1>, ulRslt<2> fail!", enModemId, (VOS_INT32)ulRslt); return; } ulBuffFreeSize =(VOS_UINT32) OM_RingBufferFreeBytes(pRingId); /* Buffer不足,溢出处理 */ if (ulBuffFreeSize < (ulBytes + TTF_ERR_LOG_ENT_GET_BUF_RSV_LEN(enModemId))) { TTF_ERR_LOG_ENT_UPDT_BUFFER_OVER_CNT(enModemId, 1); OM_RingBufferFlush(pRingId); } ulRslt = (VOS_UINT32)OM_RingBufferPut(pRingId, pBuffer, (VOS_INT)ulBytes); if (ulBytes != ulRslt) { OM_RingBufferFlush(pRingId); } VOS_SmV(TTF_ERR_LOG_ENT_SEM_GET(enModemId)); return; }
/*lint -e{416,419,831} */ VOS_VOID TTF_MNTN_ErrlogBufRpt(VOS_UINT32 ulSenderPid, VOS_UINT32 ulReceiverPid, MODEM_ID_ENUM_UINT16 enModemId) { VOS_UINT32 ulRslt; VOS_UINT32 ulErrLogBufSize; VOS_UINT32 ulTtfCommInfoBufSize; VOS_UINT32 ulMsgLen; OM_RING_ID pRingId; VOS_UINT32 ulCpuID; OM_ERR_LOG_REPORT_CNF_STRU *pstLogRpt; VOS_UINT32 ulOffSetLen; VOS_CHAR *pucContent; if (enModemId >= MODEM_ID_BUTT) { TTF_LOG1(ulSenderPid, 0, PS_PRINT_ERROR, "TTF_MNTN_ErrlogBufRpt: enModemId Invalid!", enModemId); return; } ulCpuID = VOS_GET_CPU_ID(ulReceiverPid); if ( ulCpuID >= VOS_SUPPORT_CPU_NUM_MAX ) { TTF_LOG1(ulSenderPid, 0, PS_PRINT_ERROR, "TTF_MNTN_ErrlogBufRpt: ulReceiverPid Invalid!", (VOS_INT32)ulReceiverPid); return; } /* 初始化没有异常 */ ulErrLogBufSize = 0; pRingId = TTF_ERR_LOG_ENT_RINGID_GET(enModemId); if (VOS_NULL_PTR != pRingId) { /* 将各模块本地缓存的数据写入Buffer */ TTF_MNTN_ErrlogCbRun(enModemId); /* 保留的长度复位 */ TTF_ERR_LOG_ENT_RST_BUF_RSV_LEN(enModemId); ulRslt = VOS_SmP(TTF_ERR_LOG_ENT_SEM_GET(enModemId), TTF_ERR_SEM_TIMEOUT_LEN); if(VOS_OK != ulRslt) { TTF_LOG2(ulSenderPid, 0, PS_PRINT_WARNING, "TTF_MNTN_ErrlogBufRpt: VOS_SmP <1>, ulRslt<2> fail!", enModemId, (VOS_INT32)ulRslt); return; } ulErrLogBufSize = (VOS_UINT32)OM_RingBufferNBytes(pRingId); if (ulErrLogBufSize > TTF_ERR_LOG_BUF_SIZE) { OM_RingBufferFlush(pRingId); TTF_LOG1(ulSenderPid, 0, PS_PRINT_WARNING, "TTF_MNTN_ErrlogBufRpt: ulErrLogBufSize invalid!", (VOS_INT32)ulErrLogBufSize); ulErrLogBufSize = 0; } VOS_SmV(TTF_ERR_LOG_ENT_SEM_GET(enModemId)); } ulTtfCommInfoBufSize = 0; if (VOS_NULL_PTR != TTF_ERR_LOG_ENT_WCDMA_COMM_INFO_GET(enModemId)) { ulTtfCommInfoBufSize += sizeof(TTF_MNTN_WCDMA_COMM_INFO_STRU); TTF_ERR_LOG_ENT_WCDMA_COMM_INFO_GET(enModemId)->usRingBufferOverCounter = TTF_ERR_LOG_ENT_BUFFER_OVER_CNT_GET(enModemId); } if (VOS_NULL_PTR != TTF_ERR_LOG_ENT_GSM_COMM_INFO_GET(enModemId)) { ulTtfCommInfoBufSize += sizeof(TTF_MNTN_GSM_COMM_INFO_STRU); TTF_ERR_LOG_ENT_GSM_COMM_INFO_GET(enModemId)->usRingBufferOverCounter = TTF_ERR_LOG_ENT_BUFFER_OVER_CNT_GET(enModemId); } /* Reset环形Buffer溢出标识 */ TTF_ERR_LOG_ENT_BUFFER_OVER_CNT_SET(enModemId, 0); /* 计算消息总的长度 */ TTF_GET_OFFSET(ulOffSetLen, OM_ERR_LOG_REPORT_CNF_STRU, aucContent); ulMsgLen = ulOffSetLen + ulTtfCommInfoBufSize + ulErrLogBufSize; pstLogRpt = (OM_ERR_LOG_REPORT_CNF_STRU *)PS_ALLOC_MSG_WITH_HEADER_LEN(ulSenderPid, ulMsgLen); if (VOS_NULL_PTR == pstLogRpt) { TTF_LOG1(ulSenderPid, 0, PS_PRINT_WARNING, "TTF_MNTN_ErrlogBufRpt: PS_ALLOC_MSG_WITH_HEADER_LEN fail!", (VOS_INT32)ulMsgLen); return; } /* 开始拷贝基本信息 */ pucContent = (VOS_CHAR *)(pstLogRpt->aucContent); if (VOS_NULL_PTR != TTF_ERR_LOG_ENT_WCDMA_COMM_INFO_GET(enModemId)) /*lint -e{662,669} */ { /* 拷贝WCDMA基本配置信息 */ PS_MEM_CPY((VOS_VOID *)pucContent, (VOS_VOID *)TTF_ERR_LOG_ENT_WCDMA_COMM_INFO_GET(enModemId), (VOS_UINT32)(sizeof(TTF_MNTN_WCDMA_COMM_INFO_STRU))); pucContent += (VOS_UINT32)(sizeof(TTF_MNTN_WCDMA_COMM_INFO_STRU)); } if (VOS_NULL_PTR != TTF_ERR_LOG_ENT_GSM_COMM_INFO_GET(enModemId)) /*lint -e{662,669} */ { /* 拷贝GSM基本配置信息 */ PS_MEM_CPY((VOS_VOID *)pucContent, (VOS_VOID *)TTF_ERR_LOG_ENT_GSM_COMM_INFO_GET(enModemId), (VOS_UINT32)(sizeof(TTF_MNTN_GSM_COMM_INFO_STRU))); pucContent += (VOS_UINT32)(sizeof(TTF_MNTN_GSM_COMM_INFO_STRU)); } /* 拷贝异常事件信息 */ if (0 != ulErrLogBufSize) { TTF_MNTN_ErrlogBufGet( ulSenderPid, enModemId, pucContent, ulErrLogBufSize); } pstLogRpt->ulReceiverPid = ulReceiverPid; pstLogRpt->ulMsgName = ID_OM_ERR_LOG_REPORT_CNF; pstLogRpt->ulMsgType = OM_ERR_LOG_MSG_ERR_REPORT; pstLogRpt->ulMsgSN = mdrv_timer_get_normal_timestamp(); pstLogRpt->ulRptlen = ulTtfCommInfoBufSize + ulErrLogBufSize; PS_SEND_MSG(UEPS_PID_SN, pstLogRpt); return; }
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; }
VOS_VOID TTF_MNTN_ErrlogBufRpt(VOS_UINT32 ulSenderPid, VOS_UINT32 ulReceiverPid, MODEM_ID_ENUM_UINT16 enModemId) { VOS_UINT32 ulRslt; VOS_UINT32 ulBufSize; VOS_UINT32 ulMsgLen; OM_RING_ID pRingId; VOS_UINT32 ulCpuID; OM_ERR_LOG_REPORT_CNF_STRU *pstLogRpt; if (enModemId >= MODEM_ID_BUTT) { PS_LOG1(ulSenderPid, 0, PS_PRINT_ERROR, "TTF_MNTN_ErrlogBufRpt: enModemId Invalid!", enModemId); return; } ulCpuID = VOS_GET_CPU_ID(ulReceiverPid); if ( ulCpuID >= VOS_SUPPORT_CPU_NUM_MAX ) { PS_LOG1(ulSenderPid, 0, PS_PRINT_ERROR, "TTF_MNTN_ErrlogBufRpt: ulReceiverPid Invalid!", (VOS_INT32)ulReceiverPid); return; } pRingId = TTF_ERR_LOG_ENT_RINGID_GET(enModemId); /* Default没有异常 */ ulBufSize = 0; if (VOS_NULL_PTR != pRingId) { /* 保留的长度复位 */ TTF_ERR_LOG_ENT_RST_BUF_RSV_LEN(enModemId); /* 将各模块本地缓存的数据写入Buffer */ TTF_MNTN_ErrlogCbRun(enModemId); ulRslt = VOS_SmP(TTF_ERR_LOG_ENT_SEM_GET(enModemId), TTF_ERR_SEM_TIMEOUT_LEN); if(VOS_OK != ulRslt) { PS_LOG2(ulSenderPid, 0, PS_PRINT_WARNING, "TTF_MNTN_ErrlogBufRpt: VOS_SmP <1>, ulRslt<2> fail!", enModemId, (VOS_INT32)ulRslt); return; } ulBufSize = (VOS_UINT32)OM_RingBufferNBytes(pRingId); if (ulBufSize > TTF_ERR_LOG_BUF_SIZE) { OM_RingBufferFlush(pRingId); PS_LOG1(ulSenderPid, 0, PS_PRINT_WARNING, "TTF_MNTN_ErrlogBufGet: ulBufSize invalid!", (VOS_INT32)ulBufSize); ulBufSize = 0; } VOS_SmV(TTF_ERR_LOG_ENT_SEM_GET(enModemId)); } /*lint -e413*/ ulMsgLen = (TTF_OFFSET_OF(OM_ERR_LOG_REPORT_CNF_STRU, aucContent[0])) + ulBufSize; pstLogRpt = (OM_ERR_LOG_REPORT_CNF_STRU *)PS_ALLOC_MSG_WITH_HEADER_LEN(ulSenderPid, ulMsgLen); if (VOS_NULL_PTR == pstLogRpt) { return; } if (0 != ulBufSize) { TTF_MNTN_ErrlogBufGet(ulSenderPid, enModemId, (VOS_CHAR *)(pstLogRpt->aucContent), ulBufSize); } pstLogRpt->ulReceiverPid = ulReceiverPid; pstLogRpt->ulMsgName = ID_OM_ERR_LOG_REPORT_CNF; pstLogRpt->ulMsgType = OM_ERR_LOG_MSG_ERR_REPORT; pstLogRpt->ulMsgSN = VOS_GetSlice(); pstLogRpt->ulRptlen = ulBufSize; /*lint +e413*/ PS_SEND_MSG(UEPS_PID_SN, pstLogRpt); }