summaryrefslogtreecommitdiff
path: root/src/ll.h
blob: f5846fb9adf193f498f0a970e79ebc3e378dcbff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef __VXGG_REWRITE___LL_H___305861098005___
#define __VXGG_REWRITE___LL_H___305861098005___

#include <stddef.h>

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