2008-10-22 22:26:29 -07:00
# ifndef _ASM_X86_SWIOTLB_H
# define _ASM_X86_SWIOTLB_H
2005-04-16 15:20:36 -07:00
2006-01-11 22:44:42 +01:00
# include <asm/dma-mapping.h>
2005-04-16 15:20:36 -07:00
/* SWIOTLB interface */
2006-01-11 22:44:42 +01:00
extern dma_addr_t swiotlb_map_single ( struct device * hwdev , void * ptr ,
size_t size , int dir ) ;
extern void * swiotlb_alloc_coherent ( struct device * hwdev , size_t size ,
2008-03-23 01:03:37 -07:00
dma_addr_t * dma_handle , gfp_t flags ) ;
2005-04-16 15:20:36 -07:00
extern void swiotlb_unmap_single ( struct device * hwdev , dma_addr_t dev_addr ,
2008-03-23 01:03:37 -07:00
size_t size , int dir ) ;
2005-04-16 15:20:36 -07:00
extern void swiotlb_sync_single_for_cpu ( struct device * hwdev ,
2008-03-23 01:03:37 -07:00
dma_addr_t dev_addr ,
size_t size , int dir ) ;
2005-04-16 15:20:36 -07:00
extern void swiotlb_sync_single_for_device ( struct device * hwdev ,
2008-03-23 01:03:37 -07:00
dma_addr_t dev_addr ,
size_t size , int dir ) ;
2005-09-29 14:44:23 -07:00
extern void swiotlb_sync_single_range_for_cpu ( struct device * hwdev ,
dma_addr_t dev_addr ,
unsigned long offset ,
size_t size , int dir ) ;
extern void swiotlb_sync_single_range_for_device ( struct device * hwdev ,
dma_addr_t dev_addr ,
unsigned long offset ,
size_t size , int dir ) ;
2005-04-16 15:20:36 -07:00
extern void swiotlb_sync_sg_for_cpu ( struct device * hwdev ,
2008-03-23 01:03:37 -07:00
struct scatterlist * sg , int nelems ,
int dir ) ;
2005-04-16 15:20:36 -07:00
extern void swiotlb_sync_sg_for_device ( struct device * hwdev ,
2008-03-23 01:03:37 -07:00
struct scatterlist * sg , int nelems ,
int dir ) ;
2005-04-16 15:20:36 -07:00
extern int swiotlb_map_sg ( struct device * hwdev , struct scatterlist * sg ,
2008-03-23 01:03:37 -07:00
int nents , int direction ) ;
2005-04-16 15:20:36 -07:00
extern void swiotlb_unmap_sg ( struct device * hwdev , struct scatterlist * sg ,
2008-03-23 01:03:37 -07:00
int nents , int direction ) ;
2008-07-25 19:44:49 -07:00
extern int swiotlb_dma_mapping_error ( struct device * hwdev , dma_addr_t dma_addr ) ;
2008-03-23 01:03:37 -07:00
extern void swiotlb_free_coherent ( struct device * hwdev , size_t size ,
void * vaddr , dma_addr_t dma_handle ) ;
2006-01-11 22:44:42 +01:00
extern int swiotlb_dma_supported ( struct device * hwdev , u64 mask ) ;
extern void swiotlb_init ( void ) ;
2005-04-16 15:20:36 -07:00
2006-07-29 21:42:49 +02:00
extern int swiotlb_force ;
2005-04-16 15:20:36 -07:00
# ifdef CONFIG_SWIOTLB
extern int swiotlb ;
2008-07-11 10:23:45 +09:00
extern void pci_swiotlb_init ( void ) ;
2005-04-16 15:20:36 -07:00
# else
# define swiotlb 0
2008-07-11 10:23:45 +09:00
static inline void pci_swiotlb_init ( void )
{
}
2005-04-16 15:20:36 -07:00
# endif
2007-02-05 18:46:40 -08:00
static inline void dma_mark_clean ( void * addr , size_t size ) { }
2008-10-22 22:26:29 -07:00
# endif /* _ASM_X86_SWIOTLB_H */