VOS_VOID TTF_MemRbShowMntnInfo( VOS_VOID )
{
    vos_printf("===========================================\n" );
    vos_printf("TTF MEM RB 可维可测信息 :\n" );
    vos_printf("C2A 核间释放队列中节点个数  : %d \n", (VOS_INT32)LUP_QueCnt(g_pstCcpuIMMMemFreeQue));
    vos_printf("A2C 核间释放队列中节点个数  : %d \n", (VOS_INT32)LUP_QueCnt(g_pstCcpuTTFMemFreeQue));
    vos_printf("TtfMemRb 出队失败次数       : %d \n", (VOS_INT32)g_stTtfMemRbMntnEntity.ulTtfMemRbDeQFailCnt);
    vos_printf("TtfMemRb 出队总次数         : %d \n", (VOS_INT32)g_stTtfMemRbMntnEntity.ulTtfMemRbDeQTotalCnt);
    vos_printf("TtfMemRb 入队失败次数       : %d \n", (VOS_INT32)g_stTtfMemRbMntnEntity.ulTtfMemRbEnQFailCnt);
    vos_printf("TtfMemRb 入队总次数         : %d \n", (VOS_INT32)g_stTtfMemRbMntnEntity.ulTtfMemRbEnQTotalCnt);
    vos_printf("TtfMemRb 收到IPF中断次数    : %d \n", (VOS_INT32)g_stTtfMemRbMntnEntity.ulTtfMemRbReceiveIntCnt);
    vos_printf("TtfMemRb 向IPF发送中断次数  : %d \n", (VOS_INT32)g_stTtfMemRbMntnEntity.ulTtfMemRbSendIntCnt);

    return;

}/* TTF_MemMntnInfo */
示例#2
0
VOS_VOID CDS_ShowDlIpfProcStats(VOS_VOID)
{
    vos_printf("下行IPF处理统计\n\n");

    vos_printf("下行配置IPF没有BD次数                       %d\n",g_stCdsStats.ulDLIpfCfgHaveNoBD);
    vos_printf("下行配置IPF没有CD次数                       %d\n",g_stCdsStats.ulDLIpfCfgHaveNoCD);
    vos_printf("下行配置IPF CD不够次数                      %d\n",g_stCdsStats.ulDLIpfCfgCDNotEnough);
    vos_printf("下行配置BD成功个数                          %d\n",g_stCdsStats.ulDLIpfCfgBDSucc);
    vos_printf("下行配置BD失败个数                          %d\n",g_stCdsStats.ulDLIpfCfgBDFail);
    vos_printf("\r\n");

    vos_printf("下行桥接模式保存源内存成功个数              %d\n",g_stCdsStats.ulDLIpfSaveSrcMemSucc);
    vos_printf("下行桥接模式保存源内存失败个数              %d\n",g_stCdsStats.ulDLIpfSaveSrcMemFail);
    vos_printf("下行桥接模式源内存释放队列当前个数          %d\n",LUP_QueCnt(CDS_IPF_DL_SRCMEM_FREE_QUE()));
    vos_printf("下行桥接模式释放源内存成功个数              %d\n",g_stCdsStats.ulDLIpfFreeSrcMemNum);
    vos_printf("下行桥接模式释放源内存失败个数              %d\n",g_stCdsStats.ulDLIpfFreeSrcMemErr);
    vos_printf("\r\n");

    vos_printf("下行非桥接模式IPF分配内存失败次数           %d\n",g_stCdsStats.ulDLIpfCfgBDAllocMemFail);
    vos_printf("下行非桥接模式SDU长度错误个数               %d\n",g_stCdsStats.ulDLIpfCfgBDSduLenErr);
    vos_printf("下行非桥接模式IPF调用内存释放函数回调次数   %d\n",g_stCdsStats.ulIpfDlCallMemFreeNum);
    vos_printf("下行非桥接模式释放内存个数                  %d\n",g_stCdsStats.ulIpfDlFreeMemNum);

    vos_printf("\r\n");

    return;
}
示例#3
0
VOS_VOID CDS_ShowCdsEntityInfo(VOS_UINT16 usModemId)
{
    char    strRanMode[][20]  = {"NULL","LTE","GU","无效接入模式"};
    char    strLBState[][20]  = {"正常模式","环回模式"};


    CDS_ENTITY_STRU         *pstCdsEntity;
    VOS_UINT32               ulCnt;

    pstCdsEntity = CDS_GetCdsEntity(usModemId);
    if (VOS_NULL_PTR == pstCdsEntity)
    {
        vos_printf("ModemId非法。输入ModemId=%d\n",usModemId);
        return;
    }

    vos_printf("显示Modem%d的CDS实体状态  \r\n",usModemId);
    vos_printf("当前接入模式              : %s\r\n",strRanMode[pstCdsEntity->enRanMode]);
    vos_printf("上行SR触发标志            : %d\r\n",pstCdsEntity->ulServiceReqFlg);
    vos_printf("上行缓存队列缓存个数      : %d\r\n",LUP_QueCnt(pstCdsEntity->pstUlDataQue));
    vos_printf("上行缓存数据保护定时器    : 0x%x\r\n",pstCdsEntity->astTimer[CDS_TMR_ID_UL_DATA_PROCTECT].pstTmrHdr);
    vos_printf("下行10ms周期性定时器      : 0x%x\r\n",pstCdsEntity->astTimer[CDS_TMR_ID_DL_10MS_PERIODIC_TMR].pstTmrHdr);
    vos_printf("环回模式状态              : %s\r\n",strLBState[pstCdsEntity->ulTestModeFlg]);
    vos_printf("环回模式类型              : %d\r\n",pstCdsEntity->ulLoopBackMode);
    vos_printf("环回模式B定时器时长       : %d\r\n",pstCdsEntity->astTimer[CDS_TMR_ID_LB_MODE_B_TMR].ulTmrLen);
    vos_printf("环回队列当前缓存SDU       : %d\r\n",LUP_QueCnt(pstCdsEntity->pstLBModeBQue));

    vos_printf("上行数据包直接丢弃开关    : %d\r\n",pstCdsEntity->ulULPktDiscardFlg);
    vos_printf("下行数据包直接丢弃开关    : %d\r\n",pstCdsEntity->ulDLPktDiscardFlg);

    vos_printf("\r\n");

    vos_printf("显示Modem%d的IMS承载信息  \r\n",usModemId);

    vos_printf("IMS端口号范围             :%d - %d\r\n",pstCdsEntity->stImsPortInfo.usMinImsPort,
                                                pstCdsEntity->stImsPortInfo.usMaxImsPort);

    vos_printf("IMS承载总数               : %d\r\n",pstCdsEntity->ulImsBearerNum);
    for (ulCnt = 0; ulCnt < pstCdsEntity->ulImsBearerNum; ulCnt ++)
    {
        vos_printf("IMS承载ID                 : %d\r\n",pstCdsEntity->astImsBearerInfo[ulCnt].ucEpsbId);
        vos_printf("IMS承载类型               : %d\r\n",pstCdsEntity->astImsBearerInfo[ulCnt].enBearerType);
    }

    vos_printf("\r\n");
    return;
}
VOS_VOID IMM_RbRemoteFreeMem(VOS_VOID *pucAddr)
{
    VOS_UINT32                          ulResult;
    VOS_UINT32                          ulNum;
    VOS_INT32                           lIsrRet;    /* 中断操作返回值 */
    VOS_ULONG                           ulFlags = 0UL;

    if ( VOS_NULL_PTR == pucAddr )
    {
        VOS_SpinLockIntLock(&g_stImmRbSpinLock, ulFlags);
        g_stImmMemFreeMntnEntity.ulImmMemExtFreeFailCnt++;
        VOS_SpinUnlockIntUnlock(&g_stImmRbSpinLock, ulFlags);
        IMM_LOG(UEPS_PID_IMM_RB_FREE, IMM_PRINT_WARNING, "IMM_RB, IMM_RbRemoteFreeMem, pucAddr is Null!\n");
        return;
    }

    VOS_SpinLockIntLock (&g_stImmRbSpinLock, ulFlags);

    /* 将TTF_MEM地址放入释放队列 */
    ulResult    = LUP_EnSharedQueAcpu(g_pstAcpuTTFMemFreeQue, pucAddr);
    g_stImmMemRbMntnEntity.ulImmMemRbEnQTotalCnt++;
    ulNum       = LUP_QueCnt(g_pstAcpuTTFMemFreeQue);
    VOS_SpinUnlockIntUnlock(&g_stImmRbSpinLock, ulFlags);

    if (PS_SUCC != ulResult)
    {
        VOS_SpinLockIntLock (&g_stImmRbSpinLock, ulFlags);
        g_stImmMemRbMntnEntity.ulImmMemRbEnQFailCnt++;
        VOS_SpinUnlockIntUnlock(&g_stImmRbSpinLock, ulFlags);
        IMM_LOG(UEPS_PID_IMM_RB_FREE, IMM_PRINT_ERROR, "ERROR:IMM_RbRemoteFreeMem: LUP_EnSharedQueAcpu fail!\n");
    }

#ifndef WTTF_PS_FUSION_PC_ST
    if ( 0 == (ulNum & g_ulFreeIMMMemBlkNoticNum))
    {
        /* 触发IPC中断 */
        lIsrRet = IMM_MEM_TRIG_IPC_MEMRB_INT(IPC_CORE_COMARM, IMM_IPC_MEM_RECYCLE_INT);
        VOS_SpinLockIntLock (&g_stImmRbSpinLock, ulFlags);
        g_stImmMemRbMntnEntity.ulImmMemRbSendIntCnt++;
        VOS_SpinUnlockIntUnlock(&g_stImmRbSpinLock, ulFlags);
        if (lIsrRet != VOS_OK)
        {
            IMM_LOG(UEPS_PID_IMM_RB_FREE, IMM_PRINT_ERROR, "ERROR:IMM_RbRemoteFreeMem: mdrv_ipc_int_send fail!\n");
        }
    }
#else
    lIsrRet = VHW_IPC_IntSend((IPC_INT_CORE_E)IPC_CORE_COMARM, (IPC_INT_LEV_E)IPC_INT_DICC_RELDATA);
    g_stImmMemRbMntnEntity.ulImmMemRbSendIntCnt++;

    if (lIsrRet != VOS_OK)
    {
        IMM_LOG(UEPS_PID_IMM_RB_FREE, IMM_PRINT_ERROR, "ERROR:IMM_RbRemoteFreeMem: mdrv_ipc_int_send fail!\n");
    }
#endif
    return;
}/*IMM_RbRemoteFreeMem*/
示例#5
0
VOS_VOID CDS_FreeIpfDlSrcMem(VOS_VOID)
{
    LUP_QUEUE_STRU                   *pstDlFreeQue ;
    BSP_U32                           ulIdleCD;
    VOS_UINT32                        ulIdleBD;
    VOS_UINT32                        ulBusyBD;
    VOS_UINT32                        ulCanFree;
    VOS_UINT32                        ulQueCnt;
    VOS_UINT32                        ulCnt;
    TTF_MEM_ST                       *pstSrcTtf;

    pstDlFreeQue = CDS_IPF_DL_SRCMEM_FREE_QUE();
    CDS_ASSERT(VOS_NULL_PTR != pstDlFreeQue);

    ulQueCnt = LUP_QueCnt(pstDlFreeQue);
    if (0 == ulQueCnt)
    {
        return;
    }

    /*get busy bd num*/
    ulIdleBD = BSP_IPF_GetDlBDNum(&ulIdleCD);
    ulBusyBD = IPF_DLBD_DESC_SIZE - ulIdleBD;
    if (ulQueCnt >= ulBusyBD)
    {
        ulCanFree = ulQueCnt - ulBusyBD;
    }
    else
    {
        CDS_ERROR_LOG3(UEPS_PID_CDS, "CDS_FreeIpfDlSrcMem:Buff Num Less IPF Busy BD Num.quecnt,busybd,idlebd",ulQueCnt,ulBusyBD,ulIdleBD);
        vos_printf("CDS_FreeIpfDlSrcMem : src free que less than busy bd. quecnt=%d,busybd=%d,idlebd=%d.\n",ulQueCnt,ulBusyBD,ulIdleBD);
        CDS_DBG_DL_IPF_FREE_SRCMEM_ERROR(1);
        return;
    }

    /*free src mem*/
    for (ulCnt = 0; ulCnt < ulCanFree; ulCnt ++)
    {
        if (PS_SUCC != LUP_DeQue(pstDlFreeQue,&pstSrcTtf))
        {
            return;
        }

        TTF_MemFree(UEPS_PID_CDS,pstSrcTtf);
        CDS_DBG_DL_IPF_FREE_SRCMEM_NUM(1);
    }

    return;
}
示例#6
0
VOS_VOID CDS_ShowDlSduProcStats(VOS_VOID)
{

    vos_printf("下行SDU数传统计\n\n");

    vos_printf("下行GSM模接收SDU个数                         %d\n",g_stCdsStats.ulDLGSMRxSduNum);
    vos_printf("下行GSM模接收IMS数据包个数                   %d\n",g_stCdsStats.ulDLGSMRxImsNum);
    vos_printf("下行GSM模流控丢弃SDU个数                     %d\n",g_stCdsStats.ulDLGSMFcFreeSduNum);
    vos_printf("下行GSM模环回模式下接收SDU个数               %d\n",g_stCdsStats.ulLBDLRxSduInGSM);
    vos_printf("下行GSM获取缺省RABID失败个数                 %d\n",g_stCdsStats.ulDLGSMGetDeftRabIdFail);
    vos_printf("下行GSM模入队成功个数                        %d\n",g_stCdsStats.ulDLGSMEnQueSucc);
    vos_printf("下行GSM模入队失败个数                        %d\n",g_stCdsStats.ulDLGSMEnQueFail);
    vos_printf("\r\n");

    vos_printf("下行UMTS模接收SDU个数                        %d\n",g_stCdsStats.ulDLUMTSRxSduNum);
    vos_printf("下行UMTS模接收IMS数据包个数                  %d\n",g_stCdsStats.ulDLUMTSRxImsNum);
    vos_printf("下行UMTS模流控丢弃SDU个数                    %d\n",g_stCdsStats.ulDLUMTSFcFreeSduNum);
    vos_printf("下行UMTS模环回模式下接收SDU个数              %d\n",g_stCdsStats.ulLBDLRxSduInUMTS);
    vos_printf("下行UMTS模打桩直接释放SDU个数                %d\n",g_stCdsStats.ulDLUMTSDirectFreeSduNum);
    vos_printf("下行UMTS获取缺省RABID失败个数                %d\n",g_stCdsStats.ulDLUMTSGetDeftRabIdFail);
    vos_printf("下行UMTS模入队成功个数                       %d\n",g_stCdsStats.ulDLUMTSEnQueSucc);
    vos_printf("下行UMTS模入队失败个数                       %d\n",g_stCdsStats.ulDLUMTSEnQueFail);
    vos_printf("\r\n");

    vos_printf("下行LTE模接收SDU个数                         %d\n",g_stCdsStats.ulDLLteRxSduNum);
    vos_printf("下行LTE模接收IMS数据包个数                   %d\n",g_stCdsStats.ulDLLteRxImsNum);
    vos_printf("下行LTE模流控丢弃SDU个数                     %d\n",g_stCdsStats.ulDLLteFcFreeSduNum);
    vos_printf("下行LTE模打桩直接释放SDU个数                 %d\n",g_stCdsStats.ulDLLteDirectFreeSduNum);
    vos_printf("下行LTE模环回模式下接收SDU个数               %d\n",g_stCdsStats.ulLBDLRxSduInLte);
    vos_printf("下行LTE获取对应EPSBID失败个数                %d\n",g_stCdsStats.ulDLLteGetEpsbIDFail);
    vos_printf("下行LTE获取缺省EPSBID失败个数                %d\n",g_stCdsStats.ulDLLteGetDeftEpsbIDFail);
    vos_printf("下行LTE接收L2 Debug数据包个数                %d\n",g_stCdsStats.ulDLLteRxDbgPkt);
    vos_printf("下行LTE接收MBMS数据包个数                    %d\n",g_stCdsStats.ulDLLteRxMbmsSdu);
    vos_printf("下行LTE模入队成功个数                        %d\n",g_stCdsStats.ulDLLteEnQueSucc);
    vos_printf("下行LTE模入队失败个数                        %d\n",g_stCdsStats.ulDLLteEnQueFail);


    vos_printf("\r\n");

    vos_printf("下行SDU队列当前缓存数据包个数               %d\n",LUP_QueCnt(CDS_GET_IPF_DL_SDU_QUE()));
    vos_printf("下行SDU入队成功总数                          %d\n",g_stCdsStats.ulDLEnSduQueSucc);
    vos_printf("下行SDU入队失败总数                          %d\n",g_stCdsStats.ulDLEnSduQueFail);
    vos_printf("\r\n");

    return;
}
VOS_VOID TTF_MemRbRemoteFreeMem( VOS_VOID *pucAddr)
{
    VOS_ULONG                           ulLockLevel;
    VOS_UINT32                          ulResult;
    VOS_UINT32                          ulNum;
    VOS_INT32                           lIsrRet;    /* 中断操作返回值 */

    VOS_SpinLockIntLock(&g_stTtfMemRBSpinLock, ulLockLevel);
    ulResult    = LUP_EnQue(g_pstCcpuIMMMemFreeQue, pucAddr);
    g_stTtfMemRbMntnEntity.ulTtfMemRbEnQTotalCnt++;
    ulNum       = LUP_QueCnt(g_pstCcpuIMMMemFreeQue);
    VOS_SpinUnlockIntUnlock(&g_stTtfMemRBSpinLock, ulLockLevel);

    if (PS_SUCC != ulResult)
    {
        g_stTtfMemRbMntnEntity.ulTtfMemRbEnQFailCnt++;
        vos_printf("TTF_MemRbRemoteFreeMem: LUP_EnQue fail!\n");
    }

#ifndef WTTF_PS_FUSION_PC_ST
    if ( 0 == (g_ulFreeTtfMemBlkNoticNum & ulNum))
    {
        lIsrRet = TTF_MEM_TRIG_IPC_MEMRB_INT(IPC_CORE_APPARM, TTF_IPC_MEM_RECYCLE_INT);
        g_stTtfMemRbMntnEntity.ulTtfMemRbSendIntCnt++;

        if (lIsrRet != VOS_OK)
        {
            TTF_LOG(UEPS_PID_TTF_MEM_RB_FREE, PS_PRINT_ERROR, "ERROR:TTF_MemRbRemoteFreeMem: DRV_IPC_INTSEND fail!\n");
        }
    }
#else
    lIsrRet = VHW_IPC_IntSend((IPC_INT_CORE_E)IPC_CORE_APPARM, (IPC_INT_LEV_E)IPC_INT_DICC_RELDATA);
    g_stTtfMemRbMntnEntity.ulTtfMemRbSendIntCnt++;

    if (lIsrRet != VOS_OK)
    {
        TTF_LOG(UEPS_PID_TTF_MEM_RB_FREE, PS_PRINT_ERROR, "ERROR:TTF_MemRbRemoteFreeMem: DRV_IPC_INTSEND fail!\n");
    }
#endif

    return;
}/*TTF_MemRbRemoteFreeMem*/
VOS_VOID IMM_MemRbShowMntnInfo( VOS_VOID )
{
    IMM_LOG(UEPS_PID_IMM_RB_FREE, PS_PRINT_NORMAL, "==========================================\n" );
    IMM_LOG(UEPS_PID_IMM_RB_FREE, PS_PRINT_NORMAL, "IMM MEM RB 可维可测信息 :\n" );
    IMM_LOG1(UEPS_PID_IMM_RB_FREE, PS_PRINT_NORMAL, "C2A 核间释放队列中节点个数  : %d \n", (VOS_INT32)LUP_QueCnt(g_pstAcpuIMMMemFreeQue));
    IMM_LOG1(UEPS_PID_IMM_RB_FREE, PS_PRINT_NORMAL, "A2C 核间释放队列中节点个数  : %d \n", (VOS_INT32)LUP_QueCnt(g_pstAcpuTTFMemFreeQue));
    IMM_LOG1(UEPS_PID_IMM_RB_FREE, PS_PRINT_NORMAL, "ImmMemRb 出队失败次数       : %d \n", (VOS_INT32)g_stImmMemRbMntnEntity.ulImmMemRbDeQFailCnt);
    IMM_LOG1(UEPS_PID_IMM_RB_FREE, PS_PRINT_NORMAL, "ImmMemRb 出队总次数         : %d \n", (VOS_INT32)g_stImmMemRbMntnEntity.ulImmMemRbDeQTotalCnt);
    IMM_LOG1(UEPS_PID_IMM_RB_FREE, PS_PRINT_NORMAL, "ImmMemRb 入队失败次数       : %d \n", (VOS_INT32)g_stImmMemRbMntnEntity.ulImmMemRbEnQFailCnt);
    IMM_LOG1(UEPS_PID_IMM_RB_FREE, PS_PRINT_NORMAL, "ImmMemRb 入队总次数         : %d \n", (VOS_INT32)g_stImmMemRbMntnEntity.ulImmMemRbEnQTotalCnt);
    IMM_LOG1(UEPS_PID_IMM_RB_FREE, PS_PRINT_NORMAL, "ImmMemRb 收到IPF中断次数    : %d \n", (VOS_INT32)g_stImmMemRbMntnEntity.ulImmMemRbReceiveIntCnt);
    IMM_LOG1(UEPS_PID_IMM_RB_FREE, PS_PRINT_NORMAL, "ImmMemRb 向IPF发送中断次数  : %d \n", (VOS_INT32)g_stImmMemRbMntnEntity.ulImmMemRbSendIntCnt);


    return;

}/* IMM_MemMntnInfo */