a66022c457
Use bitmap library and kill some unused iommu helper functions. 1. s/iommu_area_free/bitmap_clear/ 2. s/iommu_area_reserve/bitmap_set/ 3. Use bitmap_find_next_zero_area instead of find_next_zero_area This cannot be simple substitution because find_next_zero_area doesn't check the last bit of the limit in bitmap 4. Remove iommu_area_free, iommu_area_reserve, and find_next_zero_area Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Cc: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
26 lines
765 B
C
26 lines
765 B
C
#ifndef _LINUX_IOMMU_HELPER_H
|
|
#define _LINUX_IOMMU_HELPER_H
|
|
|
|
static inline unsigned long iommu_device_max_index(unsigned long size,
|
|
unsigned long offset,
|
|
u64 dma_mask)
|
|
{
|
|
if (size + offset > dma_mask)
|
|
return dma_mask - offset + 1;
|
|
else
|
|
return size;
|
|
}
|
|
|
|
extern int iommu_is_span_boundary(unsigned int index, unsigned int nr,
|
|
unsigned long shift,
|
|
unsigned long boundary_size);
|
|
extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size,
|
|
unsigned long start, unsigned int nr,
|
|
unsigned long shift,
|
|
unsigned long boundary_size,
|
|
unsigned long align_mask);
|
|
|
|
extern unsigned long iommu_num_pages(unsigned long addr, unsigned long len,
|
|
unsigned long io_page_size);
|
|
|
|
#endif
|