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); +} -- 2.34.1
