root/src/system/libroot/posix/musl/search/insque.c
#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;
}