Lines Matching refs:iter
53 #define __bvec_iter_bvec(bvec, iter) (&(bvec)[(iter).bi_idx]) argument
55 #define bvec_iter_page(bvec, iter) \ argument
56 (__bvec_iter_bvec((bvec), (iter))->bv_page)
58 #define bvec_iter_len(bvec, iter) \ argument
59 min((iter).bi_size, \
60 __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
62 #define bvec_iter_offset(bvec, iter) \ argument
63 (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
65 #define bvec_iter_bvec(bvec, iter) \ argument
67 .bv_page = bvec_iter_page((bvec), (iter)), \
68 .bv_len = bvec_iter_len((bvec), (iter)), \
69 .bv_offset = bvec_iter_offset((bvec), (iter)), \
73 struct bvec_iter *iter, unsigned bytes) in bvec_iter_advance() argument
75 if (WARN_ONCE(bytes > iter->bi_size, in bvec_iter_advance()
77 iter->bi_size = 0; in bvec_iter_advance()
82 unsigned iter_len = bvec_iter_len(bv, *iter); in bvec_iter_advance()
86 iter->bi_size -= len; in bvec_iter_advance()
87 iter->bi_bvec_done += len; in bvec_iter_advance()
88 iter->bi_done += len; in bvec_iter_advance()
90 if (iter->bi_bvec_done == __bvec_iter_bvec(bv, *iter)->bv_len) { in bvec_iter_advance()
91 iter->bi_bvec_done = 0; in bvec_iter_advance()
92 iter->bi_idx++; in bvec_iter_advance()
99 struct bvec_iter *iter, in bvec_iter_rewind() argument
103 unsigned len = min(bytes, iter->bi_bvec_done); in bvec_iter_rewind()
105 if (iter->bi_bvec_done == 0) { in bvec_iter_rewind()
106 if (WARN_ONCE(iter->bi_idx == 0, in bvec_iter_rewind()
111 iter->bi_idx--; in bvec_iter_rewind()
112 iter->bi_bvec_done = __bvec_iter_bvec(bv, *iter)->bv_len; in bvec_iter_rewind()
116 iter->bi_size += len; in bvec_iter_rewind()
117 iter->bi_bvec_done -= len; in bvec_iter_rewind()
122 #define for_each_bvec(bvl, bio_vec, iter, start) \ argument
123 for (iter = (start); \
124 (iter).bi_size && \
125 ((bvl = bvec_iter_bvec((bio_vec), (iter))), 1); \
126 bvec_iter_advance((bio_vec), &(iter), (bvl).bv_len))