summaryrefslogtreecommitdiff
path: root/utils.h
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-03-04 00:02:38 +0100
committerFelix Fietkau <nbd@openwrt.org>2012-03-04 00:02:38 +0100
commitc6e1778d4429032087b36fb0dde2ae2fecf53b4a (patch)
tree04e0f830cf5bfc8f4c3a4b72d62bd126e45d2f69 /utils.h
parent9fe20c8cbc4249c13d6f305adc91f4bc695f7c23 (diff)
downloadnetifd-c6e1778d4429032087b36fb0dde2ae2fecf53b4a.tar.gz
simplify vlist, move avl key handling to vlist_add()
Diffstat (limited to 'utils.h')
-rw-r--r--utils.h8
1 files changed, 2 insertions, 6 deletions
diff --git a/utils.h b/utils.h
index 2866280..99b1c0d 100644
--- a/utils.h
+++ b/utils.h
@@ -26,7 +26,6 @@ struct vlist_tree {
struct avl_tree avl;
vlist_update_cb update;
- int key_offset;
bool keep_old;
bool no_delete;
@@ -38,10 +37,7 @@ struct vlist_node {
int version;
};
-void __vlist_init(struct vlist_tree *tree, avl_tree_comp cmp, vlist_update_cb update, int offset);
-
-#define vlist_init(tree, cmp, update, type, node, key) \
- __vlist_init(tree, cmp, update, offsetof(type, key) - offsetof(type, node))
+void vlist_init(struct vlist_tree *tree, avl_tree_comp cmp, vlist_update_cb update);
#define vlist_find(tree, name, element, node_member) \
avl_find_element(&(tree)->avl, name, element, node_member.avl)
@@ -51,7 +47,7 @@ static inline void vlist_update(struct vlist_tree *tree)
tree->version++;
}
-void vlist_add(struct vlist_tree *tree, struct vlist_node *node);
+void vlist_add(struct vlist_tree *tree, struct vlist_node *node, void *key);
void vlist_delete(struct vlist_tree *tree, struct vlist_node *node);
void vlist_flush(struct vlist_tree *tree);
void vlist_flush_all(struct vlist_tree *tree);