⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dma_export.h

📁 omap osk环境下的bootloader,包含完整的uboot源代码
💻 H
字号:
#ifndef DMA_EXPORT_H#define DMA_EXPORT_H/**************************************************** * $Id: * * Copyright Motorola 1999 * * $Log: * ****************************************************//* These are the defined return values for the DMA_* functions. * Any non-zero value indicates failure.  Failure modes can be added for * more detailed error reporting. */typedef enum _dma_status{ DMA_SUCCESS     = 0, DMA_ERROR,} DMA_Status;/* These are the defined channel transfer types.  */typedef enum _dma_transfer_types{	DMA_M2M =  0,	/* local memory to local memory */	DMA_M2P =  1,	/* local memory to PCI */	DMA_P2M =  2,	/* PCI to local memory */	DMA_P2P =  3,	/* PCI to PCI */} DMA_TRANSFER_TYPE;typedef enum _dma_interrupt_steer{	DMA_INT_STEER_LOCAL =  0, /* steer DMA int to local processor */	DMA_INT_STEER_PCI = 1,    /* steer DMA int to PCI bus through INTA_ */} DMA_INTERRUPT_STEER;typedef enum _dma_channel{	DMA_CHN_0 =  0, /* kahlua has two dma channels: 0 and 1 */	DMA_CHN_1 =  1,} DMA_CHANNEL;typedef enum _dma_snoop_mode{	DMA_SNOOP_DISABLE =  0,	DMA_SNOOP_ENABLE = 1,} DMA_SNOOP_MODE;/******************** App. API ******************** * The application API is for user level application * to use the functionality provided by DMA driver. * This is a "generic" DMA interface, it should contain * nothing specific to the Kahlua implementation. * Only the generic functions are exported by the library. * * Note: Its App.s responsibility to swap the data *       byte. In our API, we currently transfer whatever *       we are given - Big/Little Endian.  This could *       become part of the DMA config, though. **************************************************//*  Initialize DMA unit with the following: *  optional pointer to application layer print function * *  These parameters may be added: *  ??? *  Interrupt enables, modes, etc. are set for each transfer. * *  This function must be called before DMA unit can be used. */extern DMA_Status DMA_Initialize(	int (*app_print_function)(char *,...)); /* pointer to optional "printf"						 * provided by application						 *//* Perform the DMA transfer, only direct mode is currently implemented. * At this point, I think it would be better to define a different * function for chaining mode. * Also, I'm not sure if it is appropriate to have the "generic" API * accept snoop and int_steer parameters.  The DINK user interface allows * them, so for now I'll leave them. * * int_steer controls DMA interrupt steering to PCI or local processor * type is the type of transfer: M2M, M2P, P2M, P2P * source is the source address of the data * dest is the destination address of the data * len is the length of data to transfer * channel is the DMA channel to use for the transfer * snoop is the snoop enable control */extern DMA_Status DMA_direct_transfer( DMA_INTERRUPT_STEER int_steer,				       DMA_TRANSFER_TYPE type,				       unsigned int source,				       unsigned int dest,				       unsigned int len,				       DMA_CHANNEL channel,				       DMA_SNOOP_MODE snoop);#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -