Annotation of embedaddon/iftop/sorted_list.c, revision 1.1
1.1 ! misho 1: /*
! 2: * sorted_list.c:
! 3: *
! 4: */
! 5:
! 6: #include <stdlib.h>
! 7: #include <stdio.h>
! 8: #include "sorted_list.h"
! 9: #include "iftop.h"
! 10:
! 11:
! 12: void sorted_list_insert(sorted_list_type* list, void* item) {
! 13: sorted_list_node *node, *p;
! 14:
! 15: p = &(list->root);
! 16:
! 17: while(p->next != NULL && list->compare(item, p->next->data) > 0) {
! 18: p = p->next;
! 19: }
! 20:
! 21: node = xmalloc(sizeof *node);
! 22:
! 23: node->next = p->next;
! 24: node->data = item;
! 25: p->next = node;
! 26: }
! 27:
! 28:
! 29: sorted_list_node* sorted_list_next_item(sorted_list_type* list, sorted_list_node* prev) {
! 30: if(prev == NULL) {
! 31: return list->root.next;
! 32: }
! 33: else {
! 34: return prev->next;
! 35: }
! 36: }
! 37:
! 38: void sorted_list_destroy(sorted_list_type* list) {
! 39: sorted_list_node *p, *n;
! 40: p = list->root.next;
! 41:
! 42: while(p != NULL) {
! 43: n = p->next;
! 44: free(p);
! 45: p = n;
! 46: }
! 47:
! 48: list->root.next = NULL;
! 49: }
! 50:
! 51: void sorted_list_initialise(sorted_list_type* list) {
! 52: list->root.next = NULL;
! 53: }
! 54:
! 55:
! 56:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>