Lines Matching full:parent
54 struct ibv_mem_node *parent; member
166 mm_root->parent = NULL; in ibv_fork_init()
184 while (node->parent && node == node->parent->left) in __mm_prev()
185 node = node->parent; in __mm_prev()
187 node = node->parent; in __mm_prev()
200 while (node->parent && node == node->parent->right) in __mm_next()
201 node = node->parent; in __mm_next()
203 node = node->parent; in __mm_next()
217 node->left->parent = node; in __mm_rotate_right()
219 if (node->parent) { in __mm_rotate_right()
220 if (node->parent->right == node) in __mm_rotate_right()
221 node->parent->right = tmp; in __mm_rotate_right()
223 node->parent->left = tmp; in __mm_rotate_right()
227 tmp->parent = node->parent; in __mm_rotate_right()
230 node->parent = tmp; in __mm_rotate_right()
241 node->right->parent = node; in __mm_rotate_left()
243 if (node->parent) { in __mm_rotate_left()
244 if (node->parent->right == node) in __mm_rotate_left()
245 node->parent->right = tmp; in __mm_rotate_left()
247 node->parent->left = tmp; in __mm_rotate_left()
251 tmp->parent = node->parent; in __mm_rotate_left()
254 node->parent = tmp; in __mm_rotate_left()
287 struct ibv_mem_node *parent, *gp, *uncle; in __mm_add_rebalance() local
289 while (node->parent && node->parent->color == IBV_RED) { in __mm_add_rebalance()
290 parent = node->parent; in __mm_add_rebalance()
291 gp = node->parent->parent; in __mm_add_rebalance()
293 if (parent == gp->left) { in __mm_add_rebalance()
297 parent->color = IBV_BLACK; in __mm_add_rebalance()
303 if (node == parent->right) { in __mm_add_rebalance()
304 __mm_rotate_left(parent); in __mm_add_rebalance()
305 node = parent; in __mm_add_rebalance()
306 parent = node->parent; in __mm_add_rebalance()
309 parent->color = IBV_BLACK; in __mm_add_rebalance()
318 parent->color = IBV_BLACK; in __mm_add_rebalance()
324 if (node == parent->left) { in __mm_add_rebalance()
325 __mm_rotate_right(parent); in __mm_add_rebalance()
326 node = parent; in __mm_add_rebalance()
327 parent = node->parent; in __mm_add_rebalance()
330 parent->color = IBV_BLACK; in __mm_add_rebalance()
343 struct ibv_mem_node *node, *parent = NULL; in __mm_add() local
347 parent = node; in __mm_add()
354 if (parent->start < new->start) in __mm_add()
355 parent->right = new; in __mm_add()
357 parent->left = new; in __mm_add()
359 new->parent = parent; in __mm_add()
369 struct ibv_mem_node *child, *parent, *sib, *tmp; in __mm_remove() local
381 if (tmp->parent != node) { in __mm_remove()
382 parent = tmp->parent; in __mm_remove()
383 parent->right = tmp->left; in __mm_remove()
385 tmp->left->parent = parent; in __mm_remove()
388 node->left->parent = tmp; in __mm_remove()
390 parent = tmp; in __mm_remove()
393 node->right->parent = tmp; in __mm_remove()
395 tmp->parent = node->parent; in __mm_remove()
396 if (node->parent) { in __mm_remove()
397 if (node->parent->left == node) in __mm_remove()
398 node->parent->left = tmp; in __mm_remove()
400 node->parent->right = tmp; in __mm_remove()
407 parent = node->parent; in __mm_remove()
410 child->parent = parent; in __mm_remove()
411 if (parent) { in __mm_remove()
412 if (parent->left == node) in __mm_remove()
413 parent->left = child; in __mm_remove()
415 parent->right = child; in __mm_remove()
426 if (parent->left == child) { in __mm_remove()
427 sib = parent->right; in __mm_remove()
430 parent->color = IBV_RED; in __mm_remove()
432 __mm_rotate_left(parent); in __mm_remove()
433 sib = parent->right; in __mm_remove()
439 child = parent; in __mm_remove()
440 parent = child->parent; in __mm_remove()
447 sib = parent->right; in __mm_remove()
450 sib->color = parent->color; in __mm_remove()
451 parent->color = IBV_BLACK; in __mm_remove()
454 __mm_rotate_left(parent); in __mm_remove()
459 sib = parent->left; in __mm_remove()
462 parent->color = IBV_RED; in __mm_remove()
464 __mm_rotate_right(parent); in __mm_remove()
465 sib = parent->left; in __mm_remove()
471 child = parent; in __mm_remove()
472 parent = child->parent; in __mm_remove()
479 sib = parent->left; in __mm_remove()
482 sib->color = parent->color; in __mm_remove()
483 parent->color = IBV_BLACK; in __mm_remove()
486 __mm_rotate_right(parent); in __mm_remove()