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

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

?? netbuflib.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
* Assuming you have set up the configuration tables as shown above, a * typical call to netPoolInit() would be as follows:* .CS*     int clDescTblNumEnt = (NELEMENTS(clDescTbl));*     NET_POOL 	netPool;*     NET_POOL_ID 	pNetPool = &netPool;**     if (netPoolInit (pNetPool, &mClBlkConfig, &clDescTbl [0], clDescTblNumEnt,*         NULL) != OK)*         return (ERROR);*.CE** VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, access to the contents of a memory pool is limited to * the protection domain within which you made the netPoolInit() call that * created the pool.  In addition, all parameters to a netPoolInit() call * must be valid within the protection domain from which you make the call. * This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS: OK or ERROR.** ERRNO:*  S_netBufLib_MEMSIZE_INVALID*  S_netBufLib_CLSIZE_INVALID*  S_netBufLib_NO_SYSTEM_MEMORY*  S_netBufLib_MEM_UNALIGNED*  S_netBufLib_MEMSIZE_UNALIGNED*  S_netBufLib_MEMAREA_INVALID** SEE ALSO: netPoolDelete()*/STATUS netPoolInit    (    NET_POOL_ID		pNetPool,	 /* pointer to a net pool */    M_CL_CONFIG *	pMclBlkConfig,	 /* pointer to a mBlk configuration */    CL_DESC *		pClDescTbl,	 /* pointer to cluster desc table */    int			clDescTblNumEnt, /* number of cluster desc entries */    POOL_FUNC *		pFuncTbl	 /* pointer to pool function table */    )    {    if (pNetPool == NULL)        return (ERROR);    if (pFuncTbl != NULL)        pNetPool->pFuncTbl = pFuncTbl;    else        pNetPool->pFuncTbl = _pNetPoolFuncTbl;	/* default func table */    return (poolInit (pNetPool, pMclBlkConfig, pClDescTbl,        clDescTblNumEnt, FROM_HOMEPDHEAP)); /* allocate from the homePD's heap */    }/********************************************************************************* netPoolKheapInit - kernel heap version of netPoolInit()* * This initializes a netBufLib-managed memory pool from Kernel heap.* See netPoolInit() for more detail.** VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, you can call this function from within the kernel * protection domain only.  In addition, all arguments to this function can  * reference only that data which is valid in the kernel protection domain. * This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS: OK or ERROR.** ERRNO:*  N/A** SEE ALSO: netPoolInit(), netPoolDelete()*/STATUS netPoolKheapInit    (    NET_POOL_ID		pNetPool,	 /* pointer to a net pool */    M_CL_CONFIG *	pMclBlkConfig,	 /* pointer to a mBlk configuration */    CL_DESC *		pClDescTbl,	 /* pointer to cluster desc table */    int			clDescTblNumEnt, /* number of cluster desc entries */    POOL_FUNC *		pFuncTbl	 /* pointer to pool function table */    )    {    if (pNetPool == NULL)        return (ERROR);    if (pFuncTbl != NULL)        pNetPool->pFuncTbl = pFuncTbl;    else        pNetPool->pFuncTbl = _pNetPoolFuncTbl;	/* default func table */    return (poolInit (pNetPool, pMclBlkConfig, pClDescTbl,        clDescTblNumEnt, FROM_KHEAP)); /* allocate from kernel heap */    }/********************************************************************************* netPoolDelete - delete a memory pool** This routine deletes the specified netBufLib-managed memory pool.** VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, you can call this function from within the kernel * protection domain only.  In addition, all arguments to this function can  * reference only that data which is valid in the kernel protection domain. * This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS: OK or ERROR.** ERRNO:*  S_netBufLib_NETPOOL_INVALID*/STATUS netPoolDelete    (    NET_POOL_ID		pNetPool	/* pointer to a net pool */    )    {    int			ix;		/* index variable */    int			iy;		/* index variable */    CL_POOL_ID		pClPool;	/* pointer to the pool */    if (pNetPool->pPoolStat == NULL)        {        errno = S_netBufLib_NETPOOL_INVALID;        return (ERROR);			/* pool already deleted */        }    free (pNetPool->pPoolStat);    for (ix = 0; ix < CL_TBL_SIZE; ix++)        {        pClPool = pNetPool->clTbl [ix];        if (pClPool != NULL)            {            for (iy = ix + 1; iy < CL_TBL_SIZE; iy++)                {                if (pClPool == pNetPool->clTbl [iy])                    pNetPool->clTbl [iy] = NULL;                }            free (pClPool);            }        }    bzero ((char *)pNetPool, sizeof(NET_POOL));	/* zero the structure */    return (OK);    }/********************************************************************************* netMblkFree - free an `mBlk' back to its memory pool** This routine frees the specified `mBlk' back to the specified memory pool.** VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, you can call this function from within the kernel * protection domain only.  In addition, all arguments to this function can  * reference only that data which is valid in the kernel protection domain. * This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS: N/A*/void netMblkFree    (    NET_POOL_ID		pNetPool,	/* pointer to the net pool */    M_BLK_ID	 	pMblk		/* mBlk to free */    )    {    if (pNetPool == NULL || pNetPool->pFuncTbl == NULL ||        pNetPool->pFuncTbl->pMblkFreeRtn == NULL)        return;    (*pNetPool->pFuncTbl->pMblkFreeRtn) (pNetPool, pMblk);    }/********************************************************************************* netClBlkFree - free a `clBlk'-cluster construct back to the memory pool** This routine decrements the reference counter in the specified `clBlk'. * If the reference count falls to zero, this routine frees both the `clBlk'* and its associated cluster back to the specified memory pool.** VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, you can call this function from within the kernel * protection domain only.  In addition, all arguments to this function can  * reference only that data which is valid in the kernel protection domain. * This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS: N/A*/void netClBlkFree    (    NET_POOL_ID		pNetPool,	/* pointer to the net pool */    CL_BLK_ID	 	pClBlk		/* pointer to the clBlk to free */    )    {    pNetPool 		= pClBlk->pNetPool;        if (pNetPool == NULL || pNetPool->pFuncTbl == NULL ||        pNetPool->pFuncTbl->pClBlkFreeRtn == NULL)        return;    (*pNetPool->pFuncTbl->pClBlkFreeRtn) (pClBlk);    }/********************************************************************************* netClFree - free a cluster back to the memory pool** This routine returns the specified cluster buffer back to the specified* memory pool.  * * VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, you can call this function from within the kernel * protection domain only.  In addition, all arguments to this function can  * reference only that data which is valid in the kernel protection domain. * This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS: N/A*/void netClFree    (    NET_POOL_ID		pNetPool,	/* pointer to the net pool */    UCHAR * 		pClBuf		/* pointer to the cluster buffer */    )    {    if (pNetPool == NULL || pNetPool->pFuncTbl == NULL ||        pNetPool->pFuncTbl->pClFreeRtn == NULL)        return;    (*pNetPool->pFuncTbl->pClFreeRtn) (pNetPool, pClBuf);    }/********************************************************************************* netMblkClFree - free an `mBlk'-`clBlk'-cluster construct** For the specified `mBlk'-`clBlk'-cluster construct, this routine* frees the `mBlk' back to the specified memory pool.  It also decrements * the reference count in the `clBlk' structure.  If the reference count * falls to zero, no other `mBlk' structure reference this `clBlk'.  In that * case, this routine also frees the `clBlk' structure and its associated * cluster back to the specified memory pool.  ** VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, you can call this function from within the kernel * protection domain only.  In addition, all arguments to this function can  * reference only that data which is valid in the kernel protection domain. * Likewise, the returned ID is valid in the kernel protection domain only.* This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS* If the specified `mBlk' was part of an `mBlk' chain, this routine returns * a pointer to the next `mBlk'.  Otherwise, it returns a NULL.** ERRNO:*  S_netBufLib_MBLK_INVALID*/M_BLK_ID netMblkClFree    (    M_BLK_ID 		pMblk		/* pointer to the mBlk */    )    {    NET_POOL_ID 	pNetPool;    if (pMblk == NULL)        return (NULL);    pNetPool = MBLK_TO_NET_POOL(pMblk);    return ((*pNetPool->pFuncTbl->pMblkClFreeRtn) (pNetPool, pMblk));    }/********************************************************************************* netMblkClChainFree - free a chain of `mBlk'-`clBlk'-cluster constructs** For the specified chain of `mBlk'-`clBlk'-cluster constructs, this * routine frees all the `mBlk' structures back to the specified memory pool.  * It also decrements the reference count in all the `clBlk' structures.  If * the reference count in a `clBlk' falls to zero, this routine also frees * that `clBlk' and its associated cluster back to the specified memory pool. ** VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, you can call this function from within the kernel * protection domain only.  In addition, all arguments to this function can  * reference only that data which is valid in the kernel protection domain. * This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS: N/A** ERRNO:*  S_netBufLib_MBLK_INVALID*/void netMblkClChainFree    (    M_BLK_ID 		pMblk		/* pointer to the mBlk */    )    {    NET_POOL_ID 	pNetPool;    while (pMblk != NULL)        {        pNetPool = MBLK_TO_NET_POOL(pMblk);        pMblk 	 = (*pNetPool->pFuncTbl->pMblkClFreeRtn) (pNetPool, pMblk);        }    }/********************************************************************************* netMblkGet - get an `mBlk' from a memory pool** This routine allocates an `mBlk' from the specified memory pool, if* available.** .IP <pNetPool> 9* Expects a pointer to the pool from which you want an `mBlk'.* .IP <canWait>* Expects either M_WAIT or M_DONTWAIT.  If no 'mBlk' is immediately available,* the M_WAIT value allows this routine to repeat the allocation attempt after* performing garbage collection. It omits these steps when the M_DONTWAIT* value is used.* .IP <type>* Expects the type value that you want to associate with the returned `mBlk'.* .LP** VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, you can call this function from within the kernel * protection domain only.  In addition, all arguments to this function can  * reference only that data which is valid in the kernel protection domain. * Likewise, the returned ID is valid in the kernel protection domain only.* This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS* M_BLK_ID or NULL if no `mBlk' is available.** ERRNO:*  S_netBufLib_MBLK_INVALID*/M_BLK_ID netMblkGet    (    NET_POOL_ID		pNetPool,	/* pointer to the net pool */    int			canWait,	/* M_WAIT/M_DONTWAIT */    UCHAR		type		/* mBlk type */    )    {    if (pNetPool == NULL || pNetPool->pFuncTbl == NULL ||        pNetPool->pFuncTbl->pMblkGetRtn == NULL)        return (NULL);    return ((*pNetPool->pFuncTbl->pMblkGetRtn) (pNetPool, canWait, type));    }/********************************************************************************* netClBlkGet - get a `clBlk'** This routine gets a `clBlk' from the specified memory pool.* .IP <pNetPool> 9* Expects a pointer to the pool from which you want a `clBlk'.* .IP <canWait>* Expects either M_WAIT or M_DONTWAIT.  If no 'clBlk' is immediately available,* the M_WAIT value allows this routine to repeat the allocation attempt after* performing garbage collection. It omits these steps when the M_DONTWAIT* value is used.** VXWORKS AE PROTECTION DOMAINS* Under VxWorks AE, you can call this function from within the kernel * protection domain only.  In addition, all arguments to this function can  * reference only that data which is valid in the kernel protection domain. * Likewise, the returned ID is valid in the kernel protection domain only.* This restriction does not apply under non-AE versions of VxWorks.  ** RETURNS: CL_BLK_ID or a NULL if no `clBlk' was available.*/CL_BLK_ID netClBlkGet    (    NET_POOL_ID		pNetPool,	/* pointer to the net pool */    int			canWait		/* M_WAIT/M_DONTWAIT */    )    {    if (pNetPool == NULL || pNetPool->pFuncTbl == NULL ||        pNetPool->pFuncTbl->pClBlkGetRtn == NULL)        return (NULL);    return ((*pNetPool->pFuncTbl->pClBlkGetRtn) (pNetPool, canWait));    }/********************************************************************************* netClusterGet - get a cluster from the specified cluster pool** This routine gets a cluster from the specified cluster pool <pClPool> 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费在线成人网| 欧美视频日韩视频| 欧美午夜精品久久久| 欧美xxx久久| 亚洲精品高清视频在线观看| 极品尤物av久久免费看| 欧美日韩一区二区三区在线| 中文字幕不卡一区| 久久国产精品99久久久久久老狼| 日本高清不卡视频| 中文字幕av在线一区二区三区| 日韩av一区二区在线影视| 成人黄色777网| 久久亚洲一区二区三区四区| 午夜精品久久久久久久| 欧洲生活片亚洲生活在线观看| 国产色产综合产在线视频| 麻豆91在线观看| 欧美一级日韩免费不卡| 亚洲主播在线播放| 日本韩国欧美一区二区三区| 国产精品福利一区| 成人免费av在线| 欧美激情一区二区三区全黄| 国产综合色产在线精品| 精品国产123| 国产麻豆精品久久一二三| 欧美xxxx老人做受| 久久机这里只有精品| 日韩亚洲欧美成人一区| 蜜臀av亚洲一区中文字幕| 欧美一区二区三区婷婷月色| 五月天丁香久久| 日韩欧美国产一区二区在线播放| 日本麻豆一区二区三区视频| 91精品国产品国语在线不卡| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩欧美中文一区二区| 精品一区二区三区在线播放| 精品国产一区久久| 国产成人啪免费观看软件| 国产香蕉久久精品综合网| 成人精品国产一区二区4080| 国产精品久久777777| 一本大道综合伊人精品热热| 亚洲美女免费在线| 欧美一区二区三区免费在线看| 免费在线一区观看| 国产无人区一区二区三区| 国产成+人+日韩+欧美+亚洲| 国产精品网站在线观看| 色琪琪一区二区三区亚洲区| 亚洲不卡一区二区三区| 久久久三级国产网站| 91丝袜美女网| 日韩国产一二三区| 中文一区在线播放| 欧美电影一区二区| 国产成人av一区| 亚洲成人在线免费| 久久精品水蜜桃av综合天堂| 91网站在线播放| 久久99九九99精品| 国产精品白丝在线| 日韩一区二区精品在线观看| 成人污污视频在线观看| 亚洲午夜精品在线| 国产欧美一区二区在线观看| 日本国产一区二区| 国产成人自拍高清视频在线免费播放| 亚洲免费av高清| 日韩电影在线看| 欧美伊人久久久久久午夜久久久久| 欧美日本国产视频| 国产精品污污网站在线观看| 欧美在线不卡视频| 国内精品国产成人国产三级粉色| 亚洲天堂精品在线观看| 日韩一区二区三区视频在线| 国产成人午夜电影网| 图片区小说区国产精品视频| 国产午夜精品福利| 日韩精品一区二区三区在线| 91官网在线观看| 丁香啪啪综合成人亚洲小说 | 亚洲综合一区二区精品导航| 欧美一区二区福利在线| 91亚洲永久精品| 国产aⅴ精品一区二区三区色成熟| 午夜国产不卡在线观看视频| 国产精品免费视频网站| 久久综合久久综合久久| 日韩一级片网址| 日本不卡一二三| 日本精品免费观看高清观看| 欧美夫妻性生活| 久久se精品一区精品二区| 亚洲精品大片www| 亚洲国产成人自拍| 久久久久国产精品麻豆| 日韩欧美亚洲另类制服综合在线| 欧美日韩在线电影| 日本丶国产丶欧美色综合| 成人性生交大片免费看中文网站| 精品一区二区三区在线视频| 天天综合天天做天天综合| 亚洲人成电影网站色mp4| 中文字幕av一区二区三区| 国产日产亚洲精品系列| 久久久国产精品麻豆| 亚洲精品在线一区二区| 精品999在线播放| 久久嫩草精品久久久精品| 久久综合色婷婷| 久久婷婷色综合| 久久精品日韩一区二区三区| 2021中文字幕一区亚洲| 久久久精品影视| 国产亚洲一区二区三区四区| 国产午夜亚洲精品不卡| 欧美激情中文字幕| 亚洲欧美日韩久久精品| 一区二区成人在线视频| 亚洲电影你懂得| 麻豆精品视频在线| 国产乱国产乱300精品| 国产成人免费9x9x人网站视频| 大桥未久av一区二区三区中文| 波多野结衣亚洲一区| 91免费精品国自产拍在线不卡| 欧美午夜精品久久久久久超碰 | 欧美日韩久久一区二区| 在线不卡中文字幕| 久久精品亚洲乱码伦伦中文| 中文字幕一区在线| 亚洲二区视频在线| 六月丁香综合在线视频| 国产99久久精品| 在线日韩av片| 欧美变态tickling挠脚心| 国产精品久久久久一区| 亚洲综合久久久| 九九九久久久精品| 色综合天天综合| 日韩无一区二区| 亚洲丝袜制服诱惑| 日本女人一区二区三区| 不卡的电视剧免费网站有什么| 欧美午夜理伦三级在线观看| 精品久久久久久久人人人人传媒 | 欧美体内she精高潮| 日韩小视频在线观看专区| 国产精品视频在线看| 亚洲成av人片在线| 国产99精品国产| 91精品国产一区二区三区香蕉| 国产日产精品一区| 午夜精品在线视频一区| 国产91精品在线观看| 欧美网站大全在线观看| 中文文精品字幕一区二区| 无码av免费一区二区三区试看| 国产精品一线二线三线精华| 在线免费观看视频一区| 久久一夜天堂av一区二区三区| 一区二区三区四区在线免费观看| 久久精品国产99久久6| 色久综合一二码| 国产精品日日摸夜夜摸av| 久久99国产精品麻豆| 欧美日韩一区在线| 日韩一区在线播放| 国产高清不卡一区二区| 欧美v日韩v国产v| 亚洲第一二三四区| 色呦呦日韩精品| 中文幕一区二区三区久久蜜桃| 日韩va欧美va亚洲va久久| 欧洲一区二区av| 亚洲视频一二三区| 成人国产视频在线观看| 久久只精品国产| 精品亚洲国内自在自线福利| 欧美日韩成人综合| 亚洲国产精品麻豆| 欧美性猛交xxxxxxxx| 有坂深雪av一区二区精品| 不卡视频免费播放| 国产欧美精品一区二区色综合| 精品综合久久久久久8888| 日韩一区二区在线观看| 日本成人在线电影网| 91超碰这里只有精品国产| 亚洲午夜精品一区二区三区他趣| www.激情成人| 中文字幕在线观看不卡| 色综合久久99| 亚洲成人动漫在线免费观看| 欧美三级乱人伦电影| 午夜精品久久久久久久99樱桃 |