Lines Matching full:pp

60 				    (pp)->uap_nodeoffset))
62 #define POOL_TO_MARKER(pp) (((uintptr_t)(pp) | 1)) argument
70 uu_avl_pool_t *pp, *next, *prev; in uu_avl_pool_create() local
85 pp = uu_zalloc(sizeof (uu_avl_pool_t)); in uu_avl_pool_create()
86 if (pp == NULL) { in uu_avl_pool_create()
91 (void) strlcpy(pp->uap_name, name, sizeof (pp->uap_name)); in uu_avl_pool_create()
92 pp->uap_nodeoffset = nodeoffset; in uu_avl_pool_create()
93 pp->uap_objsize = objsize; in uu_avl_pool_create()
94 pp->uap_cmp = compare_func; in uu_avl_pool_create()
96 pp->uap_debug = 1; in uu_avl_pool_create()
97 pp->uap_last_index = 0; in uu_avl_pool_create()
99 (void) pthread_mutex_init(&pp->uap_lock, NULL); in uu_avl_pool_create()
101 pp->uap_null_avl.ua_next = &pp->uap_null_avl; in uu_avl_pool_create()
102 pp->uap_null_avl.ua_prev = &pp->uap_null_avl; in uu_avl_pool_create()
105 pp->uap_next = next = &uu_null_apool; in uu_avl_pool_create()
106 pp->uap_prev = prev = next->uap_prev; in uu_avl_pool_create()
107 next->uap_prev = pp; in uu_avl_pool_create()
108 prev->uap_next = pp; in uu_avl_pool_create()
111 return (pp); in uu_avl_pool_create()
115 uu_avl_pool_destroy(uu_avl_pool_t *pp) in uu_avl_pool_destroy() argument
117 if (pp->uap_debug) { in uu_avl_pool_destroy()
118 if (pp->uap_null_avl.ua_next != &pp->uap_null_avl || in uu_avl_pool_destroy()
119 pp->uap_null_avl.ua_prev != &pp->uap_null_avl) { in uu_avl_pool_destroy()
122 (int)sizeof (pp->uap_name), pp->uap_name, in uu_avl_pool_destroy()
123 (void *)pp); in uu_avl_pool_destroy()
127 pp->uap_next->uap_prev = pp->uap_prev; in uu_avl_pool_destroy()
128 pp->uap_prev->uap_next = pp->uap_next; in uu_avl_pool_destroy()
130 (void) pthread_mutex_destroy(&pp->uap_lock); in uu_avl_pool_destroy()
131 pp->uap_prev = NULL; in uu_avl_pool_destroy()
132 pp->uap_next = NULL; in uu_avl_pool_destroy()
133 uu_free(pp); in uu_avl_pool_destroy()
137 uu_avl_node_init(void *base, uu_avl_node_t *np, uu_avl_pool_t *pp) in uu_avl_node_init() argument
141 if (pp->uap_debug) { in uu_avl_node_init()
143 if (offset + sizeof (*np) > pp->uap_objsize) { in uu_avl_node_init()
146 base, (void *)np, (void *)pp, pp->uap_name, in uu_avl_node_init()
147 (long)offset, (long)pp->uap_objsize); in uu_avl_node_init()
149 if (offset != pp->uap_nodeoffset) { in uu_avl_node_init()
152 base, (void *)np, (void *)pp, pp->uap_name, in uu_avl_node_init()
153 (long)offset, (long)pp->uap_objsize); in uu_avl_node_init()
157 na[0] = POOL_TO_MARKER(pp); in uu_avl_node_init()
162 uu_avl_node_fini(void *base, uu_avl_node_t *np, uu_avl_pool_t *pp) in uu_avl_node_fini() argument
166 if (pp->uap_debug) { in uu_avl_node_fini()
170 base, (void *)np, (void *)pp, pp->uap_name); in uu_avl_node_fini()
172 if (na[0] != POOL_TO_MARKER(pp) || na[1] != 0) { in uu_avl_node_fini()
175 base, (void *)np, (void *)pp, pp->uap_name); in uu_avl_node_fini()
210 uu_avl_create(uu_avl_pool_t *pp, void *parent, uint32_t flags) in uu_avl_create() argument
225 ap->ua_pool = pp; in uu_avl_create()
227 ap->ua_debug = pp->uap_debug || (flags & UU_AVL_DEBUG); in uu_avl_create()
228 ap->ua_index = (pp->uap_last_index = INDEX_NEXT(pp->uap_last_index)); in uu_avl_create()
230 avl_create(&ap->ua_tree, &uu_avl_node_compare, pp->uap_objsize, in uu_avl_create()
231 pp->uap_nodeoffset); in uu_avl_create()
236 (void) pthread_mutex_lock(&pp->uap_lock); in uu_avl_create()
237 next = &pp->uap_null_avl; in uu_avl_create()
243 (void) pthread_mutex_unlock(&pp->uap_lock); in uu_avl_create()
251 uu_avl_pool_t *pp = ap->ua_pool; in uu_avl_destroy() local
264 (void) pthread_mutex_lock(&pp->uap_lock); in uu_avl_destroy()
267 (void) pthread_mutex_unlock(&pp->uap_lock); in uu_avl_destroy()
424 uu_avl_pool_t *pp = ap->ua_pool; in uu_avl_remove() local
425 uintptr_t *na = NODE_ARRAY(pp, elem); in uu_avl_remove()
452 na[0] = POOL_TO_MARKER(pp); in uu_avl_remove()
462 uu_avl_pool_t *pp = ap->ua_pool; in uu_avl_teardown() local
463 uintptr_t *na = NODE_ARRAY(pp, elem); in uu_avl_teardown()
465 na[0] = POOL_TO_MARKER(pp); in uu_avl_teardown()
496 uu_avl_pool_t *pp = ap->ua_pool; in uu_avl_insert() local
497 uintptr_t *na = NODE_ARRAY(pp, elem); in uu_avl_insert()
507 if (na[0] != POOL_TO_MARKER(pp)) in uu_avl_insert()
552 uu_avl_pool_t *pp; in uu_avl_lockup() local
555 for (pp = uu_null_apool.uap_next; pp != &uu_null_apool; in uu_avl_lockup()
556 pp = pp->uap_next) in uu_avl_lockup()
557 (void) pthread_mutex_lock(&pp->uap_lock); in uu_avl_lockup()
563 uu_avl_pool_t *pp; in uu_avl_release() local
565 for (pp = uu_null_apool.uap_next; pp != &uu_null_apool; in uu_avl_release()
566 pp = pp->uap_next) in uu_avl_release()
567 (void) pthread_mutex_unlock(&pp->uap_lock); in uu_avl_release()