Home | History | Annotate | Download | only in asm-x86
      1 #ifndef _ASM_SWIOTLB_H
      2 #define _ASM_SWIOTLB_H 1
      3 
      4 #include <asm/dma-mapping.h>
      5 
      6 /* SWIOTLB interface */
      7 
      8 extern dma_addr_t swiotlb_map_single(struct device *hwdev, void *ptr,
      9 				     size_t size, int dir);
     10 extern void *swiotlb_alloc_coherent(struct device *hwdev, size_t size,
     11                        dma_addr_t *dma_handle, gfp_t flags);
     12 extern void swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr,
     13 				  size_t size, int dir);
     14 extern void swiotlb_sync_single_for_cpu(struct device *hwdev,
     15 					 dma_addr_t dev_addr,
     16 					 size_t size, int dir);
     17 extern void swiotlb_sync_single_for_device(struct device *hwdev,
     18 					    dma_addr_t dev_addr,
     19 					    size_t size, int dir);
     20 extern void swiotlb_sync_single_range_for_cpu(struct device *hwdev,
     21 					      dma_addr_t dev_addr,
     22 					      unsigned long offset,
     23 					      size_t size, int dir);
     24 extern void swiotlb_sync_single_range_for_device(struct device *hwdev,
     25 						 dma_addr_t dev_addr,
     26 						 unsigned long offset,
     27 						 size_t size, int dir);
     28 extern void swiotlb_sync_sg_for_cpu(struct device *hwdev,
     29 				     struct scatterlist *sg, int nelems,
     30 				     int dir);
     31 extern void swiotlb_sync_sg_for_device(struct device *hwdev,
     32 					struct scatterlist *sg, int nelems,
     33 					int dir);
     34 extern int swiotlb_map_sg(struct device *hwdev, struct scatterlist *sg,
     35 		      int nents, int direction);
     36 extern void swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sg,
     37 			 int nents, int direction);
     38 extern int swiotlb_dma_mapping_error(dma_addr_t dma_addr);
     39 extern void swiotlb_free_coherent (struct device *hwdev, size_t size,
     40 				   void *vaddr, dma_addr_t dma_handle);
     41 extern int swiotlb_dma_supported(struct device *hwdev, u64 mask);
     42 extern void swiotlb_init(void);
     43 
     44 extern int swiotlb_force;
     45 
     46 #ifdef CONFIG_SWIOTLB
     47 extern int swiotlb;
     48 #else
     49 #define swiotlb 0
     50 #endif
     51 
     52 extern void pci_swiotlb_init(void);
     53 
     54 static inline void dma_mark_clean(void *addr, size_t size) {}
     55 
     56 #endif /* _ASM_SWIOTLB_H */
     57