Re: [PATCH v8 3/7] rust: time: Introduce Instant type

From: FUJITA Tomonori
Date: Thu Jan 16 2025 - 07:07:05 EST


On Thu, 16 Jan 2025 10:32:45 +0100
Alice Ryhl <aliceryhl@xxxxxxxxxx> wrote:

>> -impl Ktime {
>> - /// Create a `Ktime` from a raw `ktime_t`.
>> +impl Instant {
>> + /// Create a `Instant` from a raw `ktime_t`.
>> #[inline]
>> - pub fn from_raw(inner: bindings::ktime_t) -> Self {
>> + fn from_raw(inner: bindings::ktime_t) -> Self {
>> Self { inner }
>> }
>
> Please keep this function public.

Surely, your driver uses from_raw()?

>> /// Get the current time using `CLOCK_MONOTONIC`.
>> #[inline]
>> - pub fn ktime_get() -> Self {
>> + pub fn now() -> Self {
>> // SAFETY: It is always safe to call `ktime_get` outside of NMI context.
>> Self::from_raw(unsafe { bindings::ktime_get() })
>> }
>>
>> - /// Divide the number of nanoseconds by a compile-time constant.
>> #[inline]
>> - fn divns_constant<const DIV: i64>(self) -> i64 {
>> - self.to_ns() / DIV
>> - }
>> -
>> - /// Returns the number of nanoseconds.
>> - #[inline]
>> - pub fn to_ns(self) -> i64 {
>> - self.inner
>> - }
>> -
>> - /// Returns the number of milliseconds.
>> - #[inline]
>> - pub fn to_ms(self) -> i64 {
>> - self.divns_constant::<NSEC_PER_MSEC>()
>> + /// Return the amount of time elapsed since the `Instant`.
>> + pub fn elapsed(&self) -> Delta {
>
> Nit: This places the #[inline] marker before the documentation. Please
> move it after to be consistent.

Oops, I'll fix.