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