| Index: fusl/src/search/insque.c
|
| diff --git a/fusl/src/search/insque.c b/fusl/src/search/insque.c
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b7475d84f31eb442550e5a4197d473ff36bda755
|
| --- /dev/null
|
| +++ b/fusl/src/search/insque.c
|
| @@ -0,0 +1,32 @@
|
| +#include <search.h>
|
| +
|
| +struct node {
|
| + struct node *next;
|
| + struct node *prev;
|
| +};
|
| +
|
| +void insque(void *element, void *pred)
|
| +{
|
| + struct node *e = element;
|
| + struct node *p = pred;
|
| +
|
| + if (!p) {
|
| + e->next = e->prev = 0;
|
| + return;
|
| + }
|
| + e->next = p->next;
|
| + e->prev = p;
|
| + p->next = e;
|
| + if (e->next)
|
| + e->next->prev = e;
|
| +}
|
| +
|
| +void remque(void *element)
|
| +{
|
| + struct node *e = element;
|
| +
|
| + if (e->next)
|
| + e->next->prev = e->prev;
|
| + if (e->prev)
|
| + e->prev->next = e->next;
|
| +}
|
|
|