VOS_VOID Debug_DiagApi(VOS_UINT32 ulApiType) { DIAG_DEBUG_INFO_TBL_STRU* pstTable; pstTable = diag_DebugGetInfo(); /* 空口自诊断*/ if(DIAG_DEBUG_API == ulApiType || DIAG_DEBUG_API_AIR == ulApiType) { vos_printf("*------------DIAG ReportAirMessageLog is called?----------------\n"); vos_printf("DIAG ReportAirMessageLog Call Times : %d \n",pstTable[EN_SDM_DIAG_ReportAirMessageLog].ulCalledNum); vos_printf("DIAG ReportAirMessageLog para ID : %#x \n", pstTable[EN_SDM_DIAG_ReportAirMessageLog].ulRserved1); vos_printf("MEAN called at function head : %#x \n", pstTable[EN_SDM_DIAG_ReportAirMessageLog].ulRserved2); vos_printf("No Use : %d \n\n", pstTable[EN_SDM_DIAG_ReportAirMessageLog].ulRserved3); vos_printf("DIAG ReportAirMessageLog RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_ReportAirMessageLog].ulRtcTime); vos_printf("*------------DIAG ReportAirMessageLog 失败次数----------------\n"); vos_printf("ReportAirMessageLog Call failure Times : %d \n",pstTable[EN_SDM_DIAG_ReportAirMessageLog_ERR].ulCalledNum); vos_printf("ReportAirMessageLog PRIOR call : %#x \n", pstTable[EN_SDM_DIAG_ReportAirMessageLog_ERR].ulRserved1); vos_printf("ReportAirMessageLog para ID : %#x \n", pstTable[EN_SDM_DIAG_ReportAirMessageLog_ERR].ulRserved2); vos_printf("Failure Position 1 mean first branch : %d \n\n", pstTable[EN_SDM_DIAG_ReportAirMessageLog_ERR].ulRserved3); vos_printf("ReportAirMessageLog RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_ReportAirMessageLog_ERR].ulRtcTime); } /*voLTE自诊断*/ if(DIAG_DEBUG_API == ulApiType || DIAG_DEBUG_VOLTE == ulApiType) { vos_printf("*------------DIAG ReportAirMessageLog is called?----------------\n"); vos_printf("DIAG ReportVolTEMessageLog Call Times : %d \n",pstTable[EN_SDM_DIAG_ReportVoLTELog_ERR].ulCalledNum); vos_printf("DIAG ReportVolTEMessageLog para ID : %#x \n", pstTable[EN_SDM_DIAG_ReportVoLTELog_ERR].ulRserved1); vos_printf("MEAN called at function head : %#x \n", pstTable[EN_SDM_DIAG_ReportVoLTELog_ERR].ulRserved2); vos_printf("No Use : %d \n\n", pstTable[EN_SDM_DIAG_ReportVoLTELog_ERR].ulRserved3); vos_printf("DIAG ReportAirMessageLog RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_ReportVoLTELog_ERR].ulRtcTime); vos_printf("*------------DIAG ReportVolTEMessageLog 失败次数----------------\n"); vos_printf("ReportVolTEMessageLog Call failure Times : %d \n",pstTable[EN_SDM_DIAG_ReportVoLTELog_ERR].ulCalledNum); vos_printf("ReportVolTEMessageLog PRIOR call : %#x \n", pstTable[EN_SDM_DIAG_ReportVoLTELog_ERR].ulRserved1); vos_printf("ReportVolTEMessageLog para ID : %#x \n", pstTable[EN_SDM_DIAG_ReportVoLTELog_ERR].ulRserved2); vos_printf("Failure Position 1 mean first branch : %d \n\n", pstTable[EN_SDM_DIAG_ReportVoLTELog_ERR].ulRserved3); vos_printf("ReportVolTEMessageLog RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_ReportVoLTELog_ERR].ulRtcTime); } /* 层间自诊断*/ if(DIAG_DEBUG_API == ulApiType || DIAG_DEBUG_API_LAYER == ulApiType) { vos_printf("*------------DIAG ReportLayerMessageLog is called?----------------\n"); vos_printf("DIAG ReportLayerMessageLog Call Times : %d \n",pstTable[EN_SDM_DIAG_ReportLayerMessageLog].ulCalledNum); vos_printf("DIAG ReportLayerMessageLog para ID : %#x \n", pstTable[EN_SDM_DIAG_ReportLayerMessageLog].ulRserved1); vos_printf("MEAN called at function head : %#x \n", pstTable[EN_SDM_DIAG_ReportLayerMessageLog].ulRserved2); vos_printf("No Use : %d \n\n", pstTable[EN_SDM_DIAG_ReportLayerMessageLog].ulRserved3); vos_printf("DIAG ReportLayerMessageLog RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_ReportLayerMessageLog].ulRtcTime); vos_printf("*------------DIAG ReportLayerMessageLog 失败次数----------------\n"); vos_printf("ReportLayerMessageLog Call failure Times: %d \n",pstTable[EN_SDM_DIAG_ReportLayerMessageLog_ERR].ulCalledNum); vos_printf("ReportLayerMessageLog PRIOR call : %#x \n", pstTable[EN_SDM_DIAG_ReportLayerMessageLog_ERR].ulRserved1); vos_printf("ReportLayerMessageLog para ID : %#x \n", pstTable[EN_SDM_DIAG_ReportLayerMessageLog_ERR].ulRserved2); vos_printf("Failure Position 1 mean first branch : %d \n\n", pstTable[EN_SDM_DIAG_ReportLayerMessageLog_ERR].ulRserved3); vos_printf("ReportLayerMessageLog RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_ReportLayerMessageLog_ERR].ulRtcTime); } /* 用户面自诊断*/ if(DIAG_DEBUG_API == ulApiType || DIAG_DEBUG_API_USERPLANE == ulApiType) { vos_printf("*------------DIAG ReportUserPlaneMessageLog is called?----------------\n"); vos_printf("DIAG ReportUserPlaneMessageLog Call Times: %d \n",pstTable[EN_SDM_DIAG_ReportUserPlaneMessageLog].ulCalledNum); vos_printf("DIAG ReportUserPlaneMessageLog para ID : %#x \n", pstTable[EN_SDM_DIAG_ReportUserPlaneMessageLog].ulRserved1); vos_printf("MEAN called at function head : %#x \n", pstTable[EN_SDM_DIAG_ReportUserPlaneMessageLog].ulRserved2); vos_printf("No Use : %d \n\n", pstTable[EN_SDM_DIAG_ReportUserPlaneMessageLog].ulRserved3); vos_printf("DIAG ReportUserPlaneMessageLog RTC Time: %d \n\n", pstTable[EN_SDM_DIAG_ReportUserPlaneMessageLog].ulRtcTime); vos_printf("*------------DIAG ReportUserPlaneMessageLog 失败次数----------------\n"); vos_printf("ReportUserPlaneMessageLog Call failure Times: %d \n",pstTable[EN_SDM_DIAG_ReportUserPlaneMessageLog_ERR].ulCalledNum); vos_printf("ReportUserPlaneMessageLog PRIOR call : %#x \n", pstTable[EN_SDM_DIAG_ReportUserPlaneMessageLog_ERR].ulRserved1); vos_printf("ReportUserPlaneMessageLog para ID : %#x \n", pstTable[EN_SDM_DIAG_ReportUserPlaneMessageLog_ERR].ulRserved2); vos_printf("Failure Position 1 mean first branch : %d \n\n", pstTable[EN_SDM_DIAG_ReportUserPlaneMessageLog_ERR].ulRserved3); vos_printf("ReportUserPlaneMessageLog RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_ReportUserPlaneMessageLog_ERR].ulRtcTime); } /* 事件自诊断*/ if(DIAG_DEBUG_API == ulApiType || DIAG_DEBUG_API_EVENT == ulApiType) { vos_printf("*------------DIAG ReportEventLog is called?----------------\n"); vos_printf("DIAG ReportEventLog Call Times : %d \n",pstTable[EN_SDM_DIAG_ReportEventLog].ulCalledNum); vos_printf("DIAG ReportEventLog para ID : %#x \n", pstTable[EN_SDM_DIAG_ReportEventLog].ulRserved1); vos_printf("MEAN called at function head : %#x \n", pstTable[EN_SDM_DIAG_ReportEventLog].ulRserved2); vos_printf("No Use : %d \n\n", pstTable[EN_SDM_DIAG_ReportEventLog].ulRserved3); vos_printf("DIAG ReportEventLog RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_ReportEventLog].ulRtcTime); vos_printf("*------------DIAG ReportEventLog 失败次数----------------\n"); vos_printf("ReportEventLog Call failure Times : %d \n",pstTable[EN_SDM_DIAG_ReportEventLog_ERR].ulCalledNum); vos_printf("ReportEventLog PRIOR call : %#x \n", pstTable[EN_SDM_DIAG_ReportEventLog_ERR].ulRserved1); vos_printf("ReportEventLog para ID : %#x \n", pstTable[EN_SDM_DIAG_ReportEventLog_ERR].ulRserved2); vos_printf("Failure Position 1 mean first branch : %d \n\n", pstTable[EN_SDM_DIAG_ReportEventLog_ERR].ulRserved3); vos_printf("ReportEventLog RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_ReportEventLog_ERR].ulRtcTime); } /* 命令自诊断*/ if(DIAG_DEBUG_API == ulApiType || DIAG_DEBUG_API_REPORT_INFO == ulApiType) { vos_printf("*------------DIAG_ReportStatLog is called?----------------\n"); vos_printf("DIAG_ReportStatLog Call Times : %d \n",pstTable[EN_SDM_DIAG_ReportStatLog].ulCalledNum); vos_printf("DIAG_ReportStatLog para ID : %#x \n", pstTable[EN_SDM_DIAG_ReportStatLog].ulRserved1); vos_printf("MEAN called at function head : %#x \n", pstTable[EN_SDM_DIAG_ReportStatLog].ulRserved2); vos_printf("No Use : %d \n\n", pstTable[EN_SDM_DIAG_ReportStatLog].ulRserved3); vos_printf("DIAG_ReportStatLog RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_ReportStatLog].ulRtcTime); vos_printf("*------------DIAG_ReportStatLog 失败次数----------------\n"); vos_printf("DIAG_ReportStatLog Call failure Times : %d \n", pstTable[EN_SDM_DIAG_ReportStatLog_ERR].ulCalledNum); vos_printf("DIAG_ReportStatLog PRIOR call : %#x \n", pstTable[EN_SDM_DIAG_ReportStatLog_ERR].ulRserved1); vos_printf("DIAG_ReportStatLog para ID : %#x \n", pstTable[EN_SDM_DIAG_ReportStatLog_ERR].ulRserved2); vos_printf("Failure Position 1 mean first branch : %d \n\n", pstTable[EN_SDM_DIAG_ReportStatLog_ERR].ulRserved3); vos_printf("DIAG_ReportStatLog RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_ReportStatLog_ERR].ulRtcTime); } /* 打印自诊断*/ if(DIAG_DEBUG_API == ulApiType || DIAG_DEBUG_API_PRINTF == ulApiType) { vos_printf("*------------DIAG PRINTFV is called?----------------\n"); vos_printf("DIAG PRINTFV Call Times : %d \n",pstTable[EN_SDM_DIAG_PRINTFV].ulCalledNum); vos_printf("DIAG PRINTFV para ID : %#x \n", pstTable[EN_SDM_DIAG_PRINTFV].ulRserved1); vos_printf("MEAN called at function head: %#x \n", pstTable[EN_SDM_DIAG_PRINTFV].ulRserved2); vos_printf("No Use : %d \n\n", pstTable[EN_SDM_DIAG_PRINTFV].ulRserved3); vos_printf("DIAG PRINTFV RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_PRINTFV].ulRtcTime); vos_printf("*------------DIAG PRINTF V 失败次数----------------\n"); vos_printf("PRINTFV Call failure Times : %d \n",pstTable[EN_SDM_DIAG_PRINTFV_ERR].ulCalledNum); vos_printf("PRINTFV PRIOR call : %#x \n", pstTable[EN_SDM_DIAG_PRINTFV_ERR].ulRserved1); vos_printf("PRINTFV para ID : %#x \n", pstTable[EN_SDM_DIAG_PRINTFV_ERR].ulRserved2); vos_printf("Failure Position 1 mean first branch: %d \n\n", pstTable[EN_SDM_DIAG_PRINTFV_ERR].ulRserved3); vos_printf("PRINTFV RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_PRINTFV_ERR].ulRtcTime); vos_printf("*------------DIAG DOT PRINT is called?----------------\n"); vos_printf("DOT PRINT Call Times : %d \n",pstTable[EN_SDM_DIAG_DOT].ulCalledNum); vos_printf("DOT PRINT para ID : %#x \n", pstTable[EN_SDM_DIAG_DOT].ulRserved1); vos_printf("MEAN called at function head: %#x \n", pstTable[EN_SDM_DIAG_DOT].ulRserved2); vos_printf("No Use : %d \n\n", pstTable[EN_SDM_DIAG_DOT].ulRserved3); vos_printf("DOT PRINT RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_DOT].ulRtcTime); vos_printf("*------------DIAG DOT PRINT 失败次数----------------\n"); vos_printf("DOT PRINT Call failure Times : %d \n",pstTable[EN_SDM_DIAG_DOT_ERR].ulCalledNum); vos_printf("DOT PRINT ERROR CODE : %#x \n", pstTable[EN_SDM_DIAG_DOT_ERR].ulRserved1); vos_printf("DOT PRINT para ID : %#x \n", pstTable[EN_SDM_DIAG_DOT_ERR].ulRserved2); vos_printf("Failure branch : %d \n\n", pstTable[EN_SDM_DIAG_DOT_ERR].ulRserved3); vos_printf("DOT PRINT RTC Time : %d \n\n", pstTable[EN_SDM_DIAG_DOT_ERR].ulRtcTime); } if(DIAG_DEBUG_API == ulApiType || DIAG_DEBUG_API_PRINTF == ulApiType) { } }
VOS_VOID NAS_PTT_TaskEntry( MsgBlock* pMsg ) { vos_printf("NAS_PTT_TaskEntry:PTT Rcv Error Msg %x!", pMsg); return; }
/*lint -e960 */ VOS_UINT32 OM_PrintfWithModule(VOS_UINT32 ulModuleId, VOS_UINT32 ulLevel, VOS_CHAR * pcformat, ... ) /*lint +e960 */ { VOS_UINT32 ulReturn = OM_OK; VOS_CHAR *pcWarning; VOS_UINT32 ulTempLen; VOS_INT32 lRetLen; va_list argument; VOS_UINT32 ulDataLen = 0; /* 数组前四字节存储模块ID,从第九字节开始为转换后字符串,为确保在转换为字符串 过程中不越界,多定义四字节作保护 */ /*lint -e813 */ VOS_CHAR acOutput[VOS_MAX_PRINT_LEN + 12]; /*lint +e813 */ #if (VOS_OS_VER == VOS_LINUX) if(in_interrupt()) { printk("\r\nOM_PrintfWithModule: RUN in the IRQ"); return OM_ERR_RUNINIRQ; } #endif /* 输入参数检查 */ if((LOG_MAX_MODULE_ID_APP < ulModuleId)||(LOG_MIN_MODULE_ID_ACPU_DRV > ulModuleId) ||(LOG_LEVEL_BUTT <= ulLevel)) { vos_printf("\r\nOM_PrintfWithModule: Para Error, ModuleId is %d, Level is %d", ulModuleId, ulLevel); return OM_ERR_UNVALIDPARA; } ulReturn = OM_PrintfGetModuleIdLev(ulModuleId); if((ulLevel > ulReturn)||(LOG_LEVEL_OFF == ulLevel)) { return OM_ERR_LOWLEVEL; } *((VOS_UINT32*)acOutput) = ulModuleId; *(((VOS_UINT32*)acOutput)+1) = ulLevel; /* 将格式化字符串和可变参数转换为字符串 */ va_start( argument, pcformat ); lRetLen = VOS_nvsprintf(acOutput + OM_PRINTF_OFFSET, VOS_MAX_PRINT_LEN, pcformat, argument); va_end( argument ); /* 添加字符串结束标志 */ acOutput[VOS_MAX_PRINT_LEN + OM_PRINTF_OFFSET - 1] = '\0'; /* 对转换结果进行判断,并在转换后字符串中添加相应提示信息 */ if(lRetLen >= (VOS_MAX_PRINT_LEN - 1)) { pcWarning = "OM_Printf: Warning!Print too long!!!"; ulTempLen = VOS_StrLen(pcWarning ); VOS_MemCpy(acOutput + OM_PRINTF_OFFSET, pcWarning, ulTempLen); /* 在转换后字符串倒数第二个字节添加换行符 */ acOutput[VOS_MAX_PRINT_LEN + OM_PRINTF_OFFSET- 2] = '\n'; ulDataLen = VOS_MAX_PRINT_LEN + OM_PRINTF_OFFSET- 1; } else if( lRetLen < 0 ) { pcWarning = "OM_Printf:unknown internal error.\r\n"; VOS_StrCpy(acOutput + OM_PRINTF_OFFSET, pcWarning ); ulDataLen = VOS_StrLen(pcWarning ) + OM_PRINTF_OFFSET; } else { ulDataLen = (VOS_UINT32)lRetLen + OM_PRINTF_OFFSET; } ulReturn = OM_PrintfDataPut(acOutput, ulDataLen); return ulReturn; }
VOS_VOID RNIC_ShowDLProcStats(VOS_UINT8 ucRmNetId) { if (ucRmNetId >= RNIC_NET_ID_MAX_NUM) { vos_printf("RNIC_ShowDLProcStats: NetId overtop, ucRmNetId = %d\n", ucRmNetId); return; } /* 下行统计量 */ vos_printf("RNIC %d收到下行IPV4数据的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulDlRecvIpv4PktNum); vos_printf("RNIC %d收到下行IPV6数据的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulDlRecvIpv6PktNum); vos_printf("RNIC %d发送下行数据的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulDlSendPktNum); vos_printf("RNIC %d发送下行数据失败的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulDlSendPktFailNum); vos_printf("RNIC %d收到下行数据包大于MTU的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulDlRecvBigPktNum); vos_printf("RNIC %d网卡未激活丢弃的数据个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulDlDiscardPktNum); vos_printf("RNIC %d下行加MAC头失败的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulDlAddMacHdFailNum); vos_printf("RNIC %d网卡私有数据错误丢掉下行数据包的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulDlNetCardDiscardNum); vos_printf("RNIC %d网卡ID错误丢掉下行数据包的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulDlNetIdDiscardNum); vos_printf("RNIC %d收到错误数据包的个数非ipv4ipv6包 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulDlRecvErrPktNum); vos_printf("\r\n"); return; }
VOS_VOID RNIC_ShowUlProcStats(VOS_UINT8 ucRmNetId) { if (ucRmNetId >= RNIC_NET_ID_MAX_NUM) { vos_printf("RNIC_ShowUlProcStats: NetId overtop, ucRmNetId = %d\n", ucRmNetId); return; } /* 上行统计量 */ vos_printf("RNIC %d流控状态 %d\n", ucRmNetId, g_stRnicCtx.astSpecCtx[ucRmNetId].enFlowCtrlStatus); vos_printf("RNIC %d收到上行IPV4数据的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlRecvIpv4PktNum); vos_printf("RNIC %d收到上行IPV6数据的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlRecvIpv6PktNum); vos_printf("IPV4V6类型激活时RNIC %d收到上行数据的个数IPV4IPV6 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlRecvIpv4v6PktNum); vos_printf("RNIC %d未激活时收到上行数据的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlRecvUndiaPktNum); vos_printf("RNIC %d上行发送给ADS数据的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlSendPktNum); vos_printf("RNIC %d调ADS发送上行数据失败的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlSendPktFailNum); vos_printf("RNIC %d未拨上号前上行收到IPV4广播包的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlIpv4BrdcstPktNum); vos_printf("RNIC %d上行转换为IMM_ZC失败的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlImmzcFailPktNum); vos_printf("RNIC %d网卡私有数据错误丢掉上行数据包的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlNetCardDiscardNum); vos_printf("RNIC %d网卡ID错误丢掉上行数据包的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlNetIdDiscardNum); vos_printf("RNIC %dModem ID错误丢掉上行数据包的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlModemIdDiscardNum); vos_printf("RNIC %d流控丢掉上行数据包的个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlFlowCtrlDiscardNum); vos_printf("RNIC %d收到错误数据包的个数非ipv4ipv6包 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlRecvErrPktNum); vos_printf("RNIC %d成功上报APP按需拨号 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlSendAppDialUpSucc); vos_printf("RNIC %d上报APP按需拨号失败 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlSendAppDialUpFail); vos_printf("RNIC %d成功上报APP断开拨号 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlSendAppDialDownSucc); vos_printf("RNIC %d上报APP断开拨号失败 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlSendAppDialDownFail); if (RNIC_RM_NET_ID_0 == ucRmNetId) { vos_printf("拨号模式 %d\n", g_stRnicCtx.stDialMode.enDialMode); vos_printf("按需拨号是否上报事件 %d\n", g_stRnicCtx.stDialMode.enEventReportFlag); vos_printf("按需拨号断开时间 %d\n", g_stRnicCtx.stDialMode.ulIdleTime); } vos_printf("RNIC %d RAB ID错误,RNIC丢弃的数据包个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlRabIdErr); vos_printf("RNIC %d PDN ID错误,RNIC丢弃的数据包个数 %d\n", ucRmNetId, g_astRnicStats[ucRmNetId].ulUlPdnIdErr); vos_printf("\r\n"); return; }
/***************************************************************************** Function : VOS_CreateTask Description: create task with default task mode: VOS_T_PREEMPT | VOS_T_NO_TSLICE | VOS_T_SUPV Input : puchName -- name identify task pfnFunc -- task entry function ulPriority -- task priority ulStackSize -- task stack size aulArgs[VOS_TARG_NUM] -- arguments for task Output : pulTaskID -- task id allocated by dopra Return : result of VOS_CreateTaskEx *****************************************************************************/ VOS_UINT32 VOS_CreateTask( VOS_CHAR * puchName, VOS_UINT32 * pulTaskID, VOS_TASK_ENTRY_TYPE pfnFunc, VOS_UINT32 ulPriority, VOS_UINT32 ulStackSize, VOS_UINT32 aulArgs[VOS_TARG_NUM] ) { int i; VOS_UINT32 iTid; pid_t ThreadID; VOS_CHAR default_name[8] = {0}; VOS_UCHAR value; struct task_struct *tsk; struct sched_param param; iTid = VOS_TaskCtrlBlkGet(); if( iTid == (VOS_UINT32)VOS_TASK_CTRL_BLK_NULL ) { VOS_TaskPrintCtrlBlkInfo(); DRV_SYSTEM_ERROR(OSA_ALLOC_TASK_CONTROL_ERROR, (VOS_INT)vos_TaskCtrlBlkNumber, (VOS_INT)pfnFunc, VOS_NULL_PTR, 0); VOS_SetErrorNo(VOS_ERRNO_TASK_CREATE_NOFREETCB); return( VOS_ERRNO_TASK_CREATE_NOFREETCB ); } /* caller not use name asign a default name */ if ( VOS_NULL_PTR == puchName ) { default_name[0]= 't'; default_name[1]= 'i'; default_name[2]= 'd'; default_name[3] = (VOS_CHAR)(48 + iTid/100); value = (VOS_UCHAR)(iTid%100); default_name[4] = (VOS_CHAR)(48 + value/10); default_name[5] = (VOS_CHAR)(48 + value%10); default_name[6]= '\0'; } *pulTaskID = iTid; if ( VOS_NULL_PTR != puchName ) { for(i=0; i<VOS_MAX_LENGTH_TASK_NAME; i++) { vos_TaskCtrlBlk[iTid].Name[i]= puchName[i]; } vos_TaskCtrlBlk[iTid].Name[i-1] = '\0'; } else { vos_TaskCtrlBlk[iTid].Name[0] = default_name[0]; vos_TaskCtrlBlk[iTid].Name[1] = default_name[1]; vos_TaskCtrlBlk[iTid].Name[2] = default_name[2]; vos_TaskCtrlBlk[iTid].Name[3] = default_name[3]; vos_TaskCtrlBlk[iTid].Name[4] = default_name[4]; vos_TaskCtrlBlk[iTid].Name[5] = default_name[5]; vos_TaskCtrlBlk[iTid].Name[6] = default_name[6]; } vos_TaskCtrlBlk[iTid].Function = pfnFunc; vos_TaskCtrlBlk[iTid].Priority = ulPriority; vos_TaskCtrlBlk[iTid].StackSize = ulStackSize; for ( i=0; i<VOS_TARG_NUM; i++ ) { vos_TaskCtrlBlk[iTid].Args[i] = aulArgs[i]; } ThreadID = kernel_thread( (LINUX_START_ROUTINE)VOS_LinuxTaskEntry, ( VOS_VOID * )&(vos_TaskCtrlBlk[iTid]), CLONE_KERNEL); if (ThreadID < VOS_NULL) { VOS_TaskPrintCtrlBlkInfo(); DRV_SYSTEM_ERROR(OSA_CREATE_TASK_ERROR, (VOS_INT)ThreadID, (VOS_INT)iTid, VOS_NULL_PTR, 0); VOS_TaskCtrlBlkFree(iTid); VOS_SetErrorNo(VOS_ERRNO_TASK_CREATE_OSALCREATEFAIL); return( VOS_ERRNO_TASK_CREATE_OSALCREATEFAIL ); } vos_TaskCtrlBlk[iTid].ulLinuxThreadId = ThreadID; tsk = pid_task(find_vpid(ThreadID), PIDTYPE_PID); if ( VOS_NULL_PTR == tsk ) { VOS_TaskPrintCtrlBlkInfo(); DRV_SYSTEM_ERROR(OSA_FIND_TASK_ERROR, (VOS_INT)ThreadID, (VOS_INT)iTid, VOS_NULL_PTR, 0); return VOS_ERR; } if ( tsk->pid != ThreadID ) { vos_printf("find task to set pri fail.\r\n"); VOS_TaskPrintCtrlBlkInfo(); DRV_SYSTEM_ERROR(OSA_FIND_TASK_PARA_ERROR, (VOS_INT)ThreadID, (VOS_INT)iTid, (VOS_CHAR *)tsk, sizeof(struct task_struct)); return VOS_ERR; } param.sched_priority = ulPriority; if (VOS_NULL != sched_setscheduler(tsk, SCHED_FIFO, ¶m)) { vos_printf("\r\nVOS_CreateTask: Creat Task %s ID %d sched_setscheduler Error", puchName, iTid); VOS_TaskPrintCtrlBlkInfo(); DRV_SYSTEM_ERROR(OSA_SET_TASK_PRI_ERROR, (VOS_INT)ulPriority, (VOS_INT)iTid, (VOS_CHAR *)tsk, sizeof(struct task_struct)); return VOS_ERR; } return VOS_OK; }
VOS_UINT32 diag_HifiMsgProc(DIAG_FRAME_INFO_STRU* pstReq) { VOS_UINT32 ulRet = ERR_MSP_SUCCESS; DIAG_COMM_CNF_STRU stHifiCnf = {0}; MSP_DIAG_CNF_INFO_STRU stDiagInfo = {0}; #if(VOS_OS_VER == VOS_LINUX) VOS_UINT32 ulLen; DIAG_HIFI_MSG_A_TRANS_C_STRU *pstInfo; #else DIAG_OSA_MSG_STRU *pstMsg = NULL; DIAG_OSA_MSG_STRU *pstVosMsg = NULL; #endif #if(VOS_OS_VER == VOS_LINUX) ulLen = sizeof(DIAG_HIFI_MSG_A_TRANS_C_STRU) - VOS_MSG_HEAD_LENGTH + pstReq->ulMsgLen; pstInfo = (DIAG_HIFI_MSG_A_TRANS_C_STRU*)VOS_AllocMsg(MSP_PID_DIAG_APP_AGENT, ulLen); if(VOS_NULL == pstInfo) { ulRet = ERR_MSP_MALLOC_FAILUE; goto DIAG_ERROR; } pstInfo->ulReceiverPid = MSP_PID_DIAG_AGENT; pstInfo->ulSenderPid = MSP_PID_DIAG_APP_AGENT; pstInfo->ulMsgId = DIAG_MSG_HIFI_A_TRANS_C_REQ; ulLen = sizeof(DIAG_FRAME_INFO_STRU) + pstReq->ulMsgLen; (VOS_VOID)VOS_MemCpy(&pstInfo->stInfo, pstReq, ulLen); vos_printf("acore send msg to ccore.\n"); ulRet = VOS_SendMsg(MSP_PID_DIAG_APP_AGENT, pstInfo); if(ulRet) { goto DIAG_ERROR; } return ulRet; #else pstMsg = (DIAG_OSA_MSG_STRU *)(pstReq->aucData + sizeof(MSP_DIAG_DATA_REQ_STRU)); pstVosMsg = (DIAG_OSA_MSG_STRU *)VOS_AllocMsg(MSP_PID_DIAG_AGENT, pstMsg->ulLength); if (pstVosMsg != NULL) { pstVosMsg->ulReceiverPid = pstMsg->ulReceiverPid; (VOS_VOID)VOS_MemCpy(&pstVosMsg->ulMsgId, &pstMsg->ulMsgId, pstMsg->ulLength); ulRet = VOS_SendMsg(MSP_PID_DIAG_AGENT, pstVosMsg); if (ulRet != VOS_OK) { diag_printf("diag_debug_write VOS_SendMsg failed!\n"); goto DIAG_ERROR; } } #endif DIAG_ERROR: stHifiCnf.ulRet = ulRet; DIAG_MSG_COMMON_PROC(stDiagInfo, stHifiCnf, pstReq); stDiagInfo.ulMsgType = pstReq->stID.pri4b; /*组包回复*/ ulRet = DIAG_MsgReport(&stDiagInfo, &stHifiCnf, sizeof(stHifiCnf)); return ulRet; }
VOS_VOID Debug_DiagVcom(VOS_VOID) { DIAG_DEBUG_INFO_TBL_STRU* pstTable; pstTable = diag_DebugGetInfo(); vos_printf("*------------ENABLE-------------------\n"); vos_printf("USB ENABLE counts : %d \n USB ENABLE fail counts : %d \n USB ENABLE fail branch : %d \n\n", pstTable[EN_DIAG_DEBUG_VCOM_INIT].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM_INIT_ERR].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM_INIT_ERR].ulRserved3); vos_printf("*------------DISABLE-------------------\n"); vos_printf("USB DISABLE counts : %d \n USB DISABLE fail counts : %d \n USB DISABLE fail branch : %d \n\n", pstTable[EN_DIAG_DEBUG_VCOM_DISABLE].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM_DISABLE_ERR].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM_DISABLE_ERR].ulRserved3); vos_printf("*------------OPEN-------------------\n"); vos_printf("VCOM1 OPEN counts : %d \n VCOM1 OPEN fail counts : %d \n VCOM1 OPEN fail value : %d\n\n", pstTable[EN_DIAG_DEBUG_VCOM1_OPEN].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM1_OPEN_ERR].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM1_OPEN_ERR].ulRserved1, pstTable[EN_DIAG_DEBUG_VCOM1_OPEN_ERR].ulRserved2, pstTable[EN_DIAG_DEBUG_VCOM1_OPEN_ERR].ulRserved3); vos_printf("VCOM2 OPEN counts : %d \n VCOM2 OPEN fail counts : %d \n VCOM2 OPEN fail value : %d\n\n", pstTable[EN_DIAG_DEBUG_VCOM2_OPEN].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM2_OPEN_ERR].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM2_OPEN_ERR].ulRserved1, pstTable[EN_DIAG_DEBUG_VCOM2_OPEN_ERR].ulRserved2, pstTable[EN_DIAG_DEBUG_VCOM2_OPEN_ERR].ulRserved3); vos_printf("*------------CLOSE-------------------\n"); vos_printf("VCOM1 CLOSE counts : %d \n VCOM1 CLOSE fail counts : %d \n VCOM1 CLOSE fail value : %d\n\n", pstTable[EN_DIAG_DEBUG_VCOM1_CLOSE].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM1_CLOSE_ERR].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM1_CLOSE_ERR].ulRserved1); vos_printf("VCOM2 CLOSE counts : %d \n VCOM2 CLOSE fail counts : %d \n VCOM2 CLOSE fail value : %d\n\n", pstTable[EN_DIAG_DEBUG_VCOM2_CLOSE].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM2_CLOSE_ERR].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM2_CLOSE_ERR].ulRserved1); vos_printf("*------------WRITE_异步写-------------------\n"); vos_printf("VCOM1 write counts : %d \n VCOM1 write len : %d \n VCOM1 write OK counts : %d \n VCOM1 Last write OK len : %d\n\n", pstTable[EN_DIAG_DEBUG_VCOM1_WRT].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM1_WRT].ulRserved1, pstTable[EN_DIAG_DEBUG_VCOM1_WRT_SUCC].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM1_WRT_SUCC].ulRserved1); vos_printf("VCOM2 write counts : %d \n VCOM2 write len : %d\n VCOM2 write OK counts : %d \n VCOM2 Last write OK len : %d\n\n", pstTable[EN_DIAG_DEBUG_VCOM2_WRT].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM2_WRT].ulRserved1, pstTable[EN_DIAG_DEBUG_VCOM2_WRT_SUCC].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM2_WRT_SUCC].ulRserved1); vos_printf("*------------WRITE CALL BACK-------------------\n"); vos_printf("VCOM1 WRITE CALL BACK counts : %d \n VCOM1 WRITE CALL BACK fail counts : %d \n VCOM1 WRITE fail addr : %d\nVCOM1 WRITE fail len :%d\n\n", pstTable[EN_DIAG_DEBUG_VCOM1_WRT_CB].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM1_WRT_CB_ERR].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM1_WRT_CB_ERR].ulRserved1, pstTable[EN_DIAG_DEBUG_VCOM1_WRT_CB_ERR].ulRserved2); vos_printf("VCOM2 WRITE CALL BACK counts : %d \n VCOM2 WRITE CALL BACK fail counts : %d \n VCOM2 WRITE fail addr : %d\nVCOM2 WRITE fail len :%d\n\n", pstTable[EN_DIAG_DEBUG_VCOM2_WRT_CB].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM2_WRT_CB_ERR].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM2_WRT_CB_ERR].ulRserved1, pstTable[EN_DIAG_DEBUG_VCOM2_WRT_CB_ERR].ulRserved2); vos_printf("*------------EVT CALL BACK-------------------\n"); vos_printf("VCOM1 EVT CALL BACK counts : %d \n VCOM1 EVT type : %d\n\n", pstTable[EN_DIAG_DEBUG_VCOM1_EVT].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM1_EVT].ulRserved1); vos_printf("VCOM2 EVT CALL BACK counts : %d \n VCOM2 EVT type : %d\n\n", pstTable[EN_DIAG_DEBUG_VCOM2_EVT].ulCalledNum, pstTable[EN_DIAG_DEBUG_VCOM2_EVT].ulRserved1); }
VOS_VOID Debug_DiagUdiRead(VOS_VOID) { DIAG_DEBUG_INFO_TBL_STRU* pstTable; pstTable = diag_DebugGetInfo(); vos_printf("*------------UDI PRE READ FROM BSP----------------\n"); vos_printf("Times : %d \n", pstTable[EN_DIAG_DEBUG_UDI_READ_START].ulCalledNum); vos_printf("slReadlen : %d \n", pstTable[EN_DIAG_DEBUG_UDI_READ_START].ulRserved1); vos_printf("usToReadSize : %d \n", pstTable[EN_DIAG_DEBUG_UDI_READ_START].ulRserved2); vos_printf("ucRedBuf : %d \n", pstTable[EN_DIAG_DEBUG_UDI_READ_START].ulRserved3); vos_printf("RTC Time : %d \n\n", pstTable[EN_DIAG_DEBUG_UDI_READ_START].ulRtcTime); vos_printf("*------------UDIREAD FROM BSP----------------\n"); vos_printf("Times : %d \n", pstTable[EN_DIAG_DEBUG_UDI_READ_END].ulCalledNum); vos_printf("slReadlen : %d \n", pstTable[EN_DIAG_DEBUG_UDI_READ_END].ulRserved1); vos_printf("usToReadSize : %d \n", pstTable[EN_DIAG_DEBUG_UDI_READ_END].ulRserved2); vos_printf("ucRedBuf : %d \n", pstTable[EN_DIAG_DEBUG_UDI_READ_END].ulRserved3); vos_printf("RTC Time : %d \n\n", pstTable[EN_DIAG_DEBUG_UDI_READ_END].ulRtcTime); }
VOS_VOID Debug_DiagFw(VOS_VOID) { DIAG_DEBUG_INFO_TBL_STRU* pstTable; pstTable = diag_DebugGetInfo(); vos_printf("*------------DiagFw INIT-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_FW_INIT].ulCalledNum, pstTable[EN_DIAG_DEBUG_FW_INIT].ulRserved1, pstTable[EN_DIAG_DEBUG_FW_INIT].ulRserved2); vos_printf("*------------DiagFw INIT ERROR-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n fail branch : %d \n\n", pstTable[EN_DIAG_DEBUG_FW_INIT_ERROR].ulCalledNum, pstTable[EN_DIAG_DEBUG_FW_INIT_ERROR].ulRserved1, pstTable[EN_DIAG_DEBUG_FW_INIT_ERROR].ulRserved2, pstTable[EN_DIAG_DEBUG_FW_INIT_ERROR].ulRserved3); vos_printf("*------------DiagFw DECODE CMD-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_FW_DECODE_CMD_ENTRY].ulCalledNum, pstTable[EN_DIAG_DEBUG_FW_DECODE_CMD_ENTRY].ulRserved1, pstTable[EN_DIAG_DEBUG_FW_DECODE_CMD_ENTRY].ulRserved2); vos_printf("*------------DiagFw DECODE CMD ERROR-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n fail branch : %d \n\n", pstTable[EN_DIAG_DEBUG_FW_DECODE_CMD_ENTRY_ERROR].ulCalledNum, pstTable[EN_DIAG_DEBUG_FW_DECODE_CMD_ENTRY_ERROR].ulRserved1, pstTable[EN_DIAG_DEBUG_FW_DECODE_CMD_ENTRY_ERROR].ulRserved2, pstTable[EN_DIAG_DEBUG_FW_DECODE_CMD_ENTRY_ERROR].ulRserved3); vos_printf("*------------DiagFw TIME_OUT-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_FW_TIME_OUT_ENTRY].ulCalledNum, pstTable[EN_DIAG_DEBUG_FW_TIME_OUT_ENTRY].ulRserved1, pstTable[EN_DIAG_DEBUG_FW_TIME_OUT_ENTRY].ulRserved2); vos_printf("*------------DiagFw TIME_OUT ERROR-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n fail branch : %d \n\n", pstTable[EN_DIAG_DEBUG_FW_TIME_OUT_ENTRY_ERROR].ulCalledNum, pstTable[EN_DIAG_DEBUG_FW_TIME_OUT_ENTRY_ERROR].ulRserved1, pstTable[EN_DIAG_DEBUG_FW_TIME_OUT_ENTRY_ERROR].ulRserved2, pstTable[EN_DIAG_DEBUG_FW_TIME_OUT_ENTRY_ERROR].ulRserved3); vos_printf("*------------DiagFw APP_CNF-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_FW_APP_CNF_ENTRY].ulCalledNum, pstTable[EN_DIAG_DEBUG_FW_APP_CNF_ENTRY].ulRserved1, pstTable[EN_DIAG_DEBUG_FW_APP_CNF_ENTRY].ulRserved2); vos_printf("*------------DiagFw APP_CNF ERROR-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n fail branch : %d \n\n", pstTable[EN_DIAG_DEBUG_FW_APP_CNF_ENTRY_ERROR].ulCalledNum, pstTable[EN_DIAG_DEBUG_FW_APP_CNF_ENTRY_ERROR].ulRserved1, pstTable[EN_DIAG_DEBUG_FW_APP_CNF_ENTRY_ERROR].ulRserved2, pstTable[EN_DIAG_DEBUG_FW_APP_CNF_ENTRY_ERROR].ulRserved3); vos_printf("*------------DiagFw AGENT_CNF-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_FW_AGENT_CNF_ENTRY].ulCalledNum, pstTable[EN_DIAG_DEBUG_FW_AGENT_CNF_ENTRY].ulRserved1, pstTable[EN_DIAG_DEBUG_FW_AGENT_CNF_ENTRY].ulRserved2); vos_printf("*------------DiagFw AGENT_CNF ERROR-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n fail branch : %d \n\n", pstTable[EN_DIAG_DEBUG_FW_AGENT_CNF_ENTRY_ERROR].ulCalledNum, pstTable[EN_DIAG_DEBUG_FW_AGENT_CNF_ENTRY_ERROR].ulRserved1, pstTable[EN_DIAG_DEBUG_FW_AGENT_CNF_ENTRY_ERROR].ulRserved2, pstTable[EN_DIAG_DEBUG_FW_AGENT_CNF_ENTRY_ERROR].ulRserved3); }
VOS_VOID Debug_DiagAgent(VOS_VOID) { DIAG_DEBUG_INFO_TBL_STRU* pstTable; pstTable = diag_DebugGetInfo(); vos_printf("*------------DIAG AGENT INIT-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_AGENT_INIT].ulCalledNum, pstTable[EN_DIAG_DEBUG_AGENT_INIT].ulRserved1, pstTable[EN_DIAG_DEBUG_AGENT_INIT].ulRserved2); vos_printf("*------------DIAG AGENT INIT ERROR-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_AGENT_INIT_ERROR].ulCalledNum, pstTable[EN_DIAG_DEBUG_AGENT_INIT_ERROR].ulRserved1, pstTable[EN_DIAG_DEBUG_AGENT_INIT_ERROR].ulRserved2); vos_printf("*------------DIAG REG RD RECEIVE CMD-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_REG_RD].ulCalledNum, pstTable[EN_DIAG_DEBUG_REG_RD].ulRserved1, pstTable[EN_DIAG_DEBUG_REG_RD].ulRserved2, pstTable[EN_DIAG_DEBUG_REG_RD].ulRserved3); vos_printf("*------------DIAG REG WR RECEIVE CMD-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_REG_WR].ulCalledNum, pstTable[EN_DIAG_DEBUG_REG_WR].ulRserved1, pstTable[EN_DIAG_DEBUG_REG_WR].ulRserved2, pstTable[EN_DIAG_DEBUG_REG_WR].ulRserved3); vos_printf("*------------DIAG BBP SAMPLE RECEIVE CMD-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_BBP_SAMPLE].ulCalledNum, pstTable[EN_DIAG_DEBUG_BBP_SAMPLE].ulRserved1, pstTable[EN_DIAG_DEBUG_BBP_SAMPLE].ulRserved2, pstTable[EN_DIAG_DEBUG_BBP_SAMPLE].ulRserved3); vos_printf("*------------DIAG BBP LOG RECEIVE CMD-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_BBP_LOG].ulCalledNum, pstTable[EN_DIAG_DEBUG_BBP_LOG].ulRserved1, pstTable[EN_DIAG_DEBUG_BBP_LOG].ulRserved2, pstTable[EN_DIAG_DEBUG_BBP_LOG].ulRserved3); vos_printf("*------------DIAG BBP SAMPLE RECEIVE CMD-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_BBP_SAMPLE].ulCalledNum, pstTable[EN_DIAG_DEBUG_BBP_SAMPLE].ulRserved1, pstTable[EN_DIAG_DEBUG_BBP_SAMPLE].ulRserved2, pstTable[EN_DIAG_DEBUG_BBP_SAMPLE].ulRserved3); vos_printf("*------------DIAG LTE_DSP_CNF-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_LTE_DSP_CNF].ulCalledNum, pstTable[EN_DIAG_DEBUG_LTE_DSP_CNF].ulRserved1, pstTable[EN_DIAG_DEBUG_LTE_DSP_CNF].ulRserved2, pstTable[EN_DIAG_DEBUG_LTE_DSP_CNF].ulRserved3); vos_printf("*------------DIAG TDS_DSP_CNF-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_TDS_DSP_CNF].ulCalledNum, pstTable[EN_DIAG_DEBUG_TDS_DSP_CNF].ulRserved1, pstTable[EN_DIAG_DEBUG_TDS_DSP_CNF].ulRserved2, pstTable[EN_DIAG_DEBUG_TDS_DSP_CNF].ulRserved3); }
VOS_VOID Debug_DiagAppgent(VOS_VOID) { DIAG_DEBUG_INFO_TBL_STRU* pstTable; pstTable = diag_DebugGetInfo(); vos_printf("*------------DIAG NV RD RECEIVE CMD-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_NV_RD].ulCalledNum, pstTable[EN_DIAG_DEBUG_NV_RD].ulRserved1, pstTable[EN_DIAG_DEBUG_NV_RD].ulRserved2, pstTable[EN_DIAG_DEBUG_NV_RD].ulRserved3); vos_printf("*------------DIAG NV WR RECEIVE CMD-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_NV_WR].ulCalledNum, pstTable[EN_DIAG_DEBUG_NV_WR].ulRserved1, pstTable[EN_DIAG_DEBUG_NV_WR].ulRserved2, pstTable[EN_DIAG_DEBUG_NV_WR].ulRserved3); vos_printf("*------------DIAG NV IMPORT RECEIVE CMD-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_NV_IMPORT].ulCalledNum, pstTable[EN_DIAG_DEBUG_NV_IMPORT].ulRserved1, pstTable[EN_DIAG_DEBUG_NV_IMPORT].ulRserved2, pstTable[EN_DIAG_DEBUG_NV_IMPORT].ulRserved3); vos_printf("*------------DIAG NV EXPORT RECEIVE CMD-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_NV_EXPORT].ulCalledNum, pstTable[EN_DIAG_DEBUG_NV_EXPORT].ulRserved1, pstTable[EN_DIAG_DEBUG_NV_EXPORT].ulRserved2, pstTable[EN_DIAG_DEBUG_NV_EXPORT].ulRserved3); vos_printf("*------------DIAG LOG SAVE RECEIVE CMD-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_LOG_SAVE].ulCalledNum, pstTable[EN_DIAG_DEBUG_LOG_SAVE].ulRserved1, pstTable[EN_DIAG_DEBUG_LOG_SAVE].ulRserved2, pstTable[EN_DIAG_DEBUG_LOG_SAVE].ulRserved3); vos_printf("*------------DIAG PS PS_TRANS_REQ-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_PS_TRANS_REQ].ulCalledNum, pstTable[EN_DIAG_DEBUG_PS_TRANS_REQ].ulRserved1, pstTable[EN_DIAG_DEBUG_PS_TRANS_REQ].ulRserved2, pstTable[EN_DIAG_DEBUG_PS_TRANS_REQ].ulRserved3); vos_printf("*------------DIAG PS_TRANS_CNF-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n ulRserved3 : %d\n", pstTable[EN_DIAG_DEBUG_PS_TRANS_CNF].ulCalledNum, pstTable[EN_DIAG_DEBUG_PS_TRANS_CNF].ulRserved1, pstTable[EN_DIAG_DEBUG_PS_TRANS_CNF].ulRserved2, pstTable[EN_DIAG_DEBUG_PS_TRANS_CNF].ulRserved3); }
VOS_VOID Debug_DiagCfg(VOS_VOID) { DIAG_DEBUG_INFO_TBL_STRU* pstTable; pstTable = diag_DebugGetInfo(); vos_printf("*------------DIAG CONN CFG-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_CONN_CFG].ulCalledNum, pstTable[EN_DIAG_DEBUG_CONN_CFG].ulRserved1, pstTable[EN_DIAG_DEBUG_CONN_CFG].ulRserved2); vos_printf("*------------DIAG DISCONN CFG-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_DIS_CONN_CFG].ulCalledNum, pstTable[EN_DIAG_DEBUG_DIS_CONN_CFG].ulRserved1, pstTable[EN_DIAG_DEBUG_DIS_CONN_CFG].ulRserved2); vos_printf("*------------DIAG AIR CFG-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_AIR_CFG].ulCalledNum, pstTable[EN_DIAG_DEBUG_AIR_CFG].ulRserved1, pstTable[EN_DIAG_DEBUG_AIR_CFG].ulRserved2); vos_printf("*------------DIAG LAYER CFG-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_LAYER_CFG].ulCalledNum, pstTable[EN_DIAG_DEBUG_LAYER_CFG].ulRserved1, pstTable[EN_DIAG_DEBUG_LAYER_CFG].ulRserved2); vos_printf("*------------DIAG PRINT CFG-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_PRINT_CFG].ulCalledNum, pstTable[EN_DIAG_DEBUG_PRINT_CFG].ulRserved1, pstTable[EN_DIAG_DEBUG_PRINT_CFG].ulRserved2); vos_printf("*------------DIAG MSG CFG-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_MSG].ulCalledNum, pstTable[EN_DIAG_DEBUG_MSG].ulRserved1, pstTable[EN_DIAG_DEBUG_MSG].ulRserved2); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_MSG_ERR].ulCalledNum, pstTable[EN_DIAG_DEBUG_MSG_ERR].ulRserved1, pstTable[EN_DIAG_DEBUG_MSG_ERR].ulRserved2); vos_printf("*------------DIAG EVENT CFG-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_EVENT_CFG].ulCalledNum, pstTable[EN_DIAG_DEBUG_EVENT_CFG].ulRserved1, pstTable[EN_DIAG_DEBUG_EVENT_CFG].ulRserved2); vos_printf("*------------DIAG USEPLANE CFG-------------------\n"); vos_printf("CALL counts : %d \n ulRserved1 : %d \n ulRserved2 : %d \n\n", pstTable[EN_DIAG_DEBUG_USEPLANE_CFG].ulCalledNum, pstTable[EN_DIAG_DEBUG_USEPLANE_CFG].ulRserved1, pstTable[EN_DIAG_DEBUG_USEPLANE_CFG].ulRserved2); }
VOS_VOID Debug_DiagSocp(VOS_VOID) { DIAG_DEBUG_INFO_TBL_STRU* pstTable; pstTable = diag_DebugGetInfo(); vos_printf("*------------vcom发送给SOCP解码源总数:-------------------\n"); vos_printf("Call Counts : %d \nulChanID : %d \nulDataSize : %d\n\n", pstTable[EN_DIAG_DEBUG_DECODE_PACKET_START].ulCalledNum, pstTable[EN_DIAG_DEBUG_DECODE_PACKET_START].ulRserved1, pstTable[EN_DIAG_DEBUG_DECODE_PACKET_START].ulRserved2); vos_printf("*------------vcom发送给SOCP解码源失败数:-------------------\n"); vos_printf("Fail Counts : %d \nulRserved1 : %d \nulRserved2 : %d \nbranch : %d\n\n", pstTable[EN_DIAG_DEBUG_DECODE_PACKET_START_ERROR].ulCalledNum, pstTable[EN_DIAG_DEBUG_DECODE_PACKET_START_ERROR].ulRserved1, pstTable[EN_DIAG_DEBUG_DECODE_PACKET_START_ERROR].ulRserved2, pstTable[EN_DIAG_DEBUG_DECODE_PACKET_START_ERROR].ulRserved3); vos_printf("*------------SOCP解码回调进入:-------------------\n"); vos_printf("Call Counts : %d \nulChanID : %d \nulDataSize : %d\n\n", pstTable[EN_DIAG_DEBUG_DECODE_PACKET_RCVE].ulCalledNum, pstTable[EN_DIAG_DEBUG_DECODE_PACKET_RCVE].ulRserved1, pstTable[EN_DIAG_DEBUG_DECODE_PACKET_RCVE].ulRserved2); vos_printf("*------------SOCP解码回调失败:-------------------\n"); vos_printf("Fail Counts : %d \nulRserved1 : %d \nulRserved2 : %d \nbranch : %d\n\n", pstTable[EN_DIAG_DEBUG_DECODE_PACKET_RCVE_ERROR].ulCalledNum, pstTable[EN_DIAG_DEBUG_DECODE_PACKET_RCVE_ERROR].ulRserved1, pstTable[EN_DIAG_DEBUG_DECODE_PACKET_RCVE_ERROR].ulRserved2, pstTable[EN_DIAG_DEBUG_DECODE_PACKET_RCVE_ERROR].ulRserved3); vos_printf("*------------获取SOCP 编码源BUF进入:-------------------\n"); vos_printf("Call Counts : %d \nulChanID : %d \nulDataSize : %d\n\n", pstTable[EN_DIAG_DEBUG_GET_SRC_BUF_START].ulCalledNum, pstTable[EN_DIAG_DEBUG_GET_SRC_BUF_START].ulRserved1, pstTable[EN_DIAG_DEBUG_GET_SRC_BUF_START].ulRserved2); vos_printf("*------------获取SOCP 编码源BUF失败:-------------------\n"); vos_printf("Fail Counts : %d \nulRserved1 : %d \nulRserved2 : %d \nbranch : %d\n\n", pstTable[EN_DIAG_DEBUG_GET_SRC_BUF_START_ERROR].ulCalledNum, pstTable[EN_DIAG_DEBUG_GET_SRC_BUF_START_ERROR].ulRserved1, pstTable[EN_DIAG_DEBUG_GET_SRC_BUF_START_ERROR].ulRserved2, pstTable[EN_DIAG_DEBUG_GET_SRC_BUF_START_ERROR].ulRserved3); vos_printf("*------------写给SOCP编码进入:-------------------\n"); vos_printf("Call Counts : %d \nulChanID : %d \nulDataSize : %d\n\n", pstTable[EN_DIAG_DEBUG_CODE_PACKET_START].ulCalledNum, pstTable[EN_DIAG_DEBUG_CODE_PACKET_START].ulRserved1, pstTable[EN_DIAG_DEBUG_CODE_PACKET_START].ulRserved2); vos_printf("*------------写给SOCP编码失败:-------------------\n"); vos_printf("Fail Counts : %d \nulRserved1 : %d \nulRserved2 : %d \nbranch : %d\n\n", pstTable[EN_DIAG_DEBUG_CODE_PACKET_START_ERROR].ulCalledNum, pstTable[EN_DIAG_DEBUG_CODE_PACKET_START_ERROR].ulRserved1, pstTable[EN_DIAG_DEBUG_CODE_PACKET_START_ERROR].ulRserved2, pstTable[EN_DIAG_DEBUG_CODE_PACKET_START_ERROR].ulRserved3); vos_printf("*------------编码目的进入总数-------------------\n"); vos_printf("Call Counts : %d \nulChanID : %d \nulDataSize : %d\n\n", pstTable[EN_DIAG_DEBUG_CODE_PACKET_RCVE].ulCalledNum, pstTable[EN_DIAG_DEBUG_CODE_PACKET_RCVE].ulRserved1, pstTable[EN_DIAG_DEBUG_CODE_PACKET_RCVE].ulRserved2); vos_printf("*------------编码目的写入USB失败-------------------\n"); vos_printf("Fail Counts : %d \nulRserved1 : %d \nulRserved2 : %d \nbranch : %d\n\n", pstTable[EN_DIAG_DEBUG_CODE_PACKET_RCVE_ERROR].ulCalledNum, pstTable[EN_DIAG_DEBUG_CODE_PACKET_RCVE_ERROR].ulRserved1, pstTable[EN_DIAG_DEBUG_CODE_PACKET_RCVE_ERROR].ulRserved2, pstTable[EN_DIAG_DEBUG_CODE_PACKET_RCVE_ERROR].ulRserved3); }
/***************************************************************************** 函 数 名 : NFExt_FidInit 功能描述 : NFExt_Fid初始化 输入参数 : ip - 初始化状态 输出参数 : 无 返 回 值 : 成功VOS_OK, 失败VOS_ERR 调用函数 : 被调函数 : 修改历史 : 1.日 期 : 2011年11月22日 作 者 : caikai 修改内容 : Created *****************************************************************************/ VOS_UINT32 NFExt_FidInit ( enum VOS_INIT_PHASE_DEFINE ip ) { VOS_UINT32 ulRslt; #if (FEATURE_ON == FEATURE_NFEXT) VOS_INT iRet; #endif switch ( ip ) { case VOS_IP_LOAD_CONFIG: #if (FEATURE_ON == FEATURE_NFEXT) /* 先完成模块初始化 */ iRet = NFExt_Init(); if ( 0 != iRet ) { vos_printf("NFExt_FidInit: NFExt_Init FAIL!\n"); return PS_FAIL; } #endif /* 可维可测模块注册PID */ ulRslt = VOS_RegisterPIDInfo(ACPU_PID_NFEXT, (Init_Fun_Type)NFExt_PidInit, (Msg_Fun_Type)NFExt_MsgProc); if( VOS_OK != ulRslt ) { vos_printf("reg UEPS_PID_NFEXT VOS_RegisterPIDInfo FAIL!\n"); return PS_FAIL; } ulRslt = VOS_RegisterMsgTaskPrio(ACPU_FID_NFEXT, VOS_PRIORITY_M4); if( VOS_OK != ulRslt ) { vos_printf("VOS_RegisterTaskPrio Failed!\n"); return PS_FAIL; } #if (FEATURE_ON == FEATURE_NFEXT) ulRslt = VOS_RegisterSelfTask(ACPU_FID_NFEXT, (VOS_TASK_ENTRY_TYPE)NFExt_CtrlTxMsgTask, VOS_PRIORITY_BASE, NF_TX_MSG_TASK_STACK_SIZE); if ( VOS_NULL_BYTE == ulRslt ) { vos_printf("Self Task Regist fail!\n"); } #endif break; case VOS_IP_FARMALLOC: case VOS_IP_INITIAL: case VOS_IP_ENROLLMENT: case VOS_IP_LOAD_DATA: case VOS_IP_FETCH_DATA: case VOS_IP_STARTUP: case VOS_IP_RIVAL: case VOS_IP_KICKOFF: case VOS_IP_STANDBY: case VOS_IP_BROADCAST_STATE: case VOS_IP_RESTART: case VOS_IP_BUTT: break; default: break; } return PS_SUCC; }
VOS_VOID diag_help(VOS_VOID) { vos_printf("Debug_DiagVcom: 查看ACORE通道打开状态,发送给USB次数及USB给回调次数\n"); vos_printf("Debug_DiagUdiRead: 查看ACORE从USB读取条数\n"); vos_printf("Debug_DiagSocp: 查看SOCP编解码情况记录\n"); vos_printf("Debug_DiagFw: 查看框架收到命令,及agent回复情况\n"); vos_printf("Debug_DiagApi: 查看PS调用API计数\n"); vos_printf("Debug_DiagCfg: 查看HSO下发开关设置状态\n"); vos_printf("Debug_DiagCmd: 查看FW,AGENT模块收到命令\n"); vos_printf("Debug_DiagAppgent: 查看APP AGENT各命令处理结果\n"); vos_printf("Debug_DiagAgent: 查看AGENT各命令处理结果\n"); vos_printf("diag_BufHelp: 查看DIAG buf状态及错误\n"); #if(FEATURE_SOCP_ON_DEMAND == FEATURE_ON) vos_printf("Debug_DiagSocpVote: 查看DIAG APP向SOCP投票状态及错误\n"); vos_printf("Debug_DiagDspMb: 查看DIAG AGENT与LDSP邮箱交互处理结果\n"); #endif }
static VOS_VOID atScanDmcmdModifier( VOS_UINT8 *pData, VOS_UINT16 *pLen) { VOS_UINT16 usLen = 0; VOS_UINT8 *pWrite = VOS_NULL_PTR; VOS_UINT8 *pRead = VOS_NULL_PTR; VOS_UINT8 *pTmp = VOS_NULL_PTR; VOS_UINT8 *pDataTmp = VOS_NULL_PTR; VOS_UINT8 aucStr[] = "*99**PPP"; VOS_UINT16 usStrLen = 0; pDataTmp = (VOS_UINT8*)AT_MALLOC(*pLen + 1); if (VOS_NULL_PTR == pDataTmp) { vos_printf("atScanDmcmdModifier(): AT_MALLOC Failed!\n"); return; } atRangeCopy(pDataTmp, pData, (pData + *pLen)); /* 保证字符串有结束符 */ pDataTmp[*pLen] = 0; pRead = pDataTmp; pWrite = pDataTmp; pTmp = (VOS_UINT8*)AT_STRSTR((VOS_CHAR *)pDataTmp,(VOS_CHAR *)aucStr); if(NULL != pTmp) { usStrLen = (VOS_UINT16)AT_STRLEN((VOS_CHAR *)aucStr); /* 检查前一半参数 */ while ( pRead < pTmp ) { /*删除修饰符,',','T','P','!','W','@'*/ if((',' != *pRead) && ('T' != *pRead) && ('P' != *pRead) && ('!' != *pRead) && ('W' != *pRead) && ('@' != *pRead)) { *pWrite++ = *pRead; usLen++; } pRead++; } while( pRead < (pTmp+usStrLen) ) { *pWrite++ = *pRead++; usLen++; } while( pRead < (pDataTmp+(*pLen)) ) { /*删除修饰符,',','T','P','!','W','@'*/ if((',' != *pRead) && ('T' != *pRead) && ('P' != *pRead) && ('!' != *pRead) && ('W' != *pRead) && ('@' != *pRead)) { *pWrite++ = *pRead; usLen++; } pRead++; } } else { /* 输入参数检查 */ while ( pRead < (pDataTmp+(*pLen)) ) { /*删除修饰符,',','T','P','!','W','@'*/ if((',' != *pRead) && ('T' != *pRead) && ('P' != *pRead) && ('!' != *pRead) && ('W' != *pRead) && ('@' != *pRead)) { *pWrite++ = *pRead; usLen++; } pRead++; } } atRangeCopy(pData, pDataTmp, (pDataTmp + *pLen)); *pLen = usLen; AT_FREE(pDataTmp); return; }
VOS_VOID OmAcpuShowOnOff(VOS_VOID) { vos_printf("g_ulAcpuOMSwitchOnOff = %d\r\n",g_ulAcpuOMSwitchOnOff); return; }
/***************************************************************************** Function : VOS_DeleteTask Description: Delete a task, on some platform this operation is prohibited. Input : ulTaskID -- ID of task to delete, 0 for current task ID VOS_NULL_DWORD means current task exit normally, so only need to free the dopra task resource, do not need to call OSAL_DeleteTask. Output : None Return : VOS_OK on success or error code on failed *****************************************************************************/ VOS_UINT32 VOS_DeleteTask( VOS_UINT32 ulTaskID ) { vos_printf("\r\nVOS_DeleteTask: Delete Task %x", ulTaskID); return(VOS_OK); }
VOS_UINT32 OM_AcpuReadNv(APP_OM_MSG_EX_STRU *pstAppToOmMsg, VOS_UINT16 usReturnPrimId) { OM_APP_MSG_EX_STRU *pstOmToAppMsg; APP_OM_READ_NV_STRU *pstAppOmReadNv; OM_APP_READ_NV_STRU *pstOmAppReadNv; VOS_UINT16 *pusOmToAppPara; VOS_UINT32 ulCount; VOS_UINT32 ulIndex; VOS_UINT32 ulTotalSize = 0; VOS_UINT32 ulResult; VOS_UINT16 usNvId; VOS_UINT32 ulNvLen; pstAppOmReadNv = (APP_OM_READ_NV_STRU*)(pstAppToOmMsg->aucPara); ulCount = pstAppOmReadNv->ulCount; /*Get the total length of all NV items.*/ for (ulIndex = 0; ulIndex < ulCount; ulIndex++) { usNvId = pstAppOmReadNv->ausNvItemId[ulIndex]; ulResult = NV_GetLength(usNvId, &ulNvLen); vos_printf("OM_AcpuReadNv NV_GetLength ulResult = %x\r\n", ulResult); if (VOS_OK != ulResult) { //ulResult &= 0x0000FFFF; NV_GET_RETURN(ulResult, usNvId); OM_AcpuSendResultChannel(pstAppToOmMsg->ucCpuId, pstAppToOmMsg->ucFuncType, ulResult, usReturnPrimId); PS_LOG1(WUEPS_PID_OM, 0, PS_PRINT_ERROR, "OM_AcpuReadNv:NV_GetLength, NV id: ",(VOS_INT32)usNvId); return ulResult; } ulTotalSize += ulNvLen; } /*Allocate the memory space.*/ ulTotalSize += OM_APP_MSG_EX_LEN + OM_READ_NV_HEAD_SIZE + (ulCount*OM_NV_ITEM_SIZE); pstOmToAppMsg = (OM_APP_MSG_EX_STRU*)VOS_AssistantMemAlloc(WUEPS_PID_OM, DYNAMIC_MEM_PT, ulTotalSize); if (VOS_NULL_PTR == pstOmToAppMsg) { OM_AcpuSendResultChannel(pstAppToOmMsg->ucCpuId, pstAppToOmMsg->ucFuncType, VOS_ERR, usReturnPrimId); PS_LOG(WUEPS_PID_OM, 0, PS_PRINT_ERROR, "OM_AcpuReadNv:VOS_MemAlloc.\n"); return VOS_ERR; } /*Assign the return value and the count to struct's fields.*/ pstOmAppReadNv = (OM_APP_READ_NV_STRU*)(pstOmToAppMsg->aucPara); pstOmAppReadNv->ulErrorCode = VOS_OK; pstOmAppReadNv->ulCount = ulCount; pusOmToAppPara = (VOS_UINT16*)(pstOmAppReadNv->ausNVItemData); /*Read the NV content by the NV Id.*/ for(ulIndex = 0; ulIndex < ulCount; ulIndex++) { usNvId = pstAppOmReadNv->ausNvItemId[ulIndex]; NV_GetLength(usNvId, &ulNvLen); *pusOmToAppPara = usNvId; pusOmToAppPara++; *pusOmToAppPara = (VOS_UINT16)ulNvLen; pusOmToAppPara++; ulResult = NV_ReadEx(OM_GET_FUNCID_MODEMINFO(pstAppToOmMsg->ucFuncType), usNvId, pusOmToAppPara, ulNvLen); vos_printf("OM_AcpuReadNv ulResult = %x\r\n", ulResult); if (NV_OK != ulResult) { //ulResult &= 0x0000FFFF; NV_GET_RETURN(ulResult, usNvId); OM_AcpuSendResultChannel(pstAppToOmMsg->ucCpuId, pstAppToOmMsg->ucFuncType, ulResult, usReturnPrimId); VOS_MemFree(WUEPS_PID_OM, pstOmToAppMsg); PS_LOG1(WUEPS_PID_OM, 0, PS_PRINT_ERROR, "OM_AcpuReadNv:NV_Read, NV id:", (VOS_INT32)usNvId); return ulResult; } pusOmToAppPara += ulNvLen/sizeof(VOS_UINT16); } pstOmToAppMsg->usLength = (VOS_UINT16)(ulTotalSize - VOS_OM_HEADER_LEN); OM_AcpuSendContentChannel(pstAppToOmMsg->ucCpuId, pstAppToOmMsg->ucFuncType, (OM_RSP_PACKET_STRU *)pstOmToAppMsg, usReturnPrimId); VOS_MemFree(WUEPS_PID_OM, pstOmToAppMsg); return VOS_OK; }
VOS_VOID RRM_ShowInfo(VOS_VOID) { VOS_UINT16 usIndex; RRM_RFID_INFO_STRU *pstRFIDInfoAddr = VOS_NULL_PTR; RRM_REG_INFO_STRU *pstRegInfoAddr = VOS_NULL_PTR; NV_MODEM_RF_SHARE_CFG_STRU *pstModemCfgInfoAddr = VOS_NULL_PTR; for (usIndex = 0; usIndex < RRM_RFID_BUTT; usIndex++) { pstRFIDInfoAddr = RRM_GetRFIDInfoAddr(usIndex); if (VOS_NULL_PTR != pstRFIDInfoAddr) { vos_printf("========RFID info for Index %d ========\n", usIndex); vos_printf("RFID使用状态: %d \n", pstRFIDInfoAddr->enRFIDUsedFlg); vos_printf("RFID使用的MODEM: %d \n", pstRFIDInfoAddr->enUsingModemId); vos_printf("RFID使用的值: %d \n", pstRFIDInfoAddr->usUsingRFIDValue); } } vos_printf("\r\n"); for (usIndex = 0; usIndex < RRM_REG_MAX_NUMBER; usIndex++) { pstRegInfoAddr = RRM_GetRegInfoAddr(usIndex); if (VOS_NULL_PTR != pstRegInfoAddr) { vos_printf("========REG info for Index %d ========\n", usIndex); vos_printf("REG信息状态: %d \n", pstRegInfoAddr->enRegisteredFlg); vos_printf("REG信息的RAT TYPE: %d \n", pstRegInfoAddr->enRatType); vos_printf("REG信息的MODEM: %d \n", pstRegInfoAddr->enModemId); vos_printf("REG信息的PID: %d \n", pstRegInfoAddr->ulPid); } } vos_printf("\r\n"); for (usIndex = 0; usIndex < MODEM_ID_BUTT; usIndex++) { pstModemCfgInfoAddr = RRM_GetModemCfgInfoAddr(usIndex); if (VOS_NULL_PTR != pstModemCfgInfoAddr) { vos_printf("========MODEM info for Index %d ========\n", usIndex); vos_printf("MODEM是否支持该特性: %d \n", pstModemCfgInfoAddr->usSupportFlag); vos_printf("MODEM的GSM RFID值: %d \n", pstModemCfgInfoAddr->usGSMRFID); vos_printf("MODEM的WCDMA RFID值: %d \n", pstModemCfgInfoAddr->usWCDMARFID); vos_printf("MODEM的TDS RFID值: %d \n", pstModemCfgInfoAddr->usTDSRFID); vos_printf("MODEM的LTE RFID值: %d \n", pstModemCfgInfoAddr->usLTERFID); vos_printf("MODEM的CDMA RFID值: %d \n", pstModemCfgInfoAddr->usCDMARFID); vos_printf("MODEM的EVDO RFID值: %d \n", pstModemCfgInfoAddr->usEVDORFID); } } vos_printf("\r\n"); return; }
VOS_VOID OmAcpuShowOnOff(VOS_VOID) { vos_printf("g_ulAcpuOMSwitchOnOff = %d\r\n",g_stAcpuCnfCtrlInfo.ulOMSwitchOnOff); return; }
VOS_VOID RNIC_ShowRnicPdpStats(VOS_UINT8 ucRmNetId) { RNIC_PDP_CTX_STRU *pstPdpCtx; if (ucRmNetId >= RNIC_NET_ID_MAX_NUM) { vos_printf("RNIC_ShowRnicPdpStats: NetId overtop, ucRmNetId = %d\n", ucRmNetId); return; } pstPdpCtx = RNIC_GetPdpCtxAddr(ucRmNetId); vos_printf("RNIC %d IPV4 PDP STATUS %d\n", ucRmNetId, pstPdpCtx->stIpv4PdpInfo.enRegStatus); vos_printf("RNIC %d IPV4 PDP RABID %d\n", ucRmNetId, pstPdpCtx->stIpv4PdpInfo.ucRabId); vos_printf("RNIC %d IPV4 PDP PDNID %d\n", ucRmNetId, pstPdpCtx->stIpv4PdpInfo.ucPdnId); vos_printf("RNIC %d IPV4 PDP IPV4ADDR %d\n\n", ucRmNetId, pstPdpCtx->stIpv4PdpInfo.ulIpv4Addr); vos_printf("RNIC %d IPV6 PDP STATUS %d\n", ucRmNetId, pstPdpCtx->stIpv6PdpInfo.enRegStatus); vos_printf("RNIC %d IPV6 PDP RABID %d\n", ucRmNetId, pstPdpCtx->stIpv6PdpInfo.ucRabId); vos_printf("RNIC %d IPV6 PDP PDNID %d\n", ucRmNetId, pstPdpCtx->stIpv6PdpInfo.ucPdnId); vos_printf("RNIC %d IPV6 PDP IPV6ADDR %s\n\n", ucRmNetId, pstPdpCtx->stIpv6PdpInfo.aucIpv6Addr); vos_printf("RNIC %d IPV4V6 PDP STATUS %d\n", ucRmNetId, pstPdpCtx->stIpv4v6PdpInfo.enRegStatus); vos_printf("RNIC %d IPV4V6 PDP RABID %d\n", ucRmNetId, pstPdpCtx->stIpv4v6PdpInfo.ucRabId); vos_printf("RNIC %d IPV4V6 PDP PDNID %d\n", ucRmNetId, pstPdpCtx->stIpv4v6PdpInfo.ucPdnId); vos_printf("RNIC %d IPV4V6 PDP IPV4ADDR %d\n", ucRmNetId, pstPdpCtx->stIpv4v6PdpInfo.ulIpv4Addr); vos_printf("RNIC %d IPV4V6 PDP IPV6ADDR %s\n", ucRmNetId, pstPdpCtx->stIpv4v6PdpInfo.aucIpv6Addr); }
VOS_VOID OmAcpuDiscCnfShow(VOS_VOID) { vos_printf("OmAcpuDiscCnfShow = %d\r\n",g_ulAcpuDiscRcvCnt); return; }
VOS_VOID TAF_APS_ShowDdrInfo(VOS_VOID) { VOS_UINT32 i; VOS_UINT32 j; TAF_APS_SWITCH_DDR_RATE_INFO_STRU *pstSwitchDdrInfo; pstSwitchDdrInfo = TAF_APS_GetSwitchDdrRateInfoAddr(); vos_printf("request id %d\n", pstSwitchDdrInfo->iDfsReqId); vos_printf("request value %d\n", pstSwitchDdrInfo->ulReqValue); vos_printf("multi dfs flag %d\n", pstSwitchDdrInfo->ulMultiDfsFlg); for (i = 0; i < TAF_NVIM_DIFF_DFS_NUM; i++) { for (j = 0; j < pstSwitchDdrInfo->astDfsConfig[i].ulProfileNum; j++) { vos_printf("rat[%d] profile[%d] ulDlRate %d\n", i, j, pstSwitchDdrInfo->astDfsConfig[i].astProfile[j].ulDlRate); vos_printf("rat[%d] profile[%d] ulUlRate %d\n", i, j, pstSwitchDdrInfo->astDfsConfig[i].astProfile[j].ulUlRate); vos_printf("rat[%d] profile[%d] ulDdrBand %d\n", i, j, pstSwitchDdrInfo->astDfsConfig[i].astProfile[j].ulDdrBand); } } vos_printf("request Suc Count %d\n", pstSwitchDdrInfo->stDfsDebugInfo.ulRequestSucCnt); vos_printf("request fail Count %d\n", pstSwitchDdrInfo->stDfsDebugInfo.ulRequestFailCnt); vos_printf("update Suc Count %d\n", pstSwitchDdrInfo->stDfsDebugInfo.ulUpdateSucCnt); vos_printf("update fail count %d\n", pstSwitchDdrInfo->stDfsDebugInfo.ulUpdateFailCnt); vos_printf("min band %d\n", pstSwitchDdrInfo->ulMinBand); vos_printf("max band %d\n", pstSwitchDdrInfo->ulMaxBand); }
VOS_VOID diag_BufHelp(VOS_VOID) { VOS_UINT32 i =0; vos_printf("信号量锁次数=%x:\n", g_LockBufTimes); vos_printf("信号量解锁次数=%x:\n", g_UnLockBufTimes); vos_printf("\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"); for(i = 0 ;i< 2 ;i++) { vos_printf("编码源BUF起始虚拟地址=%p:\n", g_stDiagBufCtrl[i].pucBuf); vos_printf("编码源BUF起始物理地址=%p:\n", g_stDiagBufCtrl[i].pucRealBuf); vos_printf("编码源BUF分配地址相对于起始虚拟地址偏移=0x%x:\n", g_stDiagBufCtrl[i].lAlloc); vos_printf("编码源BUF释放地址相对于起始虚拟地址偏移=0x%x:\n", g_stDiagBufCtrl[i].lRelease); vos_printf("编码源BUF填充地址相对于起始虚拟地址偏移=0x%x:\n", g_stDiagBufCtrl[i].lPadding); vos_printf("编码源BUF大小=%d(K):\n", (g_stDiagBufCtrl[i].lBufSize)/1024); vos_printf("\nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"); } vos_printf("分配 uncache mem错误次数=%d:\n", g_stDiagToHsoErrRecord.usNoMemErr); vos_printf("分配 BUF错误次数=%d:\n", g_stDiagToHsoErrRecord.usAllocMemErr); vos_printf("释放 BUF错误次数=%d:\n", g_stDiagToHsoErrRecord.usRlsMemErr); vos_printf("释放 RD错误次数=%d:\n", g_stDiagToHsoErrRecord.usRlsRdErr); vos_printf("实地址转换虚地址错误次数=%d:\n", g_stDiagToHsoErrRecord.usRlsAddrErr); vos_printf("需地址转换实地址错误次数=%d:\n", g_stDiagToHsoErrRecord.usSendAddrErr); vos_printf("写入SOCP错误次数=%d:\n", g_stDiagToHsoErrRecord.usSendSocpDataErr); vos_printf("无RD可清次数=%d:\n", g_stDiagToHsoErrRecord.usNoRdNum); }
/***************************************************************************** 函 数 名 : NAS_ERABM_IpfDebug 功能描述 : 打印RABM IPF统计信息到串口 输出参数 : 无 返 回 值 : VOS_VOID 调用函数 : 被调函数 : 修改历史 : 1.日 期 : 2011年4月12日 作 者 : L62099 修改内容 : 新生成函数 *****************************************************************************/ VOS_VOID NAS_ERABM_IpfDebug() { vos_printf("\n------------NAS RABM IPF STATICS-----------\n"); vos_printf("\nNAS ERABM UL RCV PACKET NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_UL_RCV_NUM()); vos_printf("\nNAS ERABM UL RCV PACKET BYTES: \t\t\t%d",NAS_ERABM_IPF_OM_GET_UL_RCV_BYTES()); vos_printf("\nNAS ERABM UL RCV PACKET ERR NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_UL_ERR_CNT()); vos_printf("\nNAS ERABM UL RCV FRAGMENT PACKET NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_UL_FRAG_CNT()); vos_printf("\nNAS ERABM UL DISCARD PACKET NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_UL_DISCARD_CNT()); vos_printf("\nNAS ERABM UL PRCS PACKET NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_UL_PRCS_BYTES()); vos_printf("\n"); vos_printf("\nNAS ERABM DL RCV PACKET NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_DL_RCV_NUM()); vos_printf("\nNAS ERABM DL RCV PACKET BYTES: \t\t\t%d",NAS_ERABM_IPF_OM_GET_DL_RCV_BYTES()); vos_printf("\nNAS ERABM DL RCV PACKET ERR NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_DL_ERR_CNT()); vos_printf("\nNAS ERABM DL RCV FRAGMENT PACKET NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_DL_FRAG_CNT()); vos_printf("\nNAS ERABM DL DISCARD PACKET NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_DL_DISCARD_CNT()); vos_printf("\nNAS ERABM DL PRCS PACKET NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_DL_PRCS_BYTES()); vos_printf("\n"); vos_printf("\nNAS ERABM DL NON USER DATA NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_DL_NON_USRDATA_CNT()); vos_printf("\nNAS ERABM DL USER DATA NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_DL_USRDATA_CNT()); vos_printf("\nNAS ERABM UL FILTER ERR NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_UL_FILTER_ERR_CNT()); vos_printf("\nNAS ERABM DL DATA ERR NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_DL_DATA_ERR_CNT()); vos_printf("\nNAS ERABM IP FILTER FULL NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_FILTER_FULL_CNT()); vos_printf("\n"); vos_printf("\nNAS ERABM IPV4 FRAGMENT PACKE NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_RCV_UL_IPV4_PACK_NUM()); vos_printf("\nNAS ERABM IPV4 NON HEADER FRAGMENT PACKE NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_RCV_UL_IPV4_NON_HEADER_PACK_NUM()); vos_printf("\nNAS ERABM IPV4 NON HEADER FRAGMENT FIND DEFT FAIL PACKE NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_RCV_UL_IPV4_NON_HEADER_FIND_DEFT_FAIL_PACK_NUM()); vos_printf("\nNAS ERABM IPV4 HEADER FRAGMENT PACKE NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_RCV_UL_IPV4_HEADER_PACK_NUM()); vos_printf("\nNAS ERABM IPV4 HEADER FRAGMENT NO UPPER LAYER PACKE NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_RCV_UL_IPV4_HEADER_NO_UPLAYER_PACK_NUM()); vos_printf("\nNAS ERABM IPV4 DISCARD FRAGMENT PACKE NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_RCV_UL_DISCARD_IPV4_PACK_NUM()); vos_printf("\n"); vos_printf("\nNAS ERABM IPV6 FRAGMENT PACKE NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_RCV_UL_IPV6_PACK_NUM()); vos_printf("\nNAS ERABM IPV6 DISCARD FRAGMENT PACKE NUM: \t\t\t%d",NAS_ERABM_IPF_OM_GET_RCV_UL_DISCARD_IPV6_PACK_NUM()); vos_printf("\n-------------------END---------------------\n"); }
VOS_VOID NFExt_StatsShow(VOS_VOID) { vos_printf("网桥forward流控丢掉的数据量 %ld \n", g_stNfExtStats.aulStats[NF_EXT_STATS_BR_FC_DROP]); vos_printf("进入网桥forward hook的数据量 %ld \n", g_stNfExtStats.aulStats[NF_EXT_STATS_BR_FC_ENTER]); vos_printf("环形buf满之后导致丢包数量 %ld \n", g_stNfExtStats.aulStats[NF_EXT_STATS_BUF_FULL_DROP]); vos_printf("入环形buf失败次数 %ld \n", g_stNfExtStats.aulStats[NF_EXT_STATS_PUT_BUF_FAIL]); vos_printf("出环形buf失败次数 %ld \n", g_stNfExtStats.aulStats[NF_EXT_STATS_GET_BUF_FAIL]); vos_printf("申请内存失败次数 %ld \n", g_stNfExtStats.aulStats[NF_EXT_STATS_ALLOC_MEM_FAIL]); vos_printf("当前环形缓存中未处理的数据量 %ld \n", ((VOS_UINT32)OM_RingBufferNBytes(g_stExEntity.pRingBufferId) / sizeof(NF_EXT_DATA_RING_BUF_STRU))); vos_printf("当前的Hook Mask %ld \n", g_stExEntity.ulCurHookOnMask); vos_printf("当前的流控状态Mask %ld \n", g_stExFlowCtrlEntity.ulFlowCtrlMsk); vos_printf("当前OM WIFI所使用的IP地址 %x \n", g_stExEntity.ulOmIp); vos_printf("当前网桥转发字节数 %x \n", g_stExFlowCtrlEntity.aulTxBytesCnt[NF_EXT_TX_BYTES_CNT_BR]); }
/***************************************************************************** Function : VOS_show_sem_info Description: print the usage info of Sem Input : void Return : void Other : *****************************************************************************/ VOS_VOID VOS_show_sem_info( VOS_VOID ) { vos_printf("Max be used sem is %x.\r\n",vos_SemMaxSemId); }
VOS_VOID AT_Help(VOS_VOID) { vos_printf("********************************************************\n"); vos_printf("PS软调信息 \n"); vos_printf("********************************************************\n"); vos_printf("AT_ShowPsEntityInfo 显示拨号实体信息 \n"); vos_printf("AT_ShowPsFcIdState(ulFcid) 显示流控点状态信息 \n"); vos_printf("********************************************************\n"); vos_printf("UART软调信息 \n"); vos_printf("********************************************************\n"); vos_printf("AT_ShowHsUartConfigInfo 显示HSUART的配置信息 \n"); vos_printf("AT_ShowHsUartNvStats 显示HSUART的NV读写统计信息 \n"); vos_printf("AT_ShowHsUartIoctlStats 显示HSUART的IOCTL统计信息 \n"); vos_printf("AT_ShowHsUartDataStats 显示HSUART的数据统计信息 \n"); vos_printf("AT_ShowHsUartFcState 显示HSUART的流控状态信息 \n"); vos_printf("********************************************************\n"); vos_printf("MODEM软调信息 \n"); vos_printf("********************************************************\n"); vos_printf("AT_ShowModemDataStats 显示MODEM的数据统计信息 \n"); vos_printf("********************************************************\n"); vos_printf("其他软调信息 \n"); vos_printf("********************************************************\n"); vos_printf("AT_ShowResetStatsInfo 显示AT复位状态信息 \n"); vos_printf("AT_ShowAllClientState 查看端口状态信息 \n"); vos_printf("AT_ShowClientCtxInfo 查看Client配置的上下文信息 \n"); return; }