#ifdef CONFIG_ISA_DMA_API /* * This is used to support drivers written for the x86 ISA DMA API. * It should not be re-used except for that purpose.
*/ #include <linux/spinlock.h> #include <linux/scatterlist.h>
#include <mach/isa-dma.h>
/* * The DMA modes reflect the settings for the ISA DMA controller
*/ #define DMA_MODE_MASK 0xcc
/* Clear the 'DMA Pointer Flip Flop'. * Write 0 for LSB/MSB, 1 for MSB/LSB access.
*/ #define clear_dma_ff(chan)
/* Set only the page register bits of the transfer address. * * NOTE: This is an architecture specific function, and should * be hidden from the drivers
*/ externvoid set_dma_page(unsignedint chan, char pagenr);
/* Request a DMA channel * * Some architectures may need to do allocate an interrupt
*/ externint request_dma(unsignedint chan, constchar * device_id);
/* Free a DMA channel * * Some architectures may need to do free an interrupt
*/ externvoid free_dma(unsignedint chan);
/* Enable DMA for this channel * * On some architectures, this may have other side effects like * enabling an interrupt and setting the DMA registers.
*/ externvoid enable_dma(unsignedint chan);
/* Disable DMA for this channel * * On some architectures, this may have other side effects like * disabling an interrupt or whatever.
*/ externvoid disable_dma(unsignedint chan);
/* Test whether the specified channel has an active DMA transfer
*/ externint dma_channel_active(unsignedint chan);
/* Set the DMA scatter gather list for this channel * * This should not be called if a DMA channel is enabled, * especially since some DMA architectures don't update the * DMA address immediately, but defer it to the enable_dma().
*/ externvoid set_dma_sg(unsignedint chan, struct scatterlist *sg, int nr_sg);
/* Set the DMA address for this channel * * This should not be called if a DMA channel is enabled, * especially since some DMA architectures don't update the * DMA address immediately, but defer it to the enable_dma().
*/ externvoid __set_dma_addr(unsignedint chan, void *addr); #define set_dma_addr(chan, addr) \
__set_dma_addr(chan, (void *)isa_bus_to_virt(addr))
/* Set the DMA byte count for this channel * * This should not be called if a DMA channel is enabled, * especially since some DMA architectures don't update the * DMA count immediately, but defer it to the enable_dma().
*/ externvoid set_dma_count(unsignedint chan, unsignedlong count);
/* Set the transfer direction for this channel * * This should not be called if a DMA channel is enabled, * especially since some DMA architectures don't update the * DMA transfer direction immediately, but defer it to the * enable_dma().
*/ externvoid set_dma_mode(unsignedint chan, unsignedint mode);
/* Set the transfer speed for this channel
*/ externvoid set_dma_speed(unsignedint chan, int cycle_ns);
/* Get DMA residue count. After a DMA transfer, this * should return zero. Reading this while a DMA transfer is * still in progress will return unpredictable results. * If called before the channel has been used, it may return 1. * Otherwise, it returns the number of _bytes_ left to transfer.
*/ externint get_dma_residue(unsignedint chan);
#ifndef NO_DMA #define NO_DMA 255 #endif
#endif/* CONFIG_ISA_DMA_API */
#endif/* __ASM_ARM_DMA_H */
Messung V0.5
¤ Dauer der Verarbeitung: 0.21 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.