Eliminate the use of addr_of and addr_of_mut
addr_of and addr_of_mut is now soft-deprecated, changing to use raw
pointers which was introduced in Rust 1.82. Also fixing clippy warnings.
Signed-off-by: Imre Kis <imre.kis@arm.com>
Change-Id: I3ba72fd6f3239fce6c9735dc2d975210d5359a1d
diff --git a/Cargo.toml b/Cargo.toml
index ccd7d8f..297377e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -12,7 +12,8 @@
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://git.trustedfirmware.org/rust-spmc/rust-spmc.git"
-keywords = ["arm", "sp806", "watchdog", "timer", "driver"]
+keywords = ["arm", "sp805", "watchdog", "timer", "driver"]
+rust-version = "1.82"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/src/lib.rs b/src/lib.rs
index a5cbea0..da2994d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,4 +1,4 @@
-// SPDX-FileCopyrightText: Copyright 2023-2024 Arm Limited and/or its affiliates <open-source-office@arm.com>
+// SPDX-FileCopyrightText: Copyright 2023-2025 Arm Limited and/or its affiliates <open-source-office@arm.com>
// SPDX-License-Identifier: MIT OR Apache-2.0
//! Arm Watchdog Module (SP805) driver
@@ -7,10 +7,7 @@
#![no_std]
-use core::{
- ops::{Deref, DerefMut},
- ptr::addr_of_mut,
-};
+use core::ops::{Deref, DerefMut};
use bitflags::bitflags;
@@ -82,13 +79,13 @@
pub fn new(regs: &'a mut R) -> Self {
// SAFETY: regs can be dereferenced as a valid SP805 register block
unsafe {
- addr_of_mut!(regs.wdog_lock).write_volatile(Self::UNLOCK);
+ (&raw mut regs.wdog_lock).write_volatile(Self::UNLOCK);
}
Self { regs }
}
}
-impl<'a, R> Deref for WatchdogUnlockGuard<'a, R>
+impl<R> Deref for WatchdogUnlockGuard<'_, R>
where
R: DerefMut<Target = SP805Registers>,
{
@@ -99,7 +96,7 @@
}
}
-impl<'a, R> DerefMut for WatchdogUnlockGuard<'a, R>
+impl<R> DerefMut for WatchdogUnlockGuard<'_, R>
where
R: DerefMut<Target = SP805Registers>,
{
@@ -108,14 +105,14 @@
}
}
-impl<'a, R> Drop for WatchdogUnlockGuard<'a, R>
+impl<R> Drop for WatchdogUnlockGuard<'_, R>
where
R: DerefMut<Target = SP805Registers>,
{
fn drop(&mut self) {
// SAFETY: self.regs can be dereferenced as a valid SP805 register block
unsafe {
- addr_of_mut!(self.regs.wdog_lock).write_volatile(Self::LOCK);
+ (&raw mut self.regs.wdog_lock).write_volatile(Self::LOCK);
}
}
}
@@ -145,9 +142,9 @@
// SAFETY: self.regs can be dereferenced as a valid SP805 register block
unsafe {
- addr_of_mut!(regs.wdog_load).write_volatile(load_value);
- addr_of_mut!(regs.wdog_intclr).write_volatile(1);
- addr_of_mut!(regs.wdog_control)
+ (&raw mut regs.wdog_load).write_volatile(load_value);
+ (&raw mut regs.wdog_intclr).write_volatile(1);
+ (&raw mut regs.wdog_control)
.write_volatile((ControlRegister::INTEN | ControlRegister::RESEN).bits());
}
}
@@ -156,8 +153,7 @@
pub fn disable(&mut self) {
// SAFETY: self.regs can be dereferenced as a valid SP805 register block
unsafe {
- addr_of_mut!(self.unlock().wdog_control)
- .write_volatile(ControlRegister::empty().bits());
+ (&raw mut self.unlock().wdog_control).write_volatile(ControlRegister::empty().bits());
}
}
@@ -167,7 +163,7 @@
// SAFETY: self.regs can be dereferenced as a valid SP805 register block
unsafe {
- addr_of_mut!(self.unlock().wdog_load).write_volatile(load_value);
+ (&raw mut self.unlock().wdog_load).write_volatile(load_value);
}
}