4 /* To make a new list, create 2 pointers: one for the head, one for the
5 tail. Initialize them both to NULL. Then pass them to loco_list_prepend.
8 typedef struct d_list d_list_t;
10 typedef struct d_list_it {
11 struct d_list_it *next;
12 struct d_list_it *prev;
16 d_list_t* list_new(void);
18 void list_ref(d_list_t *list);
19 void list_unref(d_list_t *list);
21 d_list_it_t* list_prepend(d_list_t *list, void *data);
22 void list_delete_link(d_list_t *list, d_list_it_t *pos);
23 void list_move_before(d_list_t *list, d_list_it_t *move, d_list_it_t *before);
25 int list_length(d_list_t *list);
26 d_list_it_t* list_top(d_list_t *list);
27 d_list_it_t* list_bottom(d_list_t *list);
28 d_list_it_t* list_nth(d_list_t *list, int n);