mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 01:24:47 +01:00
rust: platform: replace kernel::c_str! with C-Strings
C-String literals were added in Rust 1.77. Replace instances of `kernel::c_str!` with C-String literals where possible. Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Reviewed-by: Alice Ryhl <aliceryhl@google.com> Reviewed-by: Benno Lossin <lossin@kernel.org> Signed-off-by: Tamir Duberstein <tamird@gmail.com> Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com> Link: https://patch.msgid.link/20251222-cstr-driver-core-v1-3-1142a177d0fd@gmail.com [ Use kernel vertical import style; discard unrelated faux changes. - Danilo ] Signed-off-by: Danilo Krummrich <dakr@kernel.org>
This commit is contained in:
parent
f0c6ea853b
commit
1114c87e49
2 changed files with 23 additions and 20 deletions
|
|
@ -137,8 +137,13 @@ macro_rules! module_platform_driver {
|
|||
/// # Examples
|
||||
///
|
||||
///```
|
||||
/// # use kernel::{acpi, bindings, c_str, device::Core, of, platform};
|
||||
///
|
||||
/// # use kernel::{
|
||||
/// # acpi,
|
||||
/// # bindings,
|
||||
/// # device::Core,
|
||||
/// # of,
|
||||
/// # platform,
|
||||
/// # };
|
||||
/// struct MyDriver;
|
||||
///
|
||||
/// kernel::of_device_table!(
|
||||
|
|
@ -146,7 +151,7 @@ macro_rules! module_platform_driver {
|
|||
/// MODULE_OF_TABLE,
|
||||
/// <MyDriver as platform::Driver>::IdInfo,
|
||||
/// [
|
||||
/// (of::DeviceId::new(c_str!("test,device")), ())
|
||||
/// (of::DeviceId::new(c"test,device"), ())
|
||||
/// ]
|
||||
/// );
|
||||
///
|
||||
|
|
@ -155,7 +160,7 @@ macro_rules! module_platform_driver {
|
|||
/// MODULE_ACPI_TABLE,
|
||||
/// <MyDriver as platform::Driver>::IdInfo,
|
||||
/// [
|
||||
/// (acpi::DeviceId::new(c_str!("LNUXBEEF")), ())
|
||||
/// (acpi::DeviceId::new(c"LNUXBEEF"), ())
|
||||
/// ]
|
||||
/// );
|
||||
///
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@
|
|||
//!
|
||||
|
||||
use kernel::{
|
||||
acpi, c_str,
|
||||
acpi,
|
||||
device::{
|
||||
self,
|
||||
property::{FwNodeReferenceArgs, NArgs},
|
||||
|
|
@ -85,14 +85,14 @@ kernel::of_device_table!(
|
|||
OF_TABLE,
|
||||
MODULE_OF_TABLE,
|
||||
<SampleDriver as platform::Driver>::IdInfo,
|
||||
[(of::DeviceId::new(c_str!("test,rust-device")), Info(42))]
|
||||
[(of::DeviceId::new(c"test,rust-device"), Info(42))]
|
||||
);
|
||||
|
||||
kernel::acpi_device_table!(
|
||||
ACPI_TABLE,
|
||||
MODULE_ACPI_TABLE,
|
||||
<SampleDriver as platform::Driver>::IdInfo,
|
||||
[(acpi::DeviceId::new(c_str!("LNUXBEEF")), Info(0))]
|
||||
[(acpi::DeviceId::new(c"LNUXBEEF"), Info(0))]
|
||||
);
|
||||
|
||||
impl platform::Driver for SampleDriver {
|
||||
|
|
@ -124,49 +124,47 @@ impl SampleDriver {
|
|||
fn properties_parse(dev: &device::Device) -> Result {
|
||||
let fwnode = dev.fwnode().ok_or(ENOENT)?;
|
||||
|
||||
if let Ok(idx) =
|
||||
fwnode.property_match_string(c_str!("compatible"), c_str!("test,rust-device"))
|
||||
{
|
||||
if let Ok(idx) = fwnode.property_match_string(c"compatible", c"test,rust-device") {
|
||||
dev_info!(dev, "matched compatible string idx = {}\n", idx);
|
||||
}
|
||||
|
||||
let name = c_str!("compatible");
|
||||
let name = c"compatible";
|
||||
let prop = fwnode.property_read::<CString>(name).required_by(dev)?;
|
||||
dev_info!(dev, "'{name}'='{prop:?}'\n");
|
||||
|
||||
let name = c_str!("test,bool-prop");
|
||||
let prop = fwnode.property_read_bool(c_str!("test,bool-prop"));
|
||||
let name = c"test,bool-prop";
|
||||
let prop = fwnode.property_read_bool(c"test,bool-prop");
|
||||
dev_info!(dev, "'{name}'='{prop}'\n");
|
||||
|
||||
if fwnode.property_present(c_str!("test,u32-prop")) {
|
||||
if fwnode.property_present(c"test,u32-prop") {
|
||||
dev_info!(dev, "'test,u32-prop' is present\n");
|
||||
}
|
||||
|
||||
let name = c_str!("test,u32-optional-prop");
|
||||
let name = c"test,u32-optional-prop";
|
||||
let prop = fwnode.property_read::<u32>(name).or(0x12);
|
||||
dev_info!(dev, "'{name}'='{prop:#x}' (default = 0x12)\n");
|
||||
|
||||
// A missing required property will print an error. Discard the error to
|
||||
// prevent properties_parse from failing in that case.
|
||||
let name = c_str!("test,u32-required-prop");
|
||||
let name = c"test,u32-required-prop";
|
||||
let _ = fwnode.property_read::<u32>(name).required_by(dev);
|
||||
|
||||
let name = c_str!("test,u32-prop");
|
||||
let name = c"test,u32-prop";
|
||||
let prop: u32 = fwnode.property_read(name).required_by(dev)?;
|
||||
dev_info!(dev, "'{name}'='{prop:#x}'\n");
|
||||
|
||||
let name = c_str!("test,i16-array");
|
||||
let name = c"test,i16-array";
|
||||
let prop: [i16; 4] = fwnode.property_read(name).required_by(dev)?;
|
||||
dev_info!(dev, "'{name}'='{prop:?}'\n");
|
||||
let len = fwnode.property_count_elem::<u16>(name)?;
|
||||
dev_info!(dev, "'{name}' length is {len}\n");
|
||||
|
||||
let name = c_str!("test,i16-array");
|
||||
let name = c"test,i16-array";
|
||||
let prop: KVec<i16> = fwnode.property_read_array_vec(name, 4)?.required_by(dev)?;
|
||||
dev_info!(dev, "'{name}'='{prop:?}' (KVec)\n");
|
||||
|
||||
for child in fwnode.children() {
|
||||
let name = c_str!("test,ref-arg");
|
||||
let name = c"test,ref-arg";
|
||||
let nargs = NArgs::N(2);
|
||||
let prop: FwNodeReferenceArgs = child.property_get_reference_args(name, nargs, 0)?;
|
||||
dev_info!(dev, "'{name}'='{prop:?}'\n");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue