Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.openwrt.org/project/libubox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYousong Zhou <yszhou4tech@gmail.com>2019-10-29 10:24:20 +0300
committerYousong Zhou <yszhou4tech@gmail.com>2019-10-29 16:07:38 +0300
commit301303911dded723b7eda4d6a4a933b22d2c1b60 (patch)
treea866b9d09677b5d01f249a8a7a4ff75ec73e58ea /vlist.h
parenteb30a03048f83e733a9530b5741808d7d0932ff2 (diff)
vlist: add more macros for loop iteration
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Diffstat (limited to 'vlist.h')
-rw-r--r--vlist.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/vlist.h b/vlist.h
index 8170abf..ff6b138 100644
--- a/vlist.h
+++ b/vlist.h
@@ -72,4 +72,19 @@ void vlist_flush_all(struct vlist_tree *tree);
#define vlist_for_each_element(tree, element, node_member) \
avl_for_each_element(&(tree)->avl, element, node_member.avl)
+#define vlist_for_each_element_reverse(tree, element, node_member) \
+ avl_for_each_element_reverse(&(tree)->avl, element, node_member.avl)
+
+#define vlist_for_first_to_element(tree, last, element, node_member) \
+ avl_for_element_range(avl_first_element(&(tree)->avl, element, node_member.avl), last, element, node_member.avl)
+
+#define vlist_for_first_to_element_reverse(tree, last, element, node_member) \
+ avl_for_element_range_reverse(avl_first_element(&(tree)->avl, element, node_member.avl), last, element, node_member.avl)
+
+#define vlist_for_element_to_last(tree, first, element, node_member) \
+ avl_for_element_range(first, avl_last_element(&(tree)->avl, element, node_member.avl), element, node_member.avl)
+
+#define vlist_for_element_to_last_reverse(tree, first, element, node_member) \
+ avl_for_element_range_reverse(first, avl_last_element(&(tree)->avl, element, node_member.avl), element, node_member.avl)
+
#endif