]> nv-tegra.nvidia Code Review - linux-2.6.git/blobdiff - include/linux/iommu-helper.h
block: get rid of elv_insert() interface
[linux-2.6.git] / include / linux / iommu-helper.h
index a6d0586e2bf76227488045e7e38267a3f69bc455..86bdeffe43ad69e3dba2781eeed06b8cbe847a69 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef _LINUX_IOMMU_HELPER_H
 #define _LINUX_IOMMU_HELPER_H
 
+#include <linux/kernel.h>
+
 static inline unsigned long iommu_device_max_index(unsigned long size,
                                                   unsigned long offset,
                                                   u64 dma_mask)
@@ -14,13 +16,19 @@ static inline unsigned long iommu_device_max_index(unsigned long size,
 extern int iommu_is_span_boundary(unsigned int index, unsigned int nr,
                                  unsigned long shift,
                                  unsigned long boundary_size);
-extern void iommu_area_reserve(unsigned long *map, unsigned long i, int len);
 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 void iommu_area_free(unsigned long *map, unsigned long start,
-                           unsigned int nr);
+
+static inline unsigned long iommu_num_pages(unsigned long addr,
+                                           unsigned long len,
+                                           unsigned long io_page_size)
+{
+       unsigned long size = (addr & (io_page_size - 1)) + len;
+
+       return DIV_ROUND_UP(size, io_page_size);
+}
 
 #endif