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