Lines Matching refs:list

38 list_alloc(list_t *list, int size)  in list_alloc()  argument
40 list->l_size = size; in list_alloc()
42 list->l_ptrs = Zalloc(sizeof (void *) * (size + 1)); in list_alloc()
44 list->l_ptrs = NULL; in list_alloc()
48 list_free(list_t *list) in list_free() argument
50 if (list && list->l_ptrs) { in list_free()
51 free(list->l_ptrs); in list_free()
52 list->l_ptrs = NULL; in list_free()
108 list_setkeyfunc(char *arg, optdesc_t *opt, list_t *list, int type) in list_setkeyfunc() argument
110 if (list == NULL) in list_setkeyfunc()
113 list->l_sortorder = opt->o_sortorder; in list_setkeyfunc()
114 list->l_type = type; in list_setkeyfunc()
116 list->l_func = get_idkey; in list_setkeyfunc()
121 list->l_func = get_cpu_from_usage; in list_setkeyfunc()
123 list->l_func = get_cpu_from_psinfo; in list_setkeyfunc()
127 list->l_func = get_time; in list_setkeyfunc()
131 list->l_func = get_size; in list_setkeyfunc()
135 list->l_func = get_rssize; in list_setkeyfunc()
139 list->l_func = get_pri; in list_setkeyfunc()
146 list_getkeyval(list_t *list, void *ptr) in list_getkeyval() argument
148 return (list->l_func(ptr)); in list_getkeyval()
152 compare_keys(list_t *list, ulong_t key1, ulong_t key2) in compare_keys() argument
157 return (1 * list->l_sortorder); in compare_keys()
159 return (-1 * list->l_sortorder); in compare_keys()
163 list_insert(list_t *list, void *ptr) in list_insert() argument
168 for (i = 0; i < list->l_used; i++) { /* insert in the middle */ in list_insert()
169 k1 = list_getkeyval(list, ptr); in list_insert()
170 k2 = list_getkeyval(list, list->l_ptrs[i]); in list_insert()
171 if (compare_keys(list, k1, k2) >= 0) { in list_insert()
172 for (j = list->l_used - 1; j >= i; j--) in list_insert()
173 list->l_ptrs[j+1] = list->l_ptrs[j]; in list_insert()
174 list->l_ptrs[i] = ptr; in list_insert()
175 if (list->l_used < list->l_size) in list_insert()
176 list->l_used++; in list_insert()
180 if (i + 1 <= list->l_size) { /* insert at the tail */ in list_insert()
181 list->l_ptrs[list->l_used] = ptr; in list_insert()
183 list->l_used++; in list_insert()
188 list_preinsert(list_t *list, void *ptr) in list_preinsert() argument
192 if (list->l_used < list->l_size) { /* just add */ in list_preinsert()
193 list_insert(list, ptr); in list_preinsert()
196 k1 = list_getkeyval(list, list->l_ptrs[list->l_used - 1]); in list_preinsert()
197 k2 = list_getkeyval(list, ptr); in list_preinsert()
198 if (compare_keys(list, k1, k2) >= 0) /* skip insertion */ in list_preinsert()
200 k1 = list_getkeyval(list, list->l_ptrs[0]); in list_preinsert()
201 if (compare_keys(list, k2, k1) >= 0) { /* add at the head */ in list_preinsert()
202 list_insert(list, ptr); in list_preinsert()
205 list_insert(list, ptr); in list_preinsert()
209 list_sort(list_t *list) in list_sort() argument
211 list->l_used = 0; in list_sort()
212 if (list->l_size == 0) in list_sort()
215 (void) memset(list->l_ptrs, 0, sizeof (void *) * list->l_size); in list_sort()
217 if (list->l_type == LT_LWPS) { in list_sort()
218 lwp_info_t *lwp = list->l_head; in list_sort()
221 list_preinsert(list, (void *)lwp); in list_sort()
225 id_info_t *id = list->l_head; in list_sort()
228 list_preinsert(list, (void *)id); in list_sort()