Lines Matching refs:iter

59 #define __bvec_iter_bvec(bvec, iter)	(&(bvec)[(iter).bi_idx])  argument
62 #define mp_bvec_iter_page(bvec, iter) \ argument
63 (__bvec_iter_bvec((bvec), (iter))->bv_page)
65 #define mp_bvec_iter_len(bvec, iter) \ argument
66 min((iter).bi_size, \
67 __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
69 #define mp_bvec_iter_offset(bvec, iter) \ argument
70 (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
72 #define mp_bvec_iter_page_idx(bvec, iter) \ argument
73 (mp_bvec_iter_offset((bvec), (iter)) / PAGE_SIZE)
75 #define mp_bvec_iter_bvec(bvec, iter) \ argument
77 .bv_page = mp_bvec_iter_page((bvec), (iter)), \
78 .bv_len = mp_bvec_iter_len((bvec), (iter)), \
79 .bv_offset = mp_bvec_iter_offset((bvec), (iter)), \
83 #define bvec_iter_offset(bvec, iter) \ argument
84 (mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE)
86 #define bvec_iter_len(bvec, iter) \ argument
87 min_t(unsigned, mp_bvec_iter_len((bvec), (iter)), \
88 PAGE_SIZE - bvec_iter_offset((bvec), (iter)))
90 #define bvec_iter_page(bvec, iter) \ argument
91 (mp_bvec_iter_page((bvec), (iter)) + \
92 mp_bvec_iter_page_idx((bvec), (iter)))
94 #define bvec_iter_bvec(bvec, iter) \ argument
96 .bv_page = bvec_iter_page((bvec), (iter)), \
97 .bv_len = bvec_iter_len((bvec), (iter)), \
98 .bv_offset = bvec_iter_offset((bvec), (iter)), \
102 struct bvec_iter *iter, unsigned bytes) in bvec_iter_advance() argument
104 unsigned int idx = iter->bi_idx; in bvec_iter_advance()
106 if (WARN_ONCE(bytes > iter->bi_size, in bvec_iter_advance()
108 iter->bi_size = 0; in bvec_iter_advance()
112 iter->bi_size -= bytes; in bvec_iter_advance()
113 bytes += iter->bi_bvec_done; in bvec_iter_advance()
120 iter->bi_idx = idx; in bvec_iter_advance()
121 iter->bi_bvec_done = bytes; in bvec_iter_advance()
130 struct bvec_iter *iter, unsigned int bytes) in bvec_iter_advance_single() argument
132 unsigned int done = iter->bi_bvec_done + bytes; in bvec_iter_advance_single()
134 if (done == bv[iter->bi_idx].bv_len) { in bvec_iter_advance_single()
136 iter->bi_idx++; in bvec_iter_advance_single()
138 iter->bi_bvec_done = done; in bvec_iter_advance_single()
139 iter->bi_size -= bytes; in bvec_iter_advance_single()
142 #define for_each_bvec(bvl, bio_vec, iter, start) \ argument
143 for (iter = (start); \
144 (iter).bi_size && \
145 ((bvl = bvec_iter_bvec((bio_vec), (iter))), 1); \
146 bvec_iter_advance_single((bio_vec), &(iter), (bvl).bv_len))