Lines Matching refs:node
40 bool timerqueue_add(struct timerqueue_head *head, struct timerqueue_node *node) in timerqueue_add() argument
47 WARN_ON_ONCE(!RB_EMPTY_NODE(&node->node)); in timerqueue_add()
51 ptr = rb_entry(parent, struct timerqueue_node, node); in timerqueue_add()
52 if (node->expires < ptr->expires) in timerqueue_add()
57 rb_link_node(&node->node, parent, p); in timerqueue_add()
58 rb_insert_color(&node->node, &head->head); in timerqueue_add()
60 if (!head->next || node->expires < head->next->expires) { in timerqueue_add()
61 head->next = node; in timerqueue_add()
77 bool timerqueue_del(struct timerqueue_head *head, struct timerqueue_node *node) in timerqueue_del() argument
79 WARN_ON_ONCE(RB_EMPTY_NODE(&node->node)); in timerqueue_del()
82 if (head->next == node) { in timerqueue_del()
83 struct rb_node *rbn = rb_next(&node->node); in timerqueue_del()
85 head->next = rb_entry_safe(rbn, struct timerqueue_node, node); in timerqueue_del()
87 rb_erase(&node->node, &head->head); in timerqueue_del()
88 RB_CLEAR_NODE(&node->node); in timerqueue_del()
102 struct timerqueue_node *timerqueue_iterate_next(struct timerqueue_node *node) in timerqueue_iterate_next() argument
106 if (!node) in timerqueue_iterate_next()
108 next = rb_next(&node->node); in timerqueue_iterate_next()
111 return container_of(next, struct timerqueue_node, node); in timerqueue_iterate_next()