16 #define GTG_LIST_INIT(ptr)                      \ 
   18     (ptr)->prev = (ptr);                        \ 
   19     (ptr)->next = (ptr);                        \ 
   27 #define GTG_LIST(name) \ 
   28   struct gtg_list name; \ 
   39 #define gtg_list_entry(ptr, type, member) \ 
   40   ((type *)((char *)(ptr) - (char *)(&((type *)0)->member))) 
  112 #define gtg_list_for_each(pos, head) \ 
  113   for (pos = (head)->next; pos != (head); pos = pos->next) 
  121 #define gtg_list_for_each_reverse(pos, head)                    \ 
  122   for (pos = (head)->prev; pos != (head); pos = pos->prev) 
  131 #define gtg_list_for_each_safe(pos, n, head)                    \ 
  132   for (pos = (head)->next, n = pos->next; pos != (head);        \ 
  133        pos = n, n = pos->next) 
  144 #define gtg_list_for_each_entry(pos, head, member)                      \ 
  145   for (pos = gtg_list_entry((head)->next, typeof(*pos), member);        \ 
  146        &pos->member != (head);                                          \ 
  147        pos = gtg_list_entry(pos->member.next, typeof(*pos), member)) 
  157 #define gtg_list_for_each_entry_safe(pos, n, head, member)              \ 
  158   for (pos = gtg_list_entry((head)->next, typeof(*pos), member),        \ 
  159          n = gtg_list_entry(pos->member.next, typeof(*pos), member);    \ 
  160        &pos->member != (head);                                          \ 
  161        pos = n, n = gtg_list_entry(n->member.next, typeof(*n), member)) 
  167   gtg_list_t ptr = NULL;
 
#define GTG_LIST_INIT(ptr)
initialize a list. 
Definition: GTGList.h:16
#define gtg_list_for_each(pos, head)
Definition: GTGList.h:112
static void __gtg_list_del(gtg_list_t prev, gtg_list_t next)
Definition: GTGList.h:88
struct gtg_list * prev
Definition: GTGList.h:5
static void __gtg_list_add(gtg_list_t lnew, gtg_list_t prev, gtg_list_t next)
Definition: GTGList.h:49
static void gtg_list_del(gtg_list_t entry)
delete an entry from its list and reinitialize it. 
Definition: GTGList.h:99
struct gtg_list * gtg_list_t
Definition: GTGList.h:9
struct gtg_list * next
Definition: GTGList.h:6
static void gtg_list_add(gtg_list_t lnew, gtg_list_t head)
Insert a new entry after the specified head. 
Definition: GTGList.h:65
static int gtg_list_size(gtg_list_t l)
Definition: GTGList.h:164
static void gtg_list_add_tail(gtg_list_t lnew, gtg_list_t head)
Insert a new entry before the specified head (ie. at the tail of the list). 
Definition: GTGList.h:76