2 #define _ASM_SWTIOLB_H 1
5 #include <asm/dma-mapping.h>
7 /* SWIOTLB interface */
9 extern dma_addr_t
swiotlb_map_single(struct device
*hwdev
, void *ptr
,
10 size_t size
, int dir
);
11 extern void *swiotlb_alloc_coherent(struct device
*hwdev
, size_t size
,
12 dma_addr_t
*dma_handle
, gfp_t flags
);
13 extern void swiotlb_unmap_single(struct device
*hwdev
, dma_addr_t dev_addr
,
14 size_t size
, int dir
);
15 extern void swiotlb_sync_single_for_cpu(struct device
*hwdev
,
17 size_t size
, int dir
);
18 extern void swiotlb_sync_single_for_device(struct device
*hwdev
,
20 size_t size
, int dir
);
21 extern void swiotlb_sync_single_range_for_cpu(struct device
*hwdev
,
24 size_t size
, int dir
);
25 extern void swiotlb_sync_single_range_for_device(struct device
*hwdev
,
28 size_t size
, int dir
);
29 extern void swiotlb_sync_sg_for_cpu(struct device
*hwdev
,
30 struct scatterlist
*sg
, int nelems
,
32 extern void swiotlb_sync_sg_for_device(struct device
*hwdev
,
33 struct scatterlist
*sg
, int nelems
,
35 extern int swiotlb_map_sg(struct device
*hwdev
, struct scatterlist
*sg
,
36 int nents
, int direction
);
37 extern void swiotlb_unmap_sg(struct device
*hwdev
, struct scatterlist
*sg
,
38 int nents
, int direction
);
39 extern int swiotlb_dma_mapping_error(dma_addr_t dma_addr
);
40 extern void swiotlb_free_coherent (struct device
*hwdev
, size_t size
,
41 void *vaddr
, dma_addr_t dma_handle
);
42 extern int swiotlb_dma_supported(struct device
*hwdev
, u64 mask
);
43 extern void swiotlb_init(void);
45 extern int swiotlb_force
;
53 extern void pci_swiotlb_init(void);
55 #endif /* _ASM_SWTIOLB_H */