> On Nov 25, 2025, at 9:52 AM, Alexandre Courbot <[email protected]> wrote: > > On Wed Nov 12, 2025 at 2:13 AM JST, Joel Fernandes wrote: >> Add Rust helper functions for common C linked list operations >> that are implemented as macros or inline functions and thus not >> directly accessible from Rust. >> >> Signed-off-by: Joel Fernandes <[email protected]> >> --- >> rust/helpers/helpers.c | 1 + >> rust/helpers/list.c | 32 ++++++++++++++++++++++++++++++++ >> 2 files changed, 33 insertions(+) >> create mode 100644 rust/helpers/list.c >> >> diff --git a/rust/helpers/helpers.c b/rust/helpers/helpers.c >> index 79c72762ad9c..634fa2386bbb 100644 >> --- a/rust/helpers/helpers.c >> +++ b/rust/helpers/helpers.c >> @@ -32,6 +32,7 @@ >> #include "io.c" >> #include "jump_label.c" >> #include "kunit.c" >> +#include "list.c" >> #include "maple_tree.c" >> #include "mm.c" >> #include "mutex.c" >> diff --git a/rust/helpers/list.c b/rust/helpers/list.c >> new file mode 100644 >> index 000000000000..fea2a18621da >> --- /dev/null >> +++ b/rust/helpers/list.c >> @@ -0,0 +1,32 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> + >> +/* >> + * Helpers for C Circular doubly linked list implementation. >> + */ >> + >> +#include <linux/list.h> >> + >> +bool rust_helper_list_empty(const struct list_head *head) >> +{ >> + return list_empty(head); >> +} >> + >> +void rust_helper_list_del(struct list_head *entry) >> +{ >> + list_del(entry); >> +} >> + >> +void rust_helper_INIT_LIST_HEAD(struct list_head *list) >> +{ >> + INIT_LIST_HEAD(list); >> +} >> + >> +void rust_helper_list_add(struct list_head *new, struct list_head *head) >> +{ >> + list_add(new, head); >> +} >> + >> +void rust_helper_list_add_tail(struct list_head *new, struct list_head >> *head) >> +{ >> + list_add_tail(new, head); >> +} > > Just noticed, but of these helpers only `INIT_LIST_HEAD` and > `list_add_tail` seem to be used (in doccomments).
Correct, but it makes sense to add the most obvious/common ones (also to make it clear that using these are supported). Thanks.
