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

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

?? ixqmgr.h

?? uboot的源碼,包括了常見的處理器平臺
?? H
?? 第 1 頁 / 共 5 頁
字號:
	       IxQMgrQSizeInWords qSizeInWords,	       IxQMgrQEntrySizeInWords qEntrySizeInWords) * * @brief Configure an AQM queue. * * This function is called by a client to setup a queue. The size and entrySize * qId and qName(NULL pointer) are checked for valid values. This function must * be called for each queue, before any queue accesses are made and after * ixQMgrInit() has been called. qName is assumed to be a '\0' terminated array * of 16 charachters or less. * * @param *qName char [in] - is the name provided by the client and is associated *                          with a QId by the QMgr. * @param qId @ref IxQMgrQId [in]  - the qId of this queue * @param qSizeInWords @ref IxQMgrQSize [in] - the size of the queue can be one of 16,32 *                                       64, 128 words. * @param qEntrySizeInWords @ref IxQMgrQEntrySizeInWords [in] - the size of a queue entry *                                                        can be one of 1,2,4 words. * * @return @li IX_SUCCESS, a specified queue has been successfully configured. * @return @li IX_FAIL, IxQMgr has not been initialised. * @return @li IX_QMGR_PARAMETER_ERROR, invalid parameter(s). * @return @li IX_QMGR_INVALID_QSIZE, invalid queue size * @return @li IX_QMGR_INVALID_Q_ID, invalid queue id * @return @li IX_QMGR_INVALID_Q_ENTRY_SIZE, invalid queue entry size * @return @li IX_QMGR_Q_ALREADY_CONFIGURED, queue already configured * */PUBLIC IX_STATUSixQMgrQConfig (char *qName,	       IxQMgrQId qId,	       IxQMgrQSizeInWords qSizeInWords,	       IxQMgrQEntrySizeInWords qEntrySizeInWords);/** * @ingroup IxQMgrAPI *  * @fn ixQMgrQSizeInEntriesGet (IxQMgrQId qId,			 unsigned *qSizeInEntries) * * @brief Return the size of a queue in entries. * * This function returns the the size of the queue in entriese. * * @param qId @ref IxQMgrQId [in] - the queue identifier * @param *qSizeInEntries @ref IxQMgrQSize [out] - queue size in entries * * @return @li IX_SUCCESS, successfully retrieved the number of full entrie * @return @li IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId * @return @li IX_QMGR_PARAMETER_ERROR, invalid parameter(s). * */PUBLIC IX_STATUSixQMgrQSizeInEntriesGet (IxQMgrQId qId,			 unsigned *qSizeInEntries);/** * * @ingroup IxQMgrAPI *  * @fn ixQMgrWatermarkSet (IxQMgrQId qId,		    IxQMgrWMLevel ne,		    IxQMgrWMLevel nf) * * @brief Set the Nearly Empty and Nearly Full Watermarks fo a queue. * * This function is called by a client to set the watermarks NE and NF for the * queue specified by qId. * The queue must be empty at the time this function is called, it is the clients * responsibility to ensure that the queue is empty. * This function will read the status of the queue before the watermarks are set * and again after the watermarks are set. If the status register has changed, * due to a queue access by an NPE for example, a warning is returned. * Queues 32-63 only support the NE flag, therefore the value of nf will be ignored * for these queues. * * @param qId @ref IxQMgrQId [in] -  the QId of the queue. * @param ne @ref IxQMgrWMLevel [in]  - the NE(Nearly Empty) watermark for this *                                 queue. Valid values are 0,1,2,4,8,16,32 and *                                 64 entries. * @param nf @ref IxQMgrWMLevel [in] - the NF(Nearly Full) watermark for this queue. *                                 Valid values are 0,1,2,4,8,16,32 and 64 *                                 entries. * * @return @li IX_SUCCESS, watermarks have been set for the queu * @return @li IX_QMGR_Q_NOT_CONFIGURED, queue not configured for this QId * @return @li IX_QMGR_INVALID_Q_WM, invalid watermark * @return @li IX_QMGR_WARNING, the status register may not be constistent * */PUBLIC IX_STATUSixQMgrWatermarkSet (IxQMgrQId qId,		    IxQMgrWMLevel ne,		    IxQMgrWMLevel nf);/** * @ingroup IxQMgrAPI *  * @fn ixQMgrAvailableSramAddressGet (UINT32 *address,			       unsigned *sizeOfFreeSram) * * @brief Return the address of available AQM SRAM. * * This function returns the starting address in AQM SRAM not used by the * current queue configuration and should only be called after all queues * have been configured. * Calling this function before all queues have been configured will will return * the currently available SRAM. A call to configure another queue will use some * of the available SRAM. * The amount of SRAM available is specified in sizeOfFreeSram. The address is the * address of the bottom of available SRAM. Available SRAM extends from address * from address to address + sizeOfFreeSram. * * @param **address UINT32 [out] - the address of the available SRAM, NULL if *                                none available. * @param *sizeOfFreeSram unsigned [out]- the size in words of available SRAM * * @return @li IX_SUCCESS, there is available SRAM and is pointed to by address * @return @li IX_QMGR_PARAMETER_ERROR, invalid parameter(s) * @return @li IX_QMGR_NO_AVAILABLE_SRAM, all AQM SRAM is consumed by the queue *             configuration. * */PUBLIC IX_STATUSixQMgrAvailableSramAddressGet (UINT32 *address,			       unsigned *sizeOfFreeSram);/* ------------------------------------------------------------   Queue access related functions   ---------------------------------------------------------- *//** * * @ingroup IxQMgrAPI *  * @fn ixQMgrQReadWithChecks (IxQMgrQId qId,                       UINT32 *entry) * * @brief Read an entry from a queue. * * This function reads an entire entry from a queue returning it in entry. The * queue configuration word is read to determine what entry size this queue is * configured for and then the number of words specified by the entry size is * read.  entry must be a pointer to a previously allocated array of sufficient * size to hold an entry. * * @note - IX_QMGR_Q_UNDERFLOW is only returned for queues 0-31 as queues 32-63 * do not have an underflow status maintained. * * @param  qId @ref IxQMgrQId [in]   - the queue identifier. * @param  *entry UINT32 [out]  - pointer to the entry word(s). * * @return @li IX_SUCCESS, entry was successfully read. * @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_UNDERFLOW, attempt to read from an empty queue * */PUBLIC IX_STATUSixQMgrQReadWithChecks (IxQMgrQId qId,                       UINT32 *entry);/**  * @brief Internal structure to facilitate inlining functions in IxQMgr.h */typedef struct{    /* fields related to write functions */    UINT32 qOflowStatBitMask;         /**< overflow status mask */    UINT32 qWriteCount;               /**< queue write count */    /* fields related to read and write functions */    volatile UINT32 *qAccRegAddr;     /**< access register */    volatile UINT32 *qUOStatRegAddr;  /**< status register */    volatile UINT32 *qConfigRegAddr;  /**< config register */    UINT32 qEntrySizeInWords;         /**< queue entry size in words */    UINT32 qSizeInEntries;            /**< queue size in entries */    /* fields related to read functions */    UINT32 qUflowStatBitMask;         /**< underflow status mask */    UINT32 qReadCount;                /**< queue read count */} IxQMgrQInlinedReadWriteInfo;/** * * @ingroup IxQMgrAPI * * @fn ixQMgrQReadMWordsMinus1 (IxQMgrQId qId,			        UINT32 *entry) * * @brief 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 * * @param  qId @ref IxQMgrQId [in]  - the queue identifier. * @param  *entry UINT32 [out] - pointer to the entry word(s). * * @return @li IX_SUCCESS, entry was successfully read. * @return @li IX_QMGR_Q_UNDERFLOW, attempt to read from an empty queue * */PUBLIC IX_STATUSixQMgrQReadMWordsMinus1 (IxQMgrQId qId,			 UINT32 *entry);/** * * @ingroup IxQMgrAPI *  * @fn ixQMgrQRead (IxQMgrQId qId,	     UINT32 *entry) * * @brief Fast read of an entry from a queue. * * This function is a heavily streamlined version of ixQMgrQReadWithChecks(), * but performs essentially the same task.  It reads an entire entry from a * queue, returning it in entry which must be a pointer to a previously * allocated array of sufficient size to hold an entry. * * @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. * or is in range. It simply reads an entry from the queue, and checks for * underflow. * * @note - IX_QMGR_Q_UNDERFLOW is only returned for queues 0-31 as queues 32-63 * do not have an underflow status maintained. * * @param  qId @ref IxQMgrQId [in] - the queue identifier. * @param  *entry UINT32 [out] - pointer to the entry word(s). * * @return @li IX_SUCCESS, entry was successfully read. * @return @li IX_QMGR_Q_UNDERFLOW, attempt to read from an empty queue * */#ifdef NO_INLINE_APISPUBLIC IX_STATUSixQMgrQRead (IxQMgrQId qId,             UINT32 *entryPtr);#else extern IxQMgrQInlinedReadWriteInfo ixQMgrQInlinedReadWriteInfo[];extern IX_STATUS ixQMgrQReadMWordsMinus1 (IxQMgrQId qId, UINT32 *entryPtr);IX_QMGR_INLINE PUBLIC IX_STATUSixQMgrQRead (IxQMgrQId qId,             UINT32 *entryPtr);#endifIX_QMGR_INLINE PUBLIC IX_STATUSixQMgrQRead (IxQMgrQId qId,	     UINT32 *entryPtr)#ifdef NO_INLINE_APIS    ;#else{    IxQMgrQInlinedReadWriteInfo *infoPtr = &ixQMgrQInlinedReadWriteInfo[qId];    UINT32 entry, entrySize;    /* get a new entry */    entrySize = infoPtr->qEntrySizeInWords;    entry = IX_QMGR_INLINE_READ_LONG(infoPtr->qAccRegAddr);    if (entrySize != IX_QMGR_Q_ENTRY_SIZE1)    {		*entryPtr = entry;	/* process the remaining part of the entry */	return ixQMgrQReadMWordsMinus1(qId, entryPtr);    }    /* underflow is available for lower queues only */    if (qId < IX_QMGR_MIN_QUEUPP_QID)    {	/* the counter of queue entries is decremented. In happy 	 * day scenario there are many entries in the queue	 * and the counter does not reach zero.	 */ 	if (infoPtr->qReadCount-- == 0)	{	    /* There is maybe no entry in the queue	     * qReadCount is now negative, but will be corrected before	     * the function returns.	     */	    UINT32 qPtrs; /* queue internal pointers */	    /* when a queue is empty, the hw guarantees to return 	     * a null value. If the value is not null, the queue is	     * not empty.	     */	    if (entry == 0)	    {		/* get the queue status */		UINT32 status = IX_QMGR_INLINE_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_QMGR_INLINE_WRITE_LONG(infoPtr->qUOStatRegAddr,					 status & ~infoPtr->qUflowStatBitMask);		    *entryPtr = 0;		    infoPtr->qReadCount = 0;		    return IX_QMGR_Q_UNDERFLOW;		}	    }	    /* store the result */	    *entryPtr = entry;	    /* No underflow occured : someone is filling the queue	     * or the queue contains null entries.	     * The current counter needs to be	     * updated from the current number of entries in the queue	     */	    /* get snapshot of queue pointers */	    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)	    {		/* no entry in the queue */		infoPtr->qReadCount = 0;	    }	    else	    {		/* convert the number of words inside the queue		 * to a number of entries 		 */		infoPtr->qReadCount = qPtrs & (infoPtr->qSizeInEntries - 1);	    }	    return IX_SUCCESS;	}    }    *entryPtr = entry;    return IX_SUCCESS;}#endif/** * * @ingroup IxQMgrAPI *  * @fn ixQMgrQBurstRead (IxQMgrQId qId,		  UINT32 numEntries,		  UINT32 *entries) * * @brief Read a number of entries from an AQM queue. * * This function will burst read a number of entries from the specified queue. * The entry size of queue is auto-detected. The function will attempt to * read as many entries as specified by the numEntries parameter and will * return an UNDERFLOW if any one of the individual entry reads fail. * * @warning * IX_QMGR_Q_UNDERFLOW is only returned for queues 0-31 as queues 32-63 * do not have an underflow 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 draining 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 the number of full entries that * have been specified to be read. It will read until it finds a NULL entry or * until the number of specified entries have been read.  It always checks for * underflow after all the reads have been performed. * Therefore, the client should ensure before calling this function that there * are enough entries in the queue to read.  ixQMgrQNumEntriesGet() will * provide the number of full entries in a queue. * ixQMgrQRead() or ixQMgrQReadWithChecks(), which only reads * a single queue entry per call, should be used instead if the user requires * checks for UNDERFLOW after each entry read. * * @param qId @ref IxQMgrQId [in]   - the queue identifier. * @param numEntries unsigned [in] - the number of entries to read.  *                     This number should be greater than 0 * @param *entries UINT32 [out] - the word(s) read. * * @return @li IX_SUCCESS, entries were successfully read. * @return @li IX_QMGR_Q_UNDERFLOW, attempt to read from an empty queue  * */#ifdef NO_INLINE_APIS  PUBLIC IX_STATUSixQMgrQBurstRead (IxQMgrQId qId,                  UINT32 numEntries,                  UINT32 *entries);#elseIX_QMGR_INLINE PUBLIC IX_STATUSixQMgrQBurstRead (IxQMgrQId qId,                  UINT32 numEntries,                  UINT32 *entries);#endif  /* endif NO_INLINE_APIS */IX_QMGR_INLINE PUBLIC IX_STATUSixQMgrQBurstRead (IxQMgrQId qId,		  UINT32 numEntries,		  UINT32 *entries)#ifdef NO_INLINE_APIS;#else{    IxQMgrQInlinedReadWriteInfo *infoPtr = &ixQMgrQInlinedReadWriteInfo[qId];    UINT32 nullCheckEntry;    if (infoPtr->qEntrySizeInWords == IX_QMGR_Q_ENTRY_SIZE1)    {	volatile UINT32 *qAccRegAddr = infoPtr->qAccRegAddr;	/* the code is optimized to take care of data dependencies:	 * Durig a read, there are a few cycles needed to get the 	 * read complete. During these cycles, it is poossible to	 * do some CPU, e.g. increment pointers and decrement 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新中文字幕一区二区三区 | 日韩不卡一区二区| 在线视频你懂得一区二区三区| 中文字幕制服丝袜成人av| www.视频一区| 亚洲色图在线看| 欧美三级电影一区| 日韩av电影免费观看高清完整版 | 欧美一区二区三区免费| 日本成人中文字幕在线视频| 日韩一区二区三区在线视频| 久久91精品国产91久久小草 | 欧美激情艳妇裸体舞| aaa欧美大片| 亚洲高清免费视频| 日韩一区二区免费在线观看| 韩国视频一区二区| 亚洲视频精选在线| 91精品国产一区二区三区蜜臀| 久久99精品国产| 最新国产の精品合集bt伙计| 欧美久久免费观看| 国产一区二区三区高清播放| 亚洲人成亚洲人成在线观看图片 | 91日韩在线专区| 性做久久久久久免费观看| 日韩精品一区二区三区老鸭窝| 国产尤物一区二区| 亚洲一区二区三区四区五区黄| 欧美zozo另类异族| 色综合久久中文字幕综合网 | 亚洲国产成人av| 久久久久久久久久久久久女国产乱 | 色综合久久88色综合天天6| 日韩激情一二三区| 国产精品女主播在线观看| 欧美三级欧美一级| 成人va在线观看| 在线看一区二区| 精品一区免费av| 一区二区三区精品| 久久久久国产精品厨房| 欧美日韩第一区日日骚| 成人中文字幕合集| 麻豆成人久久精品二区三区小说| 国产精品美女久久福利网站| 69p69国产精品| 99久久99久久精品免费观看| 久久精品国产精品亚洲精品| 一区二区日韩电影| 国产精品情趣视频| 欧美精品一区二区三区在线 | 综合精品久久久| 2023国产精品| 欧美一三区三区四区免费在线看| 91热门视频在线观看| 国产精品一品二品| 精品一区二区三区视频| 欧美96一区二区免费视频| 一区二区久久久久| 国产精品国产自产拍在线| 久久影院午夜片一区| 欧美一区二区不卡视频| 欧美日韩亚洲不卡| 在线观看视频一区| 91丨国产丨九色丨pron| 国产.欧美.日韩| 久久99精品久久久久久国产越南| 日韩电影免费在线看| 亚洲v中文字幕| 一区二区三区日韩欧美精品| 亚洲日本在线a| 国产精品成人午夜| 欧美激情在线一区二区| 国产日韩欧美高清在线| 久久久久久久久久美女| 欧美精品一区二区三区视频| 日韩精品一区二区三区在线| 日韩亚洲欧美在线观看| 日韩欧美资源站| 日韩一级片在线观看| 日韩欧美不卡在线观看视频| 日韩美女视频在线| 欧美不卡一区二区三区| 精品久久久久久亚洲综合网| 精品嫩草影院久久| 久久综合成人精品亚洲另类欧美 | 精品国产乱码久久久久久免费 | 欧美成人bangbros| 日韩女同互慰一区二区| 精品av综合导航| 日本一区二区三区在线不卡 | 91影院在线观看| 色先锋久久av资源部| 欧美无砖专区一中文字| 欧美日韩精品一区视频| 欧美日韩在线免费视频| 这里只有精品视频在线观看| 欧美成人猛片aaaaaaa| 久久久青草青青国产亚洲免观| 日本一区二区不卡视频| 亚洲精品欧美综合四区| 亚洲成人av电影在线| 美女一区二区视频| 成人sese在线| 欧美日韩国产bt| 久久久久久久久久美女| 亚洲欧美日韩国产手机在线| 丝袜亚洲另类欧美| 国产黄色精品视频| 色先锋资源久久综合| 婷婷久久综合九色综合绿巨人| 免费人成黄页网站在线一区二区| 狠狠色丁香久久婷婷综合丁香| 国产丶欧美丶日本不卡视频| 99精品国产91久久久久久 | 欧美绝品在线观看成人午夜影视| 日韩欧美国产综合一区| 国产精品久久久久久久久免费樱桃| 一区二区三区在线免费| 精品一区二区三区在线观看| 色综合婷婷久久| 欧美一区二区三区视频免费播放| 中文字幕av一区二区三区| 午夜精品久久久久久久99樱桃| 国产一区二区在线看| 91高清在线观看| 久久久亚洲午夜电影| 亚洲妇熟xx妇色黄| 成人精品视频一区二区三区 | 伊人开心综合网| 久久草av在线| 欧美在线观看视频在线| 久久尤物电影视频在线观看| 亚洲国产精品一区二区www在线 | 精品一区二区三区免费观看| 97久久精品人人爽人人爽蜜臀| 日韩三级免费观看| 国产精品九色蝌蚪自拍| 理论片日本一区| 欧美日韩综合在线免费观看| 国产精品久久久久aaaa樱花 | 一区二区三区在线看| 国产91在线观看丝袜| 日韩美一区二区三区| 午夜电影一区二区| 91免费在线播放| 国产精品色在线观看| 国产一区免费电影| 精品久久久三级丝袜| 蜜臀久久99精品久久久久久9 | 视频精品一区二区| 国产精品网站在线观看| 极品少妇xxxx精品少妇| 7777精品伊人久久久大香线蕉 | 久久99精品久久久久久久久久久久 | 精品亚洲成a人在线观看| 欧美日本一区二区| 一区av在线播放| 色老头久久综合| 亚洲日穴在线视频| 99精品国产一区二区三区不卡| 国产精品污网站| 成人h动漫精品一区二| 国产精品水嫩水嫩| 国产成人精品免费| 国产偷国产偷亚洲高清人白洁| 黄页网站大全一区二区| 日韩欧美视频一区| 看国产成人h片视频| 欧美成人精品福利| 久久av中文字幕片| 日韩女同互慰一区二区| 国内精品在线播放| 久久久天堂av| 不卡av免费在线观看| ...av二区三区久久精品| 91丨porny丨最新| 亚洲亚洲精品在线观看| 欧美日韩在线播放| 日韩高清不卡一区| 日韩欧美激情四射| 国产精品影视在线| 欧美高清在线一区二区| 91老师片黄在线观看| 亚洲精品免费一二三区| 欧美日韩一区二区不卡| 丝袜亚洲另类欧美综合| 精品电影一区二区三区| 成人丝袜18视频在线观看| 亚洲天堂久久久久久久| 欧美亚洲国产bt| 日本不卡视频在线观看| 久久久国产综合精品女国产盗摄| 成人视屏免费看| 亚洲尤物视频在线| 欧美不卡一区二区三区四区| 成人午夜伦理影院| 亚洲成a人v欧美综合天堂下载 | 男女男精品视频网|