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

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

?? xemac_polled.c

?? u-boot1.3.0的原碼,從配了網絡驅動和FLASH的驅動,并該用ESC竟如
?? C
?? 第 1 頁 / 共 2 頁
字號:
	 * Overrun errors	 */	if (IntrStatus & (XEM_EIR_XMIT_SFIFO_OVER_MASK |			  XEM_EIR_XMIT_LFIFO_OVER_MASK)) {		InstancePtr->Stats.XmitOverrunErrors++;		InstancePtr->Stats.FifoErrors++;		return XST_FIFO_ERROR;	}	/*	 * Underrun errors	 */	if (IntrStatus & (XEM_EIR_XMIT_SFIFO_UNDER_MASK |			  XEM_EIR_XMIT_LFIFO_UNDER_MASK)) {		InstancePtr->Stats.XmitUnderrunErrors++;		InstancePtr->Stats.FifoErrors++;		return XST_FIFO_ERROR;	}	/*	 * Clear the interrupt status register of transmit statuses	 */	XIIF_V123B_WRITE_IISR(InstancePtr->BaseAddress,			      IntrStatus & XEM_EIR_XMIT_ALL_MASK);	/*	 * Collision errors are stored in the transmit status register	 * instead of the interrupt status register	 */	if (XmitStatus & XEM_TSR_EXCESS_DEFERRAL_MASK) {		InstancePtr->Stats.XmitExcessDeferral++;		return XST_EMAC_COLLISION_ERROR;	}	if (XmitStatus & XEM_TSR_LATE_COLLISION_MASK) {		InstancePtr->Stats.XmitLateCollisionErrors++;		return XST_EMAC_COLLISION_ERROR;	}	return XST_SUCCESS;}/*****************************************************************************//**** Receive an Ethernet frame in polled mode. The device/driver must be in polled* mode before calling this function. The driver receives the frame directly* from the MAC's packet FIFO. This is a non-blocking receive, in that if there* is no frame ready to be received at the device, the function returns with an* error. The MAC's error status is not checked, so statistics are not updated* for polled receive. The buffer into which the frame will be received must be* word-aligned.** @param InstancePtr is a pointer to the XEmac instance to be worked on.* @param BufPtr is a pointer to a word-aligned buffer into which the received*        Ethernet frame will be copied.* @param ByteCountPtr is both an input and an output parameter. It is a pointer*        to a 32-bit word that contains the size of the buffer on entry into the*        function and the size the received frame on return from the function.** @return** - XST_SUCCESS if the frame was sent successfully* - XST_DEVICE_IS_STOPPED if the device has not yet been started* - XST_NOT_POLLED if the device is not in polled mode* - XST_NO_DATA if there is no frame to be received from the FIFO* - XST_BUFFER_TOO_SMALL if the buffer to receive the frame is too small for*   the frame waiting in the FIFO.** @note** Input buffer must be big enough to hold the largest Ethernet frame. Buffer* must also be 32-bit aligned.** @internal** The EMAC uses FIFOs behind its length and status registers. For this reason,* it is important to keep the length, status, and data FIFOs in sync when* reading or writing to them.*******************************************************************************/XStatusXEmac_PollRecv(XEmac * InstancePtr, u8 * BufPtr, u32 * ByteCountPtr){	XStatus Result;	u32 PktLength;	u32 IntrStatus;	XASSERT_NONVOID(InstancePtr != NULL);	XASSERT_NONVOID(BufPtr != NULL);	XASSERT_NONVOID(ByteCountPtr != NULL);	XASSERT_NONVOID(InstancePtr->IsReady == XCOMPONENT_IS_READY);	/*	 * Be sure the device is configured for polled mode and it is started	 */	if (!InstancePtr->IsPolled) {		return XST_NOT_POLLED;	}	if (InstancePtr->IsStarted != XCOMPONENT_IS_STARTED) {		return XST_DEVICE_IS_STOPPED;	}	/*	 * Make sure the buffer is big enough to hold the maximum frame size.	 * We need to do this because as soon as we read the MAC's packet length	 * register, which is actually a FIFO, we remove that length from the	 * FIFO.  We do not want to read the length FIFO without also reading the	 * data FIFO since this would get the FIFOs out of sync.  So we have to	 * make this restriction.	 */	if (*ByteCountPtr < XEM_MAX_FRAME_SIZE) {		return XST_BUFFER_TOO_SMALL;	}	/*	 * First check for packet FIFO deadlock and return an error if it has	 * occurred. A reset by the caller is necessary to correct this problem.	 */	if (XPF_V100B_IS_DEADLOCKED(&InstancePtr->RecvFifo)) {		InstancePtr->Stats.FifoErrors++;		return XST_FIFO_ERROR;	}	/*	 * Get the interrupt status to know what happened (whether an error occurred	 * and/or whether frames have been received successfully). When clearing the	 * intr status register, clear only statuses that pertain to receive.	 */	IntrStatus = XIIF_V123B_READ_IISR(InstancePtr->BaseAddress);	XIIF_V123B_WRITE_IISR(InstancePtr->BaseAddress,			      IntrStatus & XEM_EIR_RECV_ALL_MASK);	/*	 * Check receive errors and bump statistics so the caller will have a clue	 * as to why data may not have been received. We continue on if an error	 * occurred since there still may be frames that were received successfully.	 */	if (IntrStatus & (XEM_EIR_RECV_LFIFO_OVER_MASK |			  XEM_EIR_RECV_DFIFO_OVER_MASK)) {		InstancePtr->Stats.RecvOverrunErrors++;		InstancePtr->Stats.FifoErrors++;	}	if (IntrStatus & XEM_EIR_RECV_LFIFO_UNDER_MASK) {		InstancePtr->Stats.RecvUnderrunErrors++;		InstancePtr->Stats.FifoErrors++;	}	/*	 * General receive errors	 */	if (IntrStatus & XEM_EIR_RECV_ERROR_MASK) {		if (IntrStatus & XEM_EIR_RECV_MISSED_FRAME_MASK) {			InstancePtr->Stats.RecvMissedFrameErrors =			    XIo_In32(InstancePtr->BaseAddress +				     XEM_RMFC_OFFSET);		}		if (IntrStatus & XEM_EIR_RECV_COLLISION_MASK) {			InstancePtr->Stats.RecvCollisionErrors =			    XIo_In32(InstancePtr->BaseAddress + XEM_RCC_OFFSET);		}		if (IntrStatus & XEM_EIR_RECV_FCS_ERROR_MASK) {			InstancePtr->Stats.RecvFcsErrors =			    XIo_In32(InstancePtr->BaseAddress +				     XEM_RFCSEC_OFFSET);		}		if (IntrStatus & XEM_EIR_RECV_LEN_ERROR_MASK) {			InstancePtr->Stats.RecvLengthFieldErrors++;		}		if (IntrStatus & XEM_EIR_RECV_SHORT_ERROR_MASK) {			InstancePtr->Stats.RecvShortErrors++;		}		if (IntrStatus & XEM_EIR_RECV_LONG_ERROR_MASK) {			InstancePtr->Stats.RecvLongErrors++;		}		if (IntrStatus & XEM_EIR_RECV_ALIGN_ERROR_MASK) {			InstancePtr->Stats.RecvAlignmentErrors =			    XIo_In32(InstancePtr->BaseAddress +				     XEM_RAEC_OFFSET);		}	}	/*	 * Before reading from the length FIFO, make sure the length FIFO is not	 * empty. We could cause an underrun error if we try to read from an	 * empty FIFO.	 */	if ((IntrStatus & XEM_EIR_RECV_DONE_MASK) == 0) {		return XST_NO_DATA;	}	/*	 * Determine, from the MAC, the length of the next packet available	 * in the data FIFO (there should be a non-zero length here)	 */	PktLength = XIo_In32(InstancePtr->BaseAddress + XEM_RPLR_OFFSET);	if (PktLength == 0) {		return XST_NO_DATA;	}	/*	 * Write the RECV_DONE bit in the status register to clear it. This bit	 * indicates the RPLR is non-empty, and we know it's set at this point.	 * We clear it so that subsequent entry into this routine will reflect the	 * current status. This is done because the non-empty bit is latched in the	 * IPIF, which means it may indicate a non-empty condition even though	 * there is something in the FIFO.	 */	XIIF_V123B_WRITE_IISR(InstancePtr->BaseAddress, XEM_EIR_RECV_DONE_MASK);	/*	 * We assume that the MAC never has a length bigger than the largest	 * Ethernet frame, so no need to make another check here.	 */	/*	 * This is a non-blocking read. The FIFO returns an error if there is	 * not at least the requested amount of data in the FIFO.	 */	Result =	    XPacketFifoV100b_Read(&InstancePtr->RecvFifo, BufPtr, PktLength);	if (Result != XST_SUCCESS) {		return Result;	}	InstancePtr->Stats.RecvFrames++;	InstancePtr->Stats.RecvBytes += PktLength;	*ByteCountPtr = PktLength;	return XST_SUCCESS;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新国产の精品合集bt伙计| 成人av资源在线观看| 国产成人在线看| 色综合天天综合色综合av| 日韩欧美中文字幕公布| 一区二区三区在线免费| 国产高清无密码一区二区三区| 在线播放欧美女士性生活| 亚洲欧美在线另类| 国产一区91精品张津瑜| 欧美一区二区久久久| 亚洲影视在线观看| 色综合欧美在线视频区| 国产精品婷婷午夜在线观看| 国产毛片一区二区| 欧美电影免费观看高清完整版在线| 亚洲一级二级三级在线免费观看| caoporm超碰国产精品| 久久久久亚洲综合| 国产高清精品在线| 2021中文字幕一区亚洲| 韩国av一区二区三区四区| 91极品视觉盛宴| 亚洲色图欧美激情| 色一情一伦一子一伦一区| 国产精品精品国产色婷婷| 国产成人av福利| 久久无码av三级| 国产美女娇喘av呻吟久久| 久久新电视剧免费观看| 国产精一品亚洲二区在线视频| 精品国产乱码久久久久久图片| 亚洲第一久久影院| 6080日韩午夜伦伦午夜伦| 污片在线观看一区二区 | 五月天亚洲精品| 欧美日韩激情在线| 亚洲一区二区精品久久av| 欧美日韩国产一级片| 五月婷婷综合网| 91精品国产欧美一区二区成人| 偷拍与自拍一区| 91精品国产综合久久精品麻豆| 日韩av二区在线播放| 精品三级av在线| 国内精品久久久久影院色| 久久众筹精品私拍模特| 成人免费观看av| 亚洲一区免费视频| 精品欧美黑人一区二区三区| 国产成人综合自拍| 最新不卡av在线| 欧美一区二区精美| 国产成人免费高清| 一区二区三区在线视频观看58| 欧美日韩午夜精品| 国模冰冰炮一区二区| 中文字幕一区二区三区精华液 | 国产精品卡一卡二卡三| 在线看不卡av| 韩国v欧美v日本v亚洲v| 亚洲人成精品久久久久久| 欧美一级xxx| av午夜精品一区二区三区| 日韩主播视频在线| 国产精品无码永久免费888| 欧美女孩性生活视频| 国产精品一区二区果冻传媒| 一区二区三区日韩欧美精品| 欧美一区二区三区四区五区| 成人永久免费视频| 天天射综合影视| 国产精品高潮呻吟久久| 91精品欧美久久久久久动漫 | 欧美视频在线不卡| 国产成人综合网| 午夜一区二区三区在线观看| 337p日本欧洲亚洲大胆精品| 欧美午夜精品一区二区蜜桃 | 日本一区二区动态图| 欧美性一级生活| www.亚洲国产| 麻豆久久一区二区| 亚洲精品高清在线观看| 久久精品人人做| 欧美一区三区四区| 日本道精品一区二区三区| 国产九九视频一区二区三区| 青娱乐精品在线视频| 一区二区在线电影| 综合久久久久久久| 国产视频911| 精品国产伦一区二区三区观看体验 | 在线免费不卡电影| 97超碰欧美中文字幕| 国产精品综合网| 全国精品久久少妇| 午夜在线成人av| 亚洲最新视频在线观看| √…a在线天堂一区| 国产精品视频在线看| 久久综合资源网| 久久新电视剧免费观看| 精品免费一区二区三区| 欧美成人高清电影在线| 日韩欧美一区二区在线视频| 91精品国产综合久久久久| 欧美日韩一区在线| 欧美日韩免费观看一区二区三区 | 国产一区二区伦理片| 久久不见久久见中文字幕免费| 天堂成人免费av电影一区| 午夜在线成人av| 日本网站在线观看一区二区三区 | 91精品欧美综合在线观看最新 | 成人免费视频一区| 成a人片国产精品| 99免费精品在线观看| 91麻豆精东视频| 99久久精品国产网站| jlzzjlzz亚洲日本少妇| 99re热视频精品| 在线观看亚洲一区| 欧美性生活大片视频| 欧美另类高清zo欧美| 91精品国产色综合久久ai换脸 | 久久久www免费人成精品| 久久久亚洲欧洲日产国码αv| 久久久精品蜜桃| 国产精品久久久久永久免费观看 | 一本大道久久a久久精二百| 91丨九色丨黑人外教| 欧美视频在线观看一区| 91精品国产综合久久小美女| 精品va天堂亚洲国产| 国产精品日产欧美久久久久| 亚洲图片欧美激情| 亚洲第一搞黄网站| 国产一区二区三区久久久| 成人综合在线视频| 欧美亚洲动漫另类| 久久综合色鬼综合色| 一区精品在线播放| 日韩精彩视频在线观看| 国产曰批免费观看久久久| 99re在线精品| 日韩精品专区在线| 国产精品免费视频观看| 天天色图综合网| 国产成人av福利| 欧美美女一区二区| 国产情人综合久久777777| 一二三区精品福利视频| 国产呦精品一区二区三区网站| 99精品在线观看视频| 欧美成人精品高清在线播放| 亚洲欧美乱综合| 国产精品原创巨作av| 在线观看日韩高清av| 欧美激情中文不卡| 日韩和的一区二区| 99久久精品免费看| 精品91自产拍在线观看一区| 一二三四社区欧美黄| 粉嫩av亚洲一区二区图片| 欧美电影在线免费观看| 中文字幕在线不卡视频| 久久精品久久99精品久久| 色婷婷综合五月| 国产欧美一区二区精品久导航 | 高清不卡一区二区| 欧美一三区三区四区免费在线看| 国产精品久久久久久久久免费相片 | 亚洲精品在线免费观看视频| 亚洲精品国产精华液| 成人性生交大片| 日韩精品一区二区三区中文不卡| 有码一区二区三区| 波多野结衣91| 久久久美女艺术照精彩视频福利播放| 亚洲sss视频在线视频| 91影视在线播放| 国产精品无遮挡| 国产成人精品一区二区三区四区 | 国产激情视频一区二区三区欧美| 欧美视频一区二区三区四区 | 亚洲色图视频免费播放| 国产99久久久国产精品免费看| 欧美不卡一区二区三区四区| 日韩av一区二区三区| 欧美日韩在线三级| 亚洲午夜电影网| 欧美日韩另类一区| 午夜久久久久久电影| 欧美视频精品在线观看| 亚洲图片欧美一区| 欧美日韩另类国产亚洲欧美一级| 亚洲码国产岛国毛片在线| 91在线国内视频| 中日韩av电影|