| |
| #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_*/ |
| |