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

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

?? ixqmgr.h

?? 友善mini2440嵌入式
?? 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一区二区三区免费野_久草精品视频
国产免费观看久久| 伦理电影国产精品| 亚洲精品欧美综合四区| 国产精品久久久久久久久免费樱桃 | 日韩 欧美一区二区三区| 亚洲福利视频一区| 午夜精品免费在线观看| 五月激情六月综合| 日韩精品久久理论片| 麻豆一区二区三| 国模冰冰炮一区二区| 国产激情偷乱视频一区二区三区| 国产一区二区三区| 国产91露脸合集magnet| eeuss影院一区二区三区| 91视频观看视频| 色视频一区二区| 欧美日韩国产另类不卡| 日韩一级片网站| 国产三级一区二区| 成人免费在线视频观看| 亚洲男人电影天堂| 日本欧美在线观看| 国产成人丝袜美腿| 色综合久久久久综合| 欧美日本高清视频在线观看| 精品国产一区二区三区久久久蜜月| 精品国产乱码久久久久久牛牛| 国产日韩欧美精品综合| 亚洲精品视频一区| 日韩av不卡一区二区| 国产成人高清在线| 色94色欧美sute亚洲线路一ni| 欧美三片在线视频观看 | 亚洲国产精品自拍| 久久精品国产色蜜蜜麻豆| 国产成人免费xxxxxxxx| 日本韩国精品在线| 天堂va蜜桃一区二区三区| 国产suv精品一区二区三区| 国产精品一卡二卡在线观看| 成人99免费视频| 欧美在线小视频| 久久精品国产免费| 国产成人免费网站| 欧美午夜不卡视频| 久久久影院官网| 亚洲一二三级电影| 国产精品原创巨作av| 欧美色综合久久| 2欧美一区二区三区在线观看视频| 国产精品电影院| 奇米在线7777在线精品| 成人激情图片网| 91精品在线观看入口| 中文字幕在线不卡| 欧美日本一区二区| 一区在线中文字幕| 久久国产精品免费| 91黄色激情网站| 国产亚洲精品bt天堂精选| 日韩国产在线观看一区| 91视视频在线观看入口直接观看www| 日韩欧美三级在线| 亚洲综合激情另类小说区| 国产一区二区中文字幕| 欧美日产国产精品| 一区二区三区日韩在线观看| 国产精品中文字幕日韩精品| 欧美日韩午夜在线| 亚洲欧美在线aaa| 国产成人免费av在线| 欧美一级专区免费大片| 亚洲欧洲综合另类| 国产成人精品亚洲日本在线桃色| 日韩视频在线你懂得| 亚洲第一二三四区| 日本道免费精品一区二区三区| 欧美极品aⅴ影院| 国产一区免费电影| 欧美电影免费观看高清完整版| 五月婷婷色综合| 欧美影视一区在线| 亚洲在线视频免费观看| 99这里只有精品| 国产精品天天摸av网| 国产成人综合网站| 久久久久国产一区二区三区四区 | 99re热这里只有精品视频| 精品成人免费观看| 老司机精品视频导航| 欧美一级国产精品| 日本欧美韩国一区三区| 7777精品伊人久久久大香线蕉超级流畅| 亚洲视频综合在线| 99久久婷婷国产| 亚洲日本青草视频在线怡红院| 成人丝袜18视频在线观看| 国产色一区二区| 国产成人h网站| 国产嫩草影院久久久久| 成人激情午夜影院| 成人欧美一区二区三区白人| av福利精品导航| 中文字幕一区视频| 99国产精品久| 亚洲永久精品大片| 欧美日韩亚洲高清一区二区| 日韩福利电影在线| 日韩一级黄色片| 久久成人久久鬼色| 久久久亚洲精华液精华液精华液| 国产老妇另类xxxxx| 国产拍揄自揄精品视频麻豆| 成人免费黄色大片| 一区在线中文字幕| 欧美午夜精品一区| 日韩av电影免费观看高清完整版在线观看 | 欧美麻豆精品久久久久久| 丝袜美腿一区二区三区| 欧美xxxx在线观看| 大桥未久av一区二区三区中文| 中文字幕日本乱码精品影院| 日本精品裸体写真集在线观看| 亚洲观看高清完整版在线观看| 欧美福利一区二区| 黄色小说综合网站| 国产精品久久二区二区| 色狠狠一区二区三区香蕉| 五月天一区二区三区| 日韩一区二区在线播放| 国产成人精品免费视频网站| 亚洲女爱视频在线| 日韩一区二区电影在线| 国产成人精品亚洲午夜麻豆| 亚洲精品乱码久久久久| 91精品久久久久久久久99蜜臂| 国产一区二区在线看| 亚洲手机成人高清视频| 911精品产国品一二三产区| 国产一区中文字幕| 樱花影视一区二区| 日韩欧美一二三区| 91丝袜美女网| 欧美aaaaaa午夜精品| 国产精品乱码人人做人人爱 | 在线电影一区二区三区| 国产精品一区二区在线观看不卡 | 国产精品1024| 一区二区三区四区中文字幕| 精品国产一区久久| 色综合网色综合| 另类欧美日韩国产在线| 国产精品久久久久久久久快鸭| 欧美另类高清zo欧美| 国产不卡高清在线观看视频| 亚洲愉拍自拍另类高清精品| 久久伊人蜜桃av一区二区| 欧美在线一二三四区| 国产精品99久久久久久久女警| 亚洲午夜视频在线| 国产精品人人做人人爽人人添| 欧美一区二区美女| 色欧美乱欧美15图片| 国产精品一区二区在线观看不卡 | 亚洲第一成年网| 国产精品毛片久久久久久久| 日韩欧美久久久| 在线亚洲一区观看| 成人av中文字幕| 久久99精品国产麻豆不卡| 亚洲第四色夜色| 成人欧美一区二区三区小说| 久久香蕉国产线看观看99| 欧美日韩精品是欧美日韩精品| 不卡电影一区二区三区| 激情综合网天天干| 日韩中文字幕一区二区三区| 亚洲欧美激情插| 国产精品女上位| 久久精品一区蜜桃臀影院| 6080亚洲精品一区二区| 91小视频免费看| 国产成人精品亚洲午夜麻豆| 精品一二三四在线| 日韩 欧美一区二区三区| 亚洲一区在线观看网站| 亚洲你懂的在线视频| 国产精品每日更新| 日本一区二区三区在线观看| 日韩欧美久久久| 日韩视频一区二区在线观看| 欧美精品色一区二区三区| 欧美做爰猛烈大尺度电影无法无天| 99精品久久免费看蜜臀剧情介绍| 国产盗摄一区二区三区| 精品亚洲porn| 激情伊人五月天久久综合| 蜜桃视频在线观看一区| 男人操女人的视频在线观看欧美|