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

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

?? msgqdistlib.c

?? vxworks操作系統的源代碼 供研究學習
?? C
?? 第 1 頁 / 共 5 頁
字號:
* Could not establish communications with the remote node.* \i S_msgQDistLib_INVALID_PRIORITY* The argument <priority> is invalid.* \i S_msgQDistLib_INVALID_TIMEOUT* The argument <overallTimeout> is NO_WAIT .* \i S_msgQDistLib_RMT_MEMORY_SHORTAGE* There is not enough memory on the remote node.* \i S_objLib_OBJ_UNAVAILABLE* The argument <msgQTimeout> is set to NO_WAIT, and the queue is full.* \i S_objLib_OBJ_TIMEOUT* The queue is full for <msgQTimeout> ticks.* \i S_msgQLib_INVALID_MSG_LENGTH* The argument <nBytes> is larger than the <maxMsgLength> set for the * message queue.* \i S_msgQDistLib_OVERALL_TIMEOUT* There was no response from the remote side in <overallTimeout> ticks.* \ie** SEE ALSO: msgQLib*/STATUS msgQDistSend    (    MSG_Q_ID    msgQId,         /* message queue on which to send */    char *      buffer,         /* message to send                */    UINT        nBytes,         /* length of message              */    int         msgQTimeout,    /* ticks to wait at message queue */    int         overallTimeout, /* ticks to wait overall          */    int         priority        /* priority                       */    )    {    DIST_MSG_Q_ID     dMsgQId;    DIST_OBJ_NODE *   pObjNode;    MSG_Q_ID          lclMsgQId;    int               lclPriority;    /* MSG_PRI_URGENT or MSG_PRI_NORMAL */    DIST_MSG_Q_GRP_ID    distMsgQGrpId;    STATUS               status;    DIST_PKT_MSG_Q_SEND    pktSendHdr;    DIST_MSG_Q_SEND_INQ    inquiryNode;    DIST_INQ_ID            inquiryId;    DIST_IOVEC             distIOVec[2];    if (DIST_OBJ_VERIFY (msgQId) == ERROR)        {        errnoSet (S_distLib_OBJ_ID_ERROR);        return (ERROR);        }    if (overallTimeout == NO_WAIT)        {        errnoSet (S_msgQDistLib_INVALID_TIMEOUT);        return (ERROR);    /* makes no sense */        }    if (! DIST_MSG_Q_PRIO_VERIFY (priority))        {        errnoSet (S_msgQDistLib_INVALID_PRIORITY);        return (ERROR);    /* invalid priority */        }    pObjNode = MSG_Q_ID_TO_DIST_OBJ_NODE (msgQId);    if (! IS_DIST_MSG_Q_OBJ (pObjNode))        {        errnoSet (S_distLib_OBJ_ID_ERROR);        return (ERROR);    /* legal object id, but not a message queue */        }    dMsgQId = (DIST_MSG_Q_ID) pObjNode->objNodeId;#ifdef MSG_Q_DIST_REPORT    printf ("msgQDistSend: msgQId %p, dMsgQId 0x%lx\n", msgQId, dMsgQId);#endif    if (IS_DIST_MSG_Q_TYPE_GRP (dMsgQId))        {        /* Message queue id points to a group. */        distMsgQGrpId = DIST_MSG_Q_ID_TO_DIST_MSG_Q_GRP_ID (dMsgQId);        status = msgQDistGrpSend (distMsgQGrpId, buffer, nBytes,                                  msgQTimeout, overallTimeout, priority);#ifdef MSG_Q_DIST_REPORT        printf ("msgQDistSend: msgQDistGrpSend returned = %d\n", status);#endif        return (status);        }    if (!IS_DIST_OBJ_LOCAL (pObjNode))        {        /* Message queue id points to a remote queue. */        inquiryNode.sendInq.inqType = DIST_MSG_Q_INQ_TYPE_SEND;        semBInit (&(inquiryNode.sendInqWait), SEM_Q_FIFO, SEM_EMPTY);        inquiryNode.remoteError = FALSE;        inquiryNode.sendInqMsgQueued = FALSE;        inquiryNode.sendInqTask = taskIdSelf();        inquiryId = distInqRegister ((DIST_INQ *) &inquiryNode);        pktSendHdr.sendHdr.pktType = DIST_PKT_TYPE_MSG_Q;        pktSendHdr.sendHdr.pktSubType = DIST_PKT_TYPE_MSG_Q_SEND;        pktSendHdr.sendTblIx = DIST_MSG_Q_ID_TO_TBL_IX (dMsgQId);        pktSendHdr.sendInqId = (uint32_t) inquiryId;        pktSendHdr.sendTimeout =                htonl ((uint32_t) DIST_TICKS_TO_MSEC (msgQTimeout));        /* use IOV stuff here, since we do not want to copy data */        distIOVec[0].pIOBuffer = &pktSendHdr;        distIOVec[0].IOLen = DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_SEND);        distIOVec[1].pIOBuffer = buffer;        distIOVec[1].IOLen = nBytes;        status = distNetIOVSend (pObjNode->objNodeReside, &distIOVec[0], 2,                                 WAIT_FOREVER,                                 DIST_MSG_Q_PRIO_TO_NET_PRIO (priority));        if (status == ERROR)            {            distInqCancel ((DIST_INQ *) &inquiryNode);            errnoSet (S_distLib_UNREACHABLE);            return (ERROR);            }        /*         * semTake() blocks the requesting task until the service         * task gives the semaphore, because the request has         * been processed.         */        semTake (&(inquiryNode.sendInqWait), overallTimeout);        distInqCancel ((DIST_INQ *) &inquiryNode);        if (inquiryNode.sendInqMsgQueued)            return (OK);        /* If errno = S_objLib_OBJ_TIMEOUT, it could either be a result         * of the timeout from the semaphore or the remote errno.  We must         * check the remoteError flag of inquiryNode to determine what the         * source of the error was.  If it is a result of the semaphore, we         * will set errno to S_msgQDistLib_OVERALLTIMEOUT.  Otherwise, we'll         * leave the errno as it is.         */        if (inquiryNode.remoteError == FALSE)            errno = S_msgQDistLib_OVERALL_TIMEOUT;        return (ERROR);        }    /* Message queue id points to a local queue. */    lclPriority = DIST_MSG_Q_PRIO_TO_MSG_Q_PRIO (priority);    lclMsgQId = msgQDistTblGet (DIST_MSG_Q_ID_TO_TBL_IX (dMsgQId));    if (lclMsgQId == NULL)        return (ERROR);    /* does not exist */    if (msgQSend (lclMsgQId, buffer, nBytes, msgQTimeout, lclPriority)          == ERROR)        {        return (ERROR);    /* error in msgQSend() */        }    return (OK);    }/***************************************************************************** msgQDistReceive - receive a message from a distributed message queue (VxFusion option)** This routine receives a message from the distributed message queue specified * by <msgQId>.  The received message is copied into the specified buffer, * <buffer>, which is <maxNBytes> in length.  If the message is longer than * <maxNBytes>, the remainder of the message is discarded (no error indication* is returned).** The argument <msgQTimeout> specifies the time in ticks to wait for the * queuing of the message. The argument <overallTimeout> specifies the time* in ticks to wait for both the sending and queuing of the message.* While it is an error to set <overallTimeout> to NO_WAIT (0), * WAIT_FOREVER (-1) is allowed for both <msgQTimeout> and <overallTimeout>.** Calling msgQDistReceive() on a distributed message group returns an* error.** NOTE: When msgQDistReceive() is called through msgQReceive(), * <msgQTimeout> is set to <timeout> and <overallTimeout> to WAIT_FOREVER .** AVAILABILITY* This routine is distributed as a component of the unbundled distributed* message queues option, VxFusion.** RETURNS: The number of bytes copied to <buffer>, or ERROR. ** ERRNO:* \is* \i S_distLib_OBJ_ID_ERROR* The argument <msgQId> is invalid.* \i S_distLib_UNREACHABLE* Could not establish communications with the remote node.* \i S_msgQLib_INVALID_MSG_LENGTH* The argument <maxNBytes> is less than 0.* \i S_msgQDistLib_INVALID_TIMEOUT* The argument <overallTimeout> is NO_WAIT .* \i S_msgQDistLib_RMT_MEMORY_SHORTAGE* There is not enough memory on the remote node.* \i S_objLib_OBJ_UNAVAILABLE* The argument <msgQTimeout> is set to NO_WAIT, and no messages are available.* \i S_objLib_OBJ_TIMEOUT* No messages were received in <msgQTimeout> ticks.* \i S_msgQDistLib_OVERALL_TIMEOUT* There was no response from the remote side in <overallTimeout> ticks.* \ie*** SEE ALSO: msgQLib*/int msgQDistReceive    (    MSG_Q_ID    msgQId,         /* message queue from which to receive */    char *      buffer,         /* buffer to receive message           */    UINT        maxNBytes,      /* length of buffer                    */    int         msgQTimeout,    /* ticks to wait at the message queue  */    int         overallTimeout  /* ticks to wait overall               */    )    {    DIST_MSG_Q_ID    dMsgQId;    DIST_OBJ_NODE *  pObjNode;    MSG_Q_ID         lclMsgQId;    DIST_PKT_MSG_Q_RECV_REQ    pktReq;    DIST_MSG_Q_RECV_INQ        inquiryNode;    DIST_INQ_ID                inquiryId;    STATUS                     status;    int                        nBytes;    if (DIST_OBJ_VERIFY (msgQId) == ERROR)        {        errnoSet (S_distLib_OBJ_ID_ERROR);        return (ERROR);        }    if (overallTimeout == NO_WAIT)        {        errnoSet (S_msgQDistLib_INVALID_TIMEOUT);        return (ERROR);    /* makes no sense */        }    /*     * Even though <maxNBytes> is unsigned, check for < 0 to catch     * possible caller errors.     */    if ((int) maxNBytes < 0)        {        errnoSet (S_msgQLib_INVALID_MSG_LENGTH);        return (ERROR);        }    pObjNode = MSG_Q_ID_TO_DIST_OBJ_NODE (msgQId);    if (! IS_DIST_MSG_Q_OBJ (pObjNode))        {        errnoSet (S_distLib_OBJ_ID_ERROR);        return (ERROR); /* legal object id, but not a message queue */        }    dMsgQId = (DIST_MSG_Q_ID) pObjNode->objNodeId;#ifdef MSG_Q_DIST_REPORT    printf ("msgQDistReceive: msgQId %p, dMsgQId 0x%lx\n", msgQId, dMsgQId);#endif    if (IS_DIST_MSG_Q_TYPE_GRP (dMsgQId))        {        /* MSG_Q_ID is a group id. */        errnoSet (S_msgQDistLib_NOT_GROUP_CALLABLE);        return (ERROR);    /* error to call msgQReceive() on groups */        }    if (!IS_DIST_OBJ_LOCAL (pObjNode))        {        /*         * Queue is remote.         *         * Create a inquiry node and send a request to the remote         * node. Block until timeout exceeds or the request is         * answered.         */        inquiryNode.recvInq.inqType = DIST_MSG_Q_INQ_TYPE_RECV;        semBInit (&(inquiryNode.recvInqWait), SEM_Q_FIFO, SEM_EMPTY);        inquiryNode.recvInqTask = taskIdSelf();        inquiryNode.pRecvInqBuffer = buffer;        inquiryNode.recvInqMaxNBytes = maxNBytes;        inquiryNode.recvInqMsgArrived = FALSE;        inquiryNode.remoteError = FALSE;        inquiryId = distInqRegister ((DIST_INQ *) &inquiryNode);        pktReq.recvReqHdr.pktType = DIST_PKT_TYPE_MSG_Q;        pktReq.recvReqHdr.pktSubType = DIST_PKT_TYPE_MSG_Q_RECV_REQ;        pktReq.recvReqTblIx = DIST_MSG_Q_ID_TO_TBL_IX (dMsgQId);        pktReq.recvReqInqId = (uint32_t) inquiryId;        pktReq.recvReqMaxNBytes = htonl ((uint32_t) maxNBytes);        pktReq.recvReqTimeout =                 htonl ((uint32_t) DIST_TICKS_TO_MSEC (msgQTimeout));        status = distNetSend (pObjNode->objNodeReside, (DIST_PKT *) &pktReq,                              DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_RECV_REQ),                              WAIT_FOREVER,                              DIST_MSG_Q_RECV_PRIO);        if (status == ERROR)            {            distInqCancel ((DIST_INQ *) &inquiryNode);            errnoSet (S_distLib_UNREACHABLE);            return (ERROR);            }        /*         * semTake() blocks the requesting task until         * the service task gives the semaphore, because         * the request has been processed.         */        semTake (&(inquiryNode.recvInqWait), overallTimeout);        if (inquiryNode.recvInqMsgArrived)            {            /*             * If <recvInqMsgArrived> is true, <recvInqMaxNBytes> has             * the number of bytes received.             */            nBytes = inquiryNode.recvInqMaxNBytes;            distInqCancel ((DIST_INQ *) &inquiryNode);            return (nBytes);            }        distInqCancel ((DIST_INQ *) &inquiryNode);        /* If errno = S_objLib_OBJ_TIMEOUT, it could either be a result         * of the timeout from the semaphore or the remote errno.  We must         * check the remoteError flag of inquiryNode to determine what the         * source of the error was.  If it is a result of the semaphore, we         * will set errno to S_msgQDistLib_OVERALLTIMEOUT.  Otherwise, we'll         * leave the errno as it is.         */        if (inquiryNode.remoteError == FALSE)            errnoSet (S_msgQDistLib_OVERALL_TIMEOUT);        return (ERROR);        }    /* The message queue is local to this node. This will be simple. */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月婷婷另类国产| 国产精品亚洲午夜一区二区三区| 日本美女视频一区二区| 福利91精品一区二区三区| 欧美亚洲精品一区| 久久久国产午夜精品| 日韩国产成人精品| 色噜噜久久综合| 国产女同性恋一区二区| 日韩av电影天堂| 91伊人久久大香线蕉| 久久先锋影音av鲁色资源| 丝袜亚洲另类丝袜在线| 欧美在线不卡视频| 国产精品白丝在线| 国产福利91精品一区| 日韩免费一区二区| 视频一区免费在线观看| 91片黄在线观看| 中文在线免费一区三区高中清不卡| 蜜臀av亚洲一区中文字幕| 欧美日韩卡一卡二| 亚洲男人天堂av| 91网站在线观看视频| 国产精品久久免费看| 国产精品一二三四五| 亚洲精品一区二区三区四区高清| 视频精品一区二区| 6080国产精品一区二区| 视频一区二区三区中文字幕| 欧美日韩亚洲综合一区二区三区| 亚洲一区二区三区四区中文字幕| 色综合久久88色综合天天| 国产精品久久看| jiyouzz国产精品久久| 国产精品你懂的在线欣赏| 国产成人在线观看| 欧美国产激情二区三区| heyzo一本久久综合| 亚洲色图欧美在线| 欧美视频精品在线观看| 亚洲综合在线免费观看| 欧美亚洲动漫精品| 日韩精品久久久久久| 日韩视频一区二区三区在线播放 | 国产欧美精品一区二区色综合朱莉| 捆绑紧缚一区二区三区视频| 欧美xxxx老人做受| 国产成人久久精品77777最新版本| 久久精品一区二区三区不卡| 成人国产免费视频| 亚洲综合色在线| 6080日韩午夜伦伦午夜伦| 美女视频网站久久| 久久精品网站免费观看| 99re66热这里只有精品3直播| 亚洲人成在线播放网站岛国 | 成年人午夜久久久| 亚洲综合在线视频| 精品精品国产高清一毛片一天堂| 国产v综合v亚洲欧| 亚洲一区在线观看免费观看电影高清| 91精品国产综合久久婷婷香蕉| 久久精品国产一区二区三 | 国产·精品毛片| 一区二区三区在线视频免费| 欧美军同video69gay| 国产成人超碰人人澡人人澡| 亚洲欧美日韩在线| 91麻豆精品国产91久久久使用方法| 国产中文字幕一区| 亚洲青青青在线视频| 在线电影欧美成精品| 国产精品夜夜嗨| 亚洲亚洲精品在线观看| 精品999久久久| 91黄色激情网站| 国产一区视频网站| 亚洲综合久久久久| 国产片一区二区三区| 欧美日产国产精品| 白白色亚洲国产精品| 免费看黄色91| 亚洲制服欧美中文字幕中文字幕| 久久久久久久久久久久久夜| 欧美日韩国产高清一区二区| 成人综合婷婷国产精品久久蜜臀| 日韩av在线发布| 亚洲精品一卡二卡| 久久久久国产精品厨房| 在线观看91av| 欧美日韩激情一区二区三区| hitomi一区二区三区精品| 久99久精品视频免费观看| 亚洲高清一区二区三区| 国产精品久久久一区麻豆最新章节| 欧美电视剧在线观看完整版| 欧美性大战久久久久久久| 成人黄色在线网站| 韩国成人福利片在线播放| 日韩精品视频网| 亚洲成人在线网站| 夜夜精品视频一区二区| 亚洲色图欧美偷拍| 一色桃子久久精品亚洲| 国产喷白浆一区二区三区| 久久久久国产精品人| 久久蜜臀中文字幕| 精品国产免费一区二区三区四区 | 国产亚洲综合色| 欧美大白屁股肥臀xxxxxx| 欧美精品99久久久**| 欧美午夜一区二区三区| 色乱码一区二区三区88| 色综合久久久久久久久久久| jiyouzz国产精品久久| 97精品久久久午夜一区二区三区 | 欧美中文字幕久久| 在线亚洲免费视频| 在线视频欧美区| 欧美亚洲禁片免费| 91精品国产91综合久久蜜臀| 欧美另类久久久品| 欧美成人a在线| 久久蜜桃香蕉精品一区二区三区| 久久精品一二三| 国产精品久久99| 亚洲视频小说图片| 亚洲国产精品尤物yw在线观看| 夜夜夜精品看看| 日本强好片久久久久久aaa| 蜜臀久久99精品久久久画质超高清 | 欧美喷潮久久久xxxxx| 91麻豆精品国产91久久久更新时间| 欧美丰满嫩嫩电影| www国产精品av| 一区在线中文字幕| 日日嗨av一区二区三区四区| 捆绑变态av一区二区三区| 国产91精品一区二区麻豆网站 | 国产a区久久久| 色婷婷综合久久久中文一区二区| 色哟哟一区二区在线观看| 欧美日韩亚洲综合| 久久久www免费人成精品| 中文字幕日韩av资源站| 午夜欧美在线一二页| 韩国成人精品a∨在线观看| 91在线你懂得| 欧美一区二区三区性视频| 国产欧美日韩精品一区| 一级中文字幕一区二区| 久久草av在线| 色综合天天综合| 日韩亚洲欧美一区二区三区| 精品国产精品一区二区夜夜嗨| 国产丝袜欧美中文另类| 一二三四社区欧美黄| 国产乱码精品一区二区三区av| 99久久精品国产导航| 日韩丝袜情趣美女图片| 亚洲欧美偷拍卡通变态| 久久99精品久久只有精品| 一本大道久久a久久综合 | 6080日韩午夜伦伦午夜伦| 日本一区二区电影| 视频一区视频二区在线观看| 成人av高清在线| 欧美成人精品1314www| 亚洲小说春色综合另类电影| 粉嫩欧美一区二区三区高清影视| 欧美猛男男办公室激情| 亚洲人成精品久久久久久| 国模少妇一区二区三区| 欧美日韩精品系列| 亚洲精品自拍动漫在线| 成人午夜激情片| 久久精品亚洲国产奇米99| 久久国产精品色| 在线播放一区二区三区| 一区二区三区在线免费| av亚洲产国偷v产偷v自拍| 国产免费久久精品| 国内精品国产成人国产三级粉色 | 国产精品一区一区| 日韩欧美一级二级三级| 亚洲国产乱码最新视频| 97se狠狠狠综合亚洲狠狠| 欧美激情一二三区| 国产乱码精品一区二区三区五月婷| 日韩精品在线一区| 日本在线播放一区二区三区| 欧美三级在线播放| 亚洲综合自拍偷拍| 在线看日韩精品电影| 日韩理论片一区二区| caoporn国产一区二区| 337p日本欧洲亚洲大胆色噜噜| 日本不卡在线视频| 欧美日韩国产小视频|