linux/rust/macros
Benno Lossin 88c2e1169f rust: macros: improve #[vtable] documentation
Traits marked with `#[vtable]` need to provide default implementations
for optional functions. The C side represents these with `NULL` in the
vtable, so the default functions are never actually called. We do not
want to replicate the default behavior from C in Rust, because that is
not maintainable. Therefore we should use `build_error` in those default
implementations. The error message for that is provided at
`kernel::error::VTABLE_DEFAULT_ERROR`.

Signed-off-by: Benno Lossin <benno.lossin@proton.me>
Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
Reviewed-by: Andreas Hindborg <a.hindborg@samsung.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Finn Behrens <me@kloenk.dev>
Link: https://lore.kernel.org/r/20231026201855.1497680-1-benno.lossin@proton.me
[ Wrapped paragraph to 80 as requested and capitalized sentence. ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2023-12-14 20:14:01 +01:00
..
concat_idents.rs rust: macros: add concat_idents! proc macro 2022-12-04 01:59:04 +01:00
helpers.rs rust: macros: refactor generics parsing of #[pin_data] into its own function 2023-05-31 18:53:09 +02:00
lib.rs rust: macros: improve #[vtable] documentation 2023-12-14 20:14:01 +01:00
module.rs btf, scripts: rust: drop is_rust_module.sh 2023-08-10 22:28:04 +02:00
paste.rs rust: macros: update 'paste!' macro to accept string literals 2023-12-14 20:14:01 +01:00
pin_data.rs rust: macros: replace Self with the concrete type in #[pin_data] 2023-05-31 18:53:09 +02:00
pinned_drop.rs rust: init: add PinnedDrop trait and macros 2023-04-12 18:41:05 +02:00
quote.rs rust: add derive macro for Zeroable 2023-08-21 14:31:48 +02:00
vtable.rs rust: macros: vtable: fix HAS_* redefinition (gen_const_name) 2023-08-09 21:15:07 +02:00
zeroable.rs rust: add derive macro for Zeroable 2023-08-21 14:31:48 +02:00