at cba767175becadc5c4016cceb7bfdd2c7fe722f4 83 lines 2.3 kB view raw
1#ifndef __LINUX_SWIOTLB_H 2#define __LINUX_SWIOTLB_H 3 4#include <linux/types.h> 5 6struct device; 7struct dma_attrs; 8struct scatterlist; 9 10extern void 11swiotlb_init(void); 12 13extern void 14*swiotlb_alloc_coherent(struct device *hwdev, size_t size, 15 dma_addr_t *dma_handle, gfp_t flags); 16 17extern void 18swiotlb_free_coherent(struct device *hwdev, size_t size, 19 void *vaddr, dma_addr_t dma_handle); 20 21extern dma_addr_t 22swiotlb_map_single(struct device *hwdev, void *ptr, size_t size, int dir); 23 24extern void 25swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr, 26 size_t size, int dir); 27 28extern dma_addr_t 29swiotlb_map_single_attrs(struct device *hwdev, void *ptr, size_t size, 30 int dir, struct dma_attrs *attrs); 31 32extern void 33swiotlb_unmap_single_attrs(struct device *hwdev, dma_addr_t dev_addr, 34 size_t size, int dir, struct dma_attrs *attrs); 35 36extern int 37swiotlb_map_sg(struct device *hwdev, struct scatterlist *sg, int nents, 38 int direction); 39 40extern void 41swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sg, int nents, 42 int direction); 43 44extern int 45swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl, int nelems, 46 int dir, struct dma_attrs *attrs); 47 48extern void 49swiotlb_unmap_sg_attrs(struct device *hwdev, struct scatterlist *sgl, 50 int nelems, int dir, struct dma_attrs *attrs); 51 52extern void 53swiotlb_sync_single_for_cpu(struct device *hwdev, dma_addr_t dev_addr, 54 size_t size, int dir); 55 56extern void 57swiotlb_sync_sg_for_cpu(struct device *hwdev, struct scatterlist *sg, 58 int nelems, int dir); 59 60extern void 61swiotlb_sync_single_for_device(struct device *hwdev, dma_addr_t dev_addr, 62 size_t size, int dir); 63 64extern void 65swiotlb_sync_sg_for_device(struct device *hwdev, struct scatterlist *sg, 66 int nelems, int dir); 67 68extern void 69swiotlb_sync_single_range_for_cpu(struct device *hwdev, dma_addr_t dev_addr, 70 unsigned long offset, size_t size, int dir); 71 72extern void 73swiotlb_sync_single_range_for_device(struct device *hwdev, dma_addr_t dev_addr, 74 unsigned long offset, size_t size, 75 int dir); 76 77extern int 78swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr); 79 80extern int 81swiotlb_dma_supported(struct device *hwdev, u64 mask); 82 83#endif /* __LINUX_SWIOTLB_H */