]> www.infradead.org Git - users/hch/misc.git/commit
rust: init: add `assert_pinned` macro
authorBenno Lossin <benno.lossin@proton.me>
Wed, 14 Aug 2024 08:05:20 +0000 (08:05 +0000)
committerMiguel Ojeda <ojeda@kernel.org>
Fri, 23 Aug 2024 04:25:59 +0000 (06:25 +0200)
commit0528ca0a4f858da3369d405af8c76b8248dfeb7b
treef399d58d2330aa573b2aec87aee8879e0229a6bc
parentc6945acad7a14b6afb390a4afc1d354ef5413ea6
rust: init: add `assert_pinned` macro

Add a macro to statically check if a field of a struct is marked with
`#[pin]` ie that it is structurally pinned. This can be used when
`unsafe` code needs to rely on fields being structurally pinned.

The macro has a special "inline" mode for the case where the type
depends on generic parameters from the surrounding scope.

Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Co-developed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Link: https://lore.kernel.org/r/20240814-linked-list-v5-1-f5f5e8075da0@google.com
[ Replaced `compile_fail` with `ignore` and a TODO note. Removed
  `pub` from example to clean `unreachable_pub` lint. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
rust/kernel/init.rs
rust/kernel/init/__internal.rs