mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 03:13:59 +00:00 
			
		
		
		
	 1648993fb0
			
		
	
	
		1648993fb0
		
	
	
	
	
		
			
			A series of patches introduce a generic header file for the software IO/TLB implementation in lib/swiotlb.c. Currently each architecture using this code defines the prototypes itself. The prototypes are moved to include/linux/swiotlb.h and this file is included in architecture specific code for X86 and IA64. This patch: Create include/linux/swiotlb.h file which contains all function prototypes for the lib/swiotlb.c file. (akpm: the dependent patches will be trickled through arch trees) Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: "Luck, Tony" <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __LINUX_SWIOTLB_H
 | |
| #define __LINUX_SWIOTLB_H
 | |
| 
 | |
| #include <linux/types.h>
 | |
| 
 | |
| struct device;
 | |
| struct dma_attrs;
 | |
| struct scatterlist;
 | |
| 
 | |
| extern void
 | |
| swiotlb_init(void);
 | |
| 
 | |
| extern void
 | |
| *swiotlb_alloc_coherent(struct device *hwdev, size_t size,
 | |
| 			dma_addr_t *dma_handle, gfp_t flags);
 | |
| 
 | |
| extern void
 | |
| swiotlb_free_coherent(struct device *hwdev, size_t size,
 | |
| 		      void *vaddr, dma_addr_t dma_handle);
 | |
| 
 | |
| extern dma_addr_t
 | |
| swiotlb_map_single(struct device *hwdev, void *ptr, size_t size, int dir);
 | |
| 
 | |
| extern void
 | |
| swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr,
 | |
| 		     size_t size, int dir);
 | |
| 
 | |
| extern dma_addr_t
 | |
| swiotlb_map_single_attrs(struct device *hwdev, void *ptr, size_t size,
 | |
| 			 int dir, struct dma_attrs *attrs);
 | |
| 
 | |
| extern void
 | |
| swiotlb_unmap_single_attrs(struct device *hwdev, dma_addr_t dev_addr,
 | |
| 			   size_t size, int dir, struct dma_attrs *attrs);
 | |
| 
 | |
| extern int
 | |
| swiotlb_map_sg(struct device *hwdev, struct scatterlist *sg, int nents,
 | |
| 	       int direction);
 | |
| 
 | |
| extern void
 | |
| swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sg, int nents,
 | |
| 		 int direction);
 | |
| 
 | |
| extern int
 | |
| swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems,
 | |
| 		     int dir, struct dma_attrs *attrs);
 | |
| 
 | |
| extern void
 | |
| swiotlb_unmap_sg_attrs(struct device *hwdev, struct scatterlist *sgl,
 | |
| 		       int nelems, int dir, struct dma_attrs *attrs);
 | |
| 
 | |
| extern void
 | |
| swiotlb_sync_single_for_cpu(struct device *hwdev, dma_addr_t dev_addr,
 | |
| 			    size_t size, int dir);
 | |
| 
 | |
| extern void
 | |
| swiotlb_sync_sg_for_cpu(struct device *hwdev, struct scatterlist *sg,
 | |
| 			int nelems, int dir);
 | |
| 
 | |
| extern void
 | |
| swiotlb_sync_single_for_device(struct device *hwdev, dma_addr_t dev_addr,
 | |
| 			       size_t size, int dir);
 | |
| 
 | |
| extern void
 | |
| swiotlb_sync_sg_for_device(struct device *hwdev, struct scatterlist *sg,
 | |
| 			   int nelems, int dir);
 | |
| 
 | |
| 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);
 | |
| 
 | |
| extern int
 | |
| swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr);
 | |
| 
 | |
| extern int
 | |
| swiotlb_dma_supported(struct device *hwdev, u64 mask);
 | |
| 
 | |
| #endif /* __LINUX_SWIOTLB_H */
 |