Annotation of embedaddon/iftop/sorted_list.c, revision 1.1.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>