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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ixqmgraqmif_p.h

?? u-boot1.3.0的原碼,從配了網(wǎng)絡(luò)驅(qū)動(dòng)和FLASH的驅(qū)動(dòng),并該用ESC竟如
?? H
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* * This inline function is used by other QMgr components to write one * word to the specified address. */IX_QMGR_AQMIF_INLINE voidixQMgrAqmIfWordWrite (VUINT32 *address,		      UINT32 word){    IX_OSAL_WRITE_LONG(address, word);}/* * This inline function is used by other QMgr components to read a * word from the specified address. */IX_QMGR_AQMIF_INLINE voidixQMgrAqmIfWordRead (VUINT32 *address,		     UINT32 *word){    *word = IX_OSAL_READ_LONG(address);}/* * This inline function is used by other QMgr components to pop an * entry off the specified queue. */IX_QMGR_AQMIF_INLINE voidixQMgrAqmIfQPop (IxQMgrQId qId,		 IxQMgrQEntrySizeInWords numWords,		 UINT32 *entry){    volatile UINT32 *accRegAddr;    accRegAddr = (UINT32*)(aqmBaseAddress +    			   IX_QMGR_Q_ACCESS_ADDR_GET(qId));    switch (numWords)    {	case IX_QMGR_Q_ENTRY_SIZE1:	    ixQMgrAqmIfWordRead (accRegAddr, entry);	    break;	case IX_QMGR_Q_ENTRY_SIZE2:	    ixQMgrAqmIfWordRead (accRegAddr++, entry++);	    ixQMgrAqmIfWordRead (accRegAddr, entry);	    break;	case IX_QMGR_Q_ENTRY_SIZE4:	    ixQMgrAqmIfWordRead (accRegAddr++, entry++);	    ixQMgrAqmIfWordRead (accRegAddr++, entry++);	    ixQMgrAqmIfWordRead (accRegAddr++, entry++);	    ixQMgrAqmIfWordRead (accRegAddr, entry);	    break;	default:	    IX_QMGR_LOG_ERROR0("Invalid Q Entry size passed to ixQMgrAqmIfQPop");	    break;    }}/* * This inline function is used by other QMgr components to push an * entry to the specified queue. */IX_QMGR_AQMIF_INLINE voidixQMgrAqmIfQPush (IxQMgrQId qId,		  IxQMgrQEntrySizeInWords numWords,		  UINT32 *entry){    volatile UINT32 *accRegAddr;    accRegAddr = (UINT32*)(aqmBaseAddress +    			   IX_QMGR_Q_ACCESS_ADDR_GET(qId));        switch (numWords)    {	case IX_QMGR_Q_ENTRY_SIZE1:	    ixQMgrAqmIfWordWrite (accRegAddr, *entry);	    break;	case IX_QMGR_Q_ENTRY_SIZE2:	    ixQMgrAqmIfWordWrite (accRegAddr++, *entry++);	    ixQMgrAqmIfWordWrite (accRegAddr, *entry);	    break;	case IX_QMGR_Q_ENTRY_SIZE4:	    ixQMgrAqmIfWordWrite (accRegAddr++, *entry++);	    ixQMgrAqmIfWordWrite (accRegAddr++, *entry++);	    ixQMgrAqmIfWordWrite (accRegAddr++, *entry++);	    ixQMgrAqmIfWordWrite (accRegAddr, *entry);	    break;	default:	    IX_QMGR_LOG_ERROR0("Invalid Q Entry size passed to ixQMgrAqmIfQPush");	    break;    }}/* * The AQM interrupt registers contains a bit for each AQM queue * specifying the queue (s) that cause an interrupt to fire. This * function is called by IxQMGrDispatcher component. */IX_QMGR_AQMIF_INLINE voidixQMgrAqmIfQStatusRegsRead (IxQMgrDispatchGroup group, 			    UINT32 *qStatusWords){    volatile UINT32 *regAddress = NULL;    if (group == IX_QMGR_QUELOW_GROUP)    {	regAddress = (UINT32*)(aqmBaseAddress +			       IX_QMGR_QUELOWSTAT0_OFFSET);	ixQMgrAqmIfWordRead (regAddress++, qStatusWords++);	ixQMgrAqmIfWordRead (regAddress++, qStatusWords++);	ixQMgrAqmIfWordRead (regAddress++, qStatusWords++);	ixQMgrAqmIfWordRead (regAddress, qStatusWords);    }    else /* We have the upper queues */    {       /* Only need to read the Nearly Empty status register for	* queues 32-63 as for therse queues the interrtupt source	* condition is fixed to Nearly Empty	*/	regAddress = (UINT32*)(aqmBaseAddress +			       IX_QMGR_QUEUPPSTAT0_OFFSET);	ixQMgrAqmIfWordRead (regAddress, qStatusWords);    }}/* * This function check if the status for a queue has changed between * 2 snapshots and if it has, that the status matches a particular * value after masking. */IX_QMGR_AQMIF_INLINE BOOLixQMgrAqmIfQStatusCheck (UINT32 *oldQStatusWords,			 UINT32 *newQStatusWords,			 unsigned int statusWordOffset,			 			 UINT32 checkValue,			 UINT32 mask){    if (((oldQStatusWords[statusWordOffset] & mask) != 	 (newQStatusWords[statusWordOffset] & mask)) &&	((newQStatusWords[statusWordOffset] & mask) == checkValue))    {	return TRUE;    }    return FALSE;}/* * The AQM interrupt register contains a bit for each AQM queue * specifying the queue (s) that cause an interrupt to fire. This * function is called by IxQMgrDispatcher component. */IX_QMGR_AQMIF_INLINE voidixQMgrAqmIfQInterruptRegRead (IxQMgrDispatchGroup group, 			      UINT32 *regVal){    volatile UINT32 *regAddress;    if (group == IX_QMGR_QUELOW_GROUP)    {	regAddress = (UINT32*)(aqmBaseAddress +			       IX_QMGR_QINTREG0_OFFSET);    }    else    {	regAddress = (UINT32*)(aqmBaseAddress +			       IX_QMGR_QINTREG1_OFFSET);    }    ixQMgrAqmIfWordRead (regAddress, regVal);}/* * The AQM interrupt enable register contains a bit for each AQM queue. * This function reads the interrupt enable register. This * function is called by IxQMgrDispatcher component. */IX_QMGR_AQMIF_INLINE voidixQMgrAqmIfQInterruptEnableRegRead (IxQMgrDispatchGroup group, 			            UINT32 *regVal){    volatile UINT32 *regAddress;    if (group == IX_QMGR_QUELOW_GROUP)    {	regAddress = (UINT32*)(aqmBaseAddress +			       IX_QMGR_QUEIEREG0_OFFSET);    }    else    {	regAddress = (UINT32*)(aqmBaseAddress +			       IX_QMGR_QUEIEREG1_OFFSET);    }    ixQMgrAqmIfWordRead (regAddress, regVal);}/* * This inline function will read the status bit of a queue * specified by qId. If reset is TRUE the bit is cleared. */IX_QMGR_AQMIF_INLINE BOOLixQMgrAqmIfRegisterBitCheck (IxQMgrQId qId, 			     UINT32 registerBaseAddrOffset,			     unsigned queuesPerRegWord,			     unsigned relativeBitOffset,			     BOOL reset){    UINT32 actualBitOffset;    volatile UINT32 *registerAddress;    UINT32 registerWord;    /*     * Calculate the registerAddress     * multiple queues split accross registers     */    registerAddress = (UINT32*)(aqmBaseAddress +    				registerBaseAddrOffset +    				((qId / queuesPerRegWord) *    				 IX_QMGR_NUM_BYTES_PER_WORD));    /*     * Get the status word     */    ixQMgrAqmIfWordRead (registerAddress, &registerWord);        /*     * Calculate the actualBitOffset     * status for multiple queues stored in one register     */    actualBitOffset = (relativeBitOffset + 1) <<	((qId & (queuesPerRegWord - 1)) * (BITS_PER_WORD / queuesPerRegWord));    /* Check if the status bit is set */    if (registerWord & actualBitOffset)    {	/* Clear the bit if reset */	if (reset)	{	    ixQMgrAqmIfWordWrite (registerAddress, registerWord & (~actualBitOffset));	}	return TRUE;    }    /* Bit not set */    return FALSE;}/* * @ingroup IxQmgrAqmIfAPI * * @brief Read the underflow status of a queue  * * This inline function will read the underflow status of a queue * specified by qId. *  */IX_QMGR_AQMIF_INLINE BOOLixQMgrAqmIfUnderflowCheck (IxQMgrQId qId){    if (qId < IX_QMGR_MIN_QUEUPP_QID)    {	return (ixQMgrAqmIfRegisterBitCheck (qId,					     IX_QMGR_QUEUOSTAT0_OFFSET,					     IX_QMGR_QUEUOSTAT_NUM_QUE_PER_WORD,					     IX_QMGR_UNDERFLOW_BIT_OFFSET,					     TRUE/*reset*/));    }    else    {	/* Qs 32-63 have no underflow status */	return FALSE;    }}/* * This inline function will read the overflow status of a queue * specified by qId. */IX_QMGR_AQMIF_INLINE BOOLixQMgrAqmIfOverflowCheck (IxQMgrQId qId){    if (qId < IX_QMGR_MIN_QUEUPP_QID)    {	return (ixQMgrAqmIfRegisterBitCheck (qId,					     IX_QMGR_QUEUOSTAT0_OFFSET,					     IX_QMGR_QUEUOSTAT_NUM_QUE_PER_WORD,					     IX_QMGR_OVERFLOW_BIT_OFFSET,					     TRUE/*reset*/));    }    else    {	/* Qs 32-63 have no overflow status */	return FALSE;    }}/* * This inline function will read the status bits of a queue * specified by qId. */IX_QMGR_AQMIF_INLINE UINT32ixQMgrAqmIfQRegisterBitsRead (IxQMgrQId qId, 			      UINT32 registerBaseAddrOffset,			      unsigned queuesPerRegWord){    volatile UINT32 *registerAddress;    UINT32 registerWord;    UINT32 statusBitsMask;    UINT32 bitsPerQueue;    bitsPerQueue = BITS_PER_WORD / queuesPerRegWord;    /*     * Calculate the registerAddress     * multiple queues split accross registers     */    registerAddress = (UINT32*)(aqmBaseAddress +				registerBaseAddrOffset +				((qId / queuesPerRegWord) *				 IX_QMGR_NUM_BYTES_PER_WORD));    /*     * Read the status word     */    ixQMgrAqmIfWordRead (registerAddress, &registerWord);        /*     * Calculate the mask for the status bits for this queue.     */    statusBitsMask = ((1 << bitsPerQueue) - 1);    /*     * Shift the status word so it is right justified     */        registerWord >>= ((qId & (queuesPerRegWord - 1)) * bitsPerQueue);    /*     * Mask out all bar the status bits for this queue     */    return (registerWord &= statusBitsMask);}/* * This function is called by IxQMgrDispatcher to set the contents of * the AQM interrupt register. */IX_QMGR_AQMIF_INLINE voidixQMgrAqmIfQInterruptRegWrite (IxQMgrDispatchGroup group, 			       UINT32 reg){    volatile UINT32 *address;    if (group == IX_QMGR_QUELOW_GROUP)    {	address = (UINT32*)(aqmBaseAddress +			    IX_QMGR_QINTREG0_OFFSET);    }    else    {	address = (UINT32*)(aqmBaseAddress +			    IX_QMGR_QINTREG1_OFFSET);    }    ixQMgrAqmIfWordWrite (address, reg);}/* * Read the status of a queue in the range 0-31. * * This function is used by other QMgr components to read the * status of the queue specified by qId. */IX_QMGR_AQMIF_INLINE voidixQMgrAqmIfQueLowStatRead (IxQMgrQId qId,			   IxQMgrQStatus *status){    /* Read the general status bits */    *status = ixQMgrAqmIfQRegisterBitsRead (qId,					    IX_QMGR_QUELOWSTAT0_OFFSET,					    IX_QMGR_QUELOWSTAT_NUM_QUE_PER_WORD);}/* * This function will read the status of the queue specified * by qId. */IX_QMGR_AQMIF_INLINE voidixQMgrAqmIfQueUppStatRead (IxQMgrQId qId,			   IxQMgrQStatus *status){    /* Reset the status bits */    *status = 0;    /*      * Check if the queue is nearly empty,     * N.b. QUPP stat register contains status for regs 32-63 at each     *      bit position so subtract 32 to get bit offset     */    if (ixQMgrAqmIfRegisterBitCheck ((qId - IX_QMGR_MIN_QUEUPP_QID),				     IX_QMGR_QUEUPPSTAT0_OFFSET,				     IX_QMGR_QUEUPPSTAT_NUM_QUE_PER_WORD,				     0/*relativeBitOffset*/,				     FALSE/*!reset*/))    {	*status |= IX_QMGR_Q_STATUS_NE_BIT_MASK;    }    /*      * Check if the queue is full,     * N.b. QUPP stat register contains status for regs 32-63 at each     *      bit position so subtract 32 to get bit offset     */    if (ixQMgrAqmIfRegisterBitCheck ((qId - IX_QMGR_MIN_QUEUPP_QID),				     IX_QMGR_QUEUPPSTAT1_OFFSET,				     IX_QMGR_QUEUPPSTAT_NUM_QUE_PER_WORD,				     0/*relativeBitOffset*/,				     FALSE/*!reset*/))    {	*status |= IX_QMGR_Q_STATUS_F_BIT_MASK;    }}/* * This function is used by other QMgr components to read the * status of the queue specified by qId. */IX_QMGR_AQMIF_INLINE voidixQMgrAqmIfQueStatRead (IxQMgrQId qId, 			IxQMgrQStatus *qStatus){    if (qId < IX_QMGR_MIN_QUEUPP_QID)    {	ixQMgrAqmIfQueLowStatRead (qId, qStatus);    }    else    {	ixQMgrAqmIfQueUppStatRead (qId, qStatus);    }}/* * This function performs a mod division */IX_QMGR_AQMIF_INLINE unsignedixQMgrAqmIfPow2NumDivide (unsigned numerator, 			  unsigned denominator){    /* Number is evenly divisable by 2 */    return (numerator >> ixQMgrAqmIfLog2 (denominator));}/* Restore IX_COMPONENT_NAME */#undef IX_COMPONENT_NAME#define IX_COMPONENT_NAME IX_QMGR_AQMIF_SAVED_COMPONENT_NAME#endif/*IXQMGRAQMIF_P_H*/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一电影网| 91片在线免费观看| 久久精品国产亚洲a| 三级久久三级久久久| 亚洲r级在线视频| 亚洲成国产人片在线观看| 午夜电影网亚洲视频| 免费在线成人网| 美国av一区二区| 精品亚洲aⅴ乱码一区二区三区| 麻豆久久久久久久| 精品一区二区三区在线观看国产| 韩国av一区二区三区在线观看| 韩国精品主播一区二区在线观看| 国产精品一区二区三区99| 豆国产96在线|亚洲| 97精品国产97久久久久久久久久久久 | 国产精品视频一区二区三区不卡| 久久久国产精品不卡| 国产精品美女视频| 亚洲精品一二三四区| 舔着乳尖日韩一区| 久久精品国产99国产| 国产精品91xxx| 波多野结衣视频一区| 色哦色哦哦色天天综合| 欧美日韩国产成人在线免费| 欧美一区二区精美| 国产欧美一区二区精品忘忧草| 中文字幕第一区二区| 亚洲美女免费视频| 偷拍一区二区三区| 国内外精品视频| 97精品久久久久中文字幕 | 日韩欧美国产麻豆| 欧美国产日韩一二三区| 亚洲一区二区三区自拍| 免费成人你懂的| 成人免费看视频| 在线中文字幕不卡| 日韩欧美成人一区二区| 亚洲欧洲成人自拍| 丝袜亚洲精品中文字幕一区| 国产激情一区二区三区四区| 欧亚洲嫩模精品一区三区| 日韩精品一区二区三区视频在线观看| 国产欧美日韩激情| 亚洲国产美女搞黄色| 国产一区二区中文字幕| 一本久久a久久免费精品不卡| 69久久夜色精品国产69蝌蚪网| 久久久亚洲高清| 亚洲国产乱码最新视频| 国产一区二区三区久久悠悠色av | 精品国产伦理网| 亚洲精品乱码久久久久久久久 | 国产精品亚洲人在线观看| 色素色在线综合| 久久色视频免费观看| 一区二区三区四区激情| 狠狠色伊人亚洲综合成人| 91搞黄在线观看| 久久久久九九视频| 无吗不卡中文字幕| 99麻豆久久久国产精品免费| 日韩视频国产视频| 一区二区三区视频在线观看| 国产一区二区不卡| 欧美精品1区2区3区| 亚洲精品欧美激情| 成人免费视频一区二区| 日韩欧美国产综合一区| 亚洲超碰精品一区二区| 99久久精品国产麻豆演员表| 久久久精品欧美丰满| 免费久久99精品国产| 欧美三级电影精品| 亚洲欧美成aⅴ人在线观看 | 日韩一区二区三区视频| 一区二区成人在线视频| 成人午夜在线视频| 久久一日本道色综合| 日韩影院免费视频| 欧美色成人综合| 亚洲少妇最新在线视频| 国产精品资源在线| 精品国产伦一区二区三区观看方式| 亚洲成年人影院| 欧美亚洲丝袜传媒另类| 亚洲男人的天堂一区二区| 成人av在线资源| 国产精品污网站| 国产.欧美.日韩| 国产香蕉久久精品综合网| 国产一区二区三区免费观看| 精品国产1区二区| 久久69国产一区二区蜜臀| 欧美一区二区三区系列电影| 视频一区国产视频| 91精品国产91久久久久久一区二区 | 欧美高清一级片在线观看| 国产又黄又大久久| 久久久久久夜精品精品免费| 久久激情五月激情| 精品国免费一区二区三区| 青青草国产精品97视觉盛宴| 欧美日韩1234| 日韩高清不卡一区二区三区| 4438x成人网最大色成网站| 日韩精品三区四区| 日韩视频一区在线观看| 九九久久精品视频| 精品国产欧美一区二区| 韩国av一区二区三区在线观看| 久久综合色一综合色88| 国产精品夜夜嗨| 国产欧美日韩激情| 91麻豆国产福利在线观看| 亚洲精选在线视频| 欧美日韩久久久| 日本不卡一二三| 欧美精品一区二区三区四区 | 精品国产免费人成电影在线观看四季| 久久激情五月激情| 日本一区二区高清| 91黄视频在线| 亚洲bt欧美bt精品777| 精品卡一卡二卡三卡四在线| 国产suv精品一区二区6| 亚洲精品菠萝久久久久久久| 欧美性感一区二区三区| 免费高清在线视频一区·| 久久精品一区八戒影视| 91色在线porny| 日韩二区在线观看| 精品久久一区二区三区| 成人av高清在线| 亚洲国产精品久久一线不卡| 日韩一区二区三区av| 国产91精品在线观看| 亚洲精品久久嫩草网站秘色| 欧美一区二区三区在线视频| 国产成人在线观看免费网站| 亚洲午夜久久久久久久久电影院 | 亚洲欧洲日本在线| 欧美日本在线视频| 成人影视亚洲图片在线| 亚洲国产美国国产综合一区二区| 精品欧美一区二区三区精品久久| 972aa.com艺术欧美| 理论片日本一区| **网站欧美大片在线观看| 欧美丰满美乳xxx高潮www| 国产电影精品久久禁18| 亚洲制服丝袜在线| 欧美激情自拍偷拍| 69堂成人精品免费视频| 成人免费高清在线观看| 日产精品久久久久久久性色| 最新日韩在线视频| 欧美成人一区二区| 在线看国产一区二区| 国产乱人伦偷精品视频不卡 | 成人av免费在线播放| 蜜臀久久99精品久久久久久9| 国产精品久久久久久久久晋中 | 亚洲欧洲日韩在线| 精品国产乱码久久久久久久 | 亚洲精品免费看| 久久精品日韩一区二区三区| 欧美日韩成人综合| 99久久夜色精品国产网站| 国产一区二区三区精品欧美日韩一区二区三区 | 日本不卡一区二区| 一区二区三区四区高清精品免费观看| 久久久一区二区三区捆绑**| 9191精品国产综合久久久久久| 成人动漫一区二区三区| 久久99精品久久久久久国产越南| 亚洲午夜国产一区99re久久| 国产精品高潮呻吟| 久久久亚洲高清| 欧美va在线播放| 9191久久久久久久久久久| 在线观看亚洲一区| 一本一道综合狠狠老| jvid福利写真一区二区三区| 国产综合久久久久影院| 日本三级韩国三级欧美三级| 一区二区三区影院| 亚洲视频一区二区在线| 国产精品国产三级国产普通话蜜臀| 精品国产免费一区二区三区四区 | 久久久99精品久久| 日韩精品一区二区三区视频播放| 69p69国产精品| 欧美片网站yy| 欧美精品高清视频| 欧美日韩精品一区视频| 欧美视频在线观看一区二区|