8 typedef struct _element
*element
;
11 typedef struct _list
*list
;
14 typedef struct _listpool
*listpool
;
16 listpool
listpool_create (size_t numelms
, size_t numlsts
);
17 void listpool_destroy (listpool pool
);
19 list
list_alloc (listpool pool
);
20 void list_free (list l
);
21 void list_reset (list l
);
22 int list_size (list l
);
24 element
list_head (list l
);
25 element
list_tail (list l
);
27 void *list_headvalue (list l
);
28 void *list_tailvalue (list l
);
30 element
list_inserthead (list l
, void *val
);
31 element
list_inserttail (list l
, void *val
);
33 void *list_removehead (list l
);
34 void *list_removetail (list l
);
36 void *element_getvalue (element el
);
37 void element_setvalue (element el
, void *val
);
39 void element_insertbefore (element el
, element inserted
);
40 void element_insertafter (element el
, element inserted
);
42 element
element_next (element el
);
43 element
element_previous (element el
);
45 element
element_alloc (listpool pool
, void *val
);
46 void element_remove (element el
);
47 void *element_free (element el
);
50 #endif /* __LISTS_H */