函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:include\linux\rbtree_augmented.h Create Date:2022-07-27 07:09:56
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:__rb_erase_augmented

函数原型:static __always_inline struct rb_node *__rb_erase_augmented(struct rb_node *node, struct rb_root *root, const struct rb_augment_callbacks *augment)

返回类型:struct rb_node

参数:

类型参数名称
struct rb_node *node
struct rb_root *root
const struct rb_augment_callbacks *augment
201  child等于rb_right
202  tmp等于rb_left
206  如果非tmp
214  pc等于__rb_parent_color
215  parent等于__rb_parent(pc)
216  __rb_change_child(node, child, parent, root)
217  如果child
218  __rb_parent_color等于pc
219  rebalance = NULL
220  否则rebalance = __rb_is_black(pc) ? parent : NULL
222  tmp等于parent
223  否则如果非child
225  __rb_parent_color等于pc等于__rb_parent_color
226  parent等于__rb_parent(pc)
227  __rb_change_child(node, tmp, parent, root)
228  rebalance = NULL
229  tmp等于parent
230  否则
231  successor等于child
233  tmp等于rb_left
234  如果非tmp
244  parent等于successor
245  child2等于rb_right
247  copy(node, successor)
248  否则
263  循环
264  parent等于successor
265  successor等于tmp
266  tmp等于rb_left
267 tmp循环
268  child2等于rb_right
273  copy(node, successor)
277  tmp等于rb_left
278  WRITE_ONCE(rb_left, tmp)
279  rb_set_parent(tmp, successor)
281  pc等于__rb_parent_color
282  tmp等于__rb_parent(pc)
283  __rb_change_child(node, successor, tmp, root)
285  如果child2
287  rebalance = NULL
288  否则
291  __rb_parent_color等于pc
292  tmp等于successor
295  propagate(tmp, NULL)
296  返回:rebalance
调用者
名称描述
rb_erase
rb_erase_augmented