33 #define LST_USERSPACE(h) ((void*)((LST_BUCKET*)(h) + 1))
39 #define LST_HEADER(n) ((LST_BUCKET*)(n) - 1)
46 #define LST_HEAD(l) LST_USERSPACE((l)->head)
51 #define LST_EMPTY(l) ((l)->count == 0)
55 void *lst_newnode (
int size);
56 void lst_freenode (
void *node);
57 LIST *lst_init (
void);
58 void lst_kill (
LIST * l,
void (*freeNode) ());
59 void lst_insertafter (
LIST * l,
void *node,
void *after);
60 void *lst_deletenext (
LIST * l,
void *node);
61 void *lst_first (
LIST * l);
62 void *lst_next (
void *prev);
63 void lst_mergesort (
LIST * l,
int (*cmp_func) ());