00001 /*! \file include/kernel/dma.h 00002 * \brief DMA (Direct Memory Access) driver header. 00003 * \author Andrea Righi <drizzt@inwind.it> 00004 * \date Last update: 2003-11-08 00005 * \note Copyright (©) 2003 Andrea Righi 00006 */ 00007 00008 #ifndef DMA_H 00009 #define DMA_H 00010 00011 //! A structure used to store hardware definition of DMA channels. 00012 typedef struct dma_channel 00013 { 00014 uint8_t page; //!< Page register. 00015 uint8_t offset; //!< Offset register. 00016 uint8_t length; //!< Length register. 00017 } dma_channel_t; 00018 00019 // --- Prototypes ----------------------------------------------------- // 00020 00021 void dma_xfer(unsigned channel, addr_t physaddr, size_t length, bool read); 00022 void dma_alloc_init(); 00023 void *dma_phys_alloc(size_t len); 00024 bool dma_phys_free(size_t dma_start, size_t len); 00025 // (Removed) dword dma_pop_frame(); 00026 // (Removed) void dma_push_frame(dword dma_p_addr); 00027 00028 #endif 00029