diff options
| author | 2025-06-11 12:29:00 +0200 | |
|---|---|---|
| committer | 2025-06-12 23:56:42 +0200 | |
| commit | a2801affa7103862d549050401a9f53b3365fca4 (patch) | |
| tree | edbb87db9147201aadb1e63d4f215faa726d6f30 /rust/helpers/property.c | |
| parent | Linux 6.16-rc1 (diff) | |
| download | wireguard-linux-a2801affa7103862d549050401a9f53b3365fca4.tar.xz wireguard-linux-a2801affa7103862d549050401a9f53b3365fca4.zip | |
rust: device: Create FwNode abstraction for accessing device properties
Accessing device properties is currently done via methods on `Device`
itself, using bindings to device_property_* functions. This is
sufficient for the existing method property_present. However, it's not
sufficient for other device properties we want to access. For example,
iterating over child nodes of a device will yield a fwnode_handle.
That's not a device, so it wouldn't be possible to read the properties
of that child node. Thus, we need an abstraction over fwnode_handle and
methods for reading its properties.
Add a struct FwNode which abstracts over the C struct fwnode_handle.
Implement its reference counting analogous to other Rust abstractions
over reference-counted C structs.
Subsequent patches will add functionality to access FwNode and read
properties with it.
Tested-by: Dirk Behme <dirk.behme@de.bosch.com>
Signed-off-by: Remo Senekowitsch <remo@buenzli.dev>
Link: https://lore.kernel.org/r/20250611102908.212514-2-remo@buenzli.dev
[ Add temporary #[expect(dead_code)] to avoid a warning. - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'rust/helpers/property.c')
| -rw-r--r-- | rust/helpers/property.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/rust/helpers/property.c b/rust/helpers/property.c new file mode 100644 index 000000000000..08f68e2dac4a --- /dev/null +++ b/rust/helpers/property.c @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include <linux/property.h> + +void rust_helper_fwnode_handle_put(struct fwnode_handle *fwnode) +{ + fwnode_handle_put(fwnode); +} |
