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).
