Lines Matching refs:node
38 ITSTATIC void ITPREFIX ## _insert(ITSTRUCT *node, \
42 ITTYPE start = ITSTART(node), last = ITLAST(node); \
59 node->ITSUBTREE = last; \
60 rb_link_node(&node->ITRB, rb_parent, link); \
61 rb_insert_augmented_cached(&node->ITRB, root, \
65 ITSTATIC void ITPREFIX ## _remove(ITSTRUCT *node, \
68 rb_erase_augmented_cached(&node->ITRB, root, &ITPREFIX ## _augment); \
81 ITPREFIX ## _subtree_search(ITSTRUCT *node, ITTYPE start, ITTYPE last) \
88 if (node->ITRB.rb_left) { \
89 ITSTRUCT *left = rb_entry(node->ITRB.rb_left, \
100 node = left; \
104 if (ITSTART(node) <= last) { /* Cond1 */ \
105 if (start <= ITLAST(node)) /* Cond2 */ \
106 return node; /* node is leftmost match */ \
107 if (node->ITRB.rb_right) { \
108 node = rb_entry(node->ITRB.rb_right, \
110 if (start <= node->ITSUBTREE) \
122 ITSTRUCT *node, *leftmost; \
140 node = rb_entry(root->rb_root.rb_node, ITSTRUCT, ITRB); \
141 if (node->ITSUBTREE < start) \
148 return ITPREFIX ## _subtree_search(node, start, last); \
152 ITPREFIX ## _iter_next(ITSTRUCT *node, ITTYPE start, ITTYPE last) \
154 struct rb_node *rb = node->ITRB.rb_right, *prev; \
173 rb = rb_parent(&node->ITRB); \
176 prev = &node->ITRB; \
177 node = rb_entry(rb, ITSTRUCT, ITRB); \
178 rb = node->ITRB.rb_right; \
182 if (last < ITSTART(node)) /* !Cond1 */ \
184 else if (start <= ITLAST(node)) /* Cond2 */ \
185 return node; \