Lines Matching refs:iter
64 #define __bvec_iter_bvec(bvec, iter) (&(bvec)[(iter).bi_idx]) argument
66 #define bvec_iter_page(bvec, iter) \ argument
67 (__bvec_iter_bvec((bvec), (iter))->bv_page)
69 #define bvec_iter_len(bvec, iter) \ argument
70 min((iter).bi_size, \
71 __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
73 #define bvec_iter_offset(bvec, iter) \ argument
74 (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
76 #define bvec_iter_bvec(bvec, iter) \ argument
78 .bv_page = bvec_iter_page((bvec), (iter)), \
79 .bv_len = bvec_iter_len((bvec), (iter)), \
80 .bv_offset = bvec_iter_offset((bvec), (iter)), \
83 #define bio_iter_iovec(bio, iter) \ argument
84 bvec_iter_bvec((bio)->bi_io_vec, (iter))
86 #define bio_iter_page(bio, iter) \ argument
87 bvec_iter_page((bio)->bi_io_vec, (iter))
88 #define bio_iter_len(bio, iter) \ argument
89 bvec_iter_len((bio)->bi_io_vec, (iter))
90 #define bio_iter_offset(bio, iter) \ argument
91 bvec_iter_offset((bio)->bi_io_vec, (iter))
162 #define __bio_kmap_atomic(bio, iter) \ argument
163 (kmap_atomic(bio_iter_iovec((bio), (iter)).bv_page) + \
164 bio_iter_iovec((bio), (iter)).bv_offset)
207 static inline void bvec_iter_advance(struct bio_vec *bv, struct bvec_iter *iter, in bvec_iter_advance() argument
210 WARN_ONCE(bytes > iter->bi_size, in bvec_iter_advance()
214 unsigned len = min(bytes, bvec_iter_len(bv, *iter)); in bvec_iter_advance()
217 iter->bi_size -= len; in bvec_iter_advance()
218 iter->bi_bvec_done += len; in bvec_iter_advance()
220 if (iter->bi_bvec_done == __bvec_iter_bvec(bv, *iter)->bv_len) { in bvec_iter_advance()
221 iter->bi_bvec_done = 0; in bvec_iter_advance()
222 iter->bi_idx++; in bvec_iter_advance()
227 #define for_each_bvec(bvl, bio_vec, iter, start) \ argument
228 for (iter = (start); \
229 (iter).bi_size && \
230 ((bvl = bvec_iter_bvec((bio_vec), (iter))), 1); \
231 bvec_iter_advance((bio_vec), &(iter), (bvl).bv_len))
234 static inline void bio_advance_iter(struct bio *bio, struct bvec_iter *iter, in bio_advance_iter() argument
237 iter->bi_sector += bytes >> 9; in bio_advance_iter()
240 iter->bi_size -= bytes; in bio_advance_iter()
242 bvec_iter_advance(bio->bi_io_vec, iter, bytes); in bio_advance_iter()
245 #define __bio_for_each_segment(bvl, bio, iter, start) \ argument
246 for (iter = (start); \
247 (iter).bi_size && \
248 ((bvl = bio_iter_iovec((bio), (iter))), 1); \
249 bio_advance_iter((bio), &(iter), (bvl).bv_len))
251 #define bio_for_each_segment(bvl, bio, iter) \ argument
252 __bio_for_each_segment(bvl, bio, iter, (bio)->bi_iter)
254 #define bio_iter_last(bvec, iter) ((iter).bi_size == (bvec).bv_len) argument
260 struct bvec_iter iter; in bio_segments() local
273 bio_for_each_segment(bv, bio, iter) in bio_segments()
520 static inline char *__bio_kmap_irq(struct bio *bio, struct bvec_iter iter, in __bio_kmap_irq() argument
523 return bvec_kmap_irq(&bio_iter_iovec(bio, iter), flags); in __bio_kmap_irq()
692 #define bip_for_each_vec(bvl, bip, iter) \ argument
693 for_each_bvec(bvl, (bip)->bip_vec, iter, (bip)->bip_iter)