Lines Matching refs:bitmap

99 	unsigned long		*bitmap;  member
246 dma->bitmap = kvzalloc(DIRTY_BITMAP_BYTES(npages) + sizeof(u64), in vfio_dma_bitmap_alloc()
248 if (!dma->bitmap) in vfio_dma_bitmap_alloc()
256 kvfree(dma->bitmap); in vfio_dma_bitmap_free()
257 dma->bitmap = NULL; in vfio_dma_bitmap_free()
268 bitmap_set(dma->bitmap, (vpfn->iova - dma->iova) >> pgshift, 1); in vfio_dma_populate_bitmap()
280 bitmap_set(dma->bitmap, 0, dma->size >> pgshift); in vfio_iommu_populate_bitmap_full()
887 bitmap_set(dma->bitmap, in vfio_iommu_type1_pin_pages()
1158 static int update_user_bitmap(u64 __user *bitmap, struct vfio_iommu *iommu, in update_user_bitmap() argument
1174 bitmap_set(dma->bitmap, 0, nbits); in update_user_bitmap()
1177 bitmap_shift_left(dma->bitmap, dma->bitmap, shift, in update_user_bitmap()
1181 (void __user *)(bitmap + copy_offset), in update_user_bitmap()
1185 bitmap_or(dma->bitmap, dma->bitmap, &leftover, shift); in update_user_bitmap()
1188 if (copy_to_user((void __user *)(bitmap + copy_offset), dma->bitmap, in update_user_bitmap()
1195 static int vfio_iova_dirty_bitmap(u64 __user *bitmap, struct vfio_iommu *iommu, in vfio_iova_dirty_bitmap() argument
1226 ret = update_user_bitmap(bitmap, iommu, dma, iova, pgsize); in vfio_iova_dirty_bitmap()
1235 bitmap_clear(dma->bitmap, 0, dma->size >> pgshift); in vfio_iova_dirty_bitmap()
1281 struct vfio_bitmap *bitmap) in vfio_dma_do_unmap() argument
1318 (!iommu->dirty_page_tracking || (bitmap->pgsize != pgsize))) { in vfio_dma_do_unmap()
1410 ret = update_user_bitmap(bitmap->data, iommu, dma, in vfio_dma_do_unmap()
2844 struct vfio_bitmap bitmap = { 0 }; in vfio_iommu_type1_unmap_dma() local
2867 if (unmap.argsz < (minsz + sizeof(bitmap))) in vfio_iommu_type1_unmap_dma()
2870 if (copy_from_user(&bitmap, in vfio_iommu_type1_unmap_dma()
2872 sizeof(bitmap))) in vfio_iommu_type1_unmap_dma()
2875 if (!access_ok((void __user *)bitmap.data, bitmap.size)) in vfio_iommu_type1_unmap_dma()
2878 pgshift = __ffs(bitmap.pgsize); in vfio_iommu_type1_unmap_dma()
2880 bitmap.size); in vfio_iommu_type1_unmap_dma()
2885 ret = vfio_dma_do_unmap(iommu, &unmap, &bitmap); in vfio_iommu_type1_unmap_dma()
2953 if (!access_ok((void __user *)range.bitmap.data, in vfio_iommu_type1_dirty_pages()
2954 range.bitmap.size)) in vfio_iommu_type1_dirty_pages()
2957 pgshift = __ffs(range.bitmap.pgsize); in vfio_iommu_type1_dirty_pages()
2959 range.bitmap.size); in vfio_iommu_type1_dirty_pages()
2968 if (range.bitmap.pgsize != iommu_pgsize) { in vfio_iommu_type1_dirty_pages()
2982 ret = vfio_iova_dirty_bitmap(range.bitmap.data, in vfio_iommu_type1_dirty_pages()
2985 range.bitmap.pgsize); in vfio_iommu_type1_dirty_pages()
3100 bitmap_set(dma->bitmap, offset >> pgshift, in vfio_iommu_type1_dma_rw_chunk()