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

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

?? ixnpemhsend.c

?? 友善mini2440嵌入式
?? C
字號:
/** * @file IxNpeMhSend.c * * @author Intel Corporation * @date 18 Jan 2002 * * @brief This file contains the implementation of the private API for the * Send module. * * * @par * IXP400 SW Release version 2.0 * * -- Copyright Notice -- * * @par * Copyright 2001-2005, Intel Corporation. * All rights reserved. * * @par * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. Neither the name of the Intel Corporation nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * @par * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * @par * -- End of Copyright Notice --*//* * Put the system defined include files required. *//* * Put the user defined include files required. */#include "IxNpeMhMacros_p.h"#include "IxNpeMhConfig_p.h"#include "IxNpeMhSend_p.h"#include "IxNpeMhSolicitedCbMgr_p.h"/* * #defines and macros used in this file. *//** * @def IX_NPEMH_INFIFO_RETRY_DELAY_US * * @brief Amount of time (uSecs) to delay between retries * while inFIFO is Full when attempting to send a message */#define IX_NPEMH_INFIFO_RETRY_DELAY_US (1)/* * Typedefs whose scope is limited to this file. *//** * @struct IxNpeMhSendStats * * @brief This structure is used to maintain statistics for the Send * module. */typedef struct{    UINT32 sends;             /**< send invocations */    UINT32 sendWithResponses; /**< send with response invocations */    UINT32 queueFulls;        /**< fifo queue full occurrences */    UINT32 queueFullRetries;  /**< fifo queue full retry occurrences */    UINT32 maxQueueFullRetries; /**< max fifo queue full retries */    UINT32 callbackFulls;     /**< callback list full occurrences */} IxNpeMhSendStats;/* * Variable declarations global to this file only.  Externs are followed by * static variables. */PRIVATE IxNpeMhSendStats ixNpeMhSendStats[IX_NPEMH_NUM_NPES];/* * Extern function prototypes. *//* * Static function prototypes. */PRIVATEBOOL ixNpeMhSendInFifoIsFull(    IxNpeMhNpeId npeId,    UINT32 maxSendRetries);/* * Function definition: ixNpeMhSendInFifoIsFull */PRIVATEBOOL ixNpeMhSendInFifoIsFull(    IxNpeMhNpeId npeId,    UINT32 maxSendRetries){    BOOL isFull = FALSE;    UINT32 numRetries = 0;    /* check the NPE's inFIFO */    isFull = ixNpeMhConfigInFifoIsFull (npeId);    /* we retry a few times, just to give the NPE a chance to read from */    /* the FIFO if the FIFO is currently full */    while (isFull && (numRetries++ < maxSendRetries))    {	if (numRetries >= IX_NPEMH_SEND_RETRIES_DEFAULT)	{	    /* Delay here for as short a time as possible (1 us). */	    /* Adding a delay here should ensure we are not hogging */	    /* the AHB bus while we are retrying                    */	    ixOsalBusySleep (IX_NPEMH_INFIFO_RETRY_DELAY_US);	}        /* re-check the NPE's inFIFO */        isFull = ixNpeMhConfigInFifoIsFull (npeId);        /* update statistical info */        ixNpeMhSendStats[npeId].queueFullRetries++;    }    /* record the highest number of retries that occurred */    if (ixNpeMhSendStats[npeId].maxQueueFullRetries < numRetries)    {	ixNpeMhSendStats[npeId].maxQueueFullRetries = numRetries;    }    if (isFull)    {        /* update statistical info */        ixNpeMhSendStats[npeId].queueFulls++;    }    return isFull;}/* * Function definition: ixNpeMhSendMessageSend */IX_STATUS ixNpeMhSendMessageSend (    IxNpeMhNpeId npeId,    IxNpeMhMessage message,    UINT32 maxSendRetries){    IX_STATUS status;    IX_NPEMH_TRACE0 (IX_NPEMH_FN_ENTRY_EXIT, "Entering "                     "ixNpeMhSendMessageSend\n");    /* update statistical info */    ixNpeMhSendStats[npeId].sends++;    /* check if the NPE's inFIFO is full - if so return an error */    if (ixNpeMhSendInFifoIsFull (npeId, maxSendRetries))    {        IX_NPEMH_TRACE0 (IX_NPEMH_WARNING, "NPE's inFIFO is full\n");        return IX_FAIL;    }    /* write the message to the NPE's inFIFO */    status = ixNpeMhConfigInFifoWrite (npeId, message);    IX_NPEMH_TRACE0 (IX_NPEMH_FN_ENTRY_EXIT, "Exiting "                     "ixNpeMhSendMessageSend\n");    return status;}/* * Function definition: ixNpeMhSendMessageWithResponseSend */IX_STATUS ixNpeMhSendMessageWithResponseSend (    IxNpeMhNpeId npeId,    IxNpeMhMessage message,    IxNpeMhMessageId solicitedMessageId,    IxNpeMhCallback solicitedCallback,    UINT32 maxSendRetries){    IX_STATUS status = IX_SUCCESS;    IX_NPEMH_TRACE0 (IX_NPEMH_FN_ENTRY_EXIT, "Entering "                     "ixNpeMhSendMessageWithResponseSend\n");    /* update statistical info */    ixNpeMhSendStats[npeId].sendWithResponses++;    /* sr: this sleep will call the receive routine (no interrupts used!!!) */    ixOsalSleep (IX_NPEMH_INFIFO_RETRY_DELAY_US);    /* check if the NPE's inFIFO is full - if so return an error */    if (ixNpeMhSendInFifoIsFull (npeId, maxSendRetries))    {        IX_NPEMH_TRACE0 (IX_NPEMH_WARNING, "NPE's inFIFO is full\n");        return IX_FAIL;    }    /* save the solicited callback */    status = ixNpeMhSolicitedCbMgrCallbackSave (        npeId, solicitedMessageId, solicitedCallback);    if (status != IX_SUCCESS)    {        IX_NPEMH_ERROR_REPORT ("Failed to save solicited callback\n");        /* update statistical info */        ixNpeMhSendStats[npeId].callbackFulls++;        return status;    }    /* write the message to the NPE's inFIFO */    status = ixNpeMhConfigInFifoWrite (npeId, message);    IX_NPEMH_TRACE0 (IX_NPEMH_FN_ENTRY_EXIT, "Exiting "                     "ixNpeMhSendMessageWithResponseSend\n");    return status;}/* * Function definition: ixNpeMhSendShow */void ixNpeMhSendShow (    IxNpeMhNpeId npeId){    /* show the message send invocation counter */    IX_NPEMH_SHOW ("Send invocations",                   ixNpeMhSendStats[npeId].sends);    /* show the message send with response invocation counter */    IX_NPEMH_SHOW ("Send with response invocations",                   ixNpeMhSendStats[npeId].sendWithResponses);    /* show the fifo queue full occurrence counter */    IX_NPEMH_SHOW ("Fifo queue full occurrences",                   ixNpeMhSendStats[npeId].queueFulls);    /* show the fifo queue full retry occurrence counter */    IX_NPEMH_SHOW ("Fifo queue full retry occurrences",                   ixNpeMhSendStats[npeId].queueFullRetries);    /* show the fifo queue full maximum retries counter */    IX_NPEMH_SHOW ("Maximum fifo queue full retries",                   ixNpeMhSendStats[npeId].maxQueueFullRetries);    /* show the callback list full occurrence counter */    IX_NPEMH_SHOW ("Solicited callback list full occurrences",                   ixNpeMhSendStats[npeId].callbackFulls);}/* * Function definition: ixNpeMhSendShowReset */void ixNpeMhSendShowReset (    IxNpeMhNpeId npeId){    /* reset the message send invocation counter */    ixNpeMhSendStats[npeId].sends = 0;    /* reset the message send with response invocation counter */    ixNpeMhSendStats[npeId].sendWithResponses = 0;    /* reset the fifo queue full occurrence counter */    ixNpeMhSendStats[npeId].queueFulls = 0;    /* reset the fifo queue full retry occurrence counter */    ixNpeMhSendStats[npeId].queueFullRetries = 0;    /* reset the max fifo queue full retries counter */    ixNpeMhSendStats[npeId].maxQueueFullRetries = 0;    /* reset the callback list full occurrence counter */    ixNpeMhSendStats[npeId].callbackFulls = 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区中文字幕| 亚洲国产精华液网站w| 国产精品无码永久免费888| 国产专区综合网| 91精品国产一区二区三区| 亚洲色图第一区| 91猫先生在线| 亚洲男人天堂av| 色综合久久久久综合| 成人欧美一区二区三区| 一级日本不卡的影视| 成人精品在线视频观看| 一区二区中文视频| 精品播放一区二区| 国产精品18久久久久久久久| 欧美三级日本三级少妇99| 亚洲资源中文字幕| 欧美一区二区在线免费观看| eeuss鲁片一区二区三区在线观看| 国产精品嫩草99a| 2023国产精品自拍| proumb性欧美在线观看| 久久精品国产第一区二区三区| 精品久久一区二区三区| 激情另类小说区图片区视频区| 亚洲国产综合91精品麻豆| 日韩视频一区在线观看| 国产成人精品一区二区三区网站观看| 五月天一区二区三区| 久久只精品国产| 日韩欧美的一区| aaa欧美色吧激情视频| 国产在线视频不卡二| 久久国产视频网| 日本视频免费一区| 国产拍揄自揄精品视频麻豆| 色综合网色综合| 喷水一区二区三区| 国产精品久久久久婷婷| 337p亚洲精品色噜噜噜| 成人毛片老司机大片| 国产精品一二三四区| 国产电影精品久久禁18| 国产精品88av| 大桥未久av一区二区三区中文| 国产精品一区二区黑丝| 国产成人免费视| 不卡的看片网站| 久久机这里只有精品| 国产一区二区伦理片| 五月天久久比比资源色| 人人爽香蕉精品| 国产高清在线观看免费不卡| 成人黄色av网站在线| 91在线精品秘密一区二区| 蜜桃视频第一区免费观看| 尤物视频一区二区| 欧美国产视频在线| 最新国产精品久久精品| 亚洲一区在线观看免费 | 国产喷白浆一区二区三区| 日本一区二区动态图| 综合av第一页| 视频一区免费在线观看| 亚洲色欲色欲www在线观看| 亚洲精品精品亚洲| 蜜臀精品一区二区三区在线观看| 精品亚洲成a人在线观看| 日本最新不卡在线| 丰满亚洲少妇av| 国产精品综合视频| 91丨九色丨尤物| 91精品国产丝袜白色高跟鞋| 久久先锋影音av鲁色资源| 中文字幕日韩av资源站| 天堂成人国产精品一区| 国产激情视频一区二区三区欧美| 97久久精品人人做人人爽| 在线成人av影院| 制服丝袜av成人在线看| 久久久精品人体av艺术| 久久精品一区二区三区不卡牛牛 | 欧美日本一区二区三区| 欧美综合一区二区三区| 91在线视频免费91| 91精品国产免费| 国产精品理论在线观看| 日韩和欧美一区二区| 成人免费视频app| 欧美军同video69gay| 国产精品色婷婷久久58| 日韩高清在线一区| 99久久国产综合精品麻豆| 日韩一区二区免费在线电影| 日韩美女视频一区二区| 韩国欧美一区二区| 91精品国产综合久久精品| 亚洲免费观看视频| 国产激情视频一区二区三区欧美 | 国产亚洲综合在线| 午夜影院久久久| 久久99精品久久久| 欧美日韩一区中文字幕| 国产精品乱码人人做人人爱| 九一九一国产精品| 欧美久久久久久久久| 亚洲美女精品一区| 成人性色生活片| 精品久久一区二区三区| 视频一区二区欧美| 在线国产亚洲欧美| 中文字幕视频一区| 国产成人精品影视| 久久久久久麻豆| 国产一区二区三区在线观看免费 | 色婷婷国产精品| 国产精品人妖ts系列视频| 国产麻豆精品theporn| 欧美va亚洲va| 日本va欧美va精品| 91麻豆精品国产自产在线 | 欧美va亚洲va香蕉在线| 日本在线播放一区二区三区| 欧美日韩亚洲高清一区二区| 亚洲日本一区二区三区| 成人av网站免费观看| 国产精品久久久久影院| 成人午夜av影视| 国产精品久久久久久一区二区三区| 国产一区二区精品久久91| 精品国产电影一区二区| 久久99精品久久久久婷婷| 精品日韩在线观看| 美女高潮久久久| 欧美va天堂va视频va在线| 国产一区高清在线| 国产婷婷色一区二区三区四区| 国产一本一道久久香蕉| 国产片一区二区三区| 成人国产精品免费观看动漫| 中文字幕av一区 二区| 成人一区二区三区在线观看| 国产精品美女久久福利网站| 91亚洲国产成人精品一区二区三| 亚洲欧美日韩人成在线播放| 日本韩国一区二区| 国产欧美日韩精品一区| 成人午夜大片免费观看| 亚洲女同女同女同女同女同69| 色综合天天综合色综合av | 成人免费高清在线观看| 国产精品女同一区二区三区| 色综合久久久久久久久| 丝袜亚洲另类欧美| 日韩精品资源二区在线| 国产成人av影院| 樱桃视频在线观看一区| 91精品国产综合久久香蕉的特点 | 亚洲成年人网站在线观看| 欧美一二三四区在线| 国产成人高清视频| 一区二区高清在线| 日韩精品一区在线观看| 国产成人精品亚洲777人妖 | 国产精品拍天天在线| 在线视频一区二区三区| 欧美a级一区二区| 国产区在线观看成人精品| 91香蕉视频在线| 日本欧美久久久久免费播放网| 久久网站热最新地址| 91在线观看视频| 日本欧美久久久久免费播放网| 欧美国产精品中文字幕| 欧美视频一区二| 一区二区三区中文免费| 日韩欧美激情四射| 99精品偷自拍| 精品在线观看免费| 一区二区三区不卡视频在线观看 | 精彩视频一区二区三区| 亚洲欧美偷拍三级| 欧美成人精品高清在线播放| 91麻豆免费看片| 久久激情五月激情| 亚洲国产欧美日韩另类综合| 久久午夜电影网| 91精品国产一区二区| 91小视频免费看| 国产成人亚洲综合a∨婷婷图片| 亚洲一二三级电影| 国产精品毛片高清在线完整版 | 欧美一区二区在线播放| 99久久国产综合色|国产精品| 美美哒免费高清在线观看视频一区二区 | 日韩三级精品电影久久久| 91在线你懂得| 国产大陆精品国产| 日本不卡一区二区三区| 亚洲欧美成aⅴ人在线观看|