Lines Matching defs:node
68 * plist_add - add @node to @head
70 * @node: &struct plist_node pointer
73 void plist_add(struct plist_node *node, struct plist_head *head)
79 WARN_ON(!plist_node_empty(node));
80 WARN_ON(!list_empty(&node->prio_list));
88 if (node->prio < iter->prio) {
98 if (!prev || prev->prio != node->prio)
99 list_add_tail(&node->prio_list, &iter->prio_list);
101 list_add_tail(&node->node_list, node_next);
107 * plist_del - Remove a @node from plist.
109 * @node: &struct plist_node pointer - entry to be removed
112 void plist_del(struct plist_node *node, struct plist_head *head)
116 if (!list_empty(&node->prio_list)) {
117 if (node->node_list.next != &head->node_list) {
120 next = list_entry(node->node_list.next,
125 list_add(&next->prio_list, &node->prio_list);
127 list_del_init(&node->prio_list);
130 list_del_init(&node->node_list);
136 * plist_requeue - Requeue @node at end of same-prio entries.
142 * @node: &struct plist_node pointer - entry to be moved
145 void plist_requeue(struct plist_node *node, struct plist_head *head)
152 BUG_ON(plist_node_empty(node));
154 if (node == plist_last(head))
157 iter = plist_next(node);
159 if (node->prio != iter->prio)
162 plist_del(node, head);
165 if (node->prio != iter->prio) {
170 list_add_tail(&node->node_list, node_next);
212 static void __init plist_test_requeue(struct plist_node *node)
214 plist_requeue(node, &test_head);
216 if (node != plist_last(&test_head))
217 BUG_ON(node->prio == plist_next(node)->prio);