diff options
author | Peter Zijlstra <peterz@infradead.org> | 2020-04-29 17:03:22 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2021-02-17 14:07:31 +0100 |
commit | 2d24dd5798d0474d9bf705bfca8725e7d20f9d54 (patch) | |
tree | 895ec9efd5a44987e173310f228135fbeb28b17b /lib/timerqueue.c | |
parent | 9fe1f127b913318c631d0041ecf71486e38c2c2d (diff) | |
download | linux-2d24dd5798d0474d9bf705bfca8725e7d20f9d54.tar.gz linux-2d24dd5798d0474d9bf705bfca8725e7d20f9d54.tar.bz2 linux-2d24dd5798d0474d9bf705bfca8725e7d20f9d54.zip |
rbtree: Add generic add and find helpers
I've always been bothered by the endless (fragile) boilerplate for
rbtree, and I recently wrote some rbtree helpers for objtool and
figured I should lift them into the kernel and use them more widely.
Provide:
partial-order; less() based:
- rb_add(): add a new entry to the rbtree
- rb_add_cached(): like rb_add(), but for a rb_root_cached
total-order; cmp() based:
- rb_find(): find an entry in an rbtree
- rb_find_add(): find an entry, and add if not found
- rb_find_first(): find the first (leftmost) matching entry
- rb_next_match(): continue from rb_find_first()
- rb_for_each(): iterate a sub-tree using the previous two
Inlining and constant propagation should see the compiler inline the
whole thing, including the various compare functions.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Michel Lespinasse <walken@google.com>
Acked-by: Davidlohr Bueso <dbueso@suse.de>
Diffstat (limited to 'lib/timerqueue.c')
0 files changed, 0 insertions, 0 deletions