mirror of
https://github.com/torvalds/linux.git
synced 2025-08-15 14:11:42 +02:00

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>
47 lines
1 KiB
C
47 lines
1 KiB
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* Non-trivial C macros cannot be used in Rust. Similarly, inlined C functions
|
|
* cannot be called either. This file explicitly creates functions ("helpers")
|
|
* that wrap those so that they can be called from Rust.
|
|
*
|
|
* Sorted alphabetically.
|
|
*/
|
|
|
|
#include "auxiliary.c"
|
|
#include "blk.c"
|
|
#include "bug.c"
|
|
#include "build_assert.c"
|
|
#include "build_bug.c"
|
|
#include "clk.c"
|
|
#include "cpufreq.c"
|
|
#include "cpumask.c"
|
|
#include "cred.c"
|
|
#include "device.c"
|
|
#include "dma.c"
|
|
#include "drm.c"
|
|
#include "err.c"
|
|
#include "fs.c"
|
|
#include "io.c"
|
|
#include "jump_label.c"
|
|
#include "kunit.c"
|
|
#include "mm.c"
|
|
#include "mutex.c"
|
|
#include "page.c"
|
|
#include "platform.c"
|
|
#include "pci.c"
|
|
#include "pid_namespace.c"
|
|
#include "property.c"
|
|
#include "rbtree.c"
|
|
#include "rcu.c"
|
|
#include "refcount.c"
|
|
#include "security.c"
|
|
#include "signal.c"
|
|
#include "slab.c"
|
|
#include "spinlock.c"
|
|
#include "sync.c"
|
|
#include "task.c"
|
|
#include "uaccess.c"
|
|
#include "vmalloc.c"
|
|
#include "wait.c"
|
|
#include "workqueue.c"
|
|
#include "xarray.c"
|