aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/rbtree.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/rbtree.txt')
-rw-r--r--Documentation/rbtree.txt13
1 files changed, 13 insertions, 0 deletions
diff --git a/Documentation/rbtree.txt b/Documentation/rbtree.txt
index 0a0b6dce3e08..61b6c48871a0 100644
--- a/Documentation/rbtree.txt
+++ b/Documentation/rbtree.txt
@@ -202,6 +202,14 @@ An rbtree user who wants this feature will have to call the augmentation
202functions with the user provided augmentation callback when inserting 202functions with the user provided augmentation callback when inserting
203and erasing nodes. 203and erasing nodes.
204 204
205C files implementing augmented rbtree manipulation must include
206<linux/rbtree_augmented.h> instead of <linus/rbtree.h>. Note that
207linux/rbtree_augmented.h exposes some rbtree implementations details
208you are not expected to rely on; please stick to the documented APIs
209there and do not include <linux/rbtree_augmented.h> from header files
210either so as to minimize chances of your users accidentally relying on
211such implementation details.
212
205On insertion, the user must update the augmented information on the path 213On insertion, the user must update the augmented information on the path
206leading to the inserted node, then call rb_link_node() as usual and 214leading to the inserted node, then call rb_link_node() as usual and
207rb_augment_inserted() instead of the usual rb_insert_color() call. 215rb_augment_inserted() instead of the usual rb_insert_color() call.
@@ -227,6 +235,11 @@ In both cases, the callbacks are provided through struct rb_augment_callbacks.
227 subtree to a newly assigned subtree root AND recomputes the augmented 235 subtree to a newly assigned subtree root AND recomputes the augmented
228 information for the former subtree root. 236 information for the former subtree root.
229 237
238The compiled code for rb_erase_augmented() may inline the propagation and
239copy callbacks, which results in a large function, so each augmented rbtree
240user should have a single rb_erase_augmented() call site in order to limit
241compiled code size.
242
230 243
231Sample usage: 244Sample usage:
232 245