Lines Matching defs:iter
31 struct iopt_area *iopt_area_contig_init(struct iopt_area_contig_iter *iter,
38 iter->cur_iova = iova;
39 iter->last_iova = last_iova;
40 iter->area = iopt_area_iter_first(iopt, iova, iova);
41 if (!iter->area)
43 if (!iter->area->pages) {
44 iter->area = NULL;
47 return iter->area;
50 struct iopt_area *iopt_area_contig_next(struct iopt_area_contig_iter *iter)
54 if (!iter->area)
56 last_iova = iopt_area_last_iova(iter->area);
57 if (iter->last_iova <= last_iova)
60 iter->cur_iova = last_iova + 1;
61 iter->area = iopt_area_iter_next(iter->area, iter->cur_iova,
62 iter->last_iova);
63 if (!iter->area)
65 if (iter->cur_iova != iopt_area_iova(iter->area) ||
66 !iter->area->pages) {
67 iter->area = NULL;
70 return iter->area;
440 struct iopt_area_contig_iter iter;
449 iopt_for_each_contig_area(&iter, area, arg->iopt, iova, last_iova) {
452 ret = ops->read_and_clear_dirty(domain, iter.cur_iova,
453 last - iter.cur_iova + 1, flags,
459 if (!iopt_area_contig_done(&iter))
473 struct iova_bitmap *iter;
479 iter = iova_bitmap_alloc(bitmap->iova, bitmap->length,
482 if (IS_ERR(iter))
485 iommu_dirty_bitmap_init(&dirty, iter, &gather);
491 iova_bitmap_for_each(iter, &arg, __iommu_read_and_clear_dirty);
496 iova_bitmap_free(iter);
602 struct iopt_area_contig_iter iter;
613 iopt_for_each_contig_area(&iter, area, iopt, iova, last_iova) {
622 elm->start_byte = iopt_area_start_byte(area, iter.cur_iova);
624 elm->length = (last - iter.cur_iova) + 1;
628 if (!iopt_area_contig_done(&iter)) {