patch-2.1.96 linux/arch/arm/kernel/dma.h
Next file: linux/arch/arm/kernel/ecard.c
Previous file: linux/arch/arm/kernel/dma.c
Back to the patch index
Back to the overall index
- Lines: 71
- Date:
Sun Apr 12 11:42:15 1998
- Orig file:
v2.1.95/linux/arch/arm/kernel/dma.h
- Orig date:
Wed Dec 31 16:00:00 1969
diff -u --recursive --new-file v2.1.95/linux/arch/arm/kernel/dma.h linux/arch/arm/kernel/dma.h
@@ -0,0 +1,70 @@
+/*
+ * arch/arm/kernel/dma.h
+ *
+ * Copyright (C) 1998 Russell King
+ *
+ * This header file describes the interface between the generic DMA handler
+ * (dma.c) and the architecture-specific DMA backends (dma-*.c)
+ */
+
+typedef struct {
+ dmasg_t buf; /* single DMA */
+ int sgcount; /* number of DMA SG */
+ dmasg_t *sg; /* DMA Scatter-Gather List */
+
+ unsigned int active:1; /* Transfer active */
+ unsigned int invalid:1; /* Address/Count changed */
+ dmamode_t dma_mode; /* DMA mode */
+
+ unsigned int lock; /* Device is allocated */
+ const char *device_id; /* Device name */
+
+ unsigned int dma_base; /* Controller base address */
+ int dma_irq; /* Controller IRQ */
+ int state; /* Controller state */
+ dmasg_t cur_sg; /* Current controller buffer */
+} dma_t;
+
+/* Prototype: int arch_request_dma(channel, dma, dev_id)
+ * Purpose : Perform architecture specific claiming of a DMA channel
+ * Params : channel - DMA channel number
+ * : dma - DMA structure (above) for channel
+ * : dev_id - device ID string passed with request
+ * Returns : 0 on success, E????? number on error
+ */
+int arch_request_dma(dmach_t channel, dma_t *dma, const char *dev_id);
+
+/* Prototype: int arch_free_dma(channel, dma)
+ * Purpose : Perform architecture specific freeing of a DMA channel
+ * Params : channel - DMA channel number
+ * : dma - DMA structure for channel
+ */
+void arch_free_dma(dmach_t channel, dma_t *dma);
+
+/* Prototype: void arch_enable_dma(channel, dma)
+ * Purpose : Enable a claimed DMA channel
+ * Params : channel - DMA channel number
+ * : dma - DMA structure for channel
+ */
+void arch_enable_dma(dmach_t channel, dma_t *dma);
+
+/* Prototype: void arch_disable_dma(channel, dma)
+ * Purpose : Disable a claimed DMA channel
+ * Params : channel - DMA channel number
+ * : dma - DMA structure for channel
+ */
+void arch_disable_dma(dmach_t channel, dma_t *dma);
+
+/* Prototype: int arch_get_dma_residue(channel, dma)
+ * Purpose : Return number of bytes left to DMA
+ * Params : channel - DMA channel number
+ * : dma - DMA structure for channel
+ * Returns : Number of bytes left to DMA
+ */
+int arch_get_dma_residue(dmach_t channel, dma_t *dma);
+
+/* Prototype: void arch_dma_init(dma)
+ * Purpose : Initialise architecture specific DMA
+ * Params : dma - pointer to array of DMA structures
+ */
+void arch_dma_init(dma_t *dma);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov