#ifndef H_NJ_LIST_0403061931 #define H_NJ_LIST_0403061931 /* macros ============================================================== */ #define list_prev(l) (l)->prev #define list_next(l) (l)->next /* constants =========================================================== */ /* types =============================================================== */ /* structures ========================================================== */ typedef struct List { struct List *prev; struct List *next; void *data; } list_s; /* internal public functions =========================================== */ list_s *list_first (list_s *); list_s *list_append (list_s *, void *); list_s *list_remove (list_s *, void *); void list_foreach (list_s *, void (*)(void *, void *), void *); size_t list_size (list_s *); /* entry points ======================================================== */ /* public variables ==================================================== */ #endif /* not H_NJ_LIST_0403061931 */