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

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

?? xemac.c

?? gumstiz u-boot loader in linux
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
	 */	if (InstancePtr->IsStarted != XCOMPONENT_IS_STARTED) {		return XST_DEVICE_IS_STOPPED;	}	/*	 * If configured for scatter-gather DMA, stop the DMA channels. Ignore	 * the XST_DMA_SG_IS_STOPPED return code. There is a critical section	 * here between SgStart and SgStop, and SgStart can be called in interrupt	 * context, so disable interrupts while calling SgStop.	 */	if (XEmac_mIsSgDma(InstancePtr)) {		XBufDescriptor *BdTemp;	/* temporary descriptor pointer */		XIIF_V123B_GINTR_DISABLE(InstancePtr->BaseAddress);		(void) XDmaChannel_SgStop(&InstancePtr->SendChannel, &BdTemp);		(void) XDmaChannel_SgStop(&InstancePtr->RecvChannel, &BdTemp);		XIIF_V123B_GINTR_ENABLE(InstancePtr->BaseAddress);	}	/*	 * Disable the transmitter and receiver. There is no critical section	 * here since this register is not modified during interrupt context.	 */	ControlReg = XIo_In32(InstancePtr->BaseAddress + XEM_ECR_OFFSET);	ControlReg &= ~(XEM_ECR_XMIT_ENABLE_MASK | XEM_ECR_RECV_ENABLE_MASK);	XIo_Out32(InstancePtr->BaseAddress + XEM_ECR_OFFSET, ControlReg);	/*	 * If not in polled mode, disable interrupts for IPIF (includes MAC and	 * DMAs)	 */	if (!InstancePtr->IsPolled) {		XIIF_V123B_GINTR_DISABLE(InstancePtr->BaseAddress);	}	InstancePtr->IsStarted = 0;	return XST_SUCCESS;}/*****************************************************************************//**** Reset the Ethernet MAC. This is a graceful reset in that the device is stopped* first. Resets the DMA channels, the FIFOs, the transmitter, and the receiver.* The PHY is not reset. Any frames in the scatter-gather descriptor lists will* remain in the lists. The side effect of doing this is that after a reset and* following a restart of the device, frames that were in the list before the* reset may be transmitted or received. Reset must only be called after the* driver has been initialized.** The driver is also taken out of polled mode if polled mode was set. The user* is responsbile for re-configuring the driver into polled mode after the* reset if desired.** The configuration after this reset is as follows:*   - Half duplex*   - Disabled transmitter and receiver*   - Enabled PHY (the PHY is not reset)*   - MAC transmitter does pad insertion, FCS insertion, and source address*     overwrite.*   - MAC receiver does not strip padding or FCS*   - Interframe Gap as recommended by IEEE Std. 802.3 (96 bit times)*   - Unicast addressing enabled*   - Broadcast addressing enabled*   - Multicast addressing disabled (addresses are preserved)*   - Promiscuous addressing disabled*   - Default packet threshold and packet wait bound register values for*     scatter-gather DMA operation*   - MAC address of all zeros*   - Non-polled mode** The upper layer software is responsible for re-configuring (if necessary)* and restarting the MAC after the reset. Note that the PHY is not reset. PHY* control is left to the upper layer software. Note also that driver statistics* are not cleared on reset. It is up to the upper layer software to clear the* statistics if needed.** When a reset is required due to an internal error, the driver notifies the* upper layer software of this need through the ErrorHandler callback and* specific status codes.  The upper layer software is responsible for calling* this Reset function and then re-configuring the device.** @param InstancePtr is a pointer to the XEmac instance to be worked on.** @return** None.** @note** None.** @internal** The reset is accomplished by setting the IPIF reset register.  This takes* care of resetting all hardware blocks, including the MAC.*******************************************************************************/voidXEmac_Reset(XEmac * InstancePtr){	XASSERT_VOID(InstancePtr != NULL);	XASSERT_VOID(InstancePtr->IsReady == XCOMPONENT_IS_READY);	/*	 * Stop the device first	 */	(void) XEmac_Stop(InstancePtr);	/*	 * Take the driver out of polled mode	 */	InstancePtr->IsPolled = FALSE;	/*	 * Reset the entire IPIF at once.  If we choose someday to reset each	 * hardware block separately, the reset should occur in the direction of	 * data flow. For example, for the send direction the reset order is DMA	 * first, then FIFO, then the MAC transmitter.	 */	XIIF_V123B_RESET(InstancePtr->BaseAddress);	if (XEmac_mIsSgDma(InstancePtr)) {		/*		 * After reset, configure the scatter-gather DMA packet threshold and		 * packet wait bound registers to default values. Ignore the return		 * values of these functions since they only return error if the device		 * is not stopped.		 */		(void) XEmac_SetPktThreshold(InstancePtr, XEM_SEND,					     XEM_SGDMA_DFT_THRESHOLD);		(void) XEmac_SetPktThreshold(InstancePtr, XEM_RECV,					     XEM_SGDMA_DFT_THRESHOLD);		(void) XEmac_SetPktWaitBound(InstancePtr, XEM_SEND,					     XEM_SGDMA_DFT_WAITBOUND);		(void) XEmac_SetPktWaitBound(InstancePtr, XEM_RECV,					     XEM_SGDMA_DFT_WAITBOUND);	}}/*****************************************************************************//**** Set the MAC address for this driver/device.  The address is a 48-bit value.* The device must be stopped before calling this function.** @param InstancePtr is a pointer to the XEmac instance to be worked on.* @param AddressPtr is a pointer to a 6-byte MAC address.** @return** - XST_SUCCESS if the MAC address was set successfully* - XST_DEVICE_IS_STARTED if the device has not yet been stopped** @note** None.*******************************************************************************/XStatusXEmac_SetMacAddress(XEmac * InstancePtr, u8 * AddressPtr){	u32 MacAddr = 0;	XASSERT_NONVOID(InstancePtr != NULL);	XASSERT_NONVOID(AddressPtr != NULL);	XASSERT_NONVOID(InstancePtr->IsReady == XCOMPONENT_IS_READY);	/*	 * The device must be stopped before setting the MAC address	 */	if (InstancePtr->IsStarted == XCOMPONENT_IS_STARTED) {		return XST_DEVICE_IS_STARTED;	}	/*	 * Set the device station address high and low registers	 */	MacAddr = (AddressPtr[0] << 8) | AddressPtr[1];	XIo_Out32(InstancePtr->BaseAddress + XEM_SAH_OFFSET, MacAddr);	MacAddr = (AddressPtr[2] << 24) | (AddressPtr[3] << 16) |	    (AddressPtr[4] << 8) | AddressPtr[5];	XIo_Out32(InstancePtr->BaseAddress + XEM_SAL_OFFSET, MacAddr);	return XST_SUCCESS;}/*****************************************************************************//**** Get the MAC address for this driver/device.** @param InstancePtr is a pointer to the XEmac instance to be worked on.* @param BufferPtr is an output parameter, and is a pointer to a buffer into*        which the current MAC address will be copied. The buffer must be at*        least 6 bytes.** @return** None.** @note** None.*******************************************************************************/voidXEmac_GetMacAddress(XEmac * InstancePtr, u8 * BufferPtr){	u32 MacAddrHi;	u32 MacAddrLo;	XASSERT_VOID(InstancePtr != NULL);	XASSERT_VOID(BufferPtr != NULL);	XASSERT_VOID(InstancePtr->IsReady == XCOMPONENT_IS_READY);	MacAddrHi = XIo_In32(InstancePtr->BaseAddress + XEM_SAH_OFFSET);	MacAddrLo = XIo_In32(InstancePtr->BaseAddress + XEM_SAL_OFFSET);	BufferPtr[0] = (u8) (MacAddrHi >> 8);	BufferPtr[1] = (u8) MacAddrHi;	BufferPtr[2] = (u8) (MacAddrLo >> 24);	BufferPtr[3] = (u8) (MacAddrLo >> 16);	BufferPtr[4] = (u8) (MacAddrLo >> 8);	BufferPtr[5] = (u8) MacAddrLo;}/******************************************************************************//**** Configure DMA capabilities.** @param InstancePtr is a pointer to the XEmac instance to be worked on.** @return** - XST_SUCCESS  if successful initialization of DMA** @note** None.*******************************************************************************/static XStatusConfigureDma(XEmac * InstancePtr){	XStatus Result;	/*	 * Initialize the DMA channels with their base addresses. We assume	 * scatter-gather DMA is the only possible configuration. Descriptor space	 * will need to be set later by the upper layer.	 */	Result = XDmaChannel_Initialize(&InstancePtr->RecvChannel,					InstancePtr->BaseAddress +					XEM_DMA_RECV_OFFSET);	if (Result != XST_SUCCESS) {		return Result;	}	Result = XDmaChannel_Initialize(&InstancePtr->SendChannel,					InstancePtr->BaseAddress +					XEM_DMA_SEND_OFFSET);	return Result;}/******************************************************************************//**** Configure the send and receive FIFO components with their base addresses* and interrupt masks.  Currently the base addresses are defined constants.** @param InstancePtr is a pointer to the XEmac instance to be worked on.** @return** XST_SUCCESS if successful initialization of the packet FIFOs** @note** None.*******************************************************************************/static XStatusConfigureFifo(XEmac * InstancePtr){	XStatus Result;	/*	 * Return status from the packet FIFOs initialization is ignored since	 * they always return success.	 */	Result = XPacketFifoV100b_Initialize(&InstancePtr->RecvFifo,					     InstancePtr->BaseAddress +					     XEM_PFIFO_RXREG_OFFSET,					     InstancePtr->BaseAddress +					     XEM_PFIFO_RXDATA_OFFSET);	if (Result != XST_SUCCESS) {		return Result;	}	Result = XPacketFifoV100b_Initialize(&InstancePtr->SendFifo,					     InstancePtr->BaseAddress +					     XEM_PFIFO_TXREG_OFFSET,					     InstancePtr->BaseAddress +					     XEM_PFIFO_TXDATA_OFFSET);	return Result;}/******************************************************************************//**** This is a stub for the scatter-gather send and recv callbacks. The stub* is here in case the upper layers forget to set the handlers.** @param CallBackRef is a pointer to the upper layer callback reference* @param BdPtr is a pointer to the first buffer descriptor in a list* @param NumBds is the number of descriptors in the list.** @return** None.** @note** None.*******************************************************************************/static voidStubSgHandler(void *CallBackRef, XBufDescriptor * BdPtr, u32 NumBds){	XASSERT_VOID_ALWAYS();}/******************************************************************************//**** This is a stub for the non-DMA send and recv callbacks.  The stub is here in* case the upper layers forget to set the handlers.** @param CallBackRef is a pointer to the upper layer callback reference** @return** None.** @note** None.*******************************************************************************/static voidStubFifoHandler(void *CallBackRef){	XASSERT_VOID_ALWAYS();}/******************************************************************************//**** This is a stub for the asynchronous error callback.  The stub is here in* case the upper layers forget to set the handler.** @param CallBackRef is a pointer to the upper layer callback reference* @param ErrorCode is the Xilinx error code, indicating the cause of the error** @return** None.** @note** None.*******************************************************************************/static voidStubErrorHandler(void *CallBackRef, XStatus ErrorCode){	XASSERT_VOID_ALWAYS();}/*****************************************************************************//**** Lookup the device configuration based on the unique device ID.  The table* EmacConfigTable contains the configuration info for each device in the system.** @param DeviceId is the unique device ID of the device being looked up.** @return** A pointer to the configuration table entry corresponding to the given* device ID, or NULL if no match is found.** @note** None.*******************************************************************************/XEmac_Config *XEmac_LookupConfig(u16 DeviceId){	XEmac_Config *CfgPtr = NULL;	int i;	for (i = 0; i < XPAR_XEMAC_NUM_INSTANCES; i++) {		if (XEmac_ConfigTable[i].DeviceId == DeviceId) {			CfgPtr = &XEmac_ConfigTable[i];			break;		}	}	return CfgPtr;}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月激情综合网| 秋霞午夜鲁丝一区二区老狼| 欧美日韩久久久| 91麻豆免费在线观看| 国产一区二区不卡老阿姨| 美女网站一区二区| 青娱乐精品视频| 日本在线观看不卡视频| 天天色天天操综合| 日韩va亚洲va欧美va久久| 偷拍亚洲欧洲综合| 偷拍一区二区三区四区| 无码av免费一区二区三区试看 | 99久久99久久精品免费观看| 狠狠色狠狠色综合系列| 国产一区二区在线观看免费| 国产米奇在线777精品观看| 国产精品一区二区91| 国产高清精品久久久久| 黄网站免费久久| 国产成人免费视频精品含羞草妖精| 国产毛片精品一区| 成人在线视频一区| 91一区二区在线观看| 欧美制服丝袜第一页| 欧美日韩免费一区二区三区 | 亚洲主播在线播放| 午夜精品福利一区二区三区蜜桃| 五月婷婷综合在线| 久久国产精品无码网站| 国产精品综合av一区二区国产馆| 国产91富婆露脸刺激对白| 91视频www| 欧美日韩精品福利| 久久精品夜色噜噜亚洲a∨| 欧美经典一区二区三区| 亚洲图片你懂的| 日本欧美一区二区| 国产激情精品久久久第一区二区 | 91久久精品一区二区| 欧美日韩在线精品一区二区三区激情| 欧美日韩一区在线| 久久久99免费| 亚洲一区在线免费观看| 久久av中文字幕片| 91网站最新网址| 欧美草草影院在线视频| **欧美大码日韩| 日本欧美一区二区| 91麻豆福利精品推荐| 欧美一区二区三区免费在线看| 国产欧美日韩卡一| 男女性色大片免费观看一区二区 | 久久激五月天综合精品| av电影在线观看不卡| www激情久久| 国产一区 二区| 中文字幕亚洲一区二区av在线| 日韩精品一区二区三区四区视频| 国产日韩欧美精品一区| 亚洲国产精品综合小说图片区| 国产一区二区三区电影在线观看 | 国产一区三区三区| 色就色 综合激情| 国产女人18水真多18精品一级做| 日韩电影在线观看电影| 91丨九色丨蝌蚪丨老版| 久久亚洲综合色一区二区三区| 亚洲成人资源在线| 色综合一区二区| 久久久91精品国产一区二区精品| 五月婷婷另类国产| 91成人免费网站| 中文字幕一区二区三区蜜月| 国产一区在线精品| 日韩三级高清在线| 天天色 色综合| 欧美在线免费观看亚洲| 亚洲视频一区二区在线观看| 国产精品1区二区.| 欧美精品一区二区三区四区| 日本成人中文字幕| 欧美伦理电影网| 亚洲成人精品一区二区| 色综合久久久久久久久| 中文字幕亚洲电影| www.亚洲免费av| 亚洲免费观看视频| 91麻豆高清视频| 樱花草国产18久久久久| 在线亚洲+欧美+日本专区| 亚洲色图制服丝袜| 一本色道久久综合亚洲精品按摩 | 久久色.com| 久久精品国产亚洲aⅴ| 欧美久久高跟鞋激| 日韩av在线播放中文字幕| 51精品视频一区二区三区| 日韩电影免费在线看| 69堂成人精品免费视频| 免费成人美女在线观看.| 欧美精品日日鲁夜夜添| 免费成人在线播放| 日韩三级精品电影久久久| 激情综合网最新| 国产视频在线观看一区二区三区| 国产大陆a不卡| 中文字幕一区二区三区四区 | 国产69精品久久久久毛片| 欧美韩国日本不卡| 99精品国产热久久91蜜凸| 亚洲精品国产一区二区三区四区在线 | 丁香一区二区三区| 中文字幕一区二区三区四区 | 亚洲精品一区二区在线观看| 国产成人综合在线观看| 亚洲欧美在线观看| 欧美日韩日日摸| 韩国成人精品a∨在线观看| 国产欧美一区二区精品性| 91在线云播放| 日韩电影免费一区| 日本一区二区视频在线观看| 91麻豆国产香蕉久久精品| 青青草国产精品亚洲专区无| 欧美国产一区二区在线观看| 日本久久一区二区三区| 久久99精品网久久| 亚洲精品视频免费看| 精品久久久久久久一区二区蜜臀| 成人视屏免费看| 午夜一区二区三区视频| 国产精品视频yy9299一区| 666欧美在线视频| 97精品超碰一区二区三区| 喷水一区二区三区| 亚洲精品视频免费看| 久久中文娱乐网| 欧美日韩精品福利| 91在线视频免费91| 加勒比av一区二区| 午夜国产精品影院在线观看| 中文一区一区三区高中清不卡| 欧美天堂一区二区三区| 成人免费视频网站在线观看| 奇米777欧美一区二区| 一区二区三区在线观看动漫| 国产日产欧美精品一区二区三区| 9191成人精品久久| 99久久综合精品| 国产在线精品国自产拍免费| 三级欧美在线一区| 亚洲综合色噜噜狠狠| 中文字幕一区在线观看| 国产亚洲一二三区| 精品久久国产字幕高潮| 欧美夫妻性生活| 精品视频一区三区九区| 色老综合老女人久久久| 成人爽a毛片一区二区免费| 精品在线一区二区三区| 日韩高清一区二区| 亚洲va国产va欧美va观看| 亚洲欧美另类久久久精品| 国产精品久久午夜夜伦鲁鲁| 久久亚洲一区二区三区四区| 日韩精品专区在线| 欧美一区二区在线免费播放| 欧美日韩在线三级| 欧美日韩aaa| 7777精品伊人久久久大香线蕉 | 在线欧美日韩国产| a在线欧美一区| 成人午夜精品在线| 懂色av一区二区三区蜜臀| 成人在线视频一区二区| 成人精品国产福利| www.亚洲色图| 色欧美88888久久久久久影院| 99久久99久久免费精品蜜臀| 97久久超碰国产精品电影| 99久久精品国产观看| 91视频免费观看| 欧美艳星brazzers| 欧美日韩国产小视频在线观看| 欧美丝袜第三区| 欧美日韩高清一区二区| 欧美性videosxxxxx| 91精品国产欧美日韩| 日韩欧美久久久| 久久亚洲影视婷婷| 中文字幕一区二区在线观看| 亚洲欧美一区二区三区国产精品| 亚洲欧美国产高清| 亚洲chinese男男1069| 麻豆精品视频在线观看| 国产精品456露脸| 色婷婷久久久久swag精品| 欧美丰满嫩嫩电影| 国产日韩欧美不卡在线|