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 node = rb_entry(node->ITRB.rb_right, ITSTRUCT, ITRB); \
118 ITSTRUCT *node, *leftmost; \
136 node = rb_entry(root->rb_root.rb_node, ITSTRUCT, ITRB); \
137 if (node->ITSUBTREE < start) \
144 return ITPREFIX ## _subtree_search(node, start, last); \
148 ITPREFIX ## _iter_next(ITSTRUCT *node, ITTYPE start, ITTYPE last) \
150 struct rb_node *rb = node->ITRB.rb_right, *prev; \
169 rb = rb_parent(&node->ITRB); \
172 prev = &node->ITRB; \
173 node = rb_entry(rb, ITSTRUCT, ITRB); \
174 rb = node->ITRB.rb_right; \
178 if (last < ITSTART(node)) /* !Cond1 */ \
180 else if (start <= ITLAST(node)) /* Cond2 */ \
181 return node; \