master
 1#include <search.h>
 2
 3struct node {
 4	struct node *next;
 5	struct node *prev;
 6};
 7
 8void insque(void *element, void *pred)
 9{
10	struct node *e = element;
11	struct node *p = pred;
12
13	if (!p) {
14		e->next = e->prev = 0;
15		return;
16	}
17	e->next = p->next;
18	e->prev = p;
19	p->next = e;
20	if (e->next)
21		e->next->prev = e;
22}
23
24void remque(void *element)
25{
26	struct node *e = element;
27
28	if (e->next)
29		e->next->prev = e->prev;
30	if (e->prev)
31		e->prev->next = e->next;
32}