1 #ifndef __LNKLIST_H__ 2 #define __LNKLIST_H__ 3 4 #include <stdio.h> 5 #include <sys/types.h> 6 7 struct lnklist; 8 9 extern struct lnklist * 10 lnklist_create(void); 11 extern void 12 lnklist_destroy(struct lnklist *obj); 13 extern void 14 lnklist_destroy_with_destructor(struct lnklist *obj, void (*destructor)(void *)); 15 extern ssize_t 16 lnklist_size(struct lnklist *obj); 17 extern void * 18 lnklist_add(struct lnklist *obj, void *data, int index); 19 extern void * 20 lnklist_add_tail(struct lnklist *obj, void *data); 21 extern void * 22 lnklist_remove(struct lnklist *obj, int index); 23 extern void * 24 lnklist_get(struct lnklist *obj, int index); 25 extern void 26 lnklist_iter_init(struct lnklist *obj); 27 extern int 28 lnklist_iter_hasnext(struct lnklist *obj); 29 extern void * 30 lnklist_iter_next(struct lnklist *obj); 31 extern void * 32 lnklist_iter_remove(struct lnklist *obj); 33 extern void * 34 lnklist_iter_remove_next(struct lnklist *obj); 35 36 #endif 37