Lines Matching defs:objnode

216 	struct tmem_objnode *objnode;
220 /* objnode height_to_maxindex translation */
239 struct tmem_objnode *objnode;
244 objnode = (*tmem_hostops.objnode_alloc)(obj->pool);
245 if (unlikely(objnode == NULL))
247 objnode->obj = obj;
248 SET_SENTINEL(objnode, OBJNODE);
249 memset(&objnode->slots, 0, sizeof(objnode->slots));
250 objnode->slots_in_use = 0;
253 return objnode;
256 static void tmem_objnode_free(struct tmem_objnode *objnode)
261 BUG_ON(objnode == NULL);
263 BUG_ON(objnode->slots[i] != NULL);
264 ASSERT_SENTINEL(objnode, OBJNODE);
265 INVERT_SENTINEL(objnode, OBJNODE);
266 BUG_ON(objnode->obj == NULL);
267 ASSERT_SENTINEL(objnode->obj, OBJ);
268 pool = objnode->obj->pool;
271 objnode->obj->objnode_count--;
272 objnode->obj = NULL;
273 (*tmem_hostops.objnode_free)(objnode, pool);
341 struct tmem_objnode *objnode = NULL, *newnode, *slot;
373 /* add a child objnode. */
379 if (objnode) {
381 objnode->slots[offset] = slot;
382 objnode->slots_in_use++;
388 objnode = slot;
389 slot = objnode->slots[offset];
394 if (objnode) {
395 objnode->slots_in_use++;
396 objnode->slots[offset] = pampd;
425 pathp->objnode = NULL;
432 pathp->objnode = slot;
439 while (pathp->objnode) {
440 pathp->objnode->slots[pathp->offset] = NULL;
441 pathp->objnode->slots_in_use--;
442 if (pathp->objnode->slots_in_use) {
443 if (pathp->objnode == obj->objnode_tree_root) {
460 tmem_objnode_free(pathp->objnode); /* 0 slots used, free it */
475 struct tmem_objnode *objnode,
483 if (objnode->slots[i]) {
486 (*tmem_pamops.free)(objnode->slots[i],
488 objnode->slots[i] = NULL;
491 tmem_objnode_node_destroy(obj, objnode->slots[i], ht-1);
492 tmem_objnode_free(objnode->slots[i]);
493 objnode->slots[i] = NULL;
575 /* may have partially built objnode tree ("stump") */