2005-04-17 02:20:36 +04:00
# ifndef _ASM_GENERIC_DMA_MAPPING_H
# define _ASM_GENERIC_DMA_MAPPING_H
2007-07-16 10:40:26 +04:00
/* define the dma api to allow compilation but not linking of
* dma dependent code . Code that depends on the dma - mapping
* API needs to set ' depends on HAS_DMA ' in its Kconfig
*/
2005-04-17 02:20:36 +04:00
2007-07-16 10:40:26 +04:00
struct scatterlist ;
extern void *
2005-04-17 02:20:36 +04:00
dma_alloc_coherent ( struct device * dev , size_t size , dma_addr_t * dma_handle ,
2007-07-16 10:40:26 +04:00
gfp_t flag ) ;
2005-04-17 02:20:36 +04:00
2007-07-16 10:40:26 +04:00
extern void
2005-04-17 02:20:36 +04:00
dma_free_coherent ( struct device * dev , size_t size , void * cpu_addr ,
2007-07-16 10:40:26 +04:00
dma_addr_t dma_handle ) ;
2005-04-17 02:20:36 +04:00
2007-02-12 02:08:03 +03:00
# define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
# define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
2007-07-16 10:40:26 +04:00
extern dma_addr_t
dma_map_single ( struct device * dev , void * ptr , size_t size ,
enum dma_data_direction direction ) ;
extern void
dma_unmap_single ( struct device * dev , dma_addr_t dma_addr , size_t size ,
enum dma_data_direction direction ) ;
extern int
dma_map_sg ( struct device * dev , struct scatterlist * sg , int nents ,
enum dma_data_direction direction ) ;
extern void
dma_unmap_sg ( struct device * dev , struct scatterlist * sg , int nhwentries ,
enum dma_data_direction direction ) ;
extern dma_addr_t
dma_map_page ( struct device * dev , struct page * page , unsigned long offset ,
size_t size , enum dma_data_direction direction ) ;
extern void
dma_unmap_page ( struct device * dev , dma_addr_t dma_address , size_t size ,
enum dma_data_direction direction ) ;
extern void
dma_sync_single_for_cpu ( struct device * dev , dma_addr_t dma_handle , size_t size ,
enum dma_data_direction direction ) ;
extern void
dma_sync_single_range_for_cpu ( struct device * dev , dma_addr_t dma_handle ,
unsigned long offset , size_t size ,
enum dma_data_direction direction ) ;
extern void
dma_sync_sg_for_cpu ( struct device * dev , struct scatterlist * sg , int nelems ,
enum dma_data_direction direction ) ;
# define dma_sync_single_for_device dma_sync_single_for_cpu
# define dma_sync_single_range_for_device dma_sync_single_range_for_cpu
# define dma_sync_sg_for_device dma_sync_sg_for_cpu
extern int
2008-07-26 06:44:49 +04:00
dma_mapping_error ( struct device * dev , dma_addr_t dma_addr ) ;
2007-07-16 10:40:26 +04:00
extern int
dma_supported ( struct device * dev , u64 mask ) ;
extern int
dma_set_mask ( struct device * dev , u64 mask ) ;
extern int
dma_get_cache_alignment ( void ) ;
extern int
dma_is_consistent ( struct device * dev , dma_addr_t dma_handle ) ;
extern void
dma_cache_sync ( struct device * dev , void * vaddr , size_t size ,
enum dma_data_direction direction ) ;
2005-04-17 02:20:36 +04:00
# endif /* _ASM_GENERIC_DMA_MAPPING_H */