dig_vtd_iommu.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include <linux/types.h>
  2. #include <linux/kernel.h>
  3. #include <linux/module.h>
  4. #include <linux/intel-iommu.h>
  5. void *
  6. vtd_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
  7. gfp_t flags)
  8. {
  9. return intel_alloc_coherent(dev, size, dma_handle, flags);
  10. }
  11. EXPORT_SYMBOL_GPL(vtd_alloc_coherent);
  12. void
  13. vtd_free_coherent(struct device *dev, size_t size, void *vaddr,
  14. dma_addr_t dma_handle)
  15. {
  16. intel_free_coherent(dev, size, vaddr, dma_handle);
  17. }
  18. EXPORT_SYMBOL_GPL(vtd_free_coherent);
  19. dma_addr_t
  20. vtd_map_single_attrs(struct device *dev, void *addr, size_t size,
  21. int dir, struct dma_attrs *attrs)
  22. {
  23. return intel_map_single(dev, (phys_addr_t)addr, size, dir);
  24. }
  25. EXPORT_SYMBOL_GPL(vtd_map_single_attrs);
  26. void
  27. vtd_unmap_single_attrs(struct device *dev, dma_addr_t iova, size_t size,
  28. int dir, struct dma_attrs *attrs)
  29. {
  30. intel_unmap_single(dev, iova, size, dir);
  31. }
  32. EXPORT_SYMBOL_GPL(vtd_unmap_single_attrs);
  33. int
  34. vtd_map_sg_attrs(struct device *dev, struct scatterlist *sglist, int nents,
  35. int dir, struct dma_attrs *attrs)
  36. {
  37. return intel_map_sg(dev, sglist, nents, dir);
  38. }
  39. EXPORT_SYMBOL_GPL(vtd_map_sg_attrs);
  40. void
  41. vtd_unmap_sg_attrs(struct device *dev, struct scatterlist *sglist,
  42. int nents, int dir, struct dma_attrs *attrs)
  43. {
  44. intel_unmap_sg(dev, sglist, nents, dir);
  45. }
  46. EXPORT_SYMBOL_GPL(vtd_unmap_sg_attrs);
  47. int
  48. vtd_dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
  49. {
  50. return 0;
  51. }
  52. EXPORT_SYMBOL_GPL(vtd_dma_mapping_error);