Exemple #1
0
/*****************************************************************************
 Function Name   : diag_ConnProcEntry
 Description     : 该函数为处理DIAG FW发过来的HSO连接相关命令的入口
 Input           : pstReq 待处理数据
                   ulCmdId 命令ID
 Output          : None
 Return          : VOS_UINT32

 History         :
    1.y00228784      2012-11-22  Draft Enact

*****************************************************************************/
VOS_UINT32 diag_ConnProcEntry(VOS_UINT8* pstReq , VOS_UINT32 ulCmdId)
{
    VOS_UINT32 ret = ERR_MSP_SUCCESS;

    switch(MSP_STRU_ID_0_15_CMD_CATEGORY(ulCmdId))
    {
    case DIAG_CMD_HOST_CONNECT:
        ret = diag_ConnProc(pstReq,ulCmdId);
        break;
    case DIAG_CMD_HOST_DISCONNECT:
        ret = diag_DisConnProc(pstReq,ulCmdId);
        break;
#if(VOS_OS_VER == VOS_LINUX)
    case DIAG_CMD_GET_TIMESTAMP_INIT_VALUE:
        ret = diag_GetTimeStampInitValue(pstReq,ulCmdId);
        break;
    case DIAG_CMD_SET_LOG_MODE:
        ret = diag_LogSaveProc(pstReq,ulCmdId);
        break;
#endif
    default:
        ret = ERR_MSP_INVALID_PARAMETER;
        break;
    }
    return ret;
}
Exemple #2
0
/*****************************************************************************
 Function Name   : diag_CfgProcEntry
 Description     : 该函数为处理DIAG FW发过来的开关相关命令的入口
 Input           : pstReq 待处理数据
                   ulCmdSn 命令ID
 Output          : None
 Return          : VOS_UINT32

 History         :
    1.y00228784      2012-11-22  Draft Enact

*****************************************************************************/
VOS_UINT32 diag_CfgProcEntry (VOS_UINT8* pstReq , VOS_UINT32 ulCmdId)
{
    VOS_UINT32 ret = ERR_MSP_SUCCESS;

    switch(MSP_STRU_ID_0_15_CMD_CATEGORY(ulCmdId))
    {
    case DIAG_CMD_LOG_CAT_PRINT:
        ret = diag_PrintCfgProc(pstReq,ulCmdId);
        break;
    case DIAG_CMD_LOG_CAT_LAYER:
        ret = diag_LayerCfgProc(pstReq,ulCmdId);
        break;
    case DIAG_CMD_LOG_CAT_AIR:
        ret = diag_AirCfgProc(pstReq,ulCmdId);
        break;
    case DIAG_CMD_LOG_CAT_USERPLANE:
        ret = diag_UsrPlaneCfgProc(pstReq,ulCmdId);
        break;
    case DIAG_CMD_LOG_CAT_EVENT:
        ret = diag_EventCfgProc(pstReq,ulCmdId);
        break;
    case DIAG_CMD_LOG_CAT_MSG:
        ret = diag_MsgCfgProc(pstReq,ulCmdId);
        break;
    default:
        ret = ERR_MSP_FAILURE;
        break;
    }

    return ret;
}
/*lint -save -e550 -e539 -e438 -e830*/
VOS_UINT32 diag_BspLogProcEntry(VOS_UINT8* pstReq , VOS_UINT32 ulCmdId)
{
    /*lint -save -e830*/
    VOS_UINT32  ret = ERR_MSP_SUCCESS;
    VOS_UINT32 data_len = 0;
    VOS_UINT32 cnf_data_len = 0;
    MSP_DIAG_HEAD_STRU *pstDiagHead         = VOS_NULL;
    DIAG_bsp_log_swt_cfg_s *pstLogSet = VOS_NULL;
    DIAG_BSP_PRINT_LOG_SWT_CNF_STRU  stLogSetCnf  = {0};
    VOS_UINT8 *pstCnf = VOS_NULL;
    /*lint -restore*/

    pstDiagHead = (MSP_DIAG_HEAD_STRU*)(DIAG_OFFSET_SOCP_GET_DIAG_HEAD(pstReq));

    vos_printf("diag_BspLogProcEntry  ulCmdId = 0x%x\n",ulCmdId);

    if(DIAG_CMD_BSP_LOG_SET_ACORE == (MSP_STRU_ID_0_15_CMD_CATEGORY(ulCmdId)) )
    {
        ret = ERR_MSP_SUCCESS;
    }
    else if(DIAG_CMD_BSP_LOG_SET_CCORE == (MSP_STRU_ID_0_15_CMD_CATEGORY(ulCmdId)) )
    {
        pstLogSet = (DIAG_bsp_log_swt_cfg_s *)DIAG_OFFSET_HEAD_GET_DATA(pstReq);
        data_len = pstDiagHead->ulDataSize  - sizeof(MSP_DIAG_DATA_REQ_STRU);
        stLogSetCnf.ulRet  = ERR_MSP_SUCCESS;

        pstCnf = (VOS_UINT8 *)&stLogSetCnf ;
        cnf_data_len = sizeof(DIAG_BSP_PRINT_LOG_SWT_CNF_STRU);
    }
    else
    {
        ret = ERR_MSP_FAILURE;
    }

    if(VOS_NULL!=pstCnf)
    {
        ret = diag_AgentCnfFun(pstCnf,ulCmdId,cnf_data_len);
    }
	return ret;
}
VOS_UINT32 diag_BspAxiProcEntry (VOS_UINT8* pstReq , VOS_UINT32 ulCmdId)
{
    VOS_UINT32 ret = ERR_MSP_SUCCESS;

	VOS_UINT8 *pdata =NULL;
	DIAG_CMD_COMMON_CNF stAxiCnf ={0};

    diag_printf("[%s enter!]\n",__FUNCTION__);
    pdata = (VOS_UINT8*)(DIAG_OFFSET_HEAD_GET_DATA(pstReq));

    switch(MSP_STRU_ID_0_15_CMD_CATEGORY(ulCmdId))
    {
        case DIAG_CMD_AXI_DATA_CONFIG:
            ret = diag_BspAxiDataConfigEntry(pstReq, ulCmdId);
            break;
        case DIAG_CMD_AXI_REG_CONFIG:
            ret = DRV_AXI_REG_CONFIG(pdata);
            break;
        case DIAG_CMD_AXI_DATA_CTRL:
            ret = DRV_AXI_DATA_CTRL(pdata);
            break;
        case DIAG_CMD_AXI_MON_CONFIG:
            ret = diag_BspAxiMonConfigEntry(pstReq, ulCmdId);
            break;
        case DIAG_CMD_AXI_MON_START:
            ret = DRV_AXI_MON_START(pdata);
            break;
        case DIAG_CMD_AXI_MON_TERMINATE:
            ret = diag_BspAxiMonTerminateEntry(pstReq, ulCmdId);
            break;
        default:
            break;

    }

	stAxiCnf.ulRet = ret;
	ret = diag_AgentCnfFun((VOS_UINT8*)&stAxiCnf,ulCmdId,sizeof(DIAG_CMD_COMMON_CNF));

    return ret;
}
VOS_UINT32 diag_BbpProcEntry(VOS_UINT8* pstReq , VOS_UINT32 ulCmdId)
{
    VOS_UINT32 ret = ERR_MSP_SUCCESS;

    switch(MSP_STRU_ID_0_15_CMD_CATEGORY(ulCmdId))
    {
        case DIAG_CMD_REG_RD:
            ret = diag_RegRdProc(pstReq,ulCmdId);
            break;
        case DIAG_CMD_REG_WR:
            ret = diag_RegWrProc(pstReq,ulCmdId);
            break;
        case DIAG_CMD_DRX_DATA_SAMPLE_REG_WR:
            ret = diag_DrxDataSampleProc(pstReq,ulCmdId);
            break;
	    case DIAG_CMD_DRX_LOG_SAMPLE_REG_WR:
            ret = diag_DrxLogSampleProc(pstReq,ulCmdId);
            break;
		case DIAG_CMD_DRX_SAMPLE_GEN_REQ:
			ret = diag_DrxSampleGenProc(pstReq,ulCmdId);
            break;
		case DIAG_CMD_DRX_SAMPLE_ADDR_REQ:
			ret = diag_DrxSampleGetAddrProc(pstReq,ulCmdId);
            break;
		case DIAG_CMD_DRX_SAMPLE_CHNSIZE_REQ:
			ret = diag_DrxSampleGetChnSizeProc(pstReq,ulCmdId);
            break;
		case DIAG_CMD_DRX_SAMPLE_GET_VERSION_REQ:
			ret = diag_DrxSampleGetVersionProc(pstReq,ulCmdId);
            break;
		case DIAG_CMD_DRX_SAMPLE_ABLE_CHN_REQ:
			ret = diag_DrxSampleAbleChnProc(pstReq,ulCmdId);
            break;
        default:
            ret = ERR_MSP_INVALID_PARAMETER;
            break;
    }

    return ret;
}
VOS_UINT32 diag_FsProcEntry (VOS_UINT8* pstReq , VOS_UINT32 ulCmdId)
{
    VOS_UINT32 ret = ERR_MSP_SUCCESS;

    switch(MSP_STRU_ID_0_15_CMD_CATEGORY(ulCmdId))
    {
        case DIAG_CMD_FS_QUERY_DIR:
            ret = diag_FsQueryProc(pstReq,ulCmdId);
            break;
        case DIAG_CMD_FS_SCAN_DIR:
            ret = diag_FsScanProc(pstReq,ulCmdId);
            break;
        case DIAG_CMD_FS_MAKE_DIR:
            ret = diag_FsMkdirProc(pstReq,ulCmdId);
            break;
        case DIAG_CMD_FS_OPEN:
            ret = diag_FsOpenProc(pstReq,ulCmdId);
            break;
        case DIAG_CMD_FS_IMPORT:
            ret = diag_FsImportProc(pstReq,ulCmdId);
            break;
        case DIAG_CMD_FS_EXPORT:
            ret = diag_FsExportProc(pstReq,ulCmdId);
            break;
        case DIAG_CMD_FS_DELETE:
            ret = diag_FsDeleteProc(pstReq,ulCmdId);
            break;
        case DIAG_CMD_FS_SPACE:
            ret = diag_FsSpaceProc(pstReq,ulCmdId);
            break;
        default:
            break;

    }
    return ret;
}
VOS_UINT32 diag_BspProcEntry(VOS_UINT8* pstReq , VOS_UINT32 ulCmdId)
{
    VOS_UINT32 ret;

    switch (MSP_STRU_ID_0_15_CMD_CATEGORY(ulCmdId))
    {
        case DIAG_CMD_BSP_LOG_SET_ACORE:
        case DIAG_CMD_BSP_LOG_SET_CCORE:
            ret = diag_BspLogProcEntry(pstReq,ulCmdId);

            break;

        case DIAG_CMD_BSP_SYSVIEW_SWT_ACORE:
        case DIAG_CMD_BSP_SYSVIEW_SWT_CCORE:
        case DIAG_CMD_BSP_CPU_SWT_ACORE:
        case DIAG_CMD_BSP_CPU_SWT_CCORE:
            ret = diag_BspSysviewProcEntry(pstReq,ulCmdId);

            break;

		case DIAG_CMD_AXI_DATA_CONFIG:
        case DIAG_CMD_AXI_REG_CONFIG:
        case DIAG_CMD_AXI_DATA_CTRL:
        case DIAG_CMD_AXI_MON_CONFIG:
        case DIAG_CMD_AXI_MON_START:
        case DIAG_CMD_AXI_MON_TERMINATE:
            ret = diag_BspAxiProcEntry(pstReq,ulCmdId);
            break;

        default:
            ret = ERR_MSP_FAILURE;
            break ;
    }

    return ret;
}
VOS_UINT32 diag_BspSysviewProcEntry(VOS_UINT8* pstReq , VOS_UINT32 ulCmdId)
{
    VOS_UINT32  ret ;
    VOS_UINT32 cnf_data_len = 0;

    DIAG_BSP_SYVIEW_SWT_CFG_STRU *pstSysviewSet = VOS_NULL;
    DIAG_BSP_SYVIEW_SWT_CNF_STRU  *pstLogSysviewCnf  = {0};
    VOS_UINT8 *pstCnf = VOS_NULL;



    if((DIAG_CMD_BSP_SYSVIEW_SWT_ACORE == (MSP_STRU_ID_0_15_CMD_CATEGORY(ulCmdId)))
        ||(DIAG_CMD_BSP_CPU_SWT_ACORE == (MSP_STRU_ID_0_15_CMD_CATEGORY(ulCmdId))))
    {
        ret = ERR_MSP_SUCCESS;
    }
    else if((DIAG_CMD_BSP_SYSVIEW_SWT_CCORE == (MSP_STRU_ID_0_15_CMD_CATEGORY(ulCmdId)) )
                ||(DIAG_CMD_BSP_CPU_SWT_CCORE == (MSP_STRU_ID_0_15_CMD_CATEGORY(ulCmdId))))
    {

        pstSysviewSet = (DIAG_BSP_SYVIEW_SWT_CFG_STRU *)DIAG_OFFSET_HEAD_GET_DATA(pstReq);

         ret= DRV_SYSVIEW_SWT_SET(pstSysviewSet->trace_type,pstSysviewSet->trace_swt,pstSysviewSet->period);

        if(ret  == ERR_MSP_SUCCESS)
        {
            if((pstSysviewSet->trace_type ==SYSVIEW_TASK_INFO )&&(pstSysviewSet->trace_swt ==1 ))
            {
                cnf_data_len = sizeof(DIAG_BSP_SYVIEW_SWT_CNF_STRU)+sizeof(DIAG_BSP_TASK_INFO_STRU)*128;
                /* coverity[returned_null] */
                pstLogSysviewCnf =(DIAG_BSP_SYVIEW_SWT_CNF_STRU*)VOS_MemAlloc(MSP_PID_DIAG_AGENT, DYNAMIC_MEM_PT,cnf_data_len);
                /* coverity[dereference] */
                pstLogSysviewCnf->ullen = sizeof(DIAG_BSP_TASK_INFO_STRU)*128;
                DRV_GET_ALL_TASK_ID_NAME((pstLogSysviewCnf->st_task_info), sizeof(DIAG_BSP_TASK_INFO_STRU)*128);
            }
            else
            {
                cnf_data_len = sizeof(DIAG_BSP_SYVIEW_SWT_CNF_STRU);
                /* coverity[returned_null] */
                pstLogSysviewCnf =(DIAG_BSP_SYVIEW_SWT_CNF_STRU*)VOS_MemAlloc(MSP_PID_DIAG_AGENT, DYNAMIC_MEM_PT,cnf_data_len);
                /* coverity[dereference] */
                pstLogSysviewCnf->ullen  = 0;
            }
        }
        else
        {
            cnf_data_len = sizeof(DIAG_BSP_SYVIEW_SWT_CNF_STRU);
            /* coverity[returned_null] */
            pstLogSysviewCnf =(DIAG_BSP_SYVIEW_SWT_CNF_STRU*)VOS_MemAlloc(MSP_PID_DIAG_AGENT, DYNAMIC_MEM_PT,cnf_data_len);
            /* coverity[dereference] */
            pstLogSysviewCnf->ullen  = 0;

        }

        pstLogSysviewCnf->ulRet = ret;
        pstLogSysviewCnf->trace_type =pstSysviewSet->trace_type;
        pstCnf = (VOS_UINT8 *)pstLogSysviewCnf ;

    }
    else
    {
        ret = ERR_MSP_FAILURE;
    }

    if(VOS_NULL!=pstCnf)
    {
        ret = diag_AgentCnfFun(pstCnf,ulCmdId,cnf_data_len);

         VOS_MemFree(diag_GetAgentPid(), pstCnf);
    }

    return ret;
}