]> git.ozlabs.org Git - ccan/blobdiff - ccan/tlist/tlist.h
tlist: implement tlist_for_each_rev
[ccan] / ccan / tlist / tlist.h
index 9f62869b2b19c23c3fcb812ed2a6420a45a847a7..3576146c04f1a82488d2f4f707d1ca7b6b06798d 100644 (file)
 #define tlist_for_each(h, i, member)                                   \
        list_for_each(tlist_raw((h), (i)), (i), member)
 
 #define tlist_for_each(h, i, member)                                   \
        list_for_each(tlist_raw((h), (i)), (i), member)
 
+/**
+ * tlist_for_each - iterate through a list backwards.
+ * @h: the tlist
+ * @i: an iterator of suitable type for this list.
+ * @member: the list_node member of @i
+ *
+ * This is a convenient wrapper to iterate @i over the entire list.  It's
+ * a for loop, so you can break and continue as normal.
+ *
+ * Example:
+ *     tlist_for_each_rev(&parent->children, child, list)
+ *             printf("Name: %s\n", child->name);
+ */
+#define tlist_for_each_rev(h, i, member)                                       \
+       list_for_each_rev(tlist_raw((h), (i)), (i), member)
+
 /**
  * tlist_for_each_safe - iterate through a list, maybe during deletion
  * @h: the tlist
 /**
  * tlist_for_each_safe - iterate through a list, maybe during deletion
  * @h: the tlist