Lines Matching refs:node
34 // Adds the specified node to the start of the list
41 DL_NODE *node = NULL;
45 node = (DL_NODE *)malloc(sizeof (DL_NODE));
46 if (! node)
48 node->data = data;
49 node->prev = NULL;
50 node->next = list;
52 list->prev = node;
54 return (node);
60 // Adds the specified node to the end of the list
66 DL_NODE *node = NULL;
70 node = (DL_NODE *)malloc(sizeof (DL_NODE));
71 if (! node)
73 node->data = data;
74 node->next = NULL;
77 node->prev = NULL;
78 return (node);
81 temp->next = node;
82 node->prev = temp;
94 DL_NODE *node = list;
96 while (node && node->data != data)
97 node = node->next;
99 return (node);
105 // Returns the last node in the list or NULL if list is empty
122 // Returns the last node in the list or NULL if list is empty
156 dlist_next(DL_NODE *node)
158 if (! node)
160 return (node->next);
167 dlist_prev(DL_NODE *node) {
168 if (! node)
170 return (node->prev);
178 DL_NODE *node;
183 node = list->next;
185 list = node;
191 // Attempts to remove the specified node from the list. The caller is
192 // responsible for freeing the data associated with the node prior to
196 dlist_remove_node(DL_NODE *list, DL_NODE *node) {
199 if (! list || ! node)
203 if (list == node) {
212 // we have no guarantee that the node is in the list
215 while ((temp != NULL) && (temp->next != node))
219 DL_NODE *next = node->next;
225 free(node);