diff options
| author | Wedson Almeida Filho <[email protected]> | 2024-08-22 16:37:53 +0000 |
|---|---|---|
| committer | Miguel Ojeda <[email protected]> | 2024-08-31 15:35:08 +0000 |
| commit | a0d13aac7022f95ec161c18d18e3d81172666ed8 (patch) | |
| tree | 20edfa995ec14cf2b1d1a7d89a2f5ec6fbe503f2 /rust/helpers/rbtree.c | |
| parent | rust: enable rustdoc's `--generate-link-to-definition` (diff) | |
| download | kernel-a0d13aac7022f95ec161c18d18e3d81172666ed8.tar.gz kernel-a0d13aac7022f95ec161c18d18e3d81172666ed8.zip | |
rust: rbtree: add red-black tree implementation backed by the C version
The rust rbtree exposes a map-like interface over keys and values,
backed by the kernel red-black tree implementation. Values can be
inserted, deleted, and retrieved from a `RBTree` by key.
This base abstraction is used by binder to store key/value
pairs and perform lookups, for example the patch
"[PATCH RFC 03/20] rust_binder: add threading support"
in the binder RFC [1].
Link: https://lore.kernel.org/rust-for-linux/[email protected]/ [1]
Signed-off-by: Wedson Almeida Filho <[email protected]>
Reviewed-by: Alice Ryhl <[email protected]>
Tested-by: Alice Ryhl <[email protected]>
Reviewed-by: Boqun Feng <[email protected]>
Reviewed-by: Benno Lossin <[email protected]>
Signed-off-by: Matt Gilbride <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
[ Updated link to docs.kernel.org. - Miguel ]
Signed-off-by: Miguel Ojeda <[email protected]>
Diffstat (limited to 'rust/helpers/rbtree.c')
| -rw-r--r-- | rust/helpers/rbtree.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/rust/helpers/rbtree.c b/rust/helpers/rbtree.c new file mode 100644 index 000000000000..6d404b84a9b5 --- /dev/null +++ b/rust/helpers/rbtree.c @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include <linux/rbtree.h> + +void rust_helper_rb_link_node(struct rb_node *node, struct rb_node *parent, + struct rb_node **rb_link) +{ + rb_link_node(node, parent, rb_link); +} |
