[PATCH 0/2] In-place module initialisation

From: Wedson Almeida Filho
Date: Tue Mar 26 2024 - 23:24:01 EST


From: Wedson Almeida Filho <walmeida@xxxxxxxxxxxxx>

Introduce `InPlaceModule`, which allows modules to be initialised
inplace, as opposed to the current state where modules must return an
instance which is moved to its final memory location.

This allows us to have modules whose state hold objects that must be
initialised inplace like locks. It also allows us to implement
registrations (e.g., driver registration) inplace and have them similar
to their C counterparts where no new allocations are needed.

This is built on top of the allocation APIs because the sample module is
a modified version of rust_minimal, which would be incompatible with the
allocation API series because it uses vectors.

Wedson Almeida Filho (2):
rust: introduce `InPlaceModule`
samples: rust: add in-place initialisation sample

rust/kernel/lib.rs | 25 ++++++++++++++++++++-
rust/macros/module.rs | 18 ++++++----------
samples/rust/Kconfig | 11 ++++++++++
samples/rust/Makefile | 1 +
samples/rust/rust_inplace.rs | 42 ++++++++++++++++++++++++++++++++++++
5 files changed, 84 insertions(+), 13 deletions(-)
create mode 100644 samples/rust/rust_inplace.rs


base-commit: e0ff891dbadea6226042574a0cbfc24df0318b13
--
2.34.1