swiotlb.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef _ASM_SWIOTLB_H
  2. #define _ASM_SWTIOLB_H 1
  3. #include <linux/config.h>
  4. /* SWIOTLB interface */
  5. extern dma_addr_t swiotlb_map_single(struct device *hwdev, void *ptr, size_t size,
  6. int dir);
  7. extern void swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr,
  8. size_t size, int dir);
  9. extern void swiotlb_sync_single_for_cpu(struct device *hwdev,
  10. dma_addr_t dev_addr,
  11. size_t size, int dir);
  12. extern void swiotlb_sync_single_for_device(struct device *hwdev,
  13. dma_addr_t dev_addr,
  14. size_t size, int dir);
  15. extern void swiotlb_sync_sg_for_cpu(struct device *hwdev,
  16. struct scatterlist *sg, int nelems,
  17. int dir);
  18. extern void swiotlb_sync_sg_for_device(struct device *hwdev,
  19. struct scatterlist *sg, int nelems,
  20. int dir);
  21. extern int swiotlb_map_sg(struct device *hwdev, struct scatterlist *sg,
  22. int nents, int direction);
  23. extern void swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sg,
  24. int nents, int direction);
  25. extern int swiotlb_dma_mapping_error(dma_addr_t dma_addr);
  26. extern void *swiotlb_alloc_coherent (struct device *hwdev, size_t size,
  27. dma_addr_t *dma_handle, int flags);
  28. extern void swiotlb_free_coherent (struct device *hwdev, size_t size,
  29. void *vaddr, dma_addr_t dma_handle);
  30. #ifdef CONFIG_SWIOTLB
  31. extern int swiotlb;
  32. #else
  33. #define swiotlb 0
  34. #endif
  35. #endif