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

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

?? xemac_polled.c

?? gumstiz u-boot loader in linux
?? 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一区二区三区免费野_久草精品视频
亚洲国产成人tv| 亚洲欧美一区二区三区极速播放 | 91亚洲永久精品| 国产伦理精品不卡| 国产一级精品在线| 国产激情一区二区三区四区| 国产美女娇喘av呻吟久久| 国产在线一区观看| 高清av一区二区| 色哟哟国产精品| 精品噜噜噜噜久久久久久久久试看| 91精品一区二区三区久久久久久 | 4438亚洲最大| 欧美一区二区三区在线观看| 日韩欧美在线网站| 久久久久久久久久久久久久久99| 久久久www成人免费无遮挡大片| 国产欧美精品国产国产专区| 国产精品久久久久永久免费观看 | 香蕉久久夜色精品国产使用方法| 亚洲成人久久影院| 美女mm1313爽爽久久久蜜臀| 国产精品一区二区无线| 色综合久久综合中文综合网| 欧美剧情电影在线观看完整版免费励志电影 | 老汉av免费一区二区三区| 国产乱码字幕精品高清av| 国产成人免费在线观看不卡| 99精品热视频| 91麻豆精品国产无毒不卡在线观看| 精品国精品国产| 国产精品成人免费| 天堂成人国产精品一区| 国产一区在线观看麻豆| 91丨九色丨尤物| 精品国产亚洲在线| 亚洲自拍都市欧美小说| 韩国av一区二区三区四区| a美女胸又www黄视频久久| 欧美精品粉嫩高潮一区二区| 欧美激情综合网| 亚洲电影欧美电影有声小说| 国产盗摄一区二区| 6080日韩午夜伦伦午夜伦| 国产精品视频麻豆| 精品一区二区国语对白| 一本色道久久综合亚洲aⅴ蜜桃| 日韩一区二区在线播放| 国产精品电影一区二区| 青青草成人在线观看| 91性感美女视频| 久久免费电影网| 偷窥国产亚洲免费视频| 97se亚洲国产综合自在线不卡| 日韩女优av电影在线观看| 亚洲激情综合网| 99久久久久免费精品国产| 久久中文娱乐网| 久久精品久久久精品美女| 在线观看免费亚洲| 中文字幕在线观看不卡| 国产乱码精品一区二区三区忘忧草| 91精品欧美综合在线观看最新 | 日韩精品1区2区3区| 91亚洲精品一区二区乱码| 国产精品色一区二区三区| 久久av中文字幕片| 日韩一区二区三区在线| 午夜a成v人精品| 欧美性高清videossexo| 一区二区三区不卡视频| 91老师国产黑色丝袜在线| 国产色综合久久| 国产成人自拍网| 日本一区二区视频在线观看| 国模少妇一区二区三区| 久久久夜色精品亚洲| 国产美女一区二区三区| 国产亚洲视频系列| 丰满少妇在线播放bd日韩电影| 久久久久久亚洲综合影院红桃| 捆绑调教一区二区三区| www一区二区| 国产高清精品在线| 国产精品久久久久毛片软件| 99re成人精品视频| 一区二区三区不卡视频在线观看| 欧美三级电影在线观看| 三级欧美在线一区| 精品久久人人做人人爱| 国产成人日日夜夜| 亚洲激情欧美激情| 欧美一级在线视频| 国产九色精品成人porny| 中文字幕av一区二区三区 | 亚洲免费在线播放| 欧美午夜电影一区| 日韩**一区毛片| 久久精品在这里| 91色porny蝌蚪| 午夜欧美一区二区三区在线播放| 91精品国产福利在线观看| 久99久精品视频免费观看| 久久久久久久久久久久久女国产乱| 顶级嫩模精品视频在线看| 亚洲免费伊人电影| 精品国产成人在线影院| 不卡电影一区二区三区| 天天操天天干天天综合网| 26uuu精品一区二区| 色老头久久综合| 久久99精品久久久久久动态图| 国产精品―色哟哟| 欧美一级xxx| 91日韩精品一区| 精品综合免费视频观看| 亚洲人成人一区二区在线观看| 91精品视频网| 91蜜桃网址入口| 黑人巨大精品欧美黑白配亚洲| 亚洲欧美激情一区二区| 精品粉嫩超白一线天av| 欧美在线观看一二区| 国产一区二区三区四区五区美女| 亚洲男帅同性gay1069| 精品国产乱码久久久久久免费 | 美女一区二区视频| 日韩美女视频一区| 国产日韩一级二级三级| 欧美乱妇15p| 色婷婷亚洲精品| 成人久久久精品乱码一区二区三区| 免费在线观看日韩欧美| 亚洲精品成人少妇| 国产精品国产三级国产aⅴ无密码| 欧美顶级少妇做爰| 欧美午夜寂寞影院| 色综合久久中文综合久久97| 国产成人免费在线观看不卡| 极品瑜伽女神91| 日韩专区欧美专区| 亚洲国产成人精品视频| 亚洲男人天堂一区| 亚洲久草在线视频| 亚洲色图一区二区三区| 国产精品你懂的在线| 久久男人中文字幕资源站| www国产亚洲精品久久麻豆| 欧美日本一区二区在线观看| 在线日韩一区二区| 99久久精品费精品国产一区二区| 国产成人精品综合在线观看| 狠狠色综合日日| 国产一区二区导航在线播放| 久久aⅴ国产欧美74aaa| 国产一区二区在线影院| 精东粉嫩av免费一区二区三区| 国产一二精品视频| 成人午夜视频免费看| 91久久精品午夜一区二区| 色乱码一区二区三区88| 欧美日韩亚洲另类| 337p亚洲精品色噜噜狠狠| 欧美一级理论性理论a| 欧美一区二区视频在线观看| 精品91自产拍在线观看一区| 久久久不卡网国产精品二区 | 一本一道久久a久久精品综合蜜臀| 91浏览器在线视频| 欧美丰满高潮xxxx喷水动漫 | 成人免费视频播放| 99精品欧美一区二区三区小说| 91美女片黄在线观看91美女| 欧美日韩视频第一区| 欧美一区二区高清| 久久精品视频在线免费观看 | 亚洲国产日韩精品| 久久草av在线| 91丨porny丨蝌蚪视频| 欧美日韩专区在线| 精品国产百合女同互慰| 亚洲欧美日韩综合aⅴ视频| 天天色 色综合| 成人影视亚洲图片在线| 欧美性大战久久久| 久久久久久久久久久久电影| 亚洲精品videosex极品| 精品一区二区av| 色综合一区二区| 日韩一级免费观看| 日韩美女视频19| 精品一区二区三区不卡 | 秋霞电影网一区二区| 国产成人福利片| 欧美日韩一区三区| 国产日韩在线不卡| 日韩av不卡一区二区| 色综合久久88色综合天天免费| 日韩欧美一二区| 亚洲图片欧美色图|