|
@@ -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) \
|