www.pudn.com > DMBDRV.rar > SianoDMA_API.h


#ifndef _DMAAPI_H 
#define _DMAAPI_H 
 
 
typedef enum { 
	DMA_BURST_8_BYTES, 
	DMA_BURST_16_BYTES, 
	DMA_BURST_32_BYTES 
}BURST_SIZE_E; 
 
typedef enum { 
	DMA_BUS_WIDTH_1_BYTE, 
	DMA_BUS_WIDTH_2_BYTE, 
	DMA_BUS_WIDTH_4_BYTE 
}BUS_WIDTH_E; 
 
typedef struct DMA_INIT_PARAMS_S{ 
	DWORD			flags; 
    DWORD			dmaReq; 
	BURST_SIZE_E	burstSize; 
	BUS_WIDTH_E		busWidth; 
}DMA_INIT_PARAMS_ST; 
 
#define DMA_CHOOSE_OWN_CHANNEL			-1 
#define DMA_USE_POLLING_NO_INTERRUPT	-1 
 
//flags for DMA_INIT_PARAMS_ST 
#define DMA_USE_HW_FLOW_CTRL	1 
 
typedef void (*DMA_CallBackF)(DWORD	transactionId, DWORD status); 
 
typedef struct DMA_PARAMS_S  
{ 
	DWORD			srcAddr; 
	DWORD			dstAddr; 
	DWORD			len; 
	DWORD			flags; 
	DWORD			transactionId; 
	DMA_CallBackF	callBack; 
} DMA_PARAMS_ST ; 
 
#define DMA_INC_SRC_ADDR			1 
#define DMA_INC_DST_ADDR			2 
#define DMA_USE_DST_FLOW_CONTROL	4 
#define DMA_USE_SRC_FLOW_CONTROL	8 
 
 
//Values for status 
#define DMA_STATUS_OK		0 
#define DMA_STATUS_ERR		-1 
 
typedef LPVOID (*DMA_SetUpChannelF)(DMA_INIT_PARAMS_ST* userParams); 
typedef void (*DMA_ConfigChannelF)(LPVOID dev, DMA_PARAMS_ST* dmaParam); 
typedef void (*DMA_RemoveChannelF)(LPVOID dev); 
 
 
#endif /*_DMAAPI_H*/