Lines Matching defs:zlp
79 zpool_list_t *zlp = data;
84 uu_avl_node_init(node, &node->zn_avlnode, zlp->zl_pool);
85 if (uu_avl_find(zlp->zl_avl, node, NULL, &idx) == NULL) {
86 if (zlp->zl_proplist &&
87 zpool_expand_proplist(zhp, zlp->zl_proplist) != 0) {
92 uu_avl_insert(zlp->zl_avl, node, idx);
111 zpool_list_t *zlp;
113 zlp = safe_malloc(sizeof (zpool_list_t));
115 zlp->zl_pool = uu_avl_pool_create("zfs_pool", sizeof (zpool_node_t),
118 if (zlp->zl_pool == NULL)
121 if ((zlp->zl_avl = uu_avl_create(zlp->zl_pool, NULL,
125 zlp->zl_proplist = proplist;
128 (void) zpool_iter(g_zfs, add_pool, zlp);
129 zlp->zl_findall = B_TRUE;
138 if (add_pool(zhp, zlp) != 0)
146 return (zlp);
155 pool_list_update(zpool_list_t *zlp)
157 if (zlp->zl_findall)
158 (void) zpool_iter(g_zfs, add_pool, zlp);
165 pool_list_iter(zpool_list_t *zlp, int unavail, zpool_iter_f func,
171 for (node = uu_avl_first(zlp->zl_avl); node != NULL; node = next_node) {
172 next_node = uu_avl_next(zlp->zl_avl, node);
186 pool_list_remove(zpool_list_t *zlp, zpool_handle_t *zhp)
191 if ((node = uu_avl_find(zlp->zl_avl, &search, NULL, NULL)) != NULL) {
192 uu_avl_remove(zlp->zl_avl, node);
202 pool_list_free(zpool_list_t *zlp)
207 if ((walk = uu_avl_walk_start(zlp->zl_avl, UU_WALK_ROBUST)) == NULL) {
214 uu_avl_remove(zlp->zl_avl, node);
220 uu_avl_destroy(zlp->zl_avl);
221 uu_avl_pool_destroy(zlp->zl_pool);
223 free(zlp);
230 pool_list_count(zpool_list_t *zlp)
232 return (uu_avl_numnodes(zlp->zl_avl));