1#ifndef UTILS_LIST_HEADER
2#define UTILS_LIST_HEADER
96#define utils_list_for_each(list, itr) \
97 for (itr = (list).head.next; itr != (void *) &list; itr = itr->next)
106#define utils_list_for_each_safe(list, itr, tmp) \
107 for (itr = (list).head.next; (itr != (void *) &list) && (tmp = itr->next); itr = tmp)
115#define utils_list_for_each_reverse(list, itr) \
116 for (itr = (list).head.prev; itr != (void *) &list; itr = itr->prev)
utils_list_node_s * utils_list_pop_tail(utils_list_s *list)
utils_list_node_s * utils_list_del(utils_list_s *list, utils_list_node_s *node)
utils_list_node_s * utils_list_pop_head(utils_list_s *list)
void utils_list_node_init(utils_list_node_s *node, void *owner)
struct utils_list_node utils_list_node_s
int utils_list_node_linked(utils_list_node_s *node)
utils_list_s * utils_list_init(void *mem)
void utils_list_add(utils_list_s *list, utils_list_node_s *node)
size_t utils_list_to_array(utils_list_s *list, void **array)
struct utils_list_node * prev
struct utils_list_node * next