From 508e53e2eef3eefba4c1aa771529027fd4486ea8 Mon Sep 17 00:00:00 2001 From: hasso Date: Tue, 18 May 2004 18:57:06 +0000 Subject: Ospf6d merge from Zebra repository with added privs stuff and merged zclient changes. --- ospf6d/ospf6_linklist.c | 193 ------------------------------------------------ 1 file changed, 193 deletions(-) delete mode 100644 ospf6d/ospf6_linklist.c (limited to 'ospf6d/ospf6_linklist.c') diff --git a/ospf6d/ospf6_linklist.c b/ospf6d/ospf6_linklist.c deleted file mode 100644 index 8c179359..00000000 --- a/ospf6d/ospf6_linklist.c +++ /dev/null @@ -1,193 +0,0 @@ - -#include - -#include "ospf6_linklist.h" - -static struct linklist_node * -linklist_lookup_node (void *data, struct linklist *linklist) -{ - struct linklist_node *node; - - for (node = linklist->head; node; node = node->next) - { - if (linklist->cmp && (*linklist->cmp) (node->data, data) == 0) - return node; - if (node->data == data) - return node; - } - - return NULL; -} - -void * -linklist_lookup (void *data, struct linklist *linklist) -{ - struct linklist_node *node; - - node = linklist_lookup_node (data, linklist); - if (node) - return node->data; - return NULL; -} - -int -linklist_add (void *data, struct linklist *linklist) -{ - struct linklist_node *node = NULL, *add; - - if (linklist_lookup_node (data, linklist)) - return -1; - - add = malloc (sizeof (struct linklist_node)); - if (add == NULL) - return -1; - memset (add, 0, sizeof (struct linklist_node)); - add->data = data; - - if (linklist->cmp) - { - for (node = linklist->head; node; node = node->next) - { - if ((*linklist->cmp) (node->data, add->data) > 0) - break; - } - } - - if (! node) - { - /* add to tail */ - if (linklist->tail) - { - linklist->tail->next = add; - add->prev = linklist->tail; - } - else - { - linklist->head = add; - add->prev = NULL; - } - - linklist->tail = add; - add->next = NULL; - } - else - { - /* insert just before 'node' */ - if (node->prev) - { - node->prev->next = add; - add->prev = node->prev; - } - else - { - linklist->head = add; - add->prev = NULL; - } - - add->next = node; - node->prev = add; - } - - linklist->count++; - return 0; -} - -int -linklist_remove (void *data, struct linklist *linklist) -{ - struct linklist_node *rem; - - rem = linklist_lookup_node (data, linklist); - if (rem == NULL) - return -1; - - if (rem->prev) - rem->prev->next = rem->next; - else - linklist->head = rem->next; - - if (rem->next) - rem->next->prev = rem->prev; - else - linklist->tail = rem->prev; - - free (rem); - linklist->count--; - return 0; -} - -void -linklist_head (struct linklist *linklist, struct linklist_node *node) -{ - if (linklist->head == NULL) - { - node->prev = NULL; - node->next = NULL; - node->data = NULL; - return; - } - - node->prev = linklist->head->prev; - node->next = linklist->head->next; - node->data = linklist->head->data; -} - -int -linklist_end (struct linklist_node *node) -{ - if (node->data == NULL && node->next == NULL) - return 1; - return 0; -} - -void -linklist_next (struct linklist_node *node) -{ - if (node->next == NULL) - { - node->prev = NULL; - node->next = NULL; - node->data = NULL; - return; - } - - node->data = node->next->data; - node->prev = node->next->prev; - node->next = node->next->next; -} - -struct linklist * -linklist_create () -{ - struct linklist *linklist; - - linklist = malloc (sizeof (struct linklist)); - if (linklist == NULL) - return NULL; - memset (linklist, 0, sizeof (struct linklist)); - - return linklist; -} - -void -linklist_remove_all (struct linklist *linklist) -{ - struct linklist_node node; - - for (linklist_head (linklist, &node); ! linklist_end (&node); - linklist_next (&node)) - linklist_remove (node.data, linklist); -} - -void -linklist_delete (struct linklist *linklist) -{ - linklist_remove_all (linklist); - assert (linklist->count == 0); - assert (linklist->head == NULL); - assert (linklist->tail == NULL); - - free (linklist); -} - - -- cgit v1.2.1