linux/include/linux/iommu-helper.h
<<
>>
Prefs
   1#ifndef _LINUX_IOMMU_HELPER_H
   2#define _LINUX_IOMMU_HELPER_H
   3
   4static inline unsigned long iommu_device_max_index(unsigned long size,
   5                                                   unsigned long offset,
   6                                                   u64 dma_mask)
   7{
   8        if (size + offset > dma_mask)
   9                return dma_mask - offset + 1;
  10        else
  11                return size;
  12}
  13
  14extern int iommu_is_span_boundary(unsigned int index, unsigned int nr,
  15                                  unsigned long shift,
  16                                  unsigned long boundary_size);
  17extern void iommu_area_reserve(unsigned long *map, unsigned long i, int len);
  18extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size,
  19                                      unsigned long start, unsigned int nr,
  20                                      unsigned long shift,
  21                                      unsigned long boundary_size,
  22                                      unsigned long align_mask);
  23extern void iommu_area_free(unsigned long *map, unsigned long start,
  24                            unsigned int nr);
  25
  26extern unsigned long iommu_num_pages(unsigned long addr, unsigned long len,
  27                                     unsigned long io_page_size);
  28
  29#endif
  30