Lines Matching refs:bit

37 static bool wnd_is_free_hlp(struct wnd_bitmap *wnd, size_t bit, size_t bits);
231 static void wnd_add_free_ext(struct wnd_bitmap *wnd, size_t bit, size_t len, in wnd_add_free_ext() argument
235 size_t ib, end_in = bit + len; in wnd_add_free_ext()
247 n = rb_lookup(&wnd->start_tree, bit); in wnd_add_free_ext()
254 if (e->start.key + e->count.key == bit) { in wnd_add_free_ext()
256 bit = e->start.key; in wnd_add_free_ext()
290 bit < wnd->zone_end ? in wnd_add_free_ext()
294 while (bit > ib && wnd_is_free_hlp(wnd, bit - 1, 1)) { in wnd_add_free_ext()
295 bit -= 1; in wnd_add_free_ext()
347 e->start.key = bit; in wnd_add_free_ext()
362 static void wnd_remove_free_ext(struct wnd_bitmap *wnd, size_t bit, size_t len) in wnd_remove_free_ext() argument
366 size_t end_in = bit + len; in wnd_remove_free_ext()
370 n = rb_lookup(&wnd->start_tree, bit); in wnd_remove_free_ext()
382 if (e->start.key > bit) in wnd_remove_free_ext()
388 len = bit - e->start.key; in wnd_remove_free_ext()
389 } else if (bit > end) { in wnd_remove_free_ext()
709 int wnd_set_free(struct wnd_bitmap *wnd, size_t bit, size_t bits) in wnd_set_free() argument
714 size_t iw = bit >> (sb->s_blocksize_bits + 3); in wnd_set_free()
715 u32 wbit = bit & (wbits - 1); in wnd_set_free()
719 for (; iw < wnd->nwnd && bits; iw++, bit += op, bits -= op, wbit = 0) { in wnd_set_free()
743 wnd_add_free_ext(wnd, bit, op, false); in wnd_set_free()
751 int wnd_set_used(struct wnd_bitmap *wnd, size_t bit, size_t bits) in wnd_set_used() argument
755 size_t iw = bit >> (sb->s_blocksize_bits + 3); in wnd_set_used()
757 u32 wbit = bit & (wbits - 1); in wnd_set_used()
761 for (; iw < wnd->nwnd && bits; iw++, bit += op, bits -= op, wbit = 0) { in wnd_set_used()
785 wnd_remove_free_ext(wnd, bit, op); in wnd_set_used()
799 int wnd_set_used_safe(struct wnd_bitmap *wnd, size_t bit, size_t bits, in wnd_set_used_safe() argument
807 if (wnd_is_free(wnd, bit + i, 1)) { in wnd_set_used_safe()
809 from = bit + i; in wnd_set_used_safe()
833 static bool wnd_is_free_hlp(struct wnd_bitmap *wnd, size_t bit, size_t bits) in wnd_is_free_hlp() argument
836 size_t iw = bit >> (sb->s_blocksize_bits + 3); in wnd_is_free_hlp()
838 u32 wbit = bit & (wbits - 1); in wnd_is_free_hlp()
870 bool wnd_is_free(struct wnd_bitmap *wnd, size_t bit, size_t bits) in wnd_is_free() argument
880 n = rb_lookup(&wnd->start_tree, bit); in wnd_is_free()
888 if (bit < end && bit + bits <= end) in wnd_is_free()
892 ret = wnd_is_free_hlp(wnd, bit, bits); in wnd_is_free()
902 bool wnd_is_used(struct wnd_bitmap *wnd, size_t bit, size_t bits) in wnd_is_used() argument
906 size_t iw = bit >> (sb->s_blocksize_bits + 3); in wnd_is_used()
908 u32 wbit = bit & (wbits - 1); in wnd_is_used()
917 end = bit + bits; in wnd_is_used()
923 if (e->start.key + e->count.key > bit) in wnd_is_used()