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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? disttbuflib.c

?? 大名鼎鼎的嵌入式操作系統(tǒng)vxworks的完整的源代碼
?? C
字號(hào):
/* distTBufLib.c - distributed objects telegram buffer library (VxFusion option) *//* Copyright 1999 - 2002 Wind River Systems, Inc. *//*modification history--------------------01g,26nov01,jws  fix void ptr arith not seen by diab (SPR 71154)01f,30oct01,jws  fix man pages (SPR 71239)01e,24may99,drm  added vxfusion prefix to VxFusion related includes01d,23feb99,wlf  doc edits01c,18feb99,wlf  doc cleanup01b,29oct98,drm  documentation updates01a,03sep97,ur   written.*//*DESCRIPTIONThis library provides routines for allocating and freeing telegram buffers.  Telegrams are the largest packets that can be sent between nodes by the distributed objects product; their size is limited by the MTU size of theunderlying communications.  If a distributed objects message exceeds the space allocated in a telegram for message data, that message is divided into multiple telegrams that are sent out in sequence. AVAILABILITYThis module is distributed as a component of the unbundled distributedmessage queues option, VxFusion.INCLUDE FILES: distTBufLib.h*/#include "vxWorks.h"#ifdef DIST_DIAGNOSTIC#include "stdio.h"#endif#include "stdlib.h"#include "string.h"#include "semLib.h"#include "private/semLibP.h"#include "vxfusion/distIfLib.h"#include "vxfusion/distStatLib.h"#include "vxfusion/private/distNetLibP.h"#include "vxfusion/private/distTBufLibP.h"/* defines */#define MIN(a,b)    (((a) < (b)) ? (a) : (b))/* local variables */LOCAL BOOL                distTBufLibInstalled = FALSE;LOCAL DIST_TBUF_POOL      distTBufPool;LOCAL int                 tbHSz, ifHSz, ifDSz, tBufSize;LOCAL SEMAPHORE           distTBufPoolLock;/***************************************************************************** distTBufLibInit - pre-allocate a pool of telegram buffers (VxFusion option)** This routine initializes a pool of telegram buffers.** AVAILABILITY* This routine is distributed as a component of the unbundled distributed* message queues option, VxFusion.** RETURNS: OK, when successful.  ERROR, when initialization fails.* * NOMANUAL*/STATUS distTBufLibInit    (    int      numTBufs    /* the number of buffers to allocate */    )    {    int    i;    char * pPool;    char * p;    if (distTBufLibInstalled == TRUE)        return (OK);    tbHSz = MEM_ROUND_UP (sizeof (DIST_TBUF));    ifHSz = MEM_ROUND_UP (DIST_IF_HDR_SZ);    ifDSz = MEM_ROUND_UP (DIST_IF_MTU - DIST_IF_HDR_SZ);    tBufSize = tbHSz + ifHSz + ifDSz;    if (tBufSize < MEM_ROUND_UP (sizeof (DIST_TBUF_HDR)))        tBufSize = MEM_ROUND_UP (sizeof (DIST_TBUF_HDR));    if ((pPool = (char *) malloc (numTBufs * tBufSize)) == NULL)        {#ifdef DIST_DIAGNOSTIC        printf ("distTBufLibInit: memory allocation failed\n");#endif        return (ERROR);        }    distTBufPool.pTBufFree = (DIST_TBUF *) pPool;    for (p = pPool, i = 1; i < numTBufs; p += tBufSize, i++)        {        ((DIST_TBUF_GEN *) p)->pTBufGenNext = (DIST_TBUF_GEN *) (p + tBufSize);        }    ((DIST_TBUF_GEN *) p)->pTBufGenNext = NULL;    semBInit (&distTBufPoolLock, SEM_Q_PRIORITY, SEM_FULL);    distTBufLibInstalled = TRUE;    return (OK);    }/***************************************************************************** distTBufAlloc - allocate a telegram buffer from the pool of buffers (VxFusion option)** This routine allocates a telegram buffer from a pre-allocated pool* of telegram buffers.** It is the responsibility of the caller to use the distTBufFree() routine to* free the buffer when the caller is finished with it.** AVAILABILITY* This routine is distributed as a component of the unbundled distributed* message queues option, VxFusion.** RETURNS: A pointer to a DIST_TBUF, or NULL if the allocation fails.** SEE ALSO: distTBufFree*/DIST_TBUF * distTBufAlloc (void)    {    DIST_TBUF * pTBuf;    distTBufPoolLock();    if ((pTBuf = distTBufPool.pTBufFree) != NULL)        {        distTBufPool.pTBufFree =                (DIST_TBUF *) ((DIST_TBUF_GEN *) pTBuf)->pTBufGenNext;        distTBufPoolUnlock();        bzero ((char *) pTBuf, tBufSize);                pTBuf->pTBufData = ((char *) pTBuf) + tbHSz + ifHSz;        ((DIST_TBUF_GEN *) pTBuf)->pTBufGenNext = NULL;        ((DIST_TBUF_GEN *) pTBuf)->pTBufGenLast = (DIST_TBUF_GEN *) pTBuf;#ifdef DIST_DIAGNOSTIC        pTBuf->tBufHeader = FALSE;#endif        return (pTBuf);        }    distTBufPoolUnlock();    distStat.tBufShortage++;    return (NULL);    }/***************************************************************************** distTBufAllocHdr - allocate a DIST_TBUF_HDR object (VxFusion option)** This routine allocates and returns a pointer to a DIST_TBUF_HDR.** AVAILABILITY* This routine is distributed as a component of the unbundled distributed* message queues option, VxFusion.** RETURNS: A pointer to the DIST_TBUF_HDR, or NULL.* * NOMANUAL*/DIST_TBUF_HDR * distTBufAllocHdr (void)    {    DIST_TBUF_HDR * pTBufHdr;    distTBufPoolLock();    if ((pTBufHdr = (DIST_TBUF_HDR *) distTBufPool.pTBufFree) != NULL)        {        distTBufPool.pTBufFree =                (DIST_TBUF *) ((DIST_TBUF_GEN *) pTBufHdr)->pTBufGenNext;        distTBufPoolUnlock();        bzero ((char *) pTBufHdr, tBufSize);        ((DIST_TBUF_GEN *) pTBufHdr)->pTBufGenNext = NULL;        ((DIST_TBUF_GEN *) pTBufHdr)->pTBufGenLast =                                             (DIST_TBUF_GEN *) pTBufHdr;        pTBufHdr->pTBufHdrNext = pTBufHdr->pTBufHdrPrev = NULL;        pTBufHdr->pTBufHdrLast = pTBufHdr;        pTBufHdr->pTBufHdrTm = NULL;#ifdef DIST_DIAGNOSTIC        pTBufHdr->tBufHdrHeader = TRUE;#endif        return (pTBufHdr);        }    distTBufPoolUnlock();    distStat.tBufShortage++;    return (NULL);    }/***************************************************************************** distTBufFree - return a telegram buffer to the pool of buffers (VxFusion option)** This routine returns a buffer previously allocated to a caller back to* the pool of free telegram buffers.** AVAILABILITY* This routine is distributed as a component of the unbundled distributed* message queues option, VxFusion.** RETURNS: N/A** SEE ALSO: distTBufAlloc*/void distTBufFree    (    DIST_TBUF * pTBuf  /* ptr to buffer to be returned to pool */    )    {    distTBufPoolLock();    ((DIST_TBUF_GEN *) pTBuf)->pTBufGenNext =            (DIST_TBUF_GEN *) distTBufPool.pTBufFree;    distTBufPool.pTBufFree = pTBuf;    distTBufPoolUnlock();    }/***************************************************************************** distTBufCopy - copies from tBuf list to buffer (VxFusion option)** This routine copies bytes from a DIST_TBUF to a buffer.** AVAILABILITY* This routine is distributed as a component of the unbundled distributed* message queues option, VxFusion.** RETURNS: The number of bytes copied.* * NOMANUAL*/int distTBufCopy    (    DIST_TBUF * pTBuf,   /* source DIST_TBUF */    int         offset,  /* byte offset into pTBuf */    char *      dest,    /* destination */    int         nBytes   /* maximum bytes to transfer */    )    {    int    copied = 0;    int    len;    do        {        if (offset == 0 || (offset - pTBuf->tBufNBytes) < 0)            {            len = MIN (nBytes, (pTBuf->tBufNBytes - offset));            bcopy (((char *)pTBuf->pTBufData + offset), dest, len);            nBytes -= len;            dest += len;            copied += len;            offset = 0;            }        else            offset -= pTBuf->tBufNBytes;        }    while (nBytes > 0 && (pTBuf = DIST_TBUF_GET_NEXT (pTBuf)));    return (copied);    }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
555www色欧美视频| 久久众筹精品私拍模特| 韩国女主播一区二区三区| 国产精品女主播av| 欧美成人一区二区| 在线视频国产一区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 性感美女久久精品| 日本一区二区不卡视频| 欧美大片国产精品| 欧美熟乱第一页| 一本色道亚洲精品aⅴ| 国产精品一卡二| 美女www一区二区| 亚瑟在线精品视频| 亚洲免费观看高清| 欧美经典三级视频一区二区三区| 7878成人国产在线观看| 欧美色爱综合网| 色综合天天综合网天天看片 | 欧美日韩精品免费| 色综合视频在线观看| www.久久久久久久久| 国产精品91xxx| 国产麻豆91精品| 黑人巨大精品欧美黑白配亚洲 | 色婷婷激情综合| 丁香网亚洲国际| 国产精品羞羞答答xxdd| 国产一区 二区| 国产美女在线精品| 国内精品国产成人国产三级粉色| 日本伊人精品一区二区三区观看方式| 一区二区在线观看不卡| 自拍视频在线观看一区二区| 国产精品视频一二| 国产精品高潮呻吟久久| 国产精品久线观看视频| 中文字幕一区二区三区不卡在线| 国产欧美日韩亚州综合| 国产精品久久久爽爽爽麻豆色哟哟| 欧美高清在线视频| 国产精品少妇自拍| 亚洲视频小说图片| 亚洲自拍欧美精品| 午夜av一区二区三区| 秋霞影院一区二区| 国产一区二区三区最好精华液| 激情六月婷婷久久| 成人免费毛片a| 96av麻豆蜜桃一区二区| 色国产精品一区在线观看| 在线观看av不卡| 欧美一区在线视频| 久久久三级国产网站| 欧美高清在线精品一区| 亚洲精品欧美二区三区中文字幕| 一区二区三区欧美视频| 日本午夜精品视频在线观看| 国内一区二区视频| 99这里只有精品| 欧美日韩精品一区二区天天拍小说| 欧美一级在线观看| 国产亚洲一区二区三区在线观看| 国产精品久久久久精k8| 午夜天堂影视香蕉久久| 九一九一国产精品| 97久久精品人人做人人爽50路| 欧美网站一区二区| 日韩三级视频中文字幕| 国产精品卡一卡二| 日韩av午夜在线观看| 成人综合在线网站| 337p亚洲精品色噜噜狠狠| 久久久久久久综合色一本| 亚洲精品久久嫩草网站秘色| 日本在线播放一区二区三区| 国产91精品精华液一区二区三区| 欧美最猛性xxxxx直播| 久久久久久日产精品| 亚洲一二三区在线观看| 国产中文字幕精品| 欧美日韩精品一二三区| 中文字幕av一区二区三区高| 性感美女极品91精品| 国产成人在线色| 欧美喷潮久久久xxxxx| 欧美高清一级片在线观看| 日韩激情在线观看| 9久草视频在线视频精品| 欧美一区二区三区视频在线观看| 日韩码欧中文字| 国产一区高清在线| 欧美日韩另类一区| 亚洲视频在线一区观看| 国产专区综合网| 91精品国产综合久久精品app | 精品国一区二区三区| 亚洲欧洲综合另类在线| 国产尤物一区二区| 91超碰这里只有精品国产| 国产精品久久久久久久久免费樱桃| 日本成人超碰在线观看| 色呦呦国产精品| 国产精品免费aⅴ片在线观看| 麻豆精品一区二区综合av| 在线观看三级视频欧美| 国产精品欧美综合在线| 精品综合久久久久久8888| 911精品产国品一二三产区| 国产精品久久久久久久久免费相片 | 日韩一区欧美二区| 色婷婷av一区二区三区大白胸| 久久蜜臀精品av| 精品影视av免费| 欧美一区二区国产| 亚洲成人精品一区二区| 在线视频欧美精品| 亚洲视频一区二区在线观看| 成人免费观看男女羞羞视频| 国产色产综合色产在线视频| 美女视频第一区二区三区免费观看网站| 欧美性一区二区| 一区二区三区欧美视频| 色婷婷激情综合| 亚洲自拍与偷拍| 欧美制服丝袜第一页| 一区二区三区在线影院| 在线观看亚洲一区| 一区二区三区**美女毛片| 色婷婷综合五月| 亚洲一区在线免费观看| 欧美三区在线观看| 三级欧美在线一区| 日韩视频在线观看一区二区| 老司机午夜精品| 久久精品人人做人人综合| 国产精品一区二区你懂的| 国产午夜精品福利| 99久久99久久精品免费看蜜桃| 中文字幕永久在线不卡| 色综合av在线| 亚洲18色成人| 欧美变态tickle挠乳网站| 久久福利视频一区二区| 国产亚洲一二三区| 91啪九色porn原创视频在线观看| 亚洲黄色录像片| 制服视频三区第一页精品| 久久99久久99小草精品免视看| 久久精品视频在线看| 99国产精品国产精品久久| 一区二区三区视频在线看| 337p亚洲精品色噜噜| 韩国女主播一区二区三区| 国产精品久久久久久久久图文区| 色哟哟精品一区| 欧美aa在线视频| 欧美经典一区二区| 91成人免费在线| 老汉av免费一区二区三区| 欧美国产成人精品| 在线看国产一区二区| 蜜臀av亚洲一区中文字幕| 欧美激情在线一区二区三区| 在线观看成人小视频| 乱一区二区av| 中文字幕一区av| 欧美日韩国产乱码电影| 国产精品亚洲午夜一区二区三区| 亚洲三级理论片| 日韩欧美一区二区久久婷婷| 成人午夜视频网站| 午夜视频一区二区| 国产日韩欧美在线一区| 欧美在线制服丝袜| 国产馆精品极品| 亚洲va国产va欧美va观看| 久久综合九色综合97婷婷女人 | 欧美激情一区二区三区蜜桃视频| 欧美中文字幕久久| 国产一区 二区| 亚欧色一区w666天堂| 国产精品视频看| 欧美一级欧美一级在线播放| 99久久99久久精品国产片果冻| 琪琪久久久久日韩精品| 成人免费在线视频| 精品国一区二区三区| 欧洲日韩一区二区三区| 国产精品一级片| 日韩电影免费在线看| 亚洲免费av观看| 欧美高清在线一区二区| 日韩欧美综合一区| 欧美日韩免费在线视频| av欧美精品.com| 国产乱一区二区| 六月丁香婷婷久久| 天天操天天干天天综合网|