summaryrefslogtreecommitdiff
path: root/ospf6d/ospf6_linklist.h
diff options
context:
space:
mode:
Diffstat (limited to 'ospf6d/ospf6_linklist.h')
-rw-r--r--ospf6d/ospf6_linklist.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/ospf6d/ospf6_linklist.h b/ospf6d/ospf6_linklist.h
new file mode 100644
index 00000000..6d978999
--- /dev/null
+++ b/ospf6d/ospf6_linklist.h
@@ -0,0 +1,35 @@
+
+#ifndef _LINKLIST_H_
+#define _LINKLIST_H_
+
+struct linklist_node
+{
+ struct linklist_node *prev;
+ struct linklist_node *next;
+
+ void *data;
+};
+
+struct linklist
+{
+ int count;
+ struct linklist_node *head;
+ struct linklist_node *tail;
+
+ int (*cmp) (void *, void *);
+};
+
+void *linklist_lookup (void *data, struct linklist *linklist);
+int linklist_add (void *data, struct linklist *linklist);
+int linklist_remove (void *data, struct linklist *linklist);
+void linklist_remove_all (struct linklist *linklist);
+
+void linklist_head (struct linklist *linklist, struct linklist_node *node);
+int linklist_end (struct linklist_node *node);
+void linklist_next (struct linklist_node *node);
+
+struct linklist *linklist_create ();
+void linklist_delete (struct linklist *);
+
+#endif /*_LINKLIST_H_*/
+