Ejemplo n.º 1
0
/*****************************************************************************
 函 数 名  : IMM_ZcRemoveMacHead
 功能描述  : 移除零拷贝结构MAC头
 输入参数  : IMM_ZC_STRU *pstImmZc
 输出参数  : 无
 返 回 值  : VOS_OK 添加成功
             VOS_ERR 添加失败
 调用函数  :
 被调函数  :

 修改历史      :
  1.日    期   : 2011年12月2日
    修改内容   : Created
*****************************************************************************/
unsigned long IMM_ZcRemoveMacHead(IMM_ZC_STRU *pstImmZc)
{
    IMM_DEBUG_TRACE_FUNC_ENTER();

    if ( NULL == pstImmZc )
    {
        IMM_LOG(UEPS_PID_IMM_RB_RECYCLE, IMM_PRINT_ERROR, "IMM_ZcRemoveMacHead pstImmZc ptr is null! \n");
        return VOS_ERR;
    }

    if ( IMM_MAC_HEADER_RES_LEN > (pstImmZc->tail - pstImmZc->data) )
    {
        IMM_LOG2(UEPS_PID_IMM_RB_RECYCLE, IMM_PRINT_ERROR, "IMM_ZcRemoveMacHead invalid data Len! tail = 0x%x, data = 0x%x \n",
                    (VOS_INT32)pstImmZc->tail, (VOS_INT32)pstImmZc->data);

        return VOS_ERR;
    }

    IMM_ZcPull(pstImmZc, IMM_MAC_HEADER_RES_LEN);

    IMM_DEBUG_TRACE_FUNC_LEAVE();


    return VOS_OK;
}
Ejemplo n.º 2
0
VOS_VOID IMM_MntnMemTraceInfoRptSaveMemData
(
    VOS_UINT8  ucPoolId,
    IMM_BLK_MEM_TRACE_INFO_STRU *pstBlkMemTraceInfo,
    IMM_MEM_STRU *pMem
)
{

    if ( ucPoolId != pMem->enPoolId )
    {
        IMM_LOG2(UEPS_PID_IMM_RB_FREE, IMM_PRINT_ERROR, "IMM_MntnMemTraceInfoRptSaveMemData, ucPoolId %d, pMem->enPoolId %d Mismatch! \n", ucPoolId, pMem->enPoolId);
        return;
    }

    if ( IMM_MEM_POOL_ID_SHARE == ucPoolId )
    {
        if ( NULL != pMem->pstMemBlk )
        {
            pstBlkMemTraceInfo->aucMemData[0]   = pMem->pstMemBlk[0];
            pstBlkMemTraceInfo->aucMemData[1]   = pMem->pstMemBlk[1];
            pstBlkMemTraceInfo->aucMemData[2]   = pMem->pstMemBlk[2];
            pstBlkMemTraceInfo->aucMemData[3]   = pMem->pstMemBlk[3];
        }
        else
        {
            VOS_MemSet(pstBlkMemTraceInfo->aucMemData, 0, 4);
            IMM_LOG1(UEPS_PID_IMM_RB_FREE, IMM_PRINT_ERROR, "IMM_MntnMemTraceInfoRptSaveMemData, ucPoolId %d Mem Ptr is Null! \n", ucPoolId);
        }

        return;
    }

    if ( IMM_MEM_POOL_ID_EXT == ucPoolId )
    {
        *((VOS_UINT32 *)pstBlkMemTraceInfo->aucMemData) = (VOS_UINT32)pMem->pstMemBlk;
    }

    return;
}/* IMM_MntnMemTraceInfoRptSaveMemData */
Ejemplo n.º 3
0
/*****************************************************************************
 函 数 名  : IMM_ZcAddMacHead
 功能描述  : 给IMM_ZC_STRU 零拷贝结构添加MAC头
 输入参数  : IMM_ZC_STRU *pstImmZc
             unsigned char* pucAddData
             VOS_UINT16 usLen
 输出参数  : 无
 返 回 值  : VOS_OK 添加成功
             VOS_ERR 添加失败
 调用函数  :
 被调函数  :

 修改历史      :
  1.日    期   : 2011年12月2日
    修改内容   : Created
*****************************************************************************/
unsigned long IMM_ZcAddMacHead (IMM_ZC_STRU *pstImmZc, const unsigned char* pucAddData)
{
    unsigned char                      *pucDestAddr;


    IMM_DEBUG_TRACE_FUNC_ENTER();

    if ( NULL == pstImmZc )
    {
        IMM_LOG(UEPS_PID_IMM_RB_RECYCLE, IMM_PRINT_ERROR, "IMM_ZcAddMacHead pstImmZc ptr is null! \n");
        return VOS_ERR;
    }

    if ( NULL == pucAddData )
    {
        IMM_LOG(UEPS_PID_IMM_RB_RECYCLE, IMM_PRINT_ERROR, "IMM_ZcAddMacHead pucData ptr is null! \n");
        return VOS_ERR;
    }


    if( IMM_MAC_HEADER_RES_LEN > (pstImmZc->data - pstImmZc->head) )
    {
        IMM_LOG2(UEPS_PID_IMM_RB_RECYCLE, IMM_PRINT_ERROR, "IMM_ZcAddMacHead invalid data Len! data = 0x%x, head = 0x%x \n",
                    (VOS_INT32)pstImmZc->data, (VOS_INT32)pstImmZc->head);

        return VOS_ERR;
    }

    pucDestAddr = IMM_ZcPush(pstImmZc,IMM_MAC_HEADER_RES_LEN);
    memcpy(pucDestAddr,pucAddData,IMM_MAC_HEADER_RES_LEN);

    IMM_DEBUG_TRACE_FUNC_LEAVE();


    return VOS_OK;
}
Ejemplo n.º 4
0
VOS_VOID IMM_MntnPrintBlkMemPoolUsedInfo( IMM_MEM_POOL_STRU  *pstImmMemPoolInfo )
{
#if (FEATURE_ON == FEATURE_IMM_MEM_DEBUG)
    VOS_UINT16                          usImmMemNum;
    IMM_BLK_MEM_DEBUG_STRU             *pstImmMemDebugInfo;
#endif
    IMM_MEM_STRU                       *pMem;


    if (VOS_NULL_PTR == pstImmMemPoolInfo)
    {
       IMM_LOG(UEPS_PID_IMM_RB_FREE, IMM_PRINT_WARNING, "pstImmMemPoolInfo is NULL ! \n");
       return ;
    }


    if (IMM_TRUE != pstImmMemPoolInfo->ucUsedFlag)
    {
       IMM_LOG(UEPS_PID_IMM_RB_FREE, IMM_PRINT_WARNING, "POOL not uesed ! \n");

       return ;
    }

    pMem = pstImmMemPoolInfo->pstImmMemStStartAddr;

    IMM_LOG2(UEPS_PID_IMM_RB_FREE, IMM_PRINT_NORMAL, "Pool ID %u Blk Mem used %u  \n", pMem->enPoolId, pstImmMemPoolInfo->usImmMemUsedCnt);

    if( IMM_FALSE == g_ucPrintDetail )
    {
        return;
    }

#if (FEATURE_ON == FEATURE_IMM_MEM_DEBUG)
    for (usImmMemNum = 0;
            usImmMemNum < pstImmMemPoolInfo->usImmMemTotalCnt;
            usImmMemNum ++)
    {
        pMem = pstImmMemPoolInfo->pstImmMemStStartAddr + usImmMemNum;
        pstImmMemDebugInfo = &pMem->stDbgInfo;

        if ( MEM_BLK_STATE_FREE != pstImmMemDebugInfo->enMemStateFlag)
        {
            IMM_LOG4(UEPS_PID_IMM_RB_FREE, IMM_PRINT_NORMAL, "Alloc: File %4d L %5d T %11u, Blk Mem Level: %4u, ",
                (VOS_INT32)pstImmMemDebugInfo->usAllocFileID,
                (VOS_INT32)pstImmMemDebugInfo->usAllocLineNum,
                (VOS_INT32)pstImmMemDebugInfo->ulAllocTick,
                usImmMemNum);
/*lint -e713*/
            IMM_LOG4(UEPS_PID_IMM_RB_FREE, IMM_PRINT_NORMAL, "Status: %d, Status: %d, TraceFile:%4d, TraceLine:%5d, TraceTick:%11d, \n",
                pstImmMemDebugInfo->enMemStateFlag,
                (VOS_INT32)pstImmMemDebugInfo->usTraceFileID,
                (VOS_INT32)pstImmMemDebugInfo->usTraceLineNum,
                (VOS_INT32)pstImmMemDebugInfo->ulTraceTick);
/*lint +e713*/

            /* 打印PDU内容 */
            IMM_LOG1(UEPS_PID_IMM_RB_FREE, IMM_PRINT_NORMAL, "Data ptr: 0x%x\n ", (VOS_INT32)pMem->pstMemBlk);
        }
    }
#endif

}/* IMM_MntnPrintBlkMemPoolUsedInfo */