Files
linux/rust/kernel
Alice Ryhl 14176295fe rust: list: add struct with prev/next pointers
Define the ListLinks struct, which wraps the prev/next pointers that
will be used to insert values into a List in a future patch. Also
define the ListItem trait, which is implemented by structs that have a
ListLinks field.

The ListItem trait provides four different methods that are all
essentially container_of or the reverse of container_of. Two of them are
used before inserting/after removing an item from the list, and the two
others are used when looking at a value without changing whether it is
in a list. This distinction is introduced because it is needed for the
patch that adds support for heterogeneous lists, which are implemented
by adding a third pointer field with a fat pointer to the full struct.
When inserting into the heterogeneous list, the pointer-to-self is
updated to have the right vtable, and the container_of operation is
implemented by just returning that pointer instead of using the real
container_of operation.

Reviewed-by: Benno Lossin <benno.lossin@proton.me>
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Link: https://lore.kernel.org/r/20240814-linked-list-v5-4-f5f5e8075da0@google.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-08-23 06:26:57 +02:00
..
2024-08-23 06:25:59 +02:00
2024-08-23 06:26:57 +02:00
2024-07-08 23:44:01 +02:00
2023-05-31 17:35:03 +02:00
2024-08-23 06:25:59 +02:00
2023-12-21 20:54:17 +01:00
2024-08-23 06:26:57 +02:00
2024-07-08 23:44:01 +02:00
2024-05-05 19:22:25 +02:00
2024-05-05 19:22:25 +02:00