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

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

?? ixqmgrqaccess.c

?? u-boot1.3.0的原碼,從配了網絡驅動和FLASH的驅動,并該用ESC竟如
?? C
?? 第 1 頁 / 共 2 頁
字號:
/** * @file    IxQMgrQAccess.c * * @author Intel Corporation * @date    30-Oct-2001 * * @brief   This file contains functions for putting entries on a queue and * removing entries from a queue. * *  * @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 --*//* * Inlines are compiled as function when this is defined. * N.B. Must be placed before #include of "IxQMgr.h" */#ifndef IXQMGR_H#    define IXQMGRQACCESS_C#else#    error#endif/* * System defined include files. *//* * User defined include files. */#include "IxQMgr.h"#include "IxQMgrAqmIf_p.h"#include "IxQMgrQAccess_p.h"#include "IxQMgrQCfg_p.h"#include "IxQMgrDefines_p.h"/* * Global variables and extern definitions */extern IxQMgrQInlinedReadWriteInfo ixQMgrQInlinedReadWriteInfo[];/* * Function definitions. */voidixQMgrQAccessInit (void){   }IX_STATUSixQMgrQReadWithChecks (IxQMgrQId qId,                       UINT32 *entry){    IxQMgrQEntrySizeInWords entrySizeInWords;    IxQMgrQInlinedReadWriteInfo *infoPtr;    if (NULL == entry)    {	return IX_QMGR_PARAMETER_ERROR;    }    /* Check QId */    if (!ixQMgrQIsConfigured(qId))    {	return IX_QMGR_Q_NOT_CONFIGURED;    }    /* Get the q entry size in words */    entrySizeInWords = ixQMgrQEntrySizeInWordsGet (qId);    ixQMgrAqmIfQPop (qId, entrySizeInWords, entry);	        /* reset the current read count if the counter wrapped around     * (unsigned arithmetic)    */    infoPtr = &ixQMgrQInlinedReadWriteInfo[qId];    if (infoPtr->qReadCount-- > infoPtr->qSizeInEntries)    {	infoPtr->qReadCount = 0;    }    /* Check if underflow occurred on the read */    if (ixQMgrAqmIfUnderflowCheck (qId))    {	return IX_QMGR_Q_UNDERFLOW;    }        return IX_SUCCESS;}/* this function reads the remaining of the q entry * for queues configured with many words. * (the first word of the entry is already read  * in the inlined function and the entry pointer already * incremented */IX_STATUSixQMgrQReadMWordsMinus1 (IxQMgrQId qId,			 UINT32 *entry){    IxQMgrQInlinedReadWriteInfo *infoPtr = &ixQMgrQInlinedReadWriteInfo[qId];    UINT32 entrySize = infoPtr->qEntrySizeInWords;    volatile UINT32 *qAccRegAddr = infoPtr->qAccRegAddr;        while (--entrySize)    {	/* read the entry and accumulate the result */	*(++entry) = IX_OSAL_READ_LONG(++qAccRegAddr);    }    /* underflow is available for lower queues only */    if (qId < IX_QMGR_MIN_QUEUPP_QID)    {	/* get the queue status */	UINT32 status = IX_OSAL_READ_LONG(infoPtr->qUOStatRegAddr);		/* check the underflow status */	if (status & infoPtr->qUflowStatBitMask)	{	    /* the queue is empty 	     *  clear the underflow status bit if it was set 	     */	    IX_OSAL_WRITE_LONG(infoPtr->qUOStatRegAddr,				 status & ~infoPtr->qUflowStatBitMask);	    return IX_QMGR_Q_UNDERFLOW;	}    }    return IX_SUCCESS;}IX_STATUSixQMgrQWriteWithChecks (IxQMgrQId qId,                        UINT32 *entry){    IxQMgrQEntrySizeInWords entrySizeInWords;    IxQMgrQInlinedReadWriteInfo *infoPtr;    if (NULL == entry)    {	return IX_QMGR_PARAMETER_ERROR;    }    /* Check QId */    if (!ixQMgrQIsConfigured(qId))    {	return IX_QMGR_Q_NOT_CONFIGURED;    }    /* Get the q entry size in words */    entrySizeInWords = ixQMgrQEntrySizeInWordsGet (qId);        ixQMgrAqmIfQPush (qId, entrySizeInWords, entry);    /* reset the current read count if the counter wrapped around     * (unsigned arithmetic)    */    infoPtr = &ixQMgrQInlinedReadWriteInfo[qId];    if (infoPtr->qWriteCount++ >= infoPtr->qSizeInEntries)    {	infoPtr->qWriteCount = infoPtr->qSizeInEntries;    }    /* Check if overflow occurred on the write*/    if (ixQMgrAqmIfOverflowCheck (qId))    {	return IX_QMGR_Q_OVERFLOW;    }             return IX_SUCCESS;}IX_STATUSixQMgrQPeek (IxQMgrQId qId,	     unsigned int entryIndex,	     UINT32 *entry){    unsigned int numEntries;#ifndef NDEBUG    if ((NULL == entry) || (entryIndex >= IX_QMGR_Q_SIZE_INVALID))    {	return IX_QMGR_PARAMETER_ERROR;    }    if (!ixQMgrQIsConfigured(qId))    {	return IX_QMGR_Q_NOT_CONFIGURED;    }#endif        if (IX_SUCCESS != ixQMgrQNumEntriesGet (qId, &numEntries))    {	return IX_FAIL;    }    if (entryIndex >= numEntries) /* entryIndex starts at 0 */    {	return IX_QMGR_ENTRY_INDEX_OUT_OF_BOUNDS;    }    return ixQMgrAqmIfQPeek (qId, entryIndex, entry);}IX_STATUSixQMgrQPoke (IxQMgrQId qId,	     unsigned entryIndex,	     UINT32 *entry){    unsigned int numEntries;#ifndef NDEBUG    if ((NULL == entry) || (entryIndex > 128))    {	return IX_QMGR_PARAMETER_ERROR;    }    if (!ixQMgrQIsConfigured(qId))    {	return IX_QMGR_Q_NOT_CONFIGURED;    }#endif            if (IX_SUCCESS != ixQMgrQNumEntriesGet (qId, &numEntries))    {	return IX_FAIL;    }    if (numEntries < (entryIndex + 1)) /* entryIndex starts at 0 */    {	return IX_QMGR_ENTRY_INDEX_OUT_OF_BOUNDS;    }    return ixQMgrAqmIfQPoke (qId, entryIndex, entry);}IX_STATUSixQMgrQStatusGetWithChecks (IxQMgrQId qId,                            IxQMgrQStatus *qStatus){    if (NULL == qStatus)    {	return IX_QMGR_PARAMETER_ERROR;    }       if (!ixQMgrQIsConfigured (qId))     {        return IX_QMGR_Q_NOT_CONFIGURED;    }    ixQMgrAqmIfQueStatRead (qId, qStatus);    return IX_SUCCESS;}IX_STATUSixQMgrQNumEntriesGet (IxQMgrQId qId,		      unsigned *numEntriesPtr){    UINT32 qPtrs;    UINT32 qStatus;    unsigned numEntries;    IxQMgrQInlinedReadWriteInfo *infoPtr;#ifndef NDEBUG    if (NULL == numEntriesPtr)    {	return IX_QMGR_PARAMETER_ERROR;    }    /* Check QId */    if (!ixQMgrQIsConfigured(qId))    {	return IX_QMGR_Q_NOT_CONFIGURED;    }#endif    /* get fast access data */    infoPtr = &ixQMgrQInlinedReadWriteInfo[qId];    /* get snapshot */    qPtrs = IX_OSAL_READ_LONG(infoPtr->qConfigRegAddr);    /* Mod subtraction of pointers to get number of words in Q. */    numEntries = (qPtrs - (qPtrs >> 7)) & 0x7f;      if (numEntries == 0)    {	/* 	 * Could mean either full or empty queue	 * so look at status	 */	ixQMgrAqmIfQueStatRead (qId, &qStatus);	if (qId < IX_QMGR_MIN_QUEUPP_QID)	{	    if (qStatus & IX_QMGR_Q_STATUS_E_BIT_MASK)	    {		/* Empty */		*numEntriesPtr = 0;	    }	    else if (qStatus & IX_QMGR_Q_STATUS_F_BIT_MASK)	    {		/* Full */		*numEntriesPtr = infoPtr->qSizeInEntries;	    }	    else	    {	    		/* 		 * Queue status and read/write pointers are volatile.		 * The queue state has changed since we took the		 * snapshot of the read and write pointers.		 * Client can retry if they wish		 */		*numEntriesPtr = 0;		return IX_QMGR_WARNING;	    }	}	else /* It is an upper queue which does not have an empty status bit maintained */	{	    if (qStatus & IX_QMGR_Q_STATUS_F_BIT_MASK)	    {		/* The queue is Full at the time of snapshot. */		*numEntriesPtr = infoPtr->qSizeInEntries;	    }	    else	    {  	       /* The queue is either empty, either moving,	        * Client can retry if they wish	        */		*numEntriesPtr = 0;	        return IX_QMGR_WARNING;	    }	}    }    else    {	*numEntriesPtr = (numEntries / infoPtr->qEntrySizeInWords) & (infoPtr->qSizeInEntries - 1);    }        return IX_SUCCESS;}#if defined(__wince) && defined(NO_INLINE_APIS)PUBLIC IX_STATUSixQMgrQRead (IxQMgrQId qId,      UINT32 *entryPtr){    extern IxQMgrQInlinedReadWriteInfo ixQMgrQInlinedReadWriteInfo[];    IxQMgrQInlinedReadWriteInfo *infoPtr = &ixQMgrQInlinedReadWriteInfo[qId];    UINT32 entry, entrySize;    /* get a new entry */    entrySize = infoPtr->qEntrySizeInWords;    entry = IX_OSAL_READ_LONG(infoPtr->qAccRegAddr);    if (entrySize != IX_QMGR_Q_ENTRY_SIZE1)    {     *entryPtr = entry;  /* process the remaining part of the entry */   return ixQMgrQReadMWordsMinus1(qId, entryPtr);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日本在线观看| 亚洲午夜精品在线| 精品一区二区国语对白| 成人福利视频在线| 日韩三级.com| 亚洲国产色一区| 99久久婷婷国产精品综合| 精品入口麻豆88视频| 亚洲一区二区在线观看视频| 成人免费视频视频在线观看免费| 91搞黄在线观看| 中文字幕在线不卡| 国产成人av电影免费在线观看| 日韩精品一区二区三区视频| 亚洲第一成年网| 91极品美女在线| 亚洲欧洲中文日韩久久av乱码| 国产成人aaa| 国产欧美精品国产国产专区| 毛片av一区二区| 欧美videos中文字幕| 欧美aa在线视频| 欧美丰满美乳xxx高潮www| 亚洲高清中文字幕| 欧美视频一区二区| 午夜久久电影网| 在线观看免费亚洲| 亚洲国产美女搞黄色| 日本精品视频一区二区| 日韩美女视频一区二区 | 欧美日韩日日摸| 亚洲精品中文在线观看| 91高清视频免费看| 亚洲一区影音先锋| 91精品国产色综合久久ai换脸| 日日摸夜夜添夜夜添精品视频| 欧美日韩高清不卡| 麻豆成人91精品二区三区| 日韩精品中文字幕在线不卡尤物 | 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 9人人澡人人爽人人精品| 日本一区二区动态图| av一区二区不卡| 依依成人精品视频| 欧美日韩在线免费视频| 免费在线观看成人| 国产欧美综合在线观看第十页| 粉嫩绯色av一区二区在线观看| 国产精品久久久久国产精品日日| 色婷婷久久久久swag精品| 亚洲综合无码一区二区| 56国语精品自产拍在线观看| 激情五月婷婷综合| 国产精品免费久久久久| 久久综合九色综合欧美98| 国产91色综合久久免费分享| 亚洲欧美日韩综合aⅴ视频| 欧美精三区欧美精三区| 国产一区欧美日韩| 亚洲欧洲中文日韩久久av乱码| 在线不卡的av| 大胆亚洲人体视频| 亚洲午夜日本在线观看| 亚洲精品在线电影| 91美女片黄在线观看| 日韩制服丝袜先锋影音| 欧美国产精品劲爆| 欧美日韩高清一区| 成人激情文学综合网| 日韩av中文字幕一区二区三区 | 国产91露脸合集magnet| 亚洲欧美日韩中文播放| 日韩欧美一级二级三级久久久| 不卡av在线网| 免费高清在线视频一区·| 国产精品情趣视频| 日韩欧美国产三级电影视频| 91免费国产视频网站| 精品一区二区精品| 亚洲成人自拍一区| 中文字幕日韩欧美一区二区三区| 91麻豆精品国产91久久久资源速度 | 成人综合婷婷国产精品久久免费| 天天射综合影视| 中文一区在线播放| 精品国产99国产精品| 欧美三片在线视频观看| av在线播放一区二区三区| 韩国精品主播一区二区在线观看| 亚洲午夜激情av| 综合久久久久综合| 国产精品久久久久久福利一牛影视 | 欧美日韩免费高清一区色橹橹| 国产91丝袜在线播放| 久久精品国产一区二区三区免费看| 亚洲日穴在线视频| 国产精品久久看| 久久久久久久久伊人| 精品国产区一区| 91麻豆精品国产91| 欧美日韩电影一区| 欧美伊人久久大香线蕉综合69| 成人黄色在线网站| 成人性视频免费网站| 国产精品一区二区三区乱码| 久久99精品久久久久久动态图| 亚洲va欧美va天堂v国产综合| 性久久久久久久| 国产亚洲精品中文字幕| 日韩欧美亚洲一区二区| 欧美一级黄色片| 综合久久综合久久| 国产免费成人在线视频| 国产欧美日本一区二区三区| 久久精品无码一区二区三区| 久久精品在这里| 国产精品色婷婷久久58| 中文字幕一区二区视频| 自拍av一区二区三区| 亚洲永久免费av| 日日夜夜精品免费视频| 日本麻豆一区二区三区视频| 午夜不卡在线视频| 久久草av在线| 成人性生交大片免费看中文 | 中文av字幕一区| 国产精品无码永久免费888| 欧美国产激情一区二区三区蜜月| 国产精品色婷婷| 亚洲精品网站在线观看| 无吗不卡中文字幕| 久久国产剧场电影| 国产成人啪免费观看软件| eeuss鲁片一区二区三区在线看| 91在线高清观看| 欧美日韩国产精品自在自线| 欧美剧在线免费观看网站| 精品奇米国产一区二区三区| 久久久91精品国产一区二区精品| 中文字幕日韩一区二区| 亚洲v精品v日韩v欧美v专区| 激情欧美一区二区| 色综合一区二区| 欧美一级黄色大片| 亚洲欧洲99久久| 免费人成在线不卡| 不卡一区二区在线| 日韩一区二区三区视频| 欧美国产精品久久| 日韩高清不卡一区二区三区| 国产成人免费视频网站高清观看视频| 99视频精品在线| 日韩欧美一级精品久久| 亚洲视频在线一区观看| 久久国产三级精品| 91美女视频网站| 精品国产乱码久久久久久闺蜜 | 色老综合老女人久久久| 欧美大白屁股肥臀xxxxxx| 中文字幕在线播放不卡一区| 日韩不卡手机在线v区| 91丨porny丨国产入口| 日韩一卡二卡三卡| 伊人开心综合网| 国产成人av一区二区三区在线 | 激情综合五月天| 91极品视觉盛宴| 中文字幕乱码一区二区免费| 日韩和欧美一区二区三区| 不卡大黄网站免费看| 精品久久国产老人久久综合| 夜夜嗨av一区二区三区中文字幕 | 久久精品理论片| 欧美三级日韩三级| 成人欧美一区二区三区黑人麻豆| 免费观看成人鲁鲁鲁鲁鲁视频| 在线观看视频91| 国产精品久久久久久久午夜片| 九一久久久久久| 亚洲欧洲日产国码二区| 国产麻豆成人传媒免费观看| 91精品国产一区二区三区| 一区二区在线观看av| 91在线无精精品入口| 国产亚洲精品超碰| 国产在线一区观看| 精品理论电影在线| 看电影不卡的网站| 欧美一区二区三区视频| 亚洲无人区一区| 在线免费观看成人短视频| 国产精品国产三级国产| 不卡一卡二卡三乱码免费网站| 国产偷v国产偷v亚洲高清| 国产一级精品在线| 久久精品男人天堂av| 国产福利91精品一区| 欧美国产亚洲另类动漫| caoporn国产精品| 亚洲欧美影音先锋|