diff options
Diffstat (limited to 'ospf6d/ospf6_linklist.h')
-rw-r--r-- | ospf6d/ospf6_linklist.h | 35 |
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_*/ + |