#ifndef __VXGG_REWRITE___LL_H___305861098005___ #define __VXGG_REWRITE___LL_H___305861098005___ #include typedef int (*dlinkedlist_freecallback)(void*); typedef struct dlinkedlist dlinkedlist; void dlinkedlist_init(dlinkedlist **ll); void dlinkedlist_free(dlinkedlist **ll); int dlinkedlist_insert(dlinkedlist * const ll, void *data, dlinkedlist_freecallback dfreecb); int dlinkedlist_append(dlinkedlist * const ll, void *data, dlinkedlist_freecallback dfreecb); void *dlinkedlist_get(const dlinkedlist * const ll, size_t index); void *dlinkedlist_getfirst(const dlinkedlist * const ll); void *dlinkedlist_getlast(const dlinkedlist * const ll); int dlinkedlist_remove(dlinkedlist * const ll, size_t index); #endif