Lines Matching refs:start

50 xbitmap64_tree_iter_first(struct rb_root_cached *root, uint64_t start,
54 xbitmap64_tree_iter_next(struct xbitmap64_node *node, uint64_t start,
73 uint64_t start,
78 uint64_t last = start + len - 1;
80 while ((bn = xbitmap64_tree_iter_first(&bitmap->xb_root, start, last))) {
81 if (bn->bn_start < start && bn->bn_last > last) {
86 bn->bn_last = start - 1;
97 } else if (bn->bn_start < start) {
100 bn->bn_last = start - 1;
122 uint64_t start, in xbitmap64_set() argument
127 uint64_t last = start + len - 1; in xbitmap64_set()
131 left = xbitmap64_tree_iter_first(&bitmap->xb_root, start, last); in xbitmap64_set()
132 if (left && left->bn_start <= start && left->bn_last >= last) in xbitmap64_set()
136 error = xbitmap64_clear(bitmap, start, len); in xbitmap64_set()
141 left = xbitmap64_tree_iter_first(&bitmap->xb_root, start - 1, start - 1); in xbitmap64_set()
142 ASSERT(!left || left->bn_last + 1 == start); in xbitmap64_set()
163 right->bn_start = start; in xbitmap64_set()
170 left->bn_start = start; in xbitmap64_set()
279 uint64_t start, in xbitmap64_test() argument
283 uint64_t last = start + *len - 1; in xbitmap64_test()
285 bn = xbitmap64_tree_iter_first(&bitmap->xb_root, start, last); in xbitmap64_test()
288 if (bn->bn_start <= start) { in xbitmap64_test()
290 *len = bn->bn_last - start + 1; in xbitmap64_test()
293 *len = bn->bn_start - start; in xbitmap64_test()
325 xbitmap32_tree_iter_first(struct rb_root_cached *root, uint32_t start,
329 xbitmap32_tree_iter_next(struct xbitmap32_node *node, uint32_t start,
348 uint32_t start,
353 uint32_t last = start + len - 1;
355 while ((bn = xbitmap32_tree_iter_first(&bitmap->xb_root, start, last))) {
356 if (bn->bn_start < start && bn->bn_last > last) {
361 bn->bn_last = start - 1;
372 } else if (bn->bn_start < start) {
375 bn->bn_last = start - 1;
397 uint32_t start, in xbitmap32_set() argument
402 uint32_t last = start + len - 1; in xbitmap32_set()
406 left = xbitmap32_tree_iter_first(&bitmap->xb_root, start, last); in xbitmap32_set()
407 if (left && left->bn_start <= start && left->bn_last >= last) in xbitmap32_set()
411 error = xbitmap32_clear(bitmap, start, len); in xbitmap32_set()
416 left = xbitmap32_tree_iter_first(&bitmap->xb_root, start - 1, start - 1); in xbitmap32_set()
417 ASSERT(!left || left->bn_last + 1 == start); in xbitmap32_set()
438 right->bn_start = start; in xbitmap32_set()
445 left->bn_start = start; in xbitmap32_set()
554 uint32_t start, in xbitmap32_test() argument
558 uint32_t last = start + *len - 1; in xbitmap32_test()
560 bn = xbitmap32_tree_iter_first(&bitmap->xb_root, start, last); in xbitmap32_test()
563 if (bn->bn_start <= start) { in xbitmap32_test()
565 *len = bn->bn_last - start + 1; in xbitmap32_test()
568 *len = bn->bn_start - start; in xbitmap32_test()