Browse Source

vlist: add static initializer macros

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Felix Fietkau 10 years ago
parent
commit
949f0d00bf
1 changed files with 13 additions and 0 deletions
  1. 13 0
      vlist.h

+ 13 - 0
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) \