Lines Matching defs:zlp
78 zpool_list_t *zlp = data;
83 uu_avl_node_init(node, &node->zn_avlnode, zlp->zl_pool);
84 if (uu_avl_find(zlp->zl_avl, node, NULL, &idx) == NULL) {
85 if (zlp->zl_proplist &&
86 zpool_expand_proplist(zhp, zlp->zl_proplist) != 0) {
91 uu_avl_insert(zlp->zl_avl, node, idx);
110 zpool_list_t *zlp;
112 zlp = safe_malloc(sizeof (zpool_list_t));
114 zlp->zl_pool = uu_avl_pool_create("zfs_pool", sizeof (zpool_node_t),
117 if (zlp->zl_pool == NULL)
120 if ((zlp->zl_avl = uu_avl_create(zlp->zl_pool, NULL,
124 zlp->zl_proplist = proplist;
127 (void) zpool_iter(g_zfs, add_pool, zlp);
128 zlp->zl_findall = B_TRUE;
137 if (add_pool(zhp, zlp) != 0)
145 return (zlp);
154 pool_list_update(zpool_list_t *zlp)
156 if (zlp->zl_findall)
157 (void) zpool_iter(g_zfs, add_pool, zlp);
164 pool_list_iter(zpool_list_t *zlp, int unavail, zpool_iter_f func,
170 for (node = uu_avl_first(zlp->zl_avl); node != NULL; node = next_node) {
171 next_node = uu_avl_next(zlp->zl_avl, node);
185 pool_list_remove(zpool_list_t *zlp, zpool_handle_t *zhp)
190 if ((node = uu_avl_find(zlp->zl_avl, &search, NULL, NULL)) != NULL) {
191 uu_avl_remove(zlp->zl_avl, node);
201 pool_list_free(zpool_list_t *zlp)
206 if ((walk = uu_avl_walk_start(zlp->zl_avl, UU_WALK_ROBUST)) == NULL) {
213 uu_avl_remove(zlp->zl_avl, node);
219 uu_avl_destroy(zlp->zl_avl);
220 uu_avl_pool_destroy(zlp->zl_pool);
222 free(zlp);
229 pool_list_count(zpool_list_t *zlp)
231 return (uu_avl_numnodes(zlp->zl_avl));