Lines Matching defs:wpos
58 * Scan range [wpos wbits) window @buf.
62 static size_t wnd_scan(const void *buf, size_t wbit, u32 wpos, u32 wend,
66 while (wpos < wend) {
69 u32 used = find_next_zero_bit_le(buf, wend, wpos);
81 if (used > wpos) {
82 wpos = used;
92 * Now we have a fragment [wpos, wend) staring with 0.
94 end = wpos + to_alloc - *prev_tail;
95 free_bits = find_next_bit_le(buf, min(end, wend), wpos);
97 free_len = *prev_tail + free_bits - wpos;
100 *b_pos = wbit + wpos - *prev_tail;
105 return wbit + wpos - *prev_tail;
108 *prev_tail += free_bits - wpos;
112 wpos = free_bits + 1;
508 size_t wpos, wbit, iw, vbo;
568 wpos = 0;
575 used = find_next_zero_bit_le(bh->b_data, wbits, wpos);
577 if (used > wpos && prev_tail) {
578 wnd_add_free_ext(wnd, wbit + wpos - prev_tail,
583 wpos = used;
585 if (wpos >= wbits) {
591 frb = find_next_bit_le(bh->b_data, wbits, wpos);
594 prev_tail += frb - wpos;
598 wnd_add_free_ext(wnd, wbit + wpos - prev_tail,
599 frb + prev_tail - wpos, true);
602 wpos = frb + 1;
605 } while (wpos < wbits);
991 u32 wbits, wpos, wzbit, wzend;
1150 wpos = hint & (wbits - 1);
1174 wpos = 0;
1206 wpos = 0;
1216 wpos = 0;
1221 if (wpos < wzbit) {
1222 /* Scan range [wpos, zbit). */
1223 fnd = wnd_scan(bh->b_data, wbit, wpos,
1238 max(wzend, wpos), wbits,
1247 wpos = 0;
1254 if (!wpos && fbits_valid && wnd->free_bits[iw] == wbits) {
1257 fnd = wbit + wpos - prev_tail;
1263 wpos = 0;
1272 wpos = 0;
1276 /* Scan range [wpos, eBits). */
1277 fnd = wnd_scan(bh->b_data, wbit, wpos, wbits, to_alloc,