Lines Matching refs:iter

58 #define __bvec_iter_bvec(bvec, iter)	(&(bvec)[(iter).bi_idx])  argument
61 #define mp_bvec_iter_page(bvec, iter) \ argument
62 (__bvec_iter_bvec((bvec), (iter))->bv_page)
64 #define mp_bvec_iter_len(bvec, iter) \ argument
65 min((iter).bi_size, \
66 __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
68 #define mp_bvec_iter_offset(bvec, iter) \ argument
69 (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
71 #define mp_bvec_iter_page_idx(bvec, iter) \ argument
72 (mp_bvec_iter_offset((bvec), (iter)) / PAGE_SIZE)
74 #define mp_bvec_iter_bvec(bvec, iter) \ argument
76 .bv_page = mp_bvec_iter_page((bvec), (iter)), \
77 .bv_len = mp_bvec_iter_len((bvec), (iter)), \
78 .bv_offset = mp_bvec_iter_offset((bvec), (iter)), \
82 #define bvec_iter_offset(bvec, iter) \ argument
83 (mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE)
85 #define bvec_iter_len(bvec, iter) \ argument
86 min_t(unsigned, mp_bvec_iter_len((bvec), (iter)), \
87 PAGE_SIZE - bvec_iter_offset((bvec), (iter)))
89 #define bvec_iter_page(bvec, iter) \ argument
90 (mp_bvec_iter_page((bvec), (iter)) + \
91 mp_bvec_iter_page_idx((bvec), (iter)))
93 #define bvec_iter_bvec(bvec, iter) \ argument
95 .bv_page = bvec_iter_page((bvec), (iter)), \
96 .bv_len = bvec_iter_len((bvec), (iter)), \
97 .bv_offset = bvec_iter_offset((bvec), (iter)), \
101 struct bvec_iter *iter, unsigned bytes) in bvec_iter_advance() argument
103 unsigned int idx = iter->bi_idx; in bvec_iter_advance()
105 if (WARN_ONCE(bytes > iter->bi_size, in bvec_iter_advance()
107 iter->bi_size = 0; in bvec_iter_advance()
111 iter->bi_size -= bytes; in bvec_iter_advance()
112 bytes += iter->bi_bvec_done; in bvec_iter_advance()
119 iter->bi_idx = idx; in bvec_iter_advance()
120 iter->bi_bvec_done = bytes; in bvec_iter_advance()
124 static inline void bvec_iter_skip_zero_bvec(struct bvec_iter *iter) in bvec_iter_skip_zero_bvec() argument
126 iter->bi_bvec_done = 0; in bvec_iter_skip_zero_bvec()
127 iter->bi_idx++; in bvec_iter_skip_zero_bvec()
130 #define for_each_bvec(bvl, bio_vec, iter, start) \ argument
131 for (iter = (start); \
132 (iter).bi_size && \
133 ((bvl = bvec_iter_bvec((bio_vec), (iter))), 1); \
134 (bvl).bv_len ? (void)bvec_iter_advance((bio_vec), &(iter), \
135 (bvl).bv_len) : bvec_iter_skip_zero_bvec(&(iter)))