rust: add devres abstraction
authorDanilo Krummrich <dakr@kernel.org>
Thu, 19 Dec 2024 17:04:10 +0000 (18:04 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 20 Dec 2024 16:19:26 +0000 (17:19 +0100)
commit76c01ded724bfb464878e22c89f7ecce26f5d50e
tree6a73c13383a46c72c007f9ee5c70e08010d9f438
parentce30d94e6855a4f6dc687f658e63c225fcc1d690
rust: add devres abstraction

Add a Rust abstraction for the kernel's devres (device resource
management) implementation.

The Devres type acts as a container to manage the lifetime and
accessibility of device bound resources. Therefore it registers a
devres callback and revokes access to the resource on invocation.

Users of the Devres abstraction can simply free the corresponding
resources in their Drop implementation, which is invoked when either the
Devres instance goes out of scope or the devres callback leads to the
resource being revoked, which implies a call to drop_in_place().

Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Tested-by: Dirk Behme <dirk.behme@de.bosch.com>
Link: https://lore.kernel.org/r/20241219170425.12036-9-dakr@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
MAINTAINERS
rust/helpers/device.c [new file with mode: 0644]
rust/helpers/helpers.c
rust/kernel/devres.rs [new file with mode: 0644]
rust/kernel/lib.rs