Lines Matching refs:prio_tree_node
43 static void get_index(const struct prio_tree_node *node,
75 static struct prio_tree_node *prio_tree_expand(struct prio_tree_root *root,
76 struct prio_tree_node *node, unsigned long max_heap_index)
78 struct prio_tree_node *first = NULL, *prev, *last = NULL;
90 first = root->prio_tree_node;
91 prio_tree_remove(root, root->prio_tree_node);
96 last = root->prio_tree_node;
97 prio_tree_remove(root, root->prio_tree_node);
113 last->left = root->prio_tree_node;
117 root->prio_tree_node = node;
122 * Replace a prio_tree_node with a new node and return the old node
124 struct prio_tree_node *prio_tree_replace(struct prio_tree_root *root,
125 struct prio_tree_node *old, struct prio_tree_node *node)
130 assert(root->prio_tree_node == old);
136 root->prio_tree_node = node;
159 * Insert a prio_tree_node @node into a radix priority search tree @root. The
168 struct prio_tree_node *prio_tree_insert(struct prio_tree_root *root,
169 struct prio_tree_node *node)
171 struct prio_tree_node *cur, *res = node;
182 cur = root->prio_tree_node;
193 struct prio_tree_node *tmp = node;
241 * Remove a prio_tree_node @node from a radix priority search tree @root. The
245 void prio_tree_remove(struct prio_tree_root *root, struct prio_tree_node *node)
247 struct prio_tree_node *cur;
275 assert(root->prio_tree_node == cur);
297 static struct prio_tree_node *prio_tree_left(struct prio_tree_iter *iter,
328 static struct prio_tree_node *prio_tree_right(struct prio_tree_iter *iter,
370 static struct prio_tree_node *prio_tree_parent(struct prio_tree_iter *iter)
395 * Get the first prio_tree_node that overlaps with the interval [radix_index,
399 static struct prio_tree_node *prio_tree_first(struct prio_tree_iter *iter)
410 get_index(root->prio_tree_node, &r_index, &h_index);
416 iter->cur = root->prio_tree_node;
436 * Get the next prio_tree_node that overlaps with the input interval in iter
438 struct prio_tree_node *prio_tree_next(struct prio_tree_iter *iter)