亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ixosalbuffermgt.c

?? u-boot1.3.0的原碼,從配了網絡驅動和FLASH的驅動,并該用ESC竟如
?? C
?? 第 1 頁 / 共 2 頁
字號:
         * clear the data memory area          */        memset (poolDataPtr, 0, sizeAligned * count);    }    else    {        sizeAligned = 0;    }    /*     * initialise pool fields      */    strcpy ((poolPtr)->name, name);    poolPtr->dataMemPtr = poolDataPtr;    poolPtr->mbufMemPtr = poolBufPtr;    poolPtr->bufDataSize = sizeAligned;    poolPtr->totalBufsInPool = count;    poolPtr->mbufMemSize = mbufSizeAligned * count;    poolPtr->dataMemSize = sizeAligned * count;    currentMbufPtr = (IX_OSAL_MBUF *) poolBufPtr;    poolPtr->nextFreeBuf = currentMbufPtr;    for (i = 0; i < count; i++)    {        if (i < (count - 1))        {            nextMbufPtr =                (IX_OSAL_MBUF *) ((unsigned) currentMbufPtr +                mbufSizeAligned);        }        else        {                       /* last mbuf in chain */            nextMbufPtr = NULL;        }        IX_OSAL_MBUF_NEXT_BUFFER_IN_PKT_PTR (currentMbufPtr) = nextMbufPtr;        IX_OSAL_MBUF_NET_POOL (currentMbufPtr) = poolPtr;        IX_OSAL_MBUF_SYS_SIGNATURE_INIT(currentMbufPtr);        if (poolDataPtr != NULL)        {            IX_OSAL_MBUF_MDATA (currentMbufPtr) = poolDataPtr;            IX_OSAL_MBUF_ALLOCATED_BUFF_DATA(currentMbufPtr) = (UINT32) poolDataPtr;            IX_OSAL_MBUF_MLEN (currentMbufPtr) = sizeAligned;            IX_OSAL_MBUF_ALLOCATED_BUFF_LEN(currentMbufPtr) = sizeAligned;            poolDataPtr = (void *) ((unsigned) poolDataPtr + sizeAligned);        }        currentMbufPtr = nextMbufPtr;    }    /*     * update the number of free buffers in the pool      */    poolPtr->freeBufsInPool = count;    poolPtr->poolAllocType = IX_OSAL_MBUF_POOL_TYPE_USER_ALLOC;    return poolPtr;}/*  * Get a mbuf ptr from the pool */PUBLIC IX_OSAL_MBUF *ixOsalMbufAlloc (IX_OSAL_MBUF_POOL * poolPtr){    int lock;    IX_OSAL_MBUF *newBufPtr = NULL;    /*     * check parameters      */    if (poolPtr == NULL)    {        ixOsalLog (IX_OSAL_LOG_LVL_ERROR,            IX_OSAL_LOG_DEV_STDOUT,            "ixOsalMbufAlloc(): "            "ERROR - Invalid Parameter\n", 0, 0, 0, 0, 0, 0);        return NULL;    }    lock = ixOsalIrqLock ();    newBufPtr = poolPtr->nextFreeBuf;    if (newBufPtr)    {        poolPtr->nextFreeBuf =            IX_OSAL_MBUF_NEXT_BUFFER_IN_PKT_PTR (newBufPtr);        IX_OSAL_MBUF_NEXT_BUFFER_IN_PKT_PTR (newBufPtr) = NULL;        /*         * update the number of free buffers in the pool          */        poolPtr->freeBufsInPool--;    }    else    {        /* Return NULL to indicate to caller that request is denied. */        ixOsalIrqUnlock (lock);        return NULL;    }#ifdef IX_OSAL_BUFFER_FREE_PROTECTION	/* Set Buffer Used Flag to indicate state.*/    IX_OSAL_MBUF_SET_USED_FLAG(newBufPtr);#endif    ixOsalIrqUnlock (lock);    return newBufPtr;}PUBLIC IX_OSAL_MBUF *ixOsalMbufFree (IX_OSAL_MBUF * bufPtr){    int lock;    IX_OSAL_MBUF_POOL *poolPtr;    IX_OSAL_MBUF *nextBufPtr = NULL;    /*     * check parameters      */    if (bufPtr == NULL)    {        ixOsalLog (IX_OSAL_LOG_LVL_ERROR,            IX_OSAL_LOG_DEV_STDOUT,            "ixOsalMbufFree(): "            "ERROR - Invalid Parameter\n", 0, 0, 0, 0, 0, 0);        return NULL;    }    lock = ixOsalIrqLock ();#ifdef IX_OSAL_BUFFER_FREE_PROTECTION		/* Prevention for Buffer freed more than once*/    if(!IX_OSAL_MBUF_ISSET_USED_FLAG(bufPtr))    {   	return NULL;    }    IX_OSAL_MBUF_CLEAR_USED_FLAG(bufPtr);#endif	    poolPtr = IX_OSAL_MBUF_NET_POOL (bufPtr);    /*     * check the mbuf wrapper signature (if mbuf wrapper was used)      */    if (poolPtr->poolAllocType == IX_OSAL_MBUF_POOL_TYPE_SYS_ALLOC)    {        IX_OSAL_ENSURE ( (IX_OSAL_MBUF_GET_SYS_SIGNATURE(bufPtr) == IX_OSAL_MBUF_SYS_SIGNATURE),            "ixOsalBuffPoolBufFree: ERROR - Invalid mbuf signature.");    }    nextBufPtr = IX_OSAL_MBUF_NEXT_BUFFER_IN_PKT_PTR (bufPtr);    IX_OSAL_MBUF_NEXT_BUFFER_IN_PKT_PTR (bufPtr) = poolPtr->nextFreeBuf;    poolPtr->nextFreeBuf = bufPtr;    /*     * update the number of free buffers in the pool      */    poolPtr->freeBufsInPool++;    ixOsalIrqUnlock (lock);    return nextBufPtr;}PUBLIC voidixOsalMbufChainFree (IX_OSAL_MBUF * bufPtr){    while ((bufPtr = ixOsalMbufFree (bufPtr)));}/* * Function definition: ixOsalBuffPoolShow */PUBLIC voidixOsalMbufPoolShow (IX_OSAL_MBUF_POOL * poolPtr){    IX_OSAL_MBUF *nextBufPtr;    int count = 0;    int lock;    /*     * check parameters      */    if (poolPtr == NULL)    {        ixOsalLog (IX_OSAL_LOG_LVL_ERROR,            IX_OSAL_LOG_DEV_STDOUT,            "ixOsalBuffPoolShow(): "            "ERROR - Invalid Parameter", 0, 0, 0, 0, 0, 0);        /*         * return IX_FAIL;          */        return;    }    lock = ixOsalIrqLock ();    count = poolPtr->freeBufsInPool;    nextBufPtr = poolPtr->nextFreeBuf;    ixOsalIrqUnlock (lock);    ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE,        IX_OSAL_LOG_DEV_STDOUT, "=== POOL INFORMATION ===\n", 0, 0, 0,        0, 0, 0);    ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT,        "Pool Name:                   %s\n",        (unsigned int) poolPtr->name, 0, 0, 0, 0, 0);    ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT,        "Pool Allocation Type:        %d\n",        (unsigned int) poolPtr->poolAllocType, 0, 0, 0, 0, 0);    ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT,        "Pool Mbuf Mem Usage (bytes): %d\n",        (unsigned int) poolPtr->mbufMemSize, 0, 0, 0, 0, 0);    ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT,        "Pool Data Mem Usage (bytes): %d\n",        (unsigned int) poolPtr->dataMemSize, 0, 0, 0, 0, 0);    ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT,        "Mbuf Data Capacity  (bytes): %d\n",        (unsigned int) poolPtr->bufDataSize, 0, 0, 0, 0, 0);    ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT,        "Total Mbufs in Pool:         %d\n",        (unsigned int) poolPtr->totalBufsInPool, 0, 0, 0, 0, 0);    ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT,        "Available Mbufs:             %d\n", (unsigned int) count, 0,        0, 0, 0, 0);    ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT,        "Next Available Mbuf:         %p\n", (unsigned int) nextBufPtr,        0, 0, 0, 0, 0);    if (poolPtr->poolAllocType == IX_OSAL_MBUF_POOL_TYPE_USER_ALLOC)    {        ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE,            IX_OSAL_LOG_DEV_STDOUT,            "Mbuf Mem Area Start address: %p\n",            (unsigned int) poolPtr->mbufMemPtr, 0, 0, 0, 0, 0);        ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT,            "Data Mem Area Start address: %p\n",            (unsigned int) poolPtr->dataMemPtr, 0, 0, 0, 0, 0);    }}PUBLIC voidixOsalMbufDataPtrReset (IX_OSAL_MBUF * bufPtr){    IX_OSAL_MBUF_POOL *poolPtr;    UINT8 *poolDataPtr;    if (bufPtr == NULL)    {        ixOsalLog (IX_OSAL_LOG_LVL_ERROR, IX_OSAL_LOG_DEV_STDOUT,            "ixOsalBuffPoolBufDataPtrReset"            ": ERROR - Invalid Parameter\n", 0, 0, 0, 0, 0, 0);        return;    }    poolPtr = (IX_OSAL_MBUF_POOL *) IX_OSAL_MBUF_NET_POOL (bufPtr);    poolDataPtr = poolPtr->dataMemPtr;    if (poolPtr->poolAllocType == IX_OSAL_MBUF_POOL_TYPE_SYS_ALLOC)    {        if (IX_OSAL_MBUF_GET_SYS_SIGNATURE(bufPtr) != IX_OSAL_MBUF_SYS_SIGNATURE)        {            ixOsalLog (IX_OSAL_LOG_LVL_ERROR, IX_OSAL_LOG_DEV_STDOUT,                "ixOsalBuffPoolBufDataPtrReset"                ": invalid mbuf, cannot reset mData pointer\n", 0, 0,                0, 0, 0, 0);            return;        }        IX_OSAL_MBUF_MDATA (bufPtr) = (UINT8*)IX_OSAL_MBUF_ALLOCATED_BUFF_DATA (bufPtr);    }    else    {        if (poolDataPtr)        {            unsigned int bufSize = poolPtr->bufDataSize;            unsigned int bufDataAddr =                (unsigned int) IX_OSAL_MBUF_MDATA (bufPtr);            unsigned int poolDataAddr = (unsigned int) poolDataPtr;            /*             * the pointer is still pointing somewhere in the mbuf payload.             * This operation moves the pointer to the beginning of the              * mbuf payload             */            bufDataAddr = ((bufDataAddr - poolDataAddr) / bufSize) * bufSize;            IX_OSAL_MBUF_MDATA (bufPtr) = &poolDataPtr[bufDataAddr];        }        else        {            ixOsalLog (IX_OSAL_LOG_LVL_WARNING, IX_OSAL_LOG_DEV_STDOUT,                "ixOsalBuffPoolBufDataPtrReset"                ": cannot be used if user supplied NULL pointer for pool data area "                "when pool was created\n", 0, 0, 0, 0, 0, 0);            return;        }    }}/* * Function definition: ixOsalBuffPoolUninit */PUBLIC IX_STATUSixOsalBuffPoolUninit (IX_OSAL_MBUF_POOL * pool){    if (!pool)    {        ixOsalLog (IX_OSAL_LOG_LVL_ERROR, IX_OSAL_LOG_DEV_STDOUT,            "ixOsalBuffPoolUninit: NULL ptr \n", 0, 0, 0, 0, 0, 0);        return IX_FAIL;    }    if (pool->freeBufsInPool != pool->totalBufsInPool)    {        ixOsalLog (IX_OSAL_LOG_LVL_ERROR, IX_OSAL_LOG_DEV_STDOUT,            "ixOsalBuffPoolUninit: need to return all ptrs to the pool first! \n",            0, 0, 0, 0, 0, 0);        return IX_FAIL;    }    if (pool->poolAllocType == IX_OSAL_MBUF_POOL_TYPE_SYS_ALLOC)    {#ifdef IX_OSAL_BUFFER_ALLOC_SEPARATELY				UINT32 i;				IX_OSAL_MBUF* pBuf;								pBuf = pool->nextFreeBuf;				/* Freed the Buffer one by one till all the Memory is freed*/				for (i= pool->freeBufsInPool; i >0 && pBuf!=NULL ;i--){						IX_OSAL_MBUF* pBufTemp;						pBufTemp = IX_OSAL_MBUF_NEXT_BUFFER_IN_PKT_PTR(pBuf);						/* Freed MBUF Data Memory area*/						IX_OSAL_CACHE_DMA_FREE( (void *) (IX_OSAL_MBUF_ALLOCATED_BUFF_DATA(pBuf)) );						/* Freed MBUF Struct Memory area*/						IX_OSAL_CACHE_DMA_FREE(pBuf);						pBuf = pBufTemp;				}				#else    	        IX_OSAL_CACHE_DMA_FREE (pool->mbufMemPtr);        IX_OSAL_CACHE_DMA_FREE (pool->dataMemPtr);#endif            }    ixOsalBuffFreePools[pool->poolIdx / IX_OSAL_BUFF_FREE_BITS] &=        ~(1 << (pool->poolIdx % IX_OSAL_BUFF_FREE_BITS));    ixOsalBuffPoolsInUse--;    return IX_SUCCESS;}/* * Function definition: ixOsalBuffPoolDataAreaSizeGet */PUBLIC UINT32ixOsalBuffPoolDataAreaSizeGet (int count, int size){    UINT32 memorySize;    memorySize = count * IX_OSAL_MBUF_POOL_SIZE_ALIGN (size);    return memorySize;}/* * Function definition: ixOsalBuffPoolMbufAreaSizeGet */PUBLIC UINT32ixOsalBuffPoolMbufAreaSizeGet (int count){    UINT32 memorySize;    memorySize =        count * IX_OSAL_MBUF_POOL_SIZE_ALIGN (sizeof (IX_OSAL_MBUF));    return memorySize;}/* * Function definition: ixOsalBuffPoolFreeCountGet */PUBLIC UINT32 ixOsalBuffPoolFreeCountGet(IX_OSAL_MBUF_POOL * poolPtr){   return poolPtr->freeBufsInPool;}#endif /* IX_OSAL_USE_DEFAULT_BUFFER_MGT */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久| 精品日韩在线观看| 一区二区三区在线免费| 94色蜜桃网一区二区三区| 国产精品久久久久一区 | 国产欧美一区视频| 国产成人午夜电影网| 国产精品久久久久aaaa| eeuss国产一区二区三区| 亚洲美女免费在线| 欧美日韩的一区二区| 六月丁香婷婷久久| 国产日韩av一区| 日本高清免费不卡视频| 日韩精品视频网| 久久综合狠狠综合| 色综合天天综合在线视频| 亚洲国产精品一区二区久久恐怖片 | 欧美妇女性影城| 国产一区日韩二区欧美三区| 中文成人av在线| 99在线精品观看| 午夜精品免费在线观看| 久久综合九色综合欧美亚洲| 91影院在线免费观看| 日韩成人精品在线观看| 亚洲国产精品v| 欧美日韩的一区二区| 国产福利一区二区三区| 亚洲免费高清视频在线| 精品国产乱码久久久久久浪潮| 成人精品小蝌蚪| 美女性感视频久久| 亚洲视频在线观看三级| 精品久久99ma| 欧美色综合久久| 成人开心网精品视频| 亚洲国产精品久久久久秋霞影院| 精品久久久久99| 欧美性大战久久久久久久| 国产精品一二三四五| 日韩制服丝袜先锋影音| 亚洲欧美综合在线精品| 欧美电视剧在线看免费| 91久久精品一区二区| 国产成人无遮挡在线视频| 日韩精彩视频在线观看| 亚洲美女少妇撒尿| 欧美激情一区二区三区不卡| 日韩一区二区精品在线观看| 色婷婷综合久久久| 成人做爰69片免费看网站| 奇米精品一区二区三区四区 | 精品乱人伦一区二区三区| 在线中文字幕一区二区| av电影在线观看一区| 国产jizzjizz一区二区| 国产成人一级电影| 蜜臀久久久久久久| 亚洲一卡二卡三卡四卡| 国产精品久久久久久久裸模 | 国产偷国产偷精品高清尤物| 日韩欧美国产一区在线观看| 在线观看视频一区二区欧美日韩| 国产91丝袜在线播放0| 免费人成精品欧美精品 | 全部av―极品视觉盛宴亚洲| 亚洲高清视频中文字幕| 亚洲精品第1页| 日韩理论片中文av| 国产精品久久久久久久浪潮网站| 久久综合色综合88| 精品久久久久一区| 96av麻豆蜜桃一区二区| 精品一区二区免费在线观看| 久久美女艺术照精彩视频福利播放| 首页国产欧美日韩丝袜| 亚洲综合免费观看高清完整版在线 | 国产精品久久久久久久久免费樱桃| 精品伦理精品一区| 久久久一区二区| 国产欧美精品一区二区三区四区| 国产亚洲一本大道中文在线| 久久精品一二三| 欧美激情在线免费观看| 国产精品久久久久7777按摩| 亚洲欧美日韩国产另类专区| 一区二区三区日韩欧美精品| 亚洲成av人片在www色猫咪| 五月激情六月综合| 久久成人av少妇免费| 国产美女在线观看一区| 成人激情视频网站| 欧洲色大大久久| 91麻豆精品国产91久久久资源速度| 欧美福利视频导航| 26uuu亚洲综合色| 国产精品卡一卡二卡三| 一区二区三区日本| 男男gaygay亚洲| 亚洲国产综合色| 欧美日韩一级二级| 91小视频免费看| 欧美亚洲国产怡红院影院| 9191国产精品| 久久久影院官网| 国产精品久久国产精麻豆99网站| 亚洲男帅同性gay1069| 亚洲1区2区3区视频| 亚洲一区二区三区四区在线| 亚洲超碰精品一区二区| 久久99久国产精品黄毛片色诱| 丰满亚洲少妇av| 欧美色欧美亚洲另类二区| 日韩视频在线一区二区| 国产精品久久久久久久久免费丝袜| 一区二区三区在线视频观看| 日本免费在线视频不卡一不卡二| 国产精品一区二区在线播放| 91极品美女在线| 久久网这里都是精品| 亚洲欧美一区二区久久| 国内精品久久久久影院色 | 免费欧美日韩国产三级电影| 成人性生交大片免费看中文网站| 欧美日韩在线三区| 久久久精品免费免费| 亚洲成av人片在线观看| 不卡电影一区二区三区| 欧美草草影院在线视频| 一区二区三区中文在线| 国产又黄又大久久| 欧美精品在欧美一区二区少妇| 国产日韩精品一区二区浪潮av| 日韩专区欧美专区| 97se亚洲国产综合在线| 久久久精品蜜桃| 日韩av不卡一区二区| 97久久超碰精品国产| 久久久久久久综合色一本| 亚洲成人精品一区二区| 色综合久久久久| 中文字幕第一区综合| 国产综合久久久久久久久久久久| 欧美日韩国产大片| 亚洲色图都市小说| 国产精品一区二区免费不卡| 日韩三级在线观看| 日本在线不卡视频| 在线观看不卡一区| 亚洲日本在线a| 岛国精品一区二区| 久久久亚洲欧洲日产国码αv| 日韩经典中文字幕一区| 精品污污网站免费看| 亚洲夂夂婷婷色拍ww47| 91在线观看地址| 国产精品少妇自拍| 粉嫩av一区二区三区粉嫩| 久久久亚洲国产美女国产盗摄| 捆绑变态av一区二区三区| 91精品国产综合久久久久久久| 亚洲一区免费在线观看| 欧美伊人精品成人久久综合97 | 国产黑丝在线一区二区三区| 欧美一级艳片视频免费观看| 日韩—二三区免费观看av| 欧美日韩另类一区| 午夜欧美在线一二页| 欧美二区在线观看| 免费观看在线综合色| 日韩欧美一二区| 极品美女销魂一区二区三区免费| 欧美一级淫片007| 国内欧美视频一区二区| 国产欧美久久久精品影院| 9色porny自拍视频一区二区| 日本不卡一区二区三区高清视频| 欧美男生操女生| 男男gaygay亚洲| 久久久精品国产免大香伊| 不卡一区二区在线| 亚洲免费av在线| 欧美老人xxxx18| 激情欧美日韩一区二区| 欧美激情一区二区三区不卡| av网站一区二区三区| 亚洲无人区一区| 日韩视频免费观看高清完整版 | 欧美zozozo| 国产精品亚洲第一| 亚洲欧洲另类国产综合| 欧美在线视频全部完| 青青草国产精品亚洲专区无| 26uuu亚洲| 99精品热视频| 日韩成人精品视频| 国产精品网站在线观看| 欧美日韩午夜影院| 国产精品 欧美精品|