iommu-helper.h 765 B

1234567891011121314151617181920212223242526
  1. #ifndef _LINUX_IOMMU_HELPER_H
  2. #define _LINUX_IOMMU_HELPER_H
  3. static inline unsigned long iommu_device_max_index(unsigned long size,
  4. unsigned long offset,
  5. u64 dma_mask)
  6. {
  7. if (size + offset > dma_mask)
  8. return dma_mask - offset + 1;
  9. else
  10. return size;
  11. }
  12. extern int iommu_is_span_boundary(unsigned int index, unsigned int nr,
  13. unsigned long shift,
  14. unsigned long boundary_size);
  15. extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size,
  16. unsigned long start, unsigned int nr,
  17. unsigned long shift,
  18. unsigned long boundary_size,
  19. unsigned long align_mask);
  20. extern unsigned long iommu_num_pages(unsigned long addr, unsigned long len,
  21. unsigned long io_page_size);
  22. #endif