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

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

?? ixqmgr.h

?? uboot的源碼,包括了常見的處理器平臺
?? H
?? 第 1 頁 / 共 5 頁
字號:
	 * counters.	 */	/* fetch a queue entry */	nullCheckEntry = IX_QMGR_INLINE_READ_LONG(infoPtr->qAccRegAddr);	/* iterate the specified number of queue entries */ 	while (--numEntries)	{	    /* check the result of the previous read */	    if (nullCheckEntry == 0)	    {		/* if we read a NULL entry, stop. We have underflowed */		break;	    }	    else	    {		/* write the entry */		*entries = nullCheckEntry;		/* fetch next entry */		nullCheckEntry = IX_QMGR_INLINE_READ_LONG(qAccRegAddr);		/* increment the write address */		entries++;	    }	}	/* write the pre-fetched entry */	*entries = nullCheckEntry;    }    else    {	IxQMgrQEntrySizeInWords entrySizeInWords = infoPtr->qEntrySizeInWords;	/* read the specified number of queue entries */	nullCheckEntry = 0;	while (numEntries--)	{	    UINT32 i;	    for (i = 0; i < (UINT32)entrySizeInWords; i++)	    {		*entries = IX_QMGR_INLINE_READ_LONG(infoPtr->qAccRegAddr + i);		nullCheckEntry |= *entries++;	    }	    /* if we read a NULL entry, stop. We have underflowed */	    if (nullCheckEntry == 0)	    {		break;	    }	    nullCheckEntry = 0;	}    }    /* reset the current read count : next access to the read function      * will force a underflow status check      */    infoPtr->qReadCount = 0;    /* Check if underflow occurred on the read */    if (nullCheckEntry == 0 && qId < IX_QMGR_MIN_QUEUPP_QID)    {	/* get the queue status */	UINT32 status = IX_QMGR_INLINE_READ_LONG(infoPtr->qUOStatRegAddr);	if (status & infoPtr->qUflowStatBitMask)	{	    /* clear the underflow status bit if it was set */	    IX_QMGR_INLINE_WRITE_LONG(infoPtr->qUOStatRegAddr,				 status & ~infoPtr->qUflowStatBitMask);	    return IX_QMGR_Q_UNDERFLOW;	}    }    return IX_SUCCESS;}#endif/** * @ingroup IxQMgrAPI *  * @fn ixQMgrQPeek (IxQMgrQId qId,	     unsigned int entryIndex,	     UINT32 *entry) * * @brief Read an entry from a queue without moving the read pointer. * * This function inspects an entry in a queue. The entry is inspected directly * in AQM SRAM and is not read from queue access registers. The entry is NOT removed * from the queue and the read/write pointers are unchanged. * N.B: The queue should not be accessed when this function is called. * * @param  qId @ref IxQMgrQId [in]   - the queue identifier. * @param  entryIndex unsigned int [in] - index of entry in queue in the range *                          [0].......[current number of entries in queue]. * @param  *entry UINT32 [out] - pointer to the entry word(s). * * @return @li IX_SUCCESS, entry was successfully inspected. * @return @li IX_QMGR_PARAMETER_ERROR, invalid paramter(s). * @return @li IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId. * @return @li IX_QMGR_ENTRY_INDEX_OUT_OF_BOUNDS, an entry does not exist at *             specified index. * @return @li IX_FAIL, failed to inpected the queue entry. */PUBLIC IX_STATUSixQMgrQPeek (IxQMgrQId qId,	     unsigned int entryIndex,	     UINT32 *entry);/** * * @ingroup IxQMgrAPI *  * @fn ixQMgrQWriteWithChecks (IxQMgrQId qId,                        UINT32 *entry) * * @brief Write an entry to an AQM queue. * * This function will write the entry size number of words pointed to by entry to * the queue specified by qId. The queue configuration word is read to * determine the entry size of queue and the corresponding number of words is * then written to the queue. * * @note - IX_QMGR_Q_OVERFLOW is only returned for queues 0-31 as queues 32-63 * do not have an overflow status maintained. * * @param qId @ref IxQMgrQId [in] - the queue identifier. * @param *entry UINT32 [in] - the word(s) to write. * * @return @li IX_SUCCESS, value was successfully written. * @return @li IX_QMGR_PARAMETER_ERROR, invalid paramter(s). * @return @li IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId * @return @li IX_QMGR_Q_OVERFLOW, attempt to write to a full queue * */PUBLIC IX_STATUSixQMgrQWriteWithChecks (IxQMgrQId qId,                        UINT32 *entry);/** * * @ingroup IxQMgrAPI *  * @fn ixQMgrQWrite (IxQMgrQId qId,	      UINT32 *entry) * * @brief Fast write of an entry to a queue. * * This function is a heavily streamlined version of ixQMgrQWriteWithChecks(), * but performs essentially the same task.  It will write the entry size number * of words pointed to by entry to the queue specified by qId. * * @note - This function is inlined, to reduce unnecessary function call * overhead.  It does not perform any parameter checks, or update any * statistics. Also, it does not check that the queue specified by qId has * been configured. It simply writes an entry to the queue, and checks for * overflow. * * @note - IX_QMGR_Q_OVERFLOW is only returned for queues 0-31 as queues 32-63 * do not have an overflow status maintained. * * @param  qId @ref IxQMgrQId [in]   - the queue identifier. * @param  *entry UINT32 [in] - pointer to the entry word(s). * * @return @li IX_SUCCESS, entry was successfully read. * @return @li IX_QMGR_Q_OVERFLOW, attempt to write to a full queue * */#ifdef NO_INLINE_APISPUBLIC IX_STATUSixQMgrQWrite (IxQMgrQId qId,	      UINT32 *entry);#elseIX_QMGR_INLINE PUBLIC IX_STATUSixQMgrQWrite (IxQMgrQId qId,	      UINT32 *entry);#endif /* NO_INLINE_APIS */IX_QMGR_INLINE PUBLIC IX_STATUSixQMgrQWrite (IxQMgrQId qId,	      UINT32 *entry)#ifdef NO_INLINE_APIS    ;#else{    IxQMgrQInlinedReadWriteInfo *infoPtr = &ixQMgrQInlinedReadWriteInfo[qId];    UINT32 entrySize;    /* write the entry */    IX_QMGR_INLINE_WRITE_LONG(infoPtr->qAccRegAddr, *entry);    entrySize = infoPtr->qEntrySizeInWords;    if (entrySize != IX_QMGR_Q_ENTRY_SIZE1)    {		/* process the remaining part of the entry */	volatile UINT32 *qAccRegAddr = infoPtr->qAccRegAddr;	while (--entrySize)	{	    ++entry;	    IX_QMGR_INLINE_WRITE_LONG(++qAccRegAddr, *entry);	} 	entrySize = infoPtr->qEntrySizeInWords;    }    /* overflow is available for lower queues only */    if (qId < IX_QMGR_MIN_QUEUPP_QID)    {   	UINT32 qSize = infoPtr->qSizeInEntries;	/* increment the current number of entries in the queue	 * and check for overflow 	 */	if (infoPtr->qWriteCount++ == qSize)	{	    /* the queue may have overflow */	    UINT32 qPtrs; /* queue internal pointers */  	    /* get the queue status */	    UINT32 status = IX_QMGR_INLINE_READ_LONG(infoPtr->qUOStatRegAddr);	    /* read the status twice because the status may 	     * not be immediately ready after the write operation	     */	    if ((status & infoPtr->qOflowStatBitMask) ||		((status = IX_QMGR_INLINE_READ_LONG(infoPtr->qUOStatRegAddr))		 & infoPtr->qOflowStatBitMask))	    {		/* the queue is full, clear the overflow status		 *  bit if it was set 		 */		IX_QMGR_INLINE_WRITE_LONG(infoPtr->qUOStatRegAddr,				     status & ~infoPtr->qOflowStatBitMask);		infoPtr->qWriteCount = infoPtr->qSizeInEntries;		return IX_QMGR_Q_OVERFLOW;	    }	    /* No overflow occured : someone is draining the queue	     * and the current counter needs to be	     * updated from the current number of entries in the queue	     */	    /* get q pointer snapshot */	    qPtrs = IX_QMGR_INLINE_READ_LONG(infoPtr->qConfigRegAddr);	    /* Mod subtraction of pointers to get number of words in Q. */	    qPtrs = (qPtrs - (qPtrs >> 7)) & 0x7f; 	    if (qPtrs == 0)	    {		/* the queue may be full at the time of the 		 * snapshot. Next access will check 		 * the overflow status again.		 */		infoPtr->qWriteCount = qSize;	    }	    else 	    {		/* convert the number of words to a number of entries */		if (entrySize == IX_QMGR_Q_ENTRY_SIZE1)		{		    infoPtr->qWriteCount = qPtrs & (qSize - 1);		}		else		{		    infoPtr->qWriteCount = (qPtrs / entrySize) & (qSize - 1);		}	    }	}    }    return IX_SUCCESS;}#endif/** * * @ingroup IxQMgrAPI *  * @fn ixQMgrQBurstWrite (IxQMgrQId qId,		   unsigned numEntries,		   UINT32 *entries) * * @brief Write a number of entries to an AQM queue. * * This function will burst write a number of entries to the specified queue. * The entry size of queue is auto-detected. The function will attempt to * write as many entries as specified by the numEntries parameter and will * return an OVERFLOW if any one of the individual entry writes fail. * * @warning * IX_QMGR_Q_OVERFLOW is only returned for queues 0-31 as queues 32-63 * do not have an overflow status maintained, hence there is a potential for * silent failure here. This function must be used with caution. * * @note * This function is intended for fast population of queues, so to make it * as efficient as possible, it has the following features: * - This function is inlined, to reduce unnecessary function call overhead. * - It does not perform any parameter checks, or update any statistics. * - It does not check that the queue specified by qId has been configured. * - It does not check that the queue has enough free space to hold the entries * before writing, and only checks for overflow after all writes have been * performed.  Therefore, the client should ensure before calling this function * that there is enough free space in the queue to hold the number of entries * to be written.  ixQMgrQWrite() or ixQMgrQWriteWithChecks(), which only writes * a single queue entry per call, should be used instead if the user requires * checks for OVERFLOW after each entry written. * * @param qId @ref IxQMgrQId [in]   - the queue identifier. * @param numEntries unsigned [in] - the number of entries to write. * @param *entries UINT32 [in]  - the word(s) to write. * * @return @li IX_SUCCESS, value was successfully written. * @return @li IX_QMGR_Q_OVERFLOW, attempt to write to a full queue * */#ifdef NO_INLINE_APISPUBLIC IX_STATUSixQMgrQBurstWrite (IxQMgrQId qId,		   unsigned numEntries,		   UINT32 *entries);#elseIX_QMGR_INLINE PUBLIC IX_STATUSixQMgrQBurstWrite (IxQMgrQId qId,		   unsigned numEntries,		   UINT32 *entries);#endif /* NO_INLINE_APIS */IX_QMGR_INLINE PUBLIC IX_STATUSixQMgrQBurstWrite (IxQMgrQId qId,		   unsigned numEntries,		   UINT32 *entries)#ifdef NO_INLINE_APIS;#else{    IxQMgrQInlinedReadWriteInfo *infoPtr = &ixQMgrQInlinedReadWriteInfo[qId];    UINT32 status;    /* update the current write count */    infoPtr->qWriteCount += numEntries;    if (infoPtr->qEntrySizeInWords == IX_QMGR_Q_ENTRY_SIZE1)    {	volatile UINT32 *qAccRegAddr = infoPtr->qAccRegAddr;	while (numEntries--)	{	    IX_QMGR_INLINE_WRITE_LONG(qAccRegAddr, *entries);	    entries++;	}    }    else    {	IxQMgrQEntrySizeInWords entrySizeInWords = infoPtr->qEntrySizeInWords;	UINT32 i;	/* write each queue entry */	while (numEntries--)	{	    /* write the queueEntrySize number of words for each entry */	    for (i = 0; i < (UINT32)entrySizeInWords; i++)	    {		IX_QMGR_INLINE_WRITE_LONG((infoPtr->qAccRegAddr + i), *entries);		entries++;	    }	}    }    /* check if the write count overflows */    if (infoPtr->qWriteCount > infoPtr->qSizeInEntries)    {	/* reset the current write count */	infoPtr->qWriteCount = infoPtr->qSizeInEntries;    }    /* Check if overflow occurred on the write operation */    if (qId < IX_QMGR_MIN_QUEUPP_QID)    {	/* get the queue status */	status = IX_QMGR_INLINE_READ_LONG(infoPtr->qUOStatRegAddr);	/* read the status twice because the status may 	 * not be ready at the time of the write	 */	if ((status & infoPtr->qOflowStatBitMask) ||	    ((status = IX_QMGR_INLINE_READ_LONG(infoPtr->qUOStatRegAddr))	     & infoPtr->qOflowStatBitMask))	{	    /* clear the underflow status bit if it was set */	    IX_QMGR_INLINE_WRITE_LONG(infoPtr->qUOStatRegAddr,				 status & ~infoPtr->qOflowStatBitMask);	    return IX_QMGR_Q_OVERFLOW;	}    }    return IX_SUCCESS;}#endif/** * @ingroup IxQMgrAPI *  * @fn ixQMgrQPoke (IxQMgrQId qId,	     unsigned int entryIndex,	     UINT32 *entry) * * @brief Write an entry to a queue without moving the write pointer. * * This function modifies an entry in a queue. The entry is modified directly * in AQM SRAM and not using the queue access registers. The entry is NOT added to the * queue and the read/write pointers are unchanged. * N.B: The queue should not be accessed when this function is called. * * @param qId @ref IxQMgrQId [in]  - the queue identifier. * @param  entryIndex unsigned int [in] - index of entry in queue in the range *                          [0].......[current number of entries in queue]. * @param  *entry UINT32 [in] - pointer to the entry word(s). * * @return @li IX_SUCCESS, entry was successfully modified. * @return @li IX_QMGR_PARAMETER_ERROR, invalid paramter(s). * @return @li IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId. * @return @li IX_QMGR_ENTRY_INDEX_OUT_OF_BOUNDS, an entry does not exist at *             specified index. * @return @li IX_FAIL, failed to modify the queue entry. */PUBLIC IX_STATUSixQMgrQPoke (IxQMgrQId qId,	     unsigned int entryIndex,	     UINT32 *entry);/**

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久精品国产免费观看同学| 秋霞午夜鲁丝一区二区老狼| 国产女人aaa级久久久级 | 色婷婷综合久久久久中文| 成人午夜在线播放| 国产·精品毛片| 成人免费高清视频在线观看| 国产精品一级片| 国产综合久久久久久鬼色 | 91免费在线播放| 成人av免费观看| 91在线视频观看| 91理论电影在线观看| 91麻豆视频网站| 色系网站成人免费| 91九色最新地址| 欧美老肥妇做.爰bbww视频| 欧美一区二区网站| 精品av综合导航| 国产午夜久久久久| 综合分类小说区另类春色亚洲小说欧美| 亚洲摸摸操操av| 亚洲国产乱码最新视频 | 色天天综合久久久久综合片| 在线影视一区二区三区| 欧美区在线观看| 精品久久久久久久久久久久久久久 | 玉米视频成人免费看| 亚洲午夜久久久久久久久久久| 视频在线观看一区二区三区| 麻豆精品一区二区三区| 国产在线视频一区二区三区| www.欧美亚洲| 欧美日韩一区二区不卡| 精品剧情在线观看| 中文字幕欧美一| 天堂成人国产精品一区| 狠狠v欧美v日韩v亚洲ⅴ| 97成人超碰视| 91精品国产综合久久久久久久久久 | 免费亚洲电影在线| 国产成人免费视| 欧美自拍偷拍一区| 欧美videos中文字幕| 亚洲天堂av一区| 美女一区二区视频| 92精品国产成人观看免费 | 亚洲人成伊人成综合网小说| 五月激情综合色| 国产成人一级电影| 欧美日韩中文一区| 国产丝袜欧美中文另类| 亚洲综合色噜噜狠狠| 激情综合色丁香一区二区| 91久久精品国产91性色tv| 久久综合99re88久久爱| 亚洲精品久久嫩草网站秘色| 久久精品99国产精品| 99国产精品99久久久久久| 欧美一区二区国产| 亚洲免费观看在线观看| 极品销魂美女一区二区三区| 欧美亚州韩日在线看免费版国语版| 欧美精品一区二区精品网| 亚洲国产综合在线| 成人av网站免费观看| 精品国产电影一区二区| 亚洲影院理伦片| 成人午夜精品一区二区三区| 日韩一级大片在线| 亚洲国产精品一区二区久久| 91社区在线播放| 精品国产成人在线影院| 亚洲福利电影网| 色综合天天狠狠| 亚洲国产高清不卡| 极品美女销魂一区二区三区| 欧美日韩国产综合一区二区三区 | 久久精品视频免费| 日韩高清不卡一区| 在线看一区二区| 亚洲国产成人一区二区三区| 久久aⅴ国产欧美74aaa| 欧美午夜影院一区| 亚洲欧美视频在线观看| 国产成人一区二区精品非洲| 久久久综合视频| 美女看a上一区| 91精品蜜臀在线一区尤物| 亚洲韩国精品一区| 欧美色图第一页| 一区二区三区在线影院| 99久久精品国产精品久久| 国产亚洲一本大道中文在线| 激情久久久久久久久久久久久久久久| 欧美美女一区二区| 亚洲福中文字幕伊人影院| 欧美最猛性xxxxx直播| 亚洲裸体在线观看| 91视频免费播放| 亚洲猫色日本管| 欧美性色欧美a在线播放| 亚洲精品videosex极品| 91福利国产成人精品照片| 一区二区三区四区中文字幕| 91精品91久久久中77777| 一区二区久久久| 欧美在线观看一区二区| 亚洲国产毛片aaaaa无费看 | 亚洲欧美日韩精品久久久久| 色激情天天射综合网| 一区二区三区四区蜜桃| 91麻豆精东视频| 亚洲国产综合在线| 91精品中文字幕一区二区三区| 毛片av中文字幕一区二区| 日韩情涩欧美日韩视频| 国产在线国偷精品产拍免费yy| 国产色产综合产在线视频| 成人av高清在线| 亚洲人午夜精品天堂一二香蕉| 色婷婷综合久久久| 视频一区视频二区中文字幕| 日韩欧美国产成人一区二区| 精品系列免费在线观看| 亚洲国产精品二十页| 91国内精品野花午夜精品| 日韩激情一二三区| 久久久久久久久免费| av中文一区二区三区| 亚洲一线二线三线久久久| 日韩欧美在线网站| 国产成人免费视频网站| 亚洲精品视频一区| 9191成人精品久久| 国产黄人亚洲片| 亚洲欧美日韩在线| 欧美一区二区在线免费播放| 国产精品一级片| 夜夜亚洲天天久久| 精品国产第一区二区三区观看体验| av色综合久久天堂av综合| 亚洲国产三级在线| 欧美精品一区二区三区蜜桃视频 | 国产精品免费视频一区| 欧美午夜精品久久久| 精品一区二区三区免费| 亚洲色图.com| 欧美一级专区免费大片| 成人黄色av网站在线| 视频一区二区不卡| 国产精品国产三级国产普通话99 | 91电影在线观看| 狠狠色丁香久久婷婷综合丁香| 亚洲美女偷拍久久| 日韩欧美一区二区免费| 99久久久无码国产精品| 日韩经典一区二区| 日韩美女视频一区| 精品三级在线看| 色就色 综合激情| 国产麻豆91精品| 婷婷开心激情综合| 亚洲欧洲韩国日本视频| 日韩色视频在线观看| 一道本成人在线| 极品瑜伽女神91| 午夜精品成人在线| ...中文天堂在线一区| 精品国产成人在线影院| 欧美日韩免费电影| 91免费视频网址| 懂色av一区二区在线播放| 日韩中文字幕1| 亚洲日本乱码在线观看| 2021中文字幕一区亚洲| 国产91清纯白嫩初高中在线观看| 亚洲成人手机在线| 欧美国产日韩在线观看| 日韩精品一区二区三区在线| 成人动漫精品一区二区| 91精品国产综合久久精品图片| 91丨porny丨蝌蚪视频| 亚洲成av人在线观看| 亚洲成在人线在线播放| 亚洲国产日韩综合久久精品| 午夜精品一区二区三区电影天堂 | 国产成人无遮挡在线视频| 国内精品视频一区二区三区八戒| 精品一区二区在线观看| 久久成人久久鬼色| 极品少妇一区二区三区精品视频| 国产一区二区不卡在线| 国产成人av一区| 91在线免费视频观看| 一本一道综合狠狠老| 欧美午夜片在线看| 欧美日韩成人综合天天影院| 日韩视频免费观看高清完整版 | 国产精品一区二区果冻传媒|