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

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

?? xdma_channel.h

?? u-boot1.3.0的原碼,從配了網絡驅動和FLASH的驅動,并該用ESC竟如
?? H
字號:
/********************************************************************************     Author: Xilinx, Inc.***     This program is free software; you can redistribute it and/or modify it*     under the terms of the GNU General Public License as published by the*     Free Software Foundation; either version 2 of the License, or (at your*     option) any later version.***     XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A*     COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS*     ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR STANDARD,*     XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION IS FREE*     FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE FOR OBTAINING*     ANY THIRD PARTY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION.*     XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO*     THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY*     WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM*     CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND*     FITNESS FOR A PARTICULAR PURPOSE.***     Xilinx hardware products are not intended for use in life support*     appliances, devices, or systems. Use in such applications is*     expressly prohibited.***     (c) Copyright 2002-2004 Xilinx Inc.*     All rights reserved.***     You should have received a copy of the GNU General Public License along*     with this program; if not, write to the Free Software Foundation, Inc.,*     675 Mass Ave, Cambridge, MA 02139, USA.** FILENAME:** xdma_channel.h** DESCRIPTION:** This file contains the DMA channel component implementation. This component* supports a distributed DMA design in which each device can have it's own* dedicated DMA channel, as opposed to a centralized DMA design.* A device which uses DMA typically contains two DMA channels, one for* sending data and the other for receiving data.** This component is designed to be used as a basic building block for* designing a device driver. It provides registers accesses such that all* DMA processing can be maintained easier, but the device driver designer* must still understand all the details of the DMA channel.** The DMA channel allows a CPU to minimize the CPU interaction required to move* data between a memory and a device.  The CPU requests the DMA channel to* perform a DMA operation and typically continues performing other processing* until the DMA operation completes.  DMA could be considered a primitive form* of multiprocessing such that caching and address translation can be an issue.** Scatter Gather Operations** The DMA channel may support scatter gather operations. A scatter gather* operation automates the DMA channel such that multiple buffers can be* sent or received with minimal software interaction with the hardware.  Buffer* descriptors, contained in the XBufDescriptor component, are used by the* scatter gather operations of the DMA channel to describe the buffers to be* processed.** Scatter Gather List Operations** A scatter gather list may be supported by each DMA channel.  The scatter* gather list allows buffer descriptors to be put into the list by a device* driver which requires scatter gather.  The hardware processes the buffer* descriptors which are contained in the list and modifies the buffer* descriptors to reflect the status of the DMA operations.  The device driver* is notified by interrupt that specific DMA events occur including scatter* gather events.  The device driver removes the completed buffer descriptors* from the scatter gather list to evaluate the status of each DMA operation.** The scatter gather list is created and buffer descriptors are inserted into* the list.  Buffer descriptors are never removed from the list after it's* creation such that a put operation copies from a temporary buffer descriptor* to a buffer descriptor in the list.  Get operations don't copy from the list* to a temporary, but return a pointer to the buffer descriptor in the list.* A buffer descriptor in the list may be locked to prevent it from being* overwritten by a put operation.  This allows the device driver to get a* descriptor from a scatter gather list and prevent it from being overwritten* until the buffer associated with the buffer descriptor has been processed.** Typical Scatter Gather Processing** The following steps illustrate the typical processing to use the* scatter gather features of a DMA channel.** 1. Create a scatter gather list for the DMA channel which puts empty buffer*    descriptors into the list.* 2. Create buffer descriptors which describe the buffers to be filled with* 	 receive data or the buffers which contain data to be sent.* 3. Put buffer descriptors into the DMA channel scatter list such that scatter*    gather operations are requested.* 4. Commit the buffer descriptors in the list such that they are ready to be*    used by the DMA channel hardware.* 5. Start the scatter gather operations of the DMA channel.* 6. Process any interrupts which occur as a result of the scatter gather*    operations or poll the DMA channel to determine the status.** Interrupts** Each DMA channel has the ability to generate an interrupt.  This component* does not perform processing for the interrupt as this processing is typically* tightly coupled with the device which is using the DMA channel.  It is the* responsibility of the caller of DMA functions to manage the interrupt* including connecting to the interrupt and enabling/disabling the interrupt.** Critical Sections** It is the responsibility of the device driver designer to use critical* sections as necessary when calling functions of the DMA channel.  This* component does not use critical sections and it does access registers using* read-modify-write operations.  Calls to DMA functions from a main thread* and from an interrupt context could produce unpredictable behavior such that* the caller must provide the appropriate critical sections.** Address Translation** All addresses of data structures which are passed to DMA functions must* be physical (real) addresses as opposed to logical (virtual) addresses.** Caching** The memory which is passed to the function which creates the scatter gather* list must not be cached such that buffer descriptors are non-cached.  This* is necessary because the buffer descriptors are kept in a ring buffer and* not directly accessible to the caller of DMA functions.** The caller of DMA functions is responsible for ensuring that any data* buffers which are passed to the DMA channel are cache-line aligned if* necessary.** The caller of DMA functions is responsible for ensuring that any data* buffers which are passed to the DMA channel have been flushed from the cache.** The caller of DMA functions is responsible for ensuring that the cache is* invalidated prior to using any data buffers which are the result of a DMA* operation.** Memory Alignment** The addresses of data buffers which are passed to DMA functions must be* 32 bit word aligned since the DMA hardware performs 32 bit word transfers.** Mutual Exclusion** The functions of the DMA channel are not thread safe such that the caller* of all DMA functions is responsible for ensuring mutual exclusion for a* DMA channel.  Mutual exclusion across multiple DMA channels is not* necessary.** NOTES:** Many of the provided functions which are register accessors don't provide* a lot of error detection. The caller is expected to understand the impact* of a function call based upon the current state of the DMA channel.  This* is done to minimize the overhead in this component.*******************************************************************************/#ifndef XDMA_CHANNEL_H		/* prevent circular inclusions */#define XDMA_CHANNEL_H		/* by using protection macros *//***************************** Include Files *********************************/#include "xdma_channel_i.h"	/* constants shared with buffer descriptor */#include "xbasic_types.h"#include "xstatus.h"#include "xversion.h"#include "xbuf_descriptor.h"/************************** Constant Definitions *****************************//* the following constants provide access to the bit fields of the DMA control * register (DMACR) */#define XDC_DMACR_SOURCE_INCR_MASK	0x80000000UL	/* increment source address */#define XDC_DMACR_DEST_INCR_MASK	0x40000000UL	/* increment dest address */#define XDC_DMACR_SOURCE_LOCAL_MASK 0x20000000UL	/* local source address */#define XDC_DMACR_DEST_LOCAL_MASK	0x10000000UL	/* local dest address */#define XDC_DMACR_SG_DISABLE_MASK	0x08000000UL	/* scatter gather disable */#define XDC_DMACR_GEN_BD_INTR_MASK	0x04000000UL	/* descriptor interrupt */#define XDC_DMACR_LAST_BD_MASK		XDC_CONTROL_LAST_BD_MASK	/* last buffer */															 /*     descriptor  *//* the following constants provide access to the bit fields of the DMA status * register (DMASR) */#define XDC_DMASR_BUSY_MASK			0x80000000UL	/* channel is busy */#define XDC_DMASR_BUS_ERROR_MASK	0x40000000UL	/* bus error occurred */#define XDC_DMASR_BUS_TIMEOUT_MASK	0x20000000UL	/* bus timeout occurred */#define XDC_DMASR_LAST_BD_MASK		XDC_STATUS_LAST_BD_MASK	/* last buffer */														    /* descriptor  */#define XDC_DMASR_SG_BUSY_MASK		0x08000000UL	/* scatter gather is busy *//* the following constants provide access to the bit fields of the interrupt * status register (ISR) and the interrupt enable register (IER), bit masks * match for both registers such that they are named IXR */#define XDC_IXR_DMA_DONE_MASK		0x1UL	/* dma operation done */#define XDC_IXR_DMA_ERROR_MASK	    0x2UL	/* dma operation error */#define XDC_IXR_PKT_DONE_MASK	    0x4UL	/* packet done */#define XDC_IXR_PKT_THRESHOLD_MASK 	0x8UL	/* packet count threshold */#define XDC_IXR_PKT_WAIT_BOUND_MASK 0x10UL	/* packet wait bound reached */#define XDC_IXR_SG_DISABLE_ACK_MASK 0x20UL	/* scatter gather disable						   acknowledge occurred */#define XDC_IXR_SG_END_MASK			0x40UL	/* last buffer descriptor							   disabled scatter gather */#define XDC_IXR_BD_MASK				0x80UL	/* buffer descriptor done *//**************************** Type Definitions *******************************//* * the following structure contains data which is on a per instance basis * for the XDmaChannel component */typedef struct XDmaChannelTag {	XVersion Version;	/* version of the driver */	u32 RegBaseAddress;	/* base address of registers */	u32 IsReady;		/* device is initialized and ready */	XBufDescriptor *PutPtr;	/* keep track of where to put into list */	XBufDescriptor *GetPtr;	/* keep track of where to get from list */	XBufDescriptor *CommitPtr;	/* keep track of where to commit in list */	XBufDescriptor *LastPtr;	/* keep track of the last put in the list */	u32 TotalDescriptorCount;	/* total # of descriptors in the list */	u32 ActiveDescriptorCount;	/* # of descriptors pointing to buffers					   * in the buffer descriptor list */} XDmaChannel;/***************** Macros (Inline Functions) Definitions *********************//************************** Function Prototypes ******************************/XStatus XDmaChannel_Initialize(XDmaChannel * InstancePtr, u32 BaseAddress);u32 XDmaChannel_IsReady(XDmaChannel * InstancePtr);XVersion *XDmaChannel_GetVersion(XDmaChannel * InstancePtr);XStatus XDmaChannel_SelfTest(XDmaChannel * InstancePtr);void XDmaChannel_Reset(XDmaChannel * InstancePtr);/* Control functions */u32 XDmaChannel_GetControl(XDmaChannel * InstancePtr);void XDmaChannel_SetControl(XDmaChannel * InstancePtr, u32 Control);/* Status functions */u32 XDmaChannel_GetStatus(XDmaChannel * InstancePtr);void XDmaChannel_SetIntrStatus(XDmaChannel * InstancePtr, u32 Status);u32 XDmaChannel_GetIntrStatus(XDmaChannel * InstancePtr);void XDmaChannel_SetIntrEnable(XDmaChannel * InstancePtr, u32 Enable);u32 XDmaChannel_GetIntrEnable(XDmaChannel * InstancePtr);/* DMA without scatter gather functions */void XDmaChannel_Transfer(XDmaChannel * InstancePtr,			  u32 * SourcePtr, u32 * DestinationPtr, u32 ByteCount);/* Scatter gather functions */XStatus XDmaChannel_SgStart(XDmaChannel * InstancePtr);XStatus XDmaChannel_SgStop(XDmaChannel * InstancePtr,			   XBufDescriptor ** BufDescriptorPtr);XStatus XDmaChannel_CreateSgList(XDmaChannel * InstancePtr,				 u32 * MemoryPtr, u32 ByteCount);u32 XDmaChannel_IsSgListEmpty(XDmaChannel * InstancePtr);XStatus XDmaChannel_PutDescriptor(XDmaChannel * InstancePtr,				  XBufDescriptor * BufDescriptorPtr);XStatus XDmaChannel_CommitPuts(XDmaChannel * InstancePtr);XStatus XDmaChannel_GetDescriptor(XDmaChannel * InstancePtr,				  XBufDescriptor ** BufDescriptorPtr);/* Packet functions for interrupt collescing */u32 XDmaChannel_GetPktCount(XDmaChannel * InstancePtr);void XDmaChannel_DecrementPktCount(XDmaChannel * InstancePtr);XStatus XDmaChannel_SetPktThreshold(XDmaChannel * InstancePtr, u8 Threshold);u8 XDmaChannel_GetPktThreshold(XDmaChannel * InstancePtr);void XDmaChannel_SetPktWaitBound(XDmaChannel * InstancePtr, u32 WaitBound);u32 XDmaChannel_GetPktWaitBound(XDmaChannel * InstancePtr);#endif				/* end of protection macro */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女久久久| 色欧美乱欧美15图片| 日韩美女视频一区| 精品国产乱码久久久久久免费 | 欧美日韩久久久一区| 不卡av在线网| 国产精品一级在线| 成人aa视频在线观看| 激情综合色播激情啊| 首页欧美精品中文字幕| 亚洲一二三四在线观看| 一区二区视频在线| 亚洲美女视频一区| 亚洲国产精品一区二区久久| 亚洲一级二级三级在线免费观看| 日韩在线播放一区二区| 午夜欧美电影在线观看| 久久99精品国产麻豆不卡| 国产美女在线精品| 91在线观看一区二区| 99热99精品| 欧美日韩综合色| 欧美一区三区二区| 精品少妇一区二区三区日产乱码 | 成人一二三区视频| 99精品视频在线观看免费| 成人小视频在线| 欧美午夜电影一区| 欧美怡红院视频| 日韩一区二区不卡| 国产精品国产成人国产三级| 一区二区日韩电影| 色美美综合视频| 国产人成一区二区三区影院| 亚洲黄色小说网站| 国产91精品欧美| 波波电影院一区二区三区| 欧美日韩在线不卡| 国产精品情趣视频| 日本色综合中文字幕| 欧美群妇大交群中文字幕| 亚洲日本在线a| 国产精品综合久久| 久久久一区二区| 国产美女娇喘av呻吟久久| 欧美大胆一级视频| 国产米奇在线777精品观看| 欧美一区二区大片| 美女网站一区二区| 日韩精品一区二区三区视频| 美女视频网站黄色亚洲| 制服.丝袜.亚洲.中文.综合| 香蕉久久夜色精品国产使用方法| 在线观看日韩一区| 亚洲成年人影院| 精品国产亚洲在线| 粉嫩13p一区二区三区| 樱桃视频在线观看一区| 欧美一区二区在线看| 国产一区二区影院| 一区二区三区在线高清| 日韩精品最新网址| 99免费精品在线| 久久av资源站| 亚洲激情欧美激情| 国产欧美一区二区精品秋霞影院| 99久精品国产| 国产一区二区按摩在线观看| 亚洲人精品午夜| 国产精品区一区二区三| 国产色爱av资源综合区| 欧美日韩免费一区二区三区| 国产一区不卡在线| 粉嫩av亚洲一区二区图片| 成人免费高清视频在线观看| 日本电影亚洲天堂一区| 欧美日韩五月天| 在线观看91av| 欧美成人精品福利| 国产精品亲子伦对白| 性久久久久久久久久久久| 久99久精品视频免费观看| 丝袜亚洲精品中文字幕一区| 久久影音资源网| 精品福利av导航| 久久综合资源网| 久久久久久久久久久电影| 精品剧情v国产在线观看在线| 欧美日韩国产精品成人| 欧美精品在欧美一区二区少妇| 欧美日韩在线不卡| 欧美猛男gaygay网站| 日韩一区二区三区电影在线观看| 91精品久久久久久久91蜜桃| 精品久久99ma| 久久久精品国产免大香伊| 国产精品理伦片| 亚洲电影一级片| 国产米奇在线777精品观看| jizzjizzjizz欧美| 欧美日免费三级在线| 精品福利在线导航| 亚洲色大成网站www久久九九| 一区二区三区高清在线| 国产一区在线不卡| 91老司机福利 在线| 久久久久久亚洲综合影院红桃| 亚洲激情在线激情| 国产精品99久久久久久有的能看| 天使萌一区二区三区免费观看| 国产精品高潮呻吟| 亚洲尤物在线视频观看| 成人免费在线观看入口| 亚洲欧美在线高清| 亚洲国产视频在线| 日韩av电影免费观看高清完整版 | 1024亚洲合集| 国产乱码精品一区二区三区忘忧草 | 亚洲人成伊人成综合网小说| 精品中文字幕一区二区| 欧美日韩一区二区电影| 国产精品久久久久久户外露出| 日产国产高清一区二区三区 | 中文字幕+乱码+中文字幕一区| 亚洲va天堂va国产va久| 欧美亚洲国产一卡| 成人欧美一区二区三区黑人麻豆| 国产资源精品在线观看| 欧美va亚洲va香蕉在线| 首页综合国产亚洲丝袜| 在线影视一区二区三区| 一区二区三区久久| 欧美亚洲精品一区| 五月天激情小说综合| 欧美猛男超大videosgay| 日韩av成人高清| 欧美mv日韩mv国产网站| 国产一区二区主播在线| 中文一区在线播放| 欧洲精品中文字幕| 婷婷久久综合九色综合绿巨人| 欧美日韩国产高清一区二区 | 欧美一级二级三级蜜桃| 五月天欧美精品| 久久久久久黄色| 9久草视频在线视频精品| 亚洲图片欧美一区| 精品福利一区二区三区 | 国产欧美日韩另类一区| 在线视频你懂得一区二区三区| 五月婷婷色综合| 国产欧美一区二区精品久导航| 色婷婷综合五月| 另类人妖一区二区av| 国产精品久久久久aaaa樱花| 欧美日韩精品一区二区三区| 经典三级视频一区| 亚洲一区二区在线播放相泽 | 国产麻豆精品在线| 亚洲与欧洲av电影| 国产精品免费久久久久| 日韩精品资源二区在线| 欧美亚一区二区| a美女胸又www黄视频久久| 国产又粗又猛又爽又黄91精品| 一级特黄大欧美久久久| 中文字幕一区二区三区色视频| 日韩欧美电影一二三| 欧美日本一区二区| 99精品国产99久久久久久白柏| 蜜桃精品视频在线| 日韩精品久久理论片| 亚洲国产精品一区二区www在线| 中文字幕制服丝袜一区二区三区| 日韩女优电影在线观看| 日韩美女主播在线视频一区二区三区 | 福利91精品一区二区三区| 国产一区二区在线观看视频| 美女视频一区在线观看| 五月婷婷综合激情| 色综合天天综合网天天看片| 麻豆一区二区99久久久久| 中文字幕精品三区| 久久机这里只有精品| 91麻豆精东视频| 国产欧美日韩不卡| 蜜臀av国产精品久久久久| 欧美无砖砖区免费| 亚洲视频免费在线观看| 国产成人精品亚洲午夜麻豆| 制服丝袜在线91| 亚洲国产精品久久人人爱蜜臀| 国产成人精品1024| 欧美成人综合网站| 日韩成人av影视| 色噜噜狠狠色综合欧洲selulu| 欧美精彩视频一区二区三区| 美女一区二区在线观看| 欧美精品久久久久久久久老牛影院| 国产精品电影一区二区|