summaryrefslogtreecommitdiff
path: root/rust/kernel/device.rs
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@kernel.org>2025-02-05 14:57:18 -0800
committerNamhyung Kim <namhyung@kernel.org>2025-02-05 14:57:18 -0800
commit9e676a024fa1fa2bd8150c2d2ba85478280353bc (patch)
tree5cf0e1d4ab27002fcafdc7dc5bdfdd9ff3f3c9f1 /rust/kernel/device.rs
parent357b965deba9fb71467413e473764ec4e1694d8d (diff)
parent2014c95afecee3e76ca4a56956a936e23283f05b (diff)
Merge tag 'v6.14-rc1' into perf-tools-next
To get the various fixes in the current master. Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Diffstat (limited to 'rust/kernel/device.rs')
-rw-r--r--rust/kernel/device.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/rust/kernel/device.rs b/rust/kernel/device.rs
index c926e0c2b852..db2d9658ba47 100644
--- a/rust/kernel/device.rs
+++ b/rust/kernel/device.rs
@@ -6,6 +6,7 @@
use crate::{
bindings,
+ str::CStr,
types::{ARef, Opaque},
};
use core::{fmt, ptr};
@@ -173,13 +174,19 @@ impl Device {
#[cfg(CONFIG_PRINTK)]
unsafe {
bindings::_dev_printk(
- klevel as *const _ as *const core::ffi::c_char,
+ klevel as *const _ as *const crate::ffi::c_char,
self.as_raw(),
c_str!("%pA").as_char_ptr(),
- &msg as *const _ as *const core::ffi::c_void,
+ &msg as *const _ as *const crate::ffi::c_void,
)
};
}
+
+ /// Checks if property is present or not.
+ pub fn property_present(&self, name: &CStr) -> bool {
+ // SAFETY: By the invariant of `CStr`, `name` is null-terminated.
+ unsafe { bindings::device_property_present(self.as_raw().cast_const(), name.as_char_ptr()) }
+ }
}
// SAFETY: Instances of `Device` are always reference-counted.