Macros for basic linked list operations. 
         For in-depth documentation see
         http://troydhanson.github.io/uthash/utlist.html
 
Definition in file utlist.h.
|  | 
| #define | LL_PREPEND(head,  add) | 
|  | LL prepend element 'add' to list. 
 | 
|  | 
| #define | LL_PREPEND2(head,  add,  next) | 
|  | LL prepend to list with alternative next ptr name 'next'. 
 | 
|  | 
| #define | LL_CONCAT(head1,  head2) | 
|  | LL concat to append second list to first. 
 | 
|  | 
| #define | LL_CONCAT2(head1,  head2,  next) | 
|  | LL concat with alternative next ptr name 'next'. 
 | 
|  | 
| #define | LL_APPEND(head,  add) | 
|  | LL append to append element 'add' to list. 
 | 
|  | 
| #define | LL_APPEND2(head,  add,  next) | 
|  | LL append with alternative next ptr name 'next'. 
 | 
|  | 
| #define | LL_DELETE(head,  del) | 
|  | LL delete element 'del' from list. 
 | 
|  | 
| #define | LL_DELETE2(head,  del,  next) | 
|  | LL delete with alternative next ptr name 'name'. 
 | 
|  | 
| #define | LL_APPEND_VS2008(head,  add) | 
|  | 
| #define | LL_APPEND2_VS2008(head,  add,  next) | 
|  | 
| #define | LL_DELETE_VS2008(head,  del) | 
|  | 
| #define | LL_DELETE2_VS2008(head,  del,  next) | 
|  | 
| #define | LL_COUNT(head,  el,  counter) | 
|  | LL count list elements using 'counter'. 
 | 
|  | 
| #define | LL_COUNT2(head,  el,  counter,  next) | 
|  | LL count with alternative next ptr name 'next'. 
 | 
|  | 
| #define | LL_FOREACH(head,  el) | 
|  | LL list iteration. 
 | 
|  | 
| #define | LL_FOREACH2(head,  el,  next) | 
|  | LL list iteration with alternative next ptr name 'next'. 
 | 
|  | 
| #define | LL_FOREACH_SAFE(head,  el,  tmp) | 
|  | LL safe list iteration Use if list elements might be deleted while iterating. 
 | 
|  | 
| #define | LL_FOREACH_SAFE2(head,  el,  tmp,  next) | 
|  | LL safe list iteration with alternative ptr names. 
 | 
|  | 
| #define | LL_SEARCH_SCALAR(head,  out,  field,  val) | 
|  | LL scalar search for element with value 'val' for member 'field'. 
 | 
|  | 
| #define | LL_SEARCH_SCALAR2(head,  out,  field,  val,  next) | 
|  | LL scalar search with alternative next ptr name 'next'. 
 | 
|  | 
| #define | LL_SEARCH(head,  out,  elt,  cmp) | 
|  | LL search element 'elt' in list using function 'cmp'. 
 | 
|  | 
| #define | LL_SEARCH2(head,  out,  elt,  cmp,  next) | 
|  | LL search with alternative next ptr name 'next'. 
 | 
|  | 
| #define | LL_REPLACE_ELEM(head,  el,  add) | 
|  | LL replace element 'el' with element 'add' in list. 
 | 
|  | 
| #define | LL_PREPEND_ELEM(head,  el,  add) | 
|  | LL prepend new element 'add' to element 'el' in list. 
 | 
|  | 
|  | 
| #define | DL_PREPEND(head,  add) | 
|  | DL prepend element 'add' to list. 
 | 
|  | 
| #define | DL_PREPEND2(head,  add,  prev,  next) | 
|  | DL prepend to list with alternative ptr names. 
 | 
|  | 
| #define | DL_APPEND(head,  add) | 
|  | DL append to append element 'add' to list. 
 | 
|  | 
| #define | DL_APPEND2(head,  add,  prev,  next) | 
|  | DL append with alternative next ptr name 'next'. 
 | 
|  | 
| #define | DL_CONCAT(head1,  head2) | 
|  | DL concat to append second list to first. 
 | 
|  | 
| #define | DL_CONCAT2(head1,  head2,  prev,  next) | 
|  | DL concat with alternative next ptr name 'next'. 
 | 
|  | 
| #define | DL_DELETE(head,  del) | 
|  | DL delete element 'del' from list. 
 | 
|  | 
| #define | DL_DELETE2(head,  del,  prev,  next) | 
|  | DL delete with alternative ptr names. 
 | 
|  | 
| #define | DL_COUNT(head,  el,  counter) | 
|  | DL count list elements using 'counter'. 
 | 
|  | 
| #define | DL_COUNT2(head,  el,  counter,  next) | 
|  | DL count with alternative next ptr name 'next'. 
 | 
|  | 
| #define | DL_FOREACH(head,  el) | 
|  | DL list iteration. 
 | 
|  | 
| #define | DL_FOREACH2(head,  el,  next) | 
|  | DL list iteration with alternative next ptr name 'next'. 
 | 
|  | 
| #define | DL_FOREACH_SAFE(head,  el,  tmp) | 
|  | DL safe list iteration Use if list elements might be deleted while iterating. 
 | 
|  | 
| #define | DL_FOREACH_SAFE2(head,  el,  tmp,  next) | 
|  | DL safe list iteration with alternative ptr names. 
 | 
|  | 
| #define | DL_SEARCH_SCALAR   LL_SEARCH_SCALAR | 
|  | DL scalar search for element with value 'val' for member 'field' Identical to singly-linked counterpart. 
 | 
|  | 
| #define | DL_SEARCH_SCALAR2   LL_SEARCH_SCALAR2 | 
|  | DL scalar search with alternative next ptr name 'next' Identical to singly-linked counterpart. 
 | 
|  | 
| #define | DL_SEARCH   LL_SEARCH | 
|  | DL search element 'elt' in list using function 'cmp' Identical to singly-linked counterpart. 
 | 
|  | 
| #define | DL_SEARCH2   LL_SEARCH2 | 
|  | DL search with alternative next ptr name 'next' Identical to singly-linked counterpart. 
 | 
|  | 
| #define | DL_REPLACE_ELEM(head,  el,  add) | 
|  | DL replace element 'el' with element 'add' in list. 
 | 
|  | 
| #define | DL_PREPEND_ELEM(head,  el,  add) | 
|  | DL prepend new element 'add' to element 'el' in list. 
 | 
|  | 
|  | 
| #define | CDL_PREPEND(head,  add) | 
|  | CDL prepend element 'add' to list. 
 | 
|  | 
| #define | CDL_PREPEND2(head,  add,  prev,  next) | 
|  | CDL prepend to list with alternative ptr names. 
 | 
|  | 
| #define | CDL_DELETE(head,  del) | 
|  | CDL delete element 'del' from list. 
 | 
|  | 
| #define | CDL_DELETE2(head,  del,  prev,  next) | 
|  | CDL delete with alternative ptr names. 
 | 
|  | 
| #define | CDL_COUNT(head,  el,  counter) | 
|  | CDL count list elements using 'counter'. 
 | 
|  | 
| #define | CDL_COUNT2(head,  el,  counter,  next) | 
|  | CDL count with alternative next ptr name 'next'. 
 | 
|  | 
| #define | CDL_FOREACH(head,  el) | 
|  | CDL list iteration. 
 | 
|  | 
| #define | CDL_FOREACH2(head,  el,  next) | 
|  | CDL list iteration with alternative next ptr name 'next'. 
 | 
|  | 
| #define | CDL_FOREACH_SAFE(head,  el,  tmp1,  tmp2) | 
|  | CDL safe list iteration Use if list elements might be deleted while iterating. 
 | 
|  | 
| #define | CDL_FOREACH_SAFE2(head,  el,  tmp1,  tmp2,  prev,  next) | 
|  | CDL safe list iteration with alternative ptr names. 
 | 
|  | 
| #define | CDL_SEARCH_SCALAR(head,  out,  field,  val) | 
|  | CDL scalar search for element with value 'val' for member 'field'. 
 | 
|  | 
| #define | CDL_SEARCH_SCALAR2(head,  out,  field,  val,  next) | 
|  | CDL scalar search with alternative next ptr name 'next'. 
 | 
|  | 
| #define | CDL_SEARCH(head,  out,  elt,  cmp) | 
|  | CDL search element 'elt' in list using function 'cmp'. 
 | 
|  | 
| #define | CDL_SEARCH2(head,  out,  elt,  cmp,  next) | 
|  | CDL search with alternative next ptr name 'next'. 
 | 
|  | 
| #define | CDL_REPLACE_ELEM(head,  el,  add) | 
|  | CDL replace element 'el' with element 'add' in list. 
 | 
|  | 
| #define | CDL_PREPEND_ELEM(head,  el,  add) | 
|  | CDL prepend new element 'add' to element 'el' in list. 
 | 
|  |