diff options
| author | FUJITA Tomonori <fujita.tomonori@gmail.com> | 2025-04-24 04:28:51 +0900 | 
|---|---|---|
| committer | Andreas Hindborg <a.hindborg@kernel.org> | 2025-04-29 15:31:07 +0200 | 
| commit | 1116f0c5ff3385658ceb8ae2c5c4cb05bd7836d7 (patch) | |
| tree | b564e757cbf4486cb44f3b8be6f93676617830bb /rust/kernel/time | |
| parent | 9c32cda43eb78f78c73aee4aa344b777714e259b (diff) | |
rust: hrtimer: Add Ktime temporarily
Add Ktime temporarily until hrtimer is refactored to use Instant and
Delta types.
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
Link: https://lore.kernel.org/r/20250423192857.199712-2-fujita.tomonori@gmail.com
Signed-off-by: Andreas Hindborg <a.hindborg@kernel.org>
Diffstat (limited to 'rust/kernel/time')
| -rw-r--r-- | rust/kernel/time/hrtimer.rs | 18 | ||||
| -rw-r--r-- | rust/kernel/time/hrtimer/arc.rs | 2 | ||||
| -rw-r--r-- | rust/kernel/time/hrtimer/pin.rs | 2 | ||||
| -rw-r--r-- | rust/kernel/time/hrtimer/pin_mut.rs | 4 | ||||
| -rw-r--r-- | rust/kernel/time/hrtimer/tbox.rs | 2 | 
5 files changed, 22 insertions, 6 deletions
| diff --git a/rust/kernel/time/hrtimer.rs b/rust/kernel/time/hrtimer.rs index ce53f8579d18..17824aa0c0f3 100644 --- a/rust/kernel/time/hrtimer.rs +++ b/rust/kernel/time/hrtimer.rs @@ -68,10 +68,26 @@  //! `start` operation.  use super::ClockId; -use crate::{prelude::*, time::Ktime, types::Opaque}; +use crate::{prelude::*, types::Opaque};  use core::marker::PhantomData;  use pin_init::PinInit; +/// A Rust wrapper around a `ktime_t`. +// NOTE: Ktime is going to be removed when hrtimer is converted to Instant/Delta. +#[repr(transparent)] +#[derive(Copy, Clone, PartialEq, PartialOrd, Eq, Ord)] +pub struct Ktime { +    inner: bindings::ktime_t, +} + +impl Ktime { +    /// Returns the number of nanoseconds. +    #[inline] +    pub fn to_ns(self) -> i64 { +        self.inner +    } +} +  /// A timer backed by a C `struct hrtimer`.  ///  /// # Invariants diff --git a/rust/kernel/time/hrtimer/arc.rs b/rust/kernel/time/hrtimer/arc.rs index 4a984d85b4a1..ccf1e66e5b2d 100644 --- a/rust/kernel/time/hrtimer/arc.rs +++ b/rust/kernel/time/hrtimer/arc.rs @@ -5,10 +5,10 @@ use super::HrTimer;  use super::HrTimerCallback;  use super::HrTimerHandle;  use super::HrTimerPointer; +use super::Ktime;  use super::RawHrTimerCallback;  use crate::sync::Arc;  use crate::sync::ArcBorrow; -use crate::time::Ktime;  /// A handle for an `Arc<HasHrTimer<T>>` returned by a call to  /// [`HrTimerPointer::start`]. diff --git a/rust/kernel/time/hrtimer/pin.rs b/rust/kernel/time/hrtimer/pin.rs index f760db265c7b..293ca9cf058c 100644 --- a/rust/kernel/time/hrtimer/pin.rs +++ b/rust/kernel/time/hrtimer/pin.rs @@ -4,9 +4,9 @@ use super::HasHrTimer;  use super::HrTimer;  use super::HrTimerCallback;  use super::HrTimerHandle; +use super::Ktime;  use super::RawHrTimerCallback;  use super::UnsafeHrTimerPointer; -use crate::time::Ktime;  use core::pin::Pin;  /// A handle for a `Pin<&HasHrTimer>`. When the handle exists, the timer might be diff --git a/rust/kernel/time/hrtimer/pin_mut.rs b/rust/kernel/time/hrtimer/pin_mut.rs index 90c0351d62e4..6033572d35ad 100644 --- a/rust/kernel/time/hrtimer/pin_mut.rs +++ b/rust/kernel/time/hrtimer/pin_mut.rs @@ -1,9 +1,9 @@  // SPDX-License-Identifier: GPL-2.0  use super::{ -    HasHrTimer, HrTimer, HrTimerCallback, HrTimerHandle, RawHrTimerCallback, UnsafeHrTimerPointer, +    HasHrTimer, HrTimer, HrTimerCallback, HrTimerHandle, Ktime, RawHrTimerCallback, +    UnsafeHrTimerPointer,  }; -use crate::time::Ktime;  use core::{marker::PhantomData, pin::Pin, ptr::NonNull};  /// A handle for a `Pin<&mut HasHrTimer>`. When the handle exists, the timer might diff --git a/rust/kernel/time/hrtimer/tbox.rs b/rust/kernel/time/hrtimer/tbox.rs index 2071cae07234..29526a5da203 100644 --- a/rust/kernel/time/hrtimer/tbox.rs +++ b/rust/kernel/time/hrtimer/tbox.rs @@ -5,9 +5,9 @@ use super::HrTimer;  use super::HrTimerCallback;  use super::HrTimerHandle;  use super::HrTimerPointer; +use super::Ktime;  use super::RawHrTimerCallback;  use crate::prelude::*; -use crate::time::Ktime;  use core::ptr::NonNull;  /// A handle for a [`Box<HasHrTimer<T>>`] returned by a call to | 
