#ifndef DMA_COHERENT_H#define DMA_COHERENT_H#ifdef CONFIG_HAVE_GENERIC_DMA_COHERENT/* * These three functions are only for dma allocator. * Don't use them in device drivers. */intdma_alloc_from_coherent(structdevice*dev,ssize_tsize,dma_addr_t*dma_handle,void**ret);intdma_release_from_coherent(structdevice*dev,intorder,void*vaddr);intdma_mmap_from_coherent(structdevice*dev,structvm_area_struct*vma,void*cpu_addr,size_tsize,int*ret);/* * Standard interface */#define ARCH_HAS_DMA_DECLARE_COHERENT_MEMORYexternintdma_declare_coherent_memory(structdevice*dev,dma_addr_tbus_addr,dma_addr_tdevice_addr,size_tsize,intflags);externvoiddma_release_declared_memory(structdevice*dev);externvoid*dma_mark_declared_memory_occupied(structdevice*dev,dma_addr_tdevice_addr,size_tsize);#else#define dma_alloc_from_coherent(dev, size, handle, ret) (0)#define dma_release_from_coherent(dev, order, vaddr) (0)#define dma_mmap_from_coherent(dev, vma, vaddr, order, ret) (0)#endif#endif