Lines Matching defs:iter
191 static struct page *z_erofs_bvec_iter_end(struct z_erofs_bvec_iter *iter)
193 if (iter->bvpage)
194 kunmap_local(iter->bvset);
195 return iter->bvpage;
198 static struct page *z_erofs_bvset_flip(struct z_erofs_bvec_iter *iter)
202 struct page *nextpage = iter->bvset->nextpage;
206 oldpage = z_erofs_bvec_iter_end(iter);
207 iter->bvpage = nextpage;
208 iter->bvset = kmap_local_page(nextpage);
209 iter->nr = (PAGE_SIZE - base) / sizeof(struct z_erofs_bvec);
210 iter->cur = 0;
214 static void z_erofs_bvec_iter_begin(struct z_erofs_bvec_iter *iter,
219 *iter = (struct z_erofs_bvec_iter) {
224 while (cur > iter->nr) {
225 cur -= iter->nr;
226 z_erofs_bvset_flip(iter);
228 iter->cur = cur;
231 static int z_erofs_bvec_enqueue(struct z_erofs_bvec_iter *iter,
236 if (iter->cur >= iter->nr) {
245 DBG_BUGON(iter->bvset->nextpage);
246 iter->bvset->nextpage = nextpage;
247 z_erofs_bvset_flip(iter);
249 iter->bvset->nextpage = NULL;
252 iter->bvset->bvec[iter->cur++] = *bvec;
256 static void z_erofs_bvec_dequeue(struct z_erofs_bvec_iter *iter,
260 if (iter->cur == iter->nr)
261 *old_bvpage = z_erofs_bvset_flip(iter);
264 *bvec = iter->bvset->bvec[iter->cur++];