Lines Matching full:rt
28 * range_tree_set(rt, 0, max);
30 * start = range_tree_find(rt, len);
32 * range_tree_clear(rt, start, len);
34 * range_tree_set(rt, start, len);
56 static inline struct range_node *__find_range(struct range_tree *rt, u32 len) in __find_range() argument
58 struct rb_node *rb = rt->range_size_root.rb_root.rb_node; in __find_range()
75 s64 range_tree_find(struct range_tree *rt, u32 len) in range_tree_find() argument
79 rn = __find_range(rt, len); in range_tree_find()
116 range_it_insert(struct range_node *rn, struct range_tree *rt) in INTERVAL_TREE_DEFINE()
118 __range_size_insert(rn, &rt->range_size_root); in INTERVAL_TREE_DEFINE()
119 __range_it_insert(rn, &rt->it_root); in INTERVAL_TREE_DEFINE()
123 range_it_remove(struct range_node *rn, struct range_tree *rt) in range_it_remove() argument
125 rb_erase_cached(&rn->rb_range_size, &rt->range_size_root); in range_it_remove()
127 __range_it_remove(rn, &rt->it_root); in range_it_remove()
131 range_it_iter_first(struct range_tree *rt, u32 start, u32 last) in range_it_iter_first() argument
133 return __range_it_iter_first(&rt->it_root, start, last); in range_it_iter_first()
137 int range_tree_clear(struct range_tree *rt, u32 start, u32 len) in range_tree_clear() argument
143 while ((rn = range_it_iter_first(rt, start, last))) { in range_tree_clear()
148 range_it_remove(rn, rt); in range_tree_clear()
150 range_it_insert(rn, rt); in range_tree_clear()
160 range_it_insert(new_rn, rt); in range_tree_clear()
163 range_it_remove(rn, rt); in range_tree_clear()
165 range_it_insert(rn, rt); in range_tree_clear()
168 range_it_remove(rn, rt); in range_tree_clear()
170 range_it_insert(rn, rt); in range_tree_clear()
174 range_it_remove(rn, rt); in range_tree_clear()
184 int is_range_tree_set(struct range_tree *rt, u32 start, u32 len) in is_range_tree_set() argument
190 left = range_it_iter_first(rt, start, last); in is_range_tree_set()
197 int range_tree_set(struct range_tree *rt, u32 start, u32 len) in range_tree_set() argument
205 left = range_it_iter_first(rt, start, last); in range_tree_set()
210 err = range_tree_clear(rt, start, len); in range_tree_set()
215 left = range_it_iter_first(rt, start - 1, start - 1); in range_tree_set()
220 right = range_it_iter_first(rt, last + 1, last + 1); in range_tree_set()
226 range_it_remove(left, rt); in range_tree_set()
227 range_it_remove(right, rt); in range_tree_set()
229 range_it_insert(left, rt); in range_tree_set()
235 range_it_remove(left, rt); in range_tree_set()
237 range_it_insert(left, rt); in range_tree_set()
240 range_it_remove(right, rt); in range_tree_set()
242 range_it_insert(right, rt); in range_tree_set()
251 range_it_insert(left, rt); in range_tree_set()
256 void range_tree_destroy(struct range_tree *rt) in range_tree_destroy() argument
260 while ((rn = range_it_iter_first(rt, 0, -1U))) { in range_tree_destroy()
261 range_it_remove(rn, rt); in range_tree_destroy()
266 void range_tree_init(struct range_tree *rt) in range_tree_init() argument
268 rt->it_root = RB_ROOT_CACHED; in range_tree_init()
269 rt->range_size_root = RB_ROOT_CACHED; in range_tree_init()