Home | History | Annotate | Download | only in drm

Lines Matching defs:rb

39  * an RB-tree is used instead. At least if we expect heavy fragmentation.
161 INTERVAL_TREE_DEFINE(struct drm_mm_node, rb,
189 struct rb_node **link, *rb;
196 rb = &hole_node->rb;
197 while (rb) {
198 parent = rb_entry(rb, struct drm_mm_node, rb);
203 rb = rb_parent(rb);
206 rb = &hole_node->rb;
207 link = &hole_node->rb.rb_right;
210 rb = NULL;
216 rb = *link;
217 parent = rb_entry(rb, struct drm_mm_node, rb);
221 link = &parent->rb.rb_left;
223 link = &parent->rb.rb_right;
228 rb_link_node(&node->rb, rb, link);
229 rb_insert_augmented_cached(&node->rb, &mm->interval_tree, leftmost,
280 struct rb_node **link = &root.rb_node, *rb = NULL; \
283 rb = *link; \
284 if (x < expr(rb_entry(rb, struct drm_mm_node, member))) \
285 link = &rb->rb_left; \
287 link = &rb->rb_right; \
289 rb_link_node(&node->member, rb, link); \
298 static u64 rb_to_hole_size(struct rb_node *rb)
300 return rb_entry(rb, struct drm_mm_node, rb_hole_size)->hole_size;
342 struct rb_node **link = &root->rb_root.rb_node, *rb = NULL;
347 rb = *link;
348 if (x > rb_to_hole_size(rb)) {
349 link = &rb->rb_left;
351 link = &rb->rb_right;
356 rb_link_node(&node->rb_hole_size, rb, link);
393 static inline struct drm_mm_node *rb_hole_size_to_node(struct rb_node *rb)
395 return rb_entry_safe(rb, struct drm_mm_node, rb_hole_size);
398 static inline struct drm_mm_node *rb_hole_addr_to_node(struct rb_node *rb)
400 return rb_entry_safe(rb, struct drm_mm_node, rb_hole_addr);
403 static inline u64 rb_hole_size(struct rb_node *rb)
405 return rb_entry(rb, struct drm_mm_node, rb_hole_size)->hole_size;
418 struct rb_node *rb = mm->holes_size.rb_root.rb_node;
423 rb_entry(rb, struct drm_mm_node, rb_hole_size);
427 rb = rb->rb_right;
429 rb = rb->rb_left;
431 } while (rb);
440 struct rb_node *rb = mm->holes_addr.rbr_tree.rbt_root;
442 struct rb_node *rb = mm->holes_addr.rb_node;
446 while (rb) {
449 node = rb_hole_addr_to_node(rb);
453 rb = node->rb_hole_addr.rb_left;
455 rb = node->rb_hole_addr.rb_right;
579 static u64 rb_to_hole_size_or_zero(struct rb_node *rb)
581 return rb ? rb_to_hole_size(rb) : 0;
763 rb_replace_node_cached(&old->rb, &new->rb, &mm->interval_tree);