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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ixosalbuffermgt.c

?? 友善mini2440嵌入式
?? 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 */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女性感视频久久| 国产欧美日韩另类视频免费观看| 国内不卡的二区三区中文字幕| 亚洲一区二区三区在线| 亚洲欧洲无码一区二区三区| 国产精品天美传媒沈樵| 亚洲国产电影在线观看| 最新国产成人在线观看| 亚洲色图20p| 亚洲综合成人在线视频| 香蕉影视欧美成人| 免费观看在线综合| 国产综合久久久久久鬼色| 国产精品亚洲а∨天堂免在线| 韩国v欧美v日本v亚洲v| 成人综合激情网| 97se亚洲国产综合自在线| 欧美性xxxxxx少妇| 日韩免费观看高清完整版| av在线播放不卡| 精品少妇一区二区三区日产乱码| 成人一区在线观看| 色噜噜狠狠成人网p站| 欧美日韩免费观看一区二区三区| 777奇米四色成人影色区| 久久伊人中文字幕| 亚洲欧美另类图片小说| 男女性色大片免费观看一区二区| 久久99国产精品麻豆| aaa国产一区| 欧美一区二区日韩一区二区| 国产色91在线| 亚洲成人av福利| 国产98色在线|日韩| 在线观看国产91| 26uuu国产电影一区二区| 亚洲精品五月天| 激情综合网天天干| 日本电影欧美片| 精品国产乱码久久久久久闺蜜| 成人免费在线播放视频| 九九视频精品免费| 欧美专区在线观看一区| 久久久噜噜噜久久人人看| 亚洲一区成人在线| 国产成人啪免费观看软件| 欧美性大战xxxxx久久久| 国产精品五月天| 美日韩黄色大片| 欧美日韩一区小说| 亚洲欧洲日产国产综合网| 日韩中文字幕av电影| 成人手机电影网| 精品国产免费人成电影在线观看四季| 亚洲精品国产第一综合99久久| 国产乱子伦视频一区二区三区| 欧美日本国产一区| 亚洲精品中文在线观看| 成人av在线一区二区三区| 欧美精品一区二区高清在线观看| 夜夜精品视频一区二区 | 在线免费av一区| 久久久欧美精品sm网站| 久久精品久久精品| 欧美一区二区私人影院日本| 亚洲在线视频免费观看| 91丝袜呻吟高潮美腿白嫩在线观看| 久久久www成人免费毛片麻豆| 久久精品久久综合| 欧美xxxxxxxx| 经典一区二区三区| 国产婷婷色一区二区三区| 亚洲成人av一区二区三区| 欧美在线免费播放| 亚洲二区在线视频| 欧美日韩中文国产| 一卡二卡三卡日韩欧美| 色八戒一区二区三区| 亚洲精品高清在线观看| 在线观看亚洲精品视频| 亚洲综合一区二区三区| 在线观看亚洲a| 午夜视频一区在线观看| 91精品免费观看| 免费观看在线综合| 2021中文字幕一区亚洲| 国产99久久久久久免费看农村| 国产精品天美传媒| 91影院在线观看| 亚洲午夜一区二区三区| 欧美精品久久久久久久多人混战| 午夜av电影一区| 精品国产免费一区二区三区香蕉| 国产不卡视频一区二区三区| 国产精品国产三级国产有无不卡| 色香蕉久久蜜桃| 日韩福利电影在线| 久久久一区二区| 色综合久久六月婷婷中文字幕| 亚洲综合久久av| 日韩一区二区免费高清| 国产+成+人+亚洲欧洲自线| 亚洲男同性恋视频| 51精品秘密在线观看| 国产成人av电影在线| 亚洲综合区在线| 精品国产sm最大网站| 成人精品国产一区二区4080| 亚洲激情综合网| 91精品国产91久久久久久最新毛片| 国产精品77777| 亚洲女人的天堂| 欧美mv日韩mv| 91国产精品成人| 国产老妇另类xxxxx| 一区二区三区色| 国产亚洲va综合人人澡精品| 欧美午夜精品电影| 国产99久久久国产精品免费看| 婷婷开心激情综合| 国产精品少妇自拍| 日韩精品资源二区在线| 在线亚洲高清视频| 成人免费视频一区二区| 青娱乐精品在线视频| 亚洲欧洲国产专区| 国产视频一区在线播放| 欧美久久久久久蜜桃| 99r精品视频| 国产成人丝袜美腿| 日韩成人免费电影| 亚洲午夜精品网| 中文字幕字幕中文在线中不卡视频| 欧美一区二区福利视频| 91国在线观看| 91老司机福利 在线| 国产成人亚洲综合色影视| 蜜桃精品视频在线| 无吗不卡中文字幕| 一区二区高清在线| 亚洲精品视频在线观看网站| 中文欧美字幕免费| 国产欧美一区在线| 精品电影一区二区| 亚洲精品一区二区三区四区高清| 制服.丝袜.亚洲.另类.中文| 日本道在线观看一区二区| 91麻豆精品视频| bt欧美亚洲午夜电影天堂| 成人免费av资源| 成人免费高清视频在线观看| 国产美女主播视频一区| 免费三级欧美电影| 久久国产夜色精品鲁鲁99| 麻豆极品一区二区三区| 久久激情五月激情| 国产精品99久久久久久有的能看 | 国产肉丝袜一区二区| 91精品免费在线观看| 日韩一区二区三区在线| 91精品国产综合久久精品麻豆 | 亚洲国产你懂的| 亚洲成人激情综合网| 午夜精品久久久久久久久久| 日日夜夜免费精品视频| 久久国产精品99久久久久久老狼 | 国产精品久久久久精k8| 亚洲人成网站色在线观看| 亚洲欧美欧美一区二区三区| 亚洲一区二区三区四区在线免费观看| 亚洲午夜日本在线观看| 日本不卡不码高清免费观看| 久久国产夜色精品鲁鲁99| 成人性视频网站| 欧美性xxxxxx少妇| 久久综合久久综合久久| 国产精品日日摸夜夜摸av| 亚洲欧美日韩精品久久久久| 亚洲成a人在线观看| 精品一区免费av| av电影一区二区| 欧美另类变人与禽xxxxx| 久久综合999| 亚洲黄色小说网站| 韩国成人精品a∨在线观看| 成人高清伦理免费影院在线观看| 欧美性大战久久久久久久| 久久亚洲捆绑美女| 亚洲一区二区三区不卡国产欧美| 日本免费在线视频不卡一不卡二| 国产一区二区久久| 欧美日韩美女一区二区| 久久久久久久精| 日韩一区精品字幕| 北条麻妃一区二区三区| 欧美一卡二卡三卡四卡| 亚洲日本一区二区| 国产精一区二区三区| 欧美日韩一区二区三区四区 | 欧美疯狂性受xxxxx喷水图片|