From: Igor Korotin <igor.korotin.linux@gmail.com>
To: "Rafael J . Wysocki" <rafael@kernel.org>,
Alex Gaynor <alex.gaynor@gmail.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Miguel Ojeda <ojeda@kernel.org>, Rob Herring <robh@kernel.org>,
Saravana Kannan <saravanak@google.com>
Cc: "Alex Hung" <alex.hung@amd.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Igor Korotin" <igor.korotin.linux@gmail.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
"Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>,
"Mauro Carvalho Chehab" <mchehab+huawei@kernel.org>,
"Remo Senekowitsch" <remo@buenzli.dev>,
"Tamir Duberstein" <tamird@gmail.com>,
"Viresh Kumar" <viresh.kumar@linaro.org>,
"Wedson Almeida Filho" <wedsonaf@gmail.com>,
"Xiangfei Ding" <dingxiangfei2009@gmail.com>,
devicetree@vger.kernel.org, linux-acpi@vger.kernel.org,
linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Alice Ryhl" <aliceryhl@google.com>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Benno Lossin" <lossin@kernel.org>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Danilo Krummrich" <dakr@kernel.org>,
"Gary Guo" <gary@garyguo.net>, "Len Brown" <lenb@kernel.org>,
"Trevor Gross" <tmgross@umich.edu>
Subject: [PATCH v8 1/9] rust: device: implement FwNode::is_of_node()
Date: Fri, 20 Jun 2025 16:15:04 +0100 [thread overview]
Message-ID: <20250620151504.278766-1-igor.korotin.linux@gmail.com> (raw)
In-Reply-To: <20250620150914.276272-1-igor.korotin.linux@gmail.com>
From: Danilo Krummrich <dakr@kernel.org>
Implement FwNode::is_of_node() in order to check whether a FwNode
instance is embedded in a struct device_node.
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Signed-off-by: Igor Korotin <igor.korotin.linux@gmail.com>
---
MAINTAINERS | 1 +
rust/helpers/helpers.c | 1 +
rust/helpers/of.c | 8 ++++++++
rust/kernel/device/property.rs | 7 +++++++
4 files changed, 17 insertions(+)
create mode 100644 rust/helpers/of.c
diff --git a/MAINTAINERS b/MAINTAINERS
index 9f724cd556f4..1e918319cff4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -18579,6 +18579,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git
F: Documentation/ABI/testing/sysfs-firmware-ofw
F: drivers/of/
F: include/linux/of*.h
+F: rust/helpers/of.c
F: rust/kernel/of.rs
F: scripts/dtc/
F: tools/testing/selftests/dt/
diff --git a/rust/helpers/helpers.c b/rust/helpers/helpers.c
index ed00695af971..041a8112eb9e 100644
--- a/rust/helpers/helpers.c
+++ b/rust/helpers/helpers.c
@@ -26,6 +26,7 @@
#include "kunit.c"
#include "mm.c"
#include "mutex.c"
+#include "of.c"
#include "page.c"
#include "platform.c"
#include "pci.c"
diff --git a/rust/helpers/of.c b/rust/helpers/of.c
new file mode 100644
index 000000000000..86b51167c913
--- /dev/null
+++ b/rust/helpers/of.c
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <linux/of.h>
+
+bool rust_helper_is_of_node(const struct fwnode_handle *fwnode)
+{
+ return is_of_node(fwnode);
+}
diff --git a/rust/kernel/device/property.rs b/rust/kernel/device/property.rs
index 838509111e57..63fe4b6ee6bc 100644
--- a/rust/kernel/device/property.rs
+++ b/rust/kernel/device/property.rs
@@ -61,6 +61,13 @@ pub(crate) fn as_raw(&self) -> *mut bindings::fwnode_handle {
self.0.get()
}
+ /// Returns `true` if `&self` is an OF node, `false` otherwise.
+ pub fn is_of_node(&self) -> bool {
+ // SAFETY: The type invariant of `Self` guarantees that `self.as_raw() is a pointer to a
+ // valid `struct fwnode_handle`.
+ unsafe { bindings::is_of_node(self.as_raw()) }
+ }
+
/// Returns an object that implements [`Display`](core::fmt::Display) for
/// printing the name of a node.
///
--
2.43.0
next prev parent reply other threads:[~2025-06-20 15:17 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-20 15:09 [PATCH v8 0/9] rust: Add ACPI match table support for Rust drivers Igor Korotin
2025-06-20 15:15 ` Igor Korotin [this message]
2025-06-20 22:39 ` [PATCH v8 1/9] rust: device: implement FwNode::is_of_node() Danilo Krummrich
2025-06-24 20:46 ` Danilo Krummrich
2025-06-25 14:08 ` Rob Herring
2025-06-20 15:18 ` [PATCH v8 2/9] samples: rust: platform: don't call as_ref() repeatedly Igor Korotin
2025-06-21 3:28 ` Dirk Behme
2025-06-20 15:21 ` [PATCH v8 3/9] samples: rust: platform: conditionally call Self::properties_parse() Igor Korotin
2025-06-20 15:24 ` [PATCH v8 4/9] rust: acpi: add `acpi::DeviceId` abstraction Igor Korotin
2025-06-20 22:06 ` Danilo Krummrich
2025-06-23 9:03 ` Igor Korotin
2025-06-24 17:56 ` Rafael J. Wysocki
2025-06-26 15:25 ` Danilo Krummrich
2025-06-26 17:40 ` Igor Korotin
2025-06-26 18:28 ` Danilo Krummrich
2025-06-20 15:36 ` [PATCH v8 5/9] rust: driver: Consolidate `Adapter::of_id_info` methods using `#[cfg]` Igor Korotin
2025-06-20 15:39 ` [PATCH v8 6/9] rust: driver: Add ACPI id table support to Adapter trait Igor Korotin
2025-06-20 15:41 ` [PATCH v8 7/9] rust: platform: Set `OF_ID_TABLE` default to `None` in `Driver` trait Igor Korotin
2025-06-20 15:43 ` [PATCH v8 8/9] rust: platform: Add ACPI match table support to " Igor Korotin
2025-06-20 15:45 ` [PATCH v8 9/9] samples: rust: add ACPI match table example to platform driver Igor Korotin
2025-06-26 17:33 ` [PATCH v1 0/4] rust: Add basic I2C driver abstractions Igor Korotin
2025-06-26 17:47 ` Igor Korotin
2025-06-26 22:31 ` [PATCH v8 0/9] rust: Add ACPI match table support for Rust drivers Danilo Krummrich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250620151504.278766-1-igor.korotin.linux@gmail.com \
--to=igor.korotin.linux@gmail.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=a.hindborg@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=alex.gaynor@gmail.com \
--cc=alex.hung@amd.com \
--cc=aliceryhl@google.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=dakr@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dingxiangfei2009@gmail.com \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=kuba@kernel.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=mchehab+huawei@kernel.org \
--cc=ojeda@kernel.org \
--cc=rafael@kernel.org \
--cc=remo@buenzli.dev \
--cc=robh@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=saravanak@google.com \
--cc=tamird@gmail.com \
--cc=tmgross@umich.edu \
--cc=viresh.kumar@linaro.org \
--cc=wedsonaf@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.