Lines Matching full:start
2 * CDDL HEADER START
205 zfs_range_seg_type_t type, void *arg, uint64_t start, uint64_t shift, in ZFS_BTREE_FIND_IN_BUF_FUNC()
240 rt->rt_start = start; in ZFS_BTREE_FIND_IN_BUF_FUNC()
251 zfs_range_seg_type_t type, void *arg, uint64_t start, uint64_t shift) in zfs_range_tree_create() argument
253 return (zfs_range_tree_create_gap(ops, type, arg, start, shift, 0)); in zfs_range_tree_create()
294 zfs_range_tree_add_impl(void *arg, uint64_t start, uint64_t size, uint64_t fill) in zfs_range_tree_add_impl() argument
300 uint64_t end = start + size, gap = rt->rt_gap; in zfs_range_tree_add_impl()
306 ASSERT3U(start + size, >, start); in zfs_range_tree_add_impl()
308 zfs_rs_set_start(&rsearch, rt, start); in zfs_range_tree_add_impl()
324 (longlong_t)start, (longlong_t)size); in zfs_range_tree_add_impl()
329 if (rstart <= start && rend >= end) { in zfs_range_tree_add_impl()
341 start = MIN(start, rstart); in zfs_range_tree_add_impl()
343 size = end - start; in zfs_range_tree_add_impl()
346 zfs_range_tree_add_impl(rt, start, size, fill); in zfs_range_tree_add_impl()
362 start - gap); in zfs_range_tree_add_impl()
367 bridge_size += start - zfs_rs_get_end(rs_before, rt); in zfs_range_tree_add_impl()
412 zfs_rs_set_start(rs_after, rt, start); in zfs_range_tree_add_impl()
418 zfs_rs_set_start(rs, rt, start); in zfs_range_tree_add_impl()
440 zfs_range_tree_add(void *arg, uint64_t start, uint64_t size) in zfs_range_tree_add() argument
442 zfs_range_tree_add_impl(arg, start, size, size); in zfs_range_tree_add()
446 zfs_range_tree_remove_impl(zfs_range_tree_t *rt, uint64_t start, uint64_t size, in zfs_range_tree_remove_impl() argument
452 uint64_t end = start + size; in zfs_range_tree_remove_impl()
458 ASSERT3U(start + size, >, start); in zfs_range_tree_remove_impl()
460 zfs_rs_set_start(&rsearch, rt, start); in zfs_range_tree_remove_impl()
468 (longlong_t)start, (longlong_t)size); in zfs_range_tree_remove_impl()
481 start = zfs_rs_get_start(rs, rt); in zfs_range_tree_remove_impl()
483 size = end - start; in zfs_range_tree_remove_impl()
488 } else if (zfs_rs_get_start(rs, rt) != start || in zfs_range_tree_remove_impl()
493 (longlong_t)start, (longlong_t)size, in zfs_range_tree_remove_impl()
501 VERIFY3U(zfs_rs_get_start(rs, rt), <=, start); in zfs_range_tree_remove_impl()
504 left_over = (zfs_rs_get_start(rs, rt) != start); in zfs_range_tree_remove_impl()
520 zfs_rs_set_end(rs, rt, start); in zfs_range_tree_remove_impl()
532 zfs_rs_set_end(rs, rt, start); in zfs_range_tree_remove_impl()
561 zfs_range_tree_remove(void *arg, uint64_t start, uint64_t size) in zfs_range_tree_remove() argument
563 zfs_range_tree_remove_impl(arg, start, size, B_FALSE); in zfs_range_tree_remove()
567 zfs_range_tree_remove_fill(zfs_range_tree_t *rt, uint64_t start, uint64_t size) in zfs_range_tree_remove_fill() argument
569 zfs_range_tree_remove_impl(rt, start, size, B_TRUE); in zfs_range_tree_remove_fill()
594 zfs_range_tree_find_impl(zfs_range_tree_t *rt, uint64_t start, uint64_t size) in zfs_range_tree_find_impl() argument
597 uint64_t end = start + size; in zfs_range_tree_find_impl()
601 zfs_rs_set_start(&rsearch, rt, start); in zfs_range_tree_find_impl()
607 zfs_range_tree_find(zfs_range_tree_t *rt, uint64_t start, uint64_t size) in zfs_range_tree_find() argument
610 ASSERT3U(start + size, >, start); in zfs_range_tree_find()
612 zfs_range_seg_t *rs = zfs_range_tree_find_impl(rt, start, size); in zfs_range_tree_find()
613 if (rs != NULL && zfs_rs_get_start(rs, rt) <= start && in zfs_range_tree_find()
614 zfs_rs_get_end(rs, rt) >= start + size) { in zfs_range_tree_find()
630 zfs_range_tree_contains(zfs_range_tree_t *rt, uint64_t start, uint64_t size) in zfs_range_tree_contains() argument
632 return (zfs_range_tree_find(rt, start, size) != NULL); in zfs_range_tree_contains()
641 zfs_range_tree_find_in(zfs_range_tree_t *rt, uint64_t start, uint64_t size, in zfs_range_tree_find_in() argument
645 ASSERT3U(start + size, >, start); in zfs_range_tree_find_in()
648 zfs_rs_set_start(&rsearch, rt, start); in zfs_range_tree_find_in()
655 *ostart = start; in zfs_range_tree_find_in()
656 *osize = MIN(size, zfs_rs_get_end(rs, rt) - start); in zfs_range_tree_find_in()
661 if (rs == NULL || zfs_rs_get_start(rs, rt) > start + size) in zfs_range_tree_find_in()
665 *osize = MIN(start + size, zfs_rs_get_end(rs, rt)) - in zfs_range_tree_find_in()
675 zfs_range_tree_clear(zfs_range_tree_t *rt, uint64_t start, uint64_t size) in zfs_range_tree_clear() argument
683 ASSERT3U(start + size, >, start); in zfs_range_tree_clear()
685 while ((rs = zfs_range_tree_find_impl(rt, start, size)) != NULL) { in zfs_range_tree_clear()
686 uint64_t free_start = MAX(zfs_rs_get_start(rs, rt), start); in zfs_range_tree_clear()
687 uint64_t free_end = MIN(zfs_rs_get_end(rs, rt), start + size); in zfs_range_tree_clear()
767 * Remove any overlapping ranges between the given segment [start, end)
771 zfs_range_tree_remove_xor_add_segment(uint64_t start, uint64_t end, in zfs_range_tree_remove_xor_add_segment() argument
776 zfs_rs_set_start(&starting_rs, removefrom, start); in zfs_range_tree_remove_xor_add_segment()
788 if (start == end) in zfs_range_tree_remove_xor_add_segment()
790 VERIFY3U(start, <, end); in zfs_range_tree_remove_xor_add_segment()
794 zfs_range_tree_add(addto, start, end - start); in zfs_range_tree_remove_xor_add_segment()
799 start); in zfs_range_tree_remove_xor_add_segment()
809 if (start < overlap_start) in zfs_range_tree_remove_xor_add_segment()
810 zfs_range_tree_add(addto, start, overlap_start - start); in zfs_range_tree_remove_xor_add_segment()
812 start = overlap_end; in zfs_range_tree_remove_xor_add_segment()
818 * or there's some left at the start because we started in zfs_range_tree_remove_xor_add_segment()
820 * the loop. If it's the former, we'll return at the start of in zfs_range_tree_remove_xor_add_segment()
825 ASSERT(start == end || start == zfs_rs_get_end(&rs, in zfs_range_tree_remove_xor_add_segment()
833 if (start != end) { in zfs_range_tree_remove_xor_add_segment()
834 VERIFY3U(start, <, end); in zfs_range_tree_remove_xor_add_segment()
835 zfs_range_tree_add(addto, start, end - start); in zfs_range_tree_remove_xor_add_segment()
837 VERIFY3U(start, ==, end); in zfs_range_tree_remove_xor_add_segment()