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

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

?? disttbuflib.c

?? VXWORKS 源碼
?? C
字號:
/* 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);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99这里都是精品| 久久久国际精品| 成人激情视频网站| 国产激情视频一区二区在线观看| 日本不卡视频在线| 日本sm残虐另类| 狠狠久久亚洲欧美| 国产高清不卡二三区| 国产精品99久久久久久久女警| 国内精品久久久久影院色| 精品一区二区三区欧美| 狠狠色狠狠色合久久伊人| 国产成人av网站| 99精品久久只有精品| 91婷婷韩国欧美一区二区| 欧美综合亚洲图片综合区| 91国产免费看| 日韩一区二区三区视频| 久久夜色精品一区| 亚洲免费大片在线观看| 亚洲bdsm女犯bdsm网站| 国模冰冰炮一区二区| 成人在线综合网站| 日韩欧美一卡二卡| 国产三级三级三级精品8ⅰ区| 中文子幕无线码一区tr| 亚洲第一福利一区| 精品一区二区三区视频在线观看| 国产98色在线|日韩| eeuss鲁片一区二区三区| 欧美三级三级三级| 日韩欧美成人午夜| 中文字幕色av一区二区三区| 亚洲国产日韩精品| 韩国成人在线视频| 91亚洲国产成人精品一区二区三| 欧美精品第1页| 国产亚洲欧美日韩在线一区| 中文字幕佐山爱一区二区免费| 亚洲午夜一区二区三区| 九九精品一区二区| 日本精品视频一区二区| 精品国产乱码久久久久久夜甘婷婷 | 久久久久久久久97黄色工厂| 亚洲精品乱码久久久久久黑人| 九色porny丨国产精品| jlzzjlzz亚洲日本少妇| 日韩免费性生活视频播放| 亚洲啪啪综合av一区二区三区| 久久99国产精品免费| 91黄色免费版| 中日韩免费视频中文字幕| 天天av天天翘天天综合网 | 亚洲女人小视频在线观看| 美女任你摸久久| 欧美视频中文字幕| 国产精品国产三级国产三级人妇| 人人超碰91尤物精品国产| 欧美中文字幕一二三区视频| 国产调教视频一区| 韩国理伦片一区二区三区在线播放| 91美女片黄在线观看91美女| 国产午夜精品一区二区三区视频| 美女视频第一区二区三区免费观看网站| 欧美专区在线观看一区| 国产精品成人在线观看| 国产高清精品在线| 中文一区二区在线观看| 粉嫩绯色av一区二区在线观看| 久久亚洲综合色| 国产乱淫av一区二区三区| ww亚洲ww在线观看国产| 久久99精品久久只有精品| 精品欧美一区二区三区精品久久 | 紧缚捆绑精品一区二区| 91麻豆精品国产| 视频一区视频二区在线观看| 色婷婷国产精品| 亚洲三级电影网站| 91免费视频大全| 亚洲精品免费电影| 欧美少妇xxx| 亚洲国产精品天堂| 91精品国产综合久久久久久久| 亚洲成人av中文| 日韩欧美亚洲国产另类| 另类中文字幕网| 欧美国产综合色视频| av中文字幕一区| 一区二区三区蜜桃| 欧美日韩亚洲国产综合| 男男视频亚洲欧美| 久久蜜桃av一区二区天堂 | 国产不卡高清在线观看视频| 国产日韩欧美高清在线| 91亚洲国产成人精品一区二三 | 国产视频一区二区在线观看| 成人美女视频在线观看| 亚洲最新在线观看| 精品国产一区二区三区av性色| 极品销魂美女一区二区三区| 国产日韩欧美高清| 欧亚一区二区三区| 国产美女一区二区三区| 亚洲精品视频免费看| 欧美大片在线观看| 99久久精品国产观看| 爽好久久久欧美精品| 久久新电视剧免费观看| 91麻豆产精品久久久久久 | 亚洲精品国产视频| 精品久久久久久最新网址| 成年人午夜久久久| 日韩精品三区四区| 国产精品拍天天在线| 欧美日韩不卡视频| 波多野结衣中文字幕一区二区三区 | 午夜精品久久久久久不卡8050| 26uuu亚洲| 欧美三级三级三级爽爽爽| 国产成人av一区二区三区在线 | 亚洲国产精品高清| 欧美日韩一区二区三区在线看| 91亚洲精品一区二区乱码| 九九视频精品免费| 亚洲成a天堂v人片| 中文字幕中文字幕一区| 欧美刺激脚交jootjob| 色先锋久久av资源部| 国产91精品免费| 精品系列免费在线观看| 日韩精品一二三区| 亚洲综合999| 中文字幕在线观看不卡视频| www国产精品av| 777午夜精品视频在线播放| 色噜噜狠狠成人中文综合| 国产精华液一区二区三区| 日本不卡不码高清免费观看| 午夜伦理一区二区| 亚洲免费观看高清完整版在线观看| 国产日产欧美一区二区视频| 日韩一区二区三区av| 欧美三级三级三级爽爽爽| 一本到高清视频免费精品| 99久久er热在这里只有精品66| 极品尤物av久久免费看| 久草精品在线观看| 美女网站一区二区| 男人的天堂亚洲一区| 日本最新不卡在线| 日韩精品一区第一页| 偷窥少妇高潮呻吟av久久免费| 一区二区三区在线观看欧美 | 欧美欧美欧美欧美首页| 色综合久久88色综合天天免费| 99在线精品视频| 99久久婷婷国产| 色婷婷精品久久二区二区蜜臂av | 亚洲电影激情视频网站| 亚洲一级二级在线| 亚洲123区在线观看| 日本三级亚洲精品| 另类小说视频一区二区| 国产精品99久久久久久宅男| 成人精品视频网站| 97成人超碰视| 欧美精品aⅴ在线视频| 日韩一区二区三区视频在线| www国产成人免费观看视频 深夜成人网| 日韩一卡二卡三卡| 久久久久国产成人精品亚洲午夜| 国产日韩欧美综合一区| 亚洲精品乱码久久久久久| 午夜精品久久久久久久| 久久精品国产成人一区二区三区| 韩国精品主播一区二区在线观看 | 欧美日韩国产综合草草| 日韩一区二区免费在线电影| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 视频在线观看国产精品| 狠狠久久亚洲欧美| 成人av资源站| 91精品国产高清一区二区三区蜜臀| 精品美女被调教视频大全网站| 国产亚洲1区2区3区| 亚洲欧美日韩电影| 蜜臀av亚洲一区中文字幕| 国产1区2区3区精品美女| 欧美中文字幕一区二区三区亚洲| 日韩一区二区三区四区| 亚洲手机成人高清视频| 日本不卡视频一二三区| gogogo免费视频观看亚洲一| 欧美高清激情brazzers| 欧美韩日一区二区三区| 青椒成人免费视频| 91丨porny丨户外露出| 日韩免费在线观看| 一区二区三区中文在线|