Print this page
XXXX adding PID information to netstat output

*** 73,82 **** --- 73,83 ---- ASSERT(size > 0); ASSERT(size >= offset + sizeof (list_node_t)); list->list_size = size; list->list_offset = offset; + list->list_numnodes = 0; list->list_head.list_next = list->list_head.list_prev = &list->list_head; } void
*** 86,95 **** --- 87,97 ---- ASSERT(list); ASSERT(list->list_head.list_next == node); ASSERT(list->list_head.list_prev == node); + list->list_numnodes = 0; node->list_next = node->list_prev = NULL; } void list_insert_after(list_t *list, void *object, void *nobject)
*** 115,159 **** --- 117,166 ---- void list_insert_head(list_t *list, void *object) { list_node_t *lold = &list->list_head; + list->list_numnodes++; list_insert_after_node(list, lold, object); } void list_insert_tail(list_t *list, void *object) { list_node_t *lold = &list->list_head; + list->list_numnodes++; list_insert_before_node(list, lold, object); } void list_remove(list_t *list, void *object) { list_node_t *lold = list_d2l(list, object); ASSERT(!list_empty(list)); ASSERT(lold->list_next != NULL); + list->list_numnodes--; list_remove_node(lold); } void * list_remove_head(list_t *list) { list_node_t *head = list->list_head.list_next; if (head == &list->list_head) return (NULL); + list->list_numnodes--; list_remove_node(head); return (list_object(list, head)); } void * list_remove_tail(list_t *list) { list_node_t *tail = list->list_head.list_prev; if (tail == &list->list_head) return (NULL); + list->list_numnodes--; list_remove_node(tail); return (list_object(list, tail)); } void *
*** 207,222 **** --- 214,231 ---- ASSERT(dst->list_offset == src->list_offset); if (list_empty(src)) return; + dst->list_numnodes += src->list_numnodes; dstnode->list_prev->list_next = srcnode->list_next; srcnode->list_next->list_prev = dstnode->list_prev; dstnode->list_prev = srcnode->list_prev; srcnode->list_prev->list_next = dstnode; /* empty src list */ + src->list_numnodes = 0; srcnode->list_next = srcnode->list_prev = srcnode; } void list_link_replace(list_node_t *lold, list_node_t *lnew)
*** 247,251 **** --- 256,277 ---- int list_is_empty(list_t *list) { return (list_empty(list)); } + + ulong_t + list_numnodes(list_t *list) + { + /* + size_t sz = 0; + list_node_t *node; + + node = &list->list_head; + while (node->list_next != &list->list_head) { + sz++; + node = node->list_next; + } + return (sz); + */ + return (list->list_numnodes); + }