vlist: add static initializer macros
authorFelix Fietkau <nbd@openwrt.org>
Thu, 5 Jun 2014 13:28:45 +0000 (15:28 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 5 Jun 2014 13:28:45 +0000 (15:28 +0200)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
vlist.h

diff --git a/vlist.h b/vlist.h
index 9e188e2ce6ce823db3d8b3e615db8c6d3076e89c..8170abf7400985f17e50b254da6dceb89d223f8a 100644 (file)
--- a/vlist.h
+++ b/vlist.h
@@ -41,6 +41,19 @@ struct vlist_node {
        int version;
 };
 
+#define VLIST_TREE_INIT(_name, _comp, _update, _keep_old, _no_delete)  \
+       {                                                               \
+               .avl = AVL_TREE_INIT(_name.avl, _comp, false, NULL),    \
+               .update = _update,                                      \
+               .version = 1,                                           \
+               .keep_old = _keep_old,                                  \
+               .no_delete = _no_delete,                                \
+       }
+
+#define VLIST_TREE(_name, ...)                                         \
+       struct vlist_tree _name =                                       \
+               VLIST_TREE_INIT(_name, __VA_ARGS__)
+
 void vlist_init(struct vlist_tree *tree, avl_tree_comp cmp, vlist_update_cb update);
 
 #define vlist_find(tree, name, element, node_member) \