| Function report | 
| Source Code: lib\rbtree.c | Create Date:2022-07-28 06:12:41 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:Inline version for rb_erase() use - we want to be able to inline* and eliminate the dummy_rotate callback there
Proto:static __always_inline void ____rb_erase_color(struct rb_node *parent, struct rb_root *root, void (*augment_rotate)(struct rb_node *old, struct rb_node *new))
Type:void
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct rb_node * | parent | |
| struct rb_root * | root | |
| void (* | augment_rotate | 
| 232 | When (true) cycle | 
| 253 | WRITE_ONCE(rb_right, tmp1) | 
| 254 | WRITE_ONCE(rb_left, parent) | 
| 255 | rb_set_parent_color(tmp1, parent, RB_BLACK) | 
| 258 | augment_rotate(parent, sibling) | 
| 262 | If Not tmp1 || rb_is_black(tmp1) Then | 
| 264 | If Not tmp2 || rb_is_black(tmp2) Then | 
| 280 | rb_set_parent_color(sibling, parent, RB_RED) | 
| 282 | If rb_is_red(parent) Then Notes on lockless lookups:* All stores to the tree structure (rb_left and rb_right) must be done using* WRITE_ONCE() | 
| 284 | Else | 
| 290 | Break | 
| 320 | WRITE_ONCE(rb_left, tmp1) | 
| 321 | WRITE_ONCE(rb_right, sibling) | 
| 322 | WRITE_ONCE(rb_right, tmp2) | 
| 323 | If tmp1 Then rb_set_parent_color(tmp1, sibling, RB_BLACK) | 
| 326 | augment_rotate(sibling, tmp2) | 
| 343 | WRITE_ONCE(rb_right, tmp2) | 
| 344 | WRITE_ONCE(rb_left, parent) | 
| 345 | rb_set_parent_color(tmp1, sibling, RB_BLACK) | 
| 346 | If tmp2 Then rb_set_parent(tmp2, parent) | 
| 350 | augment_rotate(parent, sibling) | 
| 351 | Break | 
| 352 | Else | 
| 357 | WRITE_ONCE(rb_left, tmp1) | 
| 358 | WRITE_ONCE(rb_right, parent) | 
| 359 | rb_set_parent_color(tmp1, parent, RB_BLACK) | 
| 362 | augment_rotate(parent, sibling) | 
| 366 | If Not tmp1 || rb_is_black(tmp1) Then | 
| 368 | If Not tmp2 || rb_is_black(tmp2) Then | 
| 370 | rb_set_parent_color(sibling, parent, RB_RED) | 
| 372 | If rb_is_red(parent) Then Notes on lockless lookups:* All stores to the tree structure (rb_left and rb_right) must be done using* WRITE_ONCE() | 
| 374 | Else | 
| 380 | Break | 
| 384 | WRITE_ONCE(rb_right, tmp1) | 
| 385 | WRITE_ONCE(rb_left, sibling) | 
| 386 | WRITE_ONCE(rb_left, tmp2) | 
| 387 | If tmp1 Then rb_set_parent_color(tmp1, sibling, RB_BLACK) | 
| 390 | augment_rotate(sibling, tmp2) | 
| 396 | WRITE_ONCE(rb_left, tmp2) | 
| 397 | WRITE_ONCE(rb_right, parent) | 
| 398 | rb_set_parent_color(tmp1, sibling, RB_BLACK) | 
| 399 | If tmp2 Then rb_set_parent(tmp2, parent) | 
| 403 | augment_rotate(parent, sibling) | 
| 404 | Break | 
| Name | Describe | 
|---|---|
| __rb_erase_color | Non-inline version for rb_erase_augmented() use | 
| rb_erase | 
| Source code conversion tool public plug-in interface | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |