+/* add new entry @n@ to a doubly linked list just after @b@ */
+void queue_insert_entry(struct queue_entry *b, struct queue_entry *n) {
+ n->prev = b;
+ n->next = b->next;
+ n->next->prev = n;
+ n->prev->next = n;
+}
+
+/* remove an entry from a doubly-linked list */
+void queue_delete_entry(struct queue_entry *node) {
+ node->next->prev = node->prev;
+ node->prev->next = node->next;
+}
+