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

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

?? msgqdistlib.c

?? vxworks操作系統的源代碼 供研究學習
?? C
?? 第 1 頁 / 共 5 頁
字號:
                printf ("msgQDistInput/SEND: out of memory\n");#endif                msgQDistSendStatus (nodeIdSrc, inqIdSrc,                                    MSG_Q_DIST_STATUS_NOT_ENOUGH_MEMORY);                return (MSG_Q_DIST_STATUS_NOT_ENOUGH_MEMORY);                }            distTBufCopy (DIST_TBUF_GET_NEXT (pTBufHdr),                          DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_SEND),                          buffer, nBytes);            prio = NET_PRIO_TO_DIST_MSG_Q_PRIO (pTBufHdr->tBufHdrPrio);            msgQId = msgQDistTblGet (pktSend.sendTblIx);            if (msgQId == NULL)                {                free (buffer);#ifdef MSG_Q_DIST_REPORT                printf ("msgQDistInput/SEND: unknown message queue id\n");#endif                msgQDistSendStatus (nodeIdSrc, inqIdSrc,                                    MSG_Q_DIST_STATUS_ILLEGAL_OBJ_ID);                return (MSG_Q_DIST_STATUS_ILLEGAL_OBJ_ID);                }            /*             * First try to send with NO_WAIT.  We set the lastry             * argument to FALSE, because we will try again.             */            ret = msgQDistSendReply (nodeIdSrc, inqIdSrc, msgQId, buffer,                                     nBytes, NO_WAIT, prio, FALSE);            switch (ret)                {                case MSG_Q_DIST_STATUS_OK:                    free (buffer);                    return (MSG_Q_DIST_STATUS_OK);                case MSG_Q_DIST_STATUS_ERROR:                    free (buffer);                    return (MSG_Q_DIST_STATUS_ERROR);                case MSG_Q_DIST_STATUS_UNAVAIL:                    {                    int            timeout;                    timeout =                        DIST_MSEC_TO_TICKS (ntohl (pktSend.sendTimeout));                    if (timeout != NO_WAIT)                        {#ifdef MSG_Q_DIST_REPORT                        printf ("msgQDistInput/SEND: timeout = %d\n", timeout);#endif                        /*                         * Send with NO_WAIT has failed and user                         * supplied timeout differs from NO_WAIT.                         * Spawn a task and wait on message queue.                         */                                                tid = taskSpawn (NULL,                                         DIST_MSG_Q_WAIT_TASK_PRIO,                                         0,                                         DIST_MSG_Q_WAIT_TASK_STACK_SZ,                                         (FUNCPTR) msgQDistSendReply,                                         (int) nodeIdSrc,                                         (int) inqIdSrc,                                         (int) msgQId,                                         (int) buffer,                                         nBytes,                                         timeout,                                         prio,                                         TRUE,                                         0, 0);                        if (tid != ERROR)                            {                            /* msgQDistSendReply () frees <buffer> */                            return (MSG_Q_DIST_STATUS_OK);                            }                        }                    free (buffer);                    /* For this case where the user specified NO_WAIT                     * we must send back a status now.  We didn't do this                     * in msgQDistSendReply() because we didn't know if                     * the user specified NO_WAIT or whether it was the first                     * try before spawning a task.                      */                    msgQDistSendStatus (nodeIdSrc, inqIdSrc, (INT16) ret);                    return (MSG_Q_DIST_STATUS_UNAVAIL);                    }                default:                    free (buffer);#ifdef MSG_Q_DIST_REPORT                    printf ("msgQDistInput/SEND: illegal status\n");#endif                    return (MSG_Q_DIST_STATUS_INTERNAL_ERROR);                }            }        case DIST_PKT_TYPE_MSG_Q_RECV_REQ:            {            /*             * A remote node requests to receive data from local queue.             * Find id of local message queue, and call msgQReceive().             */            DIST_MSG_Q_STATUS        ret;            if (pktLen != DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_RECV_REQ))                distPanic ("msgQDistInput/RECV_REQ: packet too short\n");            distTBufCopy (DIST_TBUF_GET_NEXT (pTBufHdr), 0, (char *) &pktReq,                          DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_RECV_REQ));            inqIdSrc = (DIST_INQ_ID) pktReq.recvReqInqId;            msgQId = msgQDistTblGet (pktReq.recvReqTblIx);            if (msgQId == NULL)                {#ifdef MSG_Q_DIST_REPORT                printf ("msgQDistInput/RECV_REQ: unknown message queue id\n");#endif                msgQDistSendStatus (nodeIdSrc, inqIdSrc,                                    MSG_Q_DIST_STATUS_ILLEGAL_OBJ_ID);                return (MSG_Q_DIST_STATUS_ILLEGAL_OBJ_ID);                }            maxBytes = ntohl ((uint32_t) pktReq.recvReqMaxNBytes);            buffer = (char *) malloc (maxBytes);            if (buffer == NULL)                {#ifdef MSG_Q_DIST_REPORT                printf ("msgQDistInput/RECV_REQ: out of memory\n");#endif                msgQDistSendStatus (nodeIdSrc, inqIdSrc,                                    MSG_Q_DIST_STATUS_NOT_ENOUGH_MEMORY);                return (MSG_Q_DIST_STATUS_NOT_ENOUGH_MEMORY);                }            /* First try to receive a message with NO_WAIT. */                        ret = msgQDistRecvReply (nodeIdSrc, inqIdSrc, msgQId,                                     buffer, maxBytes, NO_WAIT,                                     FALSE);            switch (ret)                {                case MSG_Q_DIST_STATUS_OK:                    free (buffer);                    return (MSG_Q_DIST_STATUS_OK);                case MSG_Q_DIST_STATUS_ERROR:                    free (buffer);                    return (MSG_Q_DIST_STATUS_ERROR);                case MSG_Q_DIST_STATUS_UNAVAIL:                    {                    uint32_t    timeout_msec;                    int            timeout;                    timeout_msec = ntohl ((uint32_t) pktReq.recvReqTimeout);                    timeout = DIST_MSEC_TO_TICKS (timeout_msec);                    if (timeout != NO_WAIT)                        {                        /*                         * Receiving with NO_WAIT has failed and user                         * supplied timeout differs from NO_WAIT.                         * Spawn a task and wait on message queue.                         */                        int tid;#ifdef MSG_Q_DIST_REPORT                        printf ("msgQDistInput/RECV_REQ: timeout = %d\n",                                timeout);#endif                        tid = taskSpawn (NULL,                                         DIST_MSG_Q_WAIT_TASK_PRIO,                                         0,                                         DIST_MSG_Q_WAIT_TASK_STACK_SZ,                                        /* task entry point */                                        (FUNCPTR) msgQDistRecvReply,                                        /* who is the receiver */                                        (int) nodeIdSrc,                                        (int) inqIdSrc,                                        /* receiving options */                                        (int) msgQId,                                        (int) buffer,                                        maxBytes,                                        timeout,                                        /* some options */                                        TRUE /* lastTry */,                                        0, 0, 0);                        if (tid != ERROR)                            return (MSG_Q_DIST_STATUS_OK);                        }                    free (buffer);                    /* For this case where the user specified NO_WAIT                     * we must send back a status now.  We didn't do this                     * in msgQDistRecvReply() because we didn't know if                     * the user specified NO_WAIT or whether it was the first                     * try before spawning a task.                      */                    msgQDistSendStatus (nodeIdSrc, inqIdSrc, ret);                    return (MSG_Q_DIST_STATUS_UNAVAIL);                    }                default:#ifdef MSG_Q_DIST_REPORT                    printf ("msgQDistInput/SEND: illegal status\n");#endif                    free (buffer);                    return (MSG_Q_DIST_STATUS_INTERNAL_ERROR);                }            }        case DIST_PKT_TYPE_MSG_Q_RECV_RPL:            {            DIST_PKT_MSG_Q_RECV_RPL    pktRpl;            DIST_MSG_Q_RECV_INQ *      pInq;            DIST_INQ_ID                inqId;            int                        nBytes;            if (pktLen < DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_RECV_RPL))                distPanic ("msgQDistInput/RECV_RPL: packet too short\n");            /* First copy the reply header. */            distTBufCopy (DIST_TBUF_GET_NEXT (pTBufHdr), 0,                          (char *) &pktRpl,                          DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_RECV_RPL));            inqId = (DIST_INQ_ID) pktRpl.recvRplInqId;            if (! (pInq = (DIST_MSG_Q_RECV_INQ *) distInqFind (inqId)))                return (MSG_Q_DIST_STATUS_LOCAL_TIMEOUT);            /* Now copy message directly to user's buffer. */                        nBytes = distTBufCopy (DIST_TBUF_GET_NEXT (pTBufHdr),                                   DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_RECV_RPL),                                   pInq->pRecvInqBuffer, pInq->recvInqMaxNBytes);            pInq->recvInqMaxNBytes = nBytes;            pInq->recvInqMsgArrived = TRUE;            semGive (&pInq->recvInqWait);            return (MSG_Q_DIST_STATUS_OK);            }        case DIST_PKT_TYPE_MSG_Q_NUM_MSGS_REQ:            {            /*             * Remote note requests numMsgs service from local queue.             * Find id of local message queue, and call msgQNumMsgs().             */            DIST_PKT_MSG_Q_NUM_MSGS_REQ    pktReq;            DIST_PKT_MSG_Q_NUM_MSGS_RPL    pktRpl;            DIST_INQ_ID                    inqIdSrc;    /* remote inquiry id */            MSG_Q_ID                       lclMsgQId;            STATUS                         status;            if (pktLen != DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_NUM_MSGS_REQ))                distPanic ("msgQDistInput/NUM_MSGS_REQ: packet too short\n");            distTBufCopy (DIST_TBUF_GET_NEXT (pTBufHdr), 0,                          (char *) &pktReq,                          DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_NUM_MSGS_REQ));            inqIdSrc = (DIST_INQ_ID) pktReq.numMsgsReqInqId;            lclMsgQId = msgQDistTblGet (pktReq.numMsgsReqTblIx);            if (lclMsgQId == NULL)                {#ifdef MSG_Q_DIST_REPORT                printf ("msgQDistInput/RECV_REQ: unknown message queue id\n");#endif                msgQDistSendStatus (nodeIdSrc, inqIdSrc,                                    MSG_Q_DIST_STATUS_ILLEGAL_OBJ_ID);                return (MSG_Q_DIST_STATUS_ILLEGAL_OBJ_ID);                }            pktRpl.numMsgsRplHdr.pktType = DIST_PKT_TYPE_MSG_Q;            pktRpl.numMsgsRplHdr.pktSubType = DIST_PKT_TYPE_MSG_Q_NUM_MSGS_RPL;            pktRpl.numMsgsRplInqId = (uint32_t) inqIdSrc;            pktRpl.numMsgsRplNum = htonl (msgQNumMsgs (lclMsgQId));            status = distNetSend (nodeIdSrc, (DIST_PKT *) &pktRpl,                                  DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_NUM_MSGS_RPL),                                  WAIT_FOREVER, DIST_MSG_Q_NUM_MSGS_PRIO);            if (status == ERROR)                {#ifdef DIST_DIAGNOSTIC                distLog ("msgQDistInput: reply to NumMsgsReq failed\n");#endif                return (MSG_Q_DIST_STATUS_UNREACH);                }            return (MSG_Q_DIST_STATUS_OK);            }        case DIST_PKT_TYPE_MSG_Q_NUM_MSGS_RPL:            {            DIST_PKT_MSG_Q_NUM_MSGS_RPL    pktRpl;            DIST_MSG_Q_NUM_MSGS_INQ *      pInq;            DIST_INQ_ID                    inqId;            if (pktLen != DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_NUM_MSGS_RPL))                distPanic ("msgQDistInput/NUM_MSGS_RPL: packet too short\n");            distTBufCopy (DIST_TBUF_GET_NEXT (pTBufHdr), 0,                    (char *) &pktRpl,                    DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_NUM_MSGS_RPL));            inqId = (DIST_INQ_ID) pktRpl.numMsgsRplInqId;            if (! (pInq = (DIST_MSG_Q_NUM_MSGS_INQ *) distInqFind (inqId)))                return (MSG_Q_DIST_STATUS_LOCAL_TIMEOUT);            pInq->numMsgsInqNum = (int) ntohl (pktRpl.numMsgsRplNum);            semGive (&(pInq->numMsgsInqWait));            return (MSG_Q_DIST_STATUS_OK);            }        case DIST_PKT_TYPE_MSG_Q_STATUS:            {            DIST_PKT_MSG_Q_STATUS    pktStatus;            DIST_MSG_Q_STATUS        msgQStatus;            DIST_INQ_ID              inqId;            DIST_INQ *               pGenInq;            int                      errnoRemote;            if (pktLen != DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_STATUS))                distPanic ("msgQDistInput/STATUS: packet too short\n");            /* First copy the error packet form the TBuf list. */                        distTBufCopy (DIST_TBUF_GET_NEXT (pTBufHdr), 0,                          (char *) &pktStatus,                           DIST_PKT_HDR_SIZEOF (DIST_PKT_MSG_Q_STATUS));            msgQStatus = (DIST_MSG_Q_STATUS) ntohs (pktStatus.statusDStatus);            errnoRemote = ntohl (pktStatus.statusErrno);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人动漫一区| 亚洲码国产岛国毛片在线| 久久99精品久久久久婷婷| 精品免费一区二区三区| 精品制服美女丁香| 久久久久国产精品人| 波多野结衣亚洲一区| 亚洲色图在线视频| 欧美精品免费视频| 国产一区高清在线| 亚洲欧美日韩一区| 日韩一二三区不卡| 不卡的av电影| 日韩精品1区2区3区| 久久精品一区四区| 91传媒视频在线播放| 日本视频一区二区三区| 国产欧美一区二区精品性| 91丨九色丨蝌蚪富婆spa| 亚洲超碰97人人做人人爱| 精品盗摄一区二区三区| 本田岬高潮一区二区三区| 亚洲成人先锋电影| 久久精品一区蜜桃臀影院| 欧美午夜免费电影| 国产在线视频一区二区三区| 亚洲视频免费在线观看| 91精品久久久久久久91蜜桃| 成a人片国产精品| 污片在线观看一区二区| 日本一区二区视频在线| 欧美色图激情小说| 国产成人精品免费在线| 日韩在线a电影| 亚洲丝袜美腿综合| 欧美tickling网站挠脚心| 在线一区二区三区四区| 国产精品一区二区三区四区| 亚洲成a人片在线观看中文| 中文字幕精品一区二区精品绿巨人| 欧美吻胸吃奶大尺度电影| 东方aⅴ免费观看久久av| 婷婷丁香久久五月婷婷| 中文字幕在线观看一区二区| 日韩一卡二卡三卡四卡| 色综合天天综合在线视频| 国产精品中文字幕一区二区三区| 日韩精品国产欧美| 亚洲少妇中出一区| 国产精品情趣视频| 久久蜜桃av一区二区天堂| 制服丝袜日韩国产| 日本韩国欧美三级| 成人网男人的天堂| 国产91在线观看| 精品一区二区三区久久久| 亚洲va欧美va人人爽| 亚洲蜜臀av乱码久久精品蜜桃| 国产日韩在线不卡| 26uuu国产在线精品一区二区| 欧美精品乱码久久久久久| 91国在线观看| 在线观看av一区二区| 91美女在线看| 94色蜜桃网一区二区三区| jizz一区二区| 成人毛片在线观看| fc2成人免费人成在线观看播放| 国产麻豆成人精品| 国产九色精品成人porny | 国内精品国产三级国产a久久| 亚洲成人三级小说| 日日摸夜夜添夜夜添亚洲女人| 亚洲一区二区三区免费视频| 一区二区三区电影在线播| 亚洲图片你懂的| 亚洲视频电影在线| 亚洲国产日韩a在线播放| 亚洲自拍欧美精品| 亚洲成人免费看| 蜜臀av性久久久久蜜臀aⅴ| 看电视剧不卡顿的网站| 国产资源精品在线观看| 国产高清不卡二三区| 北岛玲一区二区三区四区| 91在线丨porny丨国产| 99精品国产热久久91蜜凸| 色呦呦网站一区| 欧美日韩国产综合一区二区| 欧美精品第1页| 欧美成人a在线| 国产精品区一区二区三区| 亚洲激情中文1区| 亚洲sss视频在线视频| 久久超碰97中文字幕| 国产成人自拍在线| 99re8在线精品视频免费播放| 91成人免费在线| 日韩欧美色电影| 欧美高清在线一区| 一区二区不卡在线视频 午夜欧美不卡在 | 韩国视频一区二区| 成人永久aaa| 在线观看一区日韩| 日韩美女一区二区三区| 国产精品天美传媒沈樵| 亚洲香蕉伊在人在线观| 美女视频免费一区| 不卡视频免费播放| 欧美一级片免费看| 欧美国产激情一区二区三区蜜月| 一区二区三区精品视频| 久久99精品国产麻豆婷婷| 99国产精品久久久久| 欧美电影在哪看比较好| 日本一区二区三区高清不卡| 伊人婷婷欧美激情| 国产在线不卡视频| 欧美在线视频日韩| 国产欧美日韩不卡| 天天色综合天天| 99久久精品费精品国产一区二区| 欧美妇女性影城| 亚洲人精品午夜| 老司机免费视频一区二区三区| 97久久超碰国产精品| 日韩免费观看高清完整版 | 久久久国产精华| 无码av免费一区二区三区试看| 丁香天五香天堂综合| 欧美一区二区三区日韩| 最近日韩中文字幕| 国产中文字幕精品| 7777精品伊人久久久大香线蕉超级流畅| 国产欧美一区视频| 老司机精品视频在线| 欧美三日本三级三级在线播放| 日本一区二区视频在线观看| 麻豆91在线看| 在线不卡欧美精品一区二区三区| 中文字幕在线观看不卡视频| 韩国av一区二区三区在线观看| 欧美裸体bbwbbwbbw| 亚洲精品国产无套在线观| 成人在线综合网| 久久久久久久久久久黄色| 日本欧美在线看| 欧美色涩在线第一页| 一区二区三区免费网站| 波多野结衣一区二区三区| 日本一区二区三区高清不卡| 国产在线一区二区| 久久综合中文字幕| 韩国三级电影一区二区| 91精品国产综合久久福利| 亚洲国产日韩一级| 欧美色手机在线观看| 亚洲国产欧美在线| 欧美午夜精品久久久久久孕妇| 亚洲精品久久嫩草网站秘色| 91丨porny丨首页| 亚洲欧洲中文日韩久久av乱码| k8久久久一区二区三区| 国产精品免费视频观看| eeuss影院一区二区三区| 国产精品久久久久一区二区三区 | 黑人巨大精品欧美一区| 精品国产123| 国产一区二区三区精品欧美日韩一区二区三区| 欧美日韩国产精品成人| 秋霞影院一区二区| 精品精品欲导航| 国产精品一级片在线观看| 亚洲国产电影在线观看| 不卡视频一二三| 亚洲伦理在线精品| 欧美日韩在线播| 日本美女一区二区| 久久先锋影音av| 成人国产亚洲欧美成人综合网| 亚洲欧洲av一区二区三区久久| 97精品久久久午夜一区二区三区| 一区二区高清免费观看影视大全| 欧美日韩精品二区第二页| 免费高清在线视频一区·| 精品福利一区二区三区免费视频| 国产成人综合网| 亚洲一区二区在线免费看| 欧美一区欧美二区| 国产精品911| 樱桃视频在线观看一区| 欧美猛男gaygay网站| 精品一区二区三区久久久| 国产精品福利电影一区二区三区四区| 99精品热视频| 免费在线观看视频一区| 国产精品卡一卡二| 欧美精品久久99久久在免费线 | 日本电影欧美片| 免费在线欧美视频|