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