<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in hrtimer.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>ddb1444d3335129ae87d9796ab1debf41c0ee51b - hrtimer: add usage examples to documentation</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#ddb1444d3335129ae87d9796ab1debf41c0ee51b</link>
        <description>hrtimer: add usage examples to documentationAdd documentation examples showing various ways to use hrtimers:- Box-allocated timers with shared state in Arc.- Arc-allocated timers.- Stack-based timers for scoped usage.- Mutable stack-based timers with shared state.Tested-by: Daniel Almeida &lt;daniel.almeida@collabora.com&gt;Reviewed-by: Daniel Almeida &lt;daniel.almeida@collabora.com&gt;Reviewed-by: Alice Ryhl &lt;aliceryhl@google.com&gt;Link: https://msgid.link/20260219-hrtimer-examples-v6-19-rc1-v2-1-810cc06ca9f6@kernel.orgSigned-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Thu, 19 Feb 2026 12:57:45 +0100</pubDate>
        <dc:creator>Andreas Hindborg &lt;a.hindborg@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>4b0147494275fdbea98305f4ddad7e2def7b556f - rust: hrtimer: Add HrTimer::expires()</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#4b0147494275fdbea98305f4ddad7e2def7b556f</link>
        <description>rust: hrtimer: Add HrTimer::expires()Add a simple callback for retrieving the current expiry time for anHrTimer. In rvkms, we use the HrTimer expiry value in order to calculatethe approximate vblank timestamp during each emulated vblank interrupt.Signed-off-by: Lyude Paul &lt;lyude@redhat.com&gt;Reviewed-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Link: https://lore.kernel.org/r/20250821193259.964504-8-lyude@redhat.comSigned-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Thu, 21 Aug 2025 21:32:47 +0200</pubDate>
        <dc:creator>Lyude Paul &lt;lyude@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>ac0a7bd27f6593dfe9ea6b65538bebbbd8322241 - rust: hrtimer: Add forward_now() to HrTimer and HrTimerCallbackContext</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#ac0a7bd27f6593dfe9ea6b65538bebbbd8322241</link>
        <description>rust: hrtimer: Add forward_now() to HrTimer and HrTimerCallbackContextSigned-off-by: Lyude Paul &lt;lyude@redhat.com&gt;Reviewed-by: Daniel Almeida &lt;daniel.almeida@collabora.com&gt;Reviewed-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Link: https://lore.kernel.org/r/20250821193259.964504-6-lyude@redhat.comSigned-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Thu, 21 Aug 2025 21:32:45 +0200</pubDate>
        <dc:creator>Lyude Paul &lt;lyude@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>3f2a5ba784b808109cac0aac921213e43143a216 - rust: hrtimer: Add HrTimerCallbackContext and ::forward()</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#3f2a5ba784b808109cac0aac921213e43143a216</link>
        <description>rust: hrtimer: Add HrTimerCallbackContext and ::forward()With Linux&apos;s hrtimer API, there&apos;s a number of methods that can only becalled in two situations:* When we have exclusive access to the hrtimer and it is not currently  active* When we&apos;re within the context of an hrtimer callback contextThis commit handles the second situation and implements hrtimer_forward()support in the context of a timer callback. We do this by introducing aHrTimerCallbackContext type which is provided to users during theRawHrTimerCallback::run() callback, and then add a forward() function tothe type.Signed-off-by: Lyude Paul &lt;lyude@redhat.com&gt;Reviewed-by: Daniel Almeida &lt;daniel.almeida@collabora.com&gt;Reviewed-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Link: https://lore.kernel.org/r/20250821193259.964504-5-lyude@redhat.comSigned-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Thu, 21 Aug 2025 21:32:44 +0200</pubDate>
        <dc:creator>Lyude Paul &lt;lyude@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>3efb9ce91c5279d7ea73563d1fb136077f52dd2e - rust: hrtimer: Add HrTimer::raw_forward() and forward()</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#3efb9ce91c5279d7ea73563d1fb136077f52dd2e</link>
        <description>rust: hrtimer: Add HrTimer::raw_forward() and forward()Within the hrtimer API there are quite a number of functions that can onlybe safely called from one of two contexts:* When we have exclusive access to the hrtimer and the timer is not active.* When we&apos;re within the hrtimer&apos;s callback context as it is being executed.This commit adds bindings for hrtimer_forward() for the first such context,along with HrTimer::raw_forward() for later use in implementing thehrtimer_forward() in the latter context.Signed-off-by: Lyude Paul &lt;lyude@redhat.com&gt;Reviewed-by: Daniel Almeida &lt;daniel.almeida@collabora.com&gt;Reviewed-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Link: https://lore.kernel.org/r/20250821193259.964504-4-lyude@redhat.comSigned-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Thu, 21 Aug 2025 21:32:43 +0200</pubDate>
        <dc:creator>Lyude Paul &lt;lyude@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>0e2aab67f2d5716e8db73b6d0719208b44086ed5 - rust: hrtimer: Add HrTimerInstant</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#0e2aab67f2d5716e8db73b6d0719208b44086ed5</link>
        <description>rust: hrtimer: Add HrTimerInstantSince we want to add HrTimer methods that can accept Instants, we will wantto make sure that for each method we are using the correct Clocksource forthe given HrTimer. This would get a bit overly-verbose, so add a simpleHrTimerInstant type-alias to handle this for us.Signed-off-by: Lyude Paul &lt;lyude@redhat.com&gt;Reviewed-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Reviewed-by: Daniel Almeida &lt;daniel.almeida@collabora.com&gt;Link: https://lore.kernel.org/r/20250821193259.964504-3-lyude@redhat.comSigned-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Thu, 21 Aug 2025 21:32:42 +0200</pubDate>
        <dc:creator>Lyude Paul &lt;lyude@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>a984da24e7ac411c95bab7b6c127bae4927f9d03 - rust: hrtimer: Document the return value for HrTimerHandle::cancel()</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#a984da24e7ac411c95bab7b6c127bae4927f9d03</link>
        <description>rust: hrtimer: Document the return value for HrTimerHandle::cancel()Just a drive-by fix I noticed: we don&apos;t actually document what the returnvalue from cancel() does, so do that.Signed-off-by: Lyude Paul &lt;lyude@redhat.com&gt;Reviewed-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Reviewed-by: Daniel Almeida &lt;daniel.almeida@collabora.com&gt;Link: https://lore.kernel.org/r/20250821193259.964504-2-lyude@redhat.comSigned-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Thu, 21 Aug 2025 21:32:41 +0200</pubDate>
        <dc:creator>Lyude Paul &lt;lyude@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>23b128bba76776541dc09efaf3acf6242917e1f0 - rust: time: Pass correct timer mode ID to hrtimer_start_range_ns</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#23b128bba76776541dc09efaf3acf6242917e1f0</link>
        <description>rust: time: Pass correct timer mode ID to hrtimer_start_range_nsWhile rebasing rvkms I noticed that timers I was setting seemed to havepretty random timer values that amounted slightly over 2x the time value Iset each time. After a lot of debugging, I finally managed to figure outwhy: it seems that since we moved to Instant and Delta, we mistakenlybegan passing the clocksource ID to hrtimer_start_range_ns, when we shouldbe passing the timer mode instead. Presumably, this works fine for simplerelative timers - but immediately breaks on other types of timers.So, fix this by passing the ID for the timer mode instead.Signed-off-by: Lyude Paul &lt;lyude@redhat.com&gt;Acked-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Reviewed-by: FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;Fixes: e0c0ab04f678 (&quot;rust: time: Make HasHrTimer generic over HrTimerMode&quot;)Link: https://lore.kernel.org/r/20250710225129.670051-1-lyude@redhat.com[ Removed cast, applied `rustfmt`, fixed `Fixes:` tag. - Miguel ]Signed-off-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Fri, 11 Jul 2025 00:51:13 +0200</pubDate>
        <dc:creator>Lyude Paul &lt;lyude@redhat.com&gt;</dc:creator>
    </item>
<item>
        <title>77580e801a981f0c24c886460840d1ed70c794ae - Merge tag &apos;rust-timekeeping-for-v6.17&apos; of https://github.com/Rust-for-Linux/linux into rust-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#77580e801a981f0c24c886460840d1ed70c794ae</link>
        <description>Merge tag &apos;rust-timekeeping-for-v6.17&apos; of https://github.com/Rust-for-Linux/linux into rust-nextPull timekeeping updates from Andreas Hindborg: - Make &apos;Instant&apos; generic over clock source. This allows the compiler to   assert that arithmetic expressions involving the &apos;Instant&apos; use   &apos;Instants&apos; based on the same clock source. - Make &apos;HrTimer&apos; generic over the timer mode. &apos;HrTimer&apos; timers take a   &apos;Duration&apos; or an &apos;Instant&apos; when setting the expiry time, depending on   the timer mode. With this change, the compiler can check the type   matches the timer mode. - Add an abstraction for &apos;fsleep&apos;. &apos;fsleep&apos; is a flexible sleep   function that will select an appropriate sleep method depending on   the requested sleep time. - Avoid 64-bit divisions on 32-bit hardware when calculating   timestamps. - Seal the &apos;HrTimerMode&apos; trait. This prevents users of the   &apos;HrTimerMode&apos; from implementing the trait on their own types.* tag &apos;rust-timekeeping-for-v6.17&apos; of https://github.com/Rust-for-Linux/linux:  rust: time: Add wrapper for fsleep() function  rust: time: Seal the HrTimerMode trait  rust: time: Remove Ktime in hrtimer  rust: time: Make HasHrTimer generic over HrTimerMode  rust: time: Add HrTimerExpires trait  rust: time: Replace HrTimerMode enum with trait-based mode types  rust: time: Add ktime_get() to ClockSource trait  rust: time: Make Instant generic over ClockSource  rust: time: Replace ClockId enum with ClockSource trait  rust: time: Avoid 64-bit integer division on 32-bit architectures

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Wed, 16 Jul 2025 23:45:08 +0200</pubDate>
        <dc:creator>Miguel Ojeda &lt;ojeda@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>64fb810bce03a4e2b4d3ecbba04bb97da3536dd8 - rust: types: rename Opaque::raw_get to cast_into</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#64fb810bce03a4e2b4d3ecbba04bb97da3536dd8</link>
        <description>rust: types: rename Opaque::raw_get to cast_intoIn the previous patch we added Opaque::cast_from() that performs theopposite operation to Opaque::raw_get(). For consistency with thisnaming, rename raw_get() to cast_from().There are a few other options such as calling cast_from() somethingcloser to raw_get() rather than renaming this method. However, I couldnot find a great naming scheme that works with raw_get(). The previousversion of this patch used from_raw(), but functions of that nametypically have a different signature, so that&apos;s not a great option.Suggested-by: Danilo Krummrich &lt;dakr@kernel.org&gt;Signed-off-by: Alice Ryhl &lt;aliceryhl@google.com&gt;Acked-by: Benno Lossin &lt;lossin@kernel.org&gt;Acked-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Acked-by: Boqun Feng &lt;boqun.feng@gmail.com&gt;Reviewed-by: Danilo Krummrich &lt;dakr@kernel.org&gt;Acked-by: Danilo Krummrich &lt;dakr@kernel.org&gt;Link: https://lore.kernel.org/r/20250624-opaque-from-raw-v2-2-e4da40bdc59c@google.com[ Removed `HrTimer::raw_get` change. - Miguel ]Signed-off-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Tue, 24 Jun 2025 17:27:56 +0200</pubDate>
        <dc:creator>Alice Ryhl &lt;aliceryhl@google.com&gt;</dc:creator>
    </item>
<item>
        <title>fc38b7ff879683669bd9ff5dc7e7b6aeeb07bf2a - rust: time: Seal the HrTimerMode trait</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#fc38b7ff879683669bd9ff5dc7e7b6aeeb07bf2a</link>
        <description>rust: time: Seal the HrTimerMode traitPrevent downstream crates or drivers from implementing `HrTimerMode`for arbitrary types, which could otherwise leads to unsupportedbehavior.Introduce a `private::Sealed` trait and implement it for all typesthat implement `HrTimerMode`.Signed-off-by: FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;Reviewed-by: Boqun Feng &lt;boqun.feng@gmail.com&gt;Link: https://lore.kernel.org/r/20250617232806.3950141-1-fujita.tomonori@gmail.comSigned-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Wed, 18 Jun 2025 01:28:06 +0200</pubDate>
        <dc:creator>FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>69f66cf45814f45a161688fd087abe21e6d5afbd - rust: time: Remove Ktime in hrtimer</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#69f66cf45814f45a161688fd087abe21e6d5afbd</link>
        <description>rust: time: Remove Ktime in hrtimerRemove the use of `Ktime` from the hrtimer code, which was originallyintroduced as a temporary workaround. The hrtimer has now been fullyconverted to use the `Instant` and `Delta` types instead.Reviewed-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Signed-off-by: FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;Link: https://lore.kernel.org/r/20250610132823.3457263-6-fujita.tomonori@gmail.comSigned-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Tue, 10 Jun 2025 15:28:23 +0200</pubDate>
        <dc:creator>FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>e0c0ab04f6785abaa71b9b8dc252cb1a2072c225 - rust: time: Make HasHrTimer generic over HrTimerMode</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#e0c0ab04f6785abaa71b9b8dc252cb1a2072c225</link>
        <description>rust: time: Make HasHrTimer generic over HrTimerModeAdd a `TimerMode` associated type to the `HasHrTimer` trait torepresent the operational mode of the timer, such as absolute orrelative expiration. This new type must implement the `HrTimerMode`trait, which defines how expiration values are interpreted.Update the `start()` method to accept an `expires` parameter of type`&lt;Self::TimerMode as HrTimerMode&gt;::Expires` instead of the fixed `Ktime`.This enables different timer modes to provide strongly typed expirationvalues, such as `Instant&lt;C&gt;` or `Delta`.The `impl_has_hr_timer` macro is also extended to allow specifying the`HrTimerMode`. In the following example, it guarantees that the`start()` method for `Foo` only accepts `Instant&lt;Monotonic&gt;`. Using a`Delta` or an `Instant` with a different clock source will result in acompile-time error:struct Foo {    #[pin]    timer: HrTimer&lt;Self&gt;,}impl_has_hr_timer! {    impl HasHrTimer&lt;Self&gt; for Foo {        mode : AbsoluteMode&lt;Monotonic&gt;,        field : self.timer    }}This design eliminates runtime mismatches between expires types andclock sources, and enables stronger type-level guarantees throughouthrtimer.Signed-off-by: FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;Reviewed-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Link: https://lore.kernel.org/r/20250610132823.3457263-5-fujita.tomonori@gmail.com[ changed conversion method names to `as_*` - Andreas ]Signed-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Tue, 10 Jun 2025 15:28:22 +0200</pubDate>
        <dc:creator>FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>d9fc00dc73542eef98db74085447c57174ca290d - rust: time: Add HrTimerExpires trait</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#d9fc00dc73542eef98db74085447c57174ca290d</link>
        <description>rust: time: Add HrTimerExpires traitIntroduce the `HrTimerExpires` trait to represent types that can beused as expiration values for high-resolution timers. Define arequired method, `into_nanos()`, which returns the expiration time as araw nanosecond value suitable for use with C&apos;s hrtimer APIs.Also extend the `HrTimerMode` to use the `HrTimerExpires` trait.This refactoring is a preparation for enabling hrtimer code to workuniformly with both absolute and relative expiration modes.Reviewed-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Signed-off-by: FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;Link: https://lore.kernel.org/r/20250610132823.3457263-4-fujita.tomonori@gmail.com[ changed conversion method names to `as_*` - Andreas ]Signed-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Tue, 10 Jun 2025 15:28:21 +0200</pubDate>
        <dc:creator>FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>ced9ccd21fbc8ca941e6a0c2820c2df89239ccb9 - rust: time: Replace HrTimerMode enum with trait-based mode types</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#ced9ccd21fbc8ca941e6a0c2820c2df89239ccb9</link>
        <description>rust: time: Replace HrTimerMode enum with trait-based mode typesReplace the `HrTimerMode` enum with a trait-based approach that useszero-sized types to represent each mode of operation. Each mode nowimplements the `HrTimerMode` trait.This refactoring is a preparation for replacing raw `Ktime` in HrTimerwith the `Instant` and `Delta` types, and for making `HrTimer` genericover a `ClockSource`.Reviewed-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Signed-off-by: FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;Link: https://lore.kernel.org/r/20250610132823.3457263-3-fujita.tomonori@gmail.comSigned-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Tue, 10 Jun 2025 15:28:20 +0200</pubDate>
        <dc:creator>FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1664a671be46a0b0daf5250eb124d94a5501a64c - rust: time: Replace ClockId enum with ClockSource trait</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#1664a671be46a0b0daf5250eb124d94a5501a64c</link>
        <description>rust: time: Replace ClockId enum with ClockSource traitReplace the ClockId enum with a trait-based abstraction calledClockSource. This change enables expressing clock sources as types andleveraging the Rust type system to enforce clock correctness atcompile time.This also sets the stage for future generic abstractions over Instanttypes such as Instant&lt;C&gt;.Reviewed-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Reviewed-by: Boqun Feng &lt;boqun.feng@gmail.com&gt;Signed-off-by: FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;Link: https://lore.kernel.org/r/20250610093258.3435874-2-fujita.tomonori@gmail.comSigned-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Tue, 10 Jun 2025 11:32:54 +0200</pubDate>
        <dc:creator>FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>5b2d595efbfc9c46823bdb9ef11e1f9fa46adf9d - rust: time: Fix compile error in impl_has_hr_timer macro</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#5b2d595efbfc9c46823bdb9ef11e1f9fa46adf9d</link>
        <description>rust: time: Fix compile error in impl_has_hr_timer macroFix a compile error in the `impl_has_hr_timer!` macro as follows:error[E0599]: no method named cast_mut found for raw pointer *mut Foo in the current scopeThe `container_of!` macro already returns a mutable pointer when usedin a `*mut T` context so the `.cast_mut()` method is not available.[ We missed this one because there is no caller yet and it is  a macro. - Miguel ]Fixes: 74d6a606c2b3 (&quot;rust: retain pointer mut-ness in `container_of!`&quot;)Signed-off-by: FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;Reviewed-by: Benno Lossin &lt;lossin@kernel.org&gt;Acked-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Link: https://lore.kernel.org/r/20250606020505.3186533-1-fujita.tomonori@gmail.comSigned-off-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Fri, 06 Jun 2025 04:05:05 +0200</pubDate>
        <dc:creator>FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>8cbc95f983bcec7e042266766ffe0d68980e4290 - rust: workaround `bindgen` issue with forward references to `enum` types</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#8cbc95f983bcec7e042266766ffe0d68980e4290</link>
        <description>rust: workaround `bindgen` issue with forward references to `enum` types`bindgen` currently generates the wrong type for an `enum` when thereis a forward reference to it. For instance:    enum E;    enum E { A };generates:    pub const E_A: E = 0;    pub type E = i32;instead of the expected:    pub const E_A: E = 0;    pub type E = ffi::c_uint;The issue was reported to upstream `bindgen` [1].Now, both GCC and Clang support silently these forward references to`enum` types, unless `-Wpedantic` is passed, and it turns out that someheaders in the kernel depend on them.Thus, depending on how the headers are included, which in turn may dependon the kernel configuration or the architecture, we may get a differenttype on the Rust side for a given C `enum`.That can be quite confusing, to say the least, especially sincedevelopers may only notice issues when building for other architectureslike in [2]. In particular, they may end up forcing a cast and addingan `#[allow(clippy::unnecessary_cast)]` like it was done in commit94e05a66ea3e (&quot;rust: hrtimer: allow timer restart from timer handler&quot;),which isn&apos;t great.Instead, let&apos;s have a section at the top of our `bindings_helper.h` that`#include`s the headers with the affected types -- hopefully there arenot many cases and there is a single ordering that covers all cases.This allows us to remove the cast and the `#[allow]`, thus keeping thecorrect code in the source files. When the issue gets resolved in upstream`bindgen` (and we update our minimum `bindgen` version), we can easilyremove this section at the top.Link: https://github.com/rust-lang/rust-bindgen/issues/3179 [1]Link: https://lore.kernel.org/rust-for-linux/87tt7md1s6.fsf@kernel.org/ [2]Acked-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Link: https://lore.kernel.org/r/20250325184309.97170-1-ojeda@kernel.org[ Added extra paragraph on the comment to clarify that the workaround may  not be possible in some cases. - Miguel ]Signed-off-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Tue, 25 Mar 2025 19:43:09 +0100</pubDate>
        <dc:creator>Miguel Ojeda &lt;ojeda@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>1116f0c5ff3385658ceb8ae2c5c4cb05bd7836d7 - rust: hrtimer: Add Ktime temporarily</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#1116f0c5ff3385658ceb8ae2c5c4cb05bd7836d7</link>
        <description>rust: hrtimer: Add Ktime temporarilyAdd Ktime temporarily until hrtimer is refactored to use Instant andDelta types.Reviewed-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;Reviewed-by: Boqun Feng &lt;boqun.feng@gmail.com&gt;Signed-off-by: FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;Link: https://lore.kernel.org/r/20250423192857.199712-2-fujita.tomonori@gmail.comSigned-off-by: Andreas Hindborg &lt;a.hindborg@kernel.org&gt;

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Wed, 23 Apr 2025 21:28:51 +0200</pubDate>
        <dc:creator>FUJITA Tomonori &lt;fujita.tomonori@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>e6ea10d5dbe082c54add289b44f08c9fcfe658af - Merge tag &apos;rust-hrtimer-for-v6.15-v3&apos; of https://github.com/Rust-for-Linux/linux into rust-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/rust/kernel/time/hrtimer.rs#e6ea10d5dbe082c54add289b44f08c9fcfe658af</link>
        <description>Merge tag &apos;rust-hrtimer-for-v6.15-v3&apos; of https://github.com/Rust-for-Linux/linux into rust-nextPull rust-hrtimer updates from Andreas Hindborg: &quot;Introduce Rust support for the &apos;hrtimer&apos; subsystem:   - Add a way to use the &apos;hrtimer&apos; subsystem from Rust. Rust code can     now set up intrusive timers without allocating when starting the     timer.   - Add support for &apos;Pin&lt;Box&lt;_&gt;&gt;&apos;, &apos;Arc&lt;_&gt;&apos;, &apos;Pin&lt;&amp;_&gt;&apos; and     &apos;Pin&lt;&amp;mut _&gt;&apos; as pointer types for use with timer callbacks.   - Add support for setting clock source and timer mode.  &apos;kernel&apos; crate:   - Add &apos;Arc::as_ptr&apos; for converting an &apos;Arc&apos; to a raw pointer. This is     a dependency for the &apos;hrtimer&apos; API.   - Add &apos;Box::into_pin&apos; for converting a &apos;Box&lt;_&gt;&apos; into a &apos;Pin&lt;Box&lt;_&gt;&gt;&apos;     to align with Rust &apos;alloc&apos;. This is a dependency for the &apos;hrtimer&apos;     API.&quot;* tag &apos;rust-hrtimer-for-v6.15-v3&apos; of https://github.com/Rust-for-Linux/linux:  rust: hrtimer: add maintainer entry  rust: hrtimer: add clocksource selection through `ClockId`  rust: hrtimer: add `HrTimerMode`  rust: hrtimer: implement `HrTimerPointer` for `Pin&lt;Box&lt;T&gt;&gt;`  rust: alloc: add `Box::into_pin`  rust: hrtimer: implement `UnsafeHrTimerPointer` for `Pin&lt;&amp;mut T&gt;`  rust: hrtimer: implement `UnsafeHrTimerPointer` for `Pin&lt;&amp;T&gt;`  rust: hrtimer: add `hrtimer::ScopedHrTimerPointer`  rust: hrtimer: add `UnsafeHrTimerPointer`  rust: hrtimer: allow timer restart from timer handler  rust: hrtimer: implement `HrTimerPointer` for `Arc`  rust: sync: add `Arc::as_ptr`  rust: hrtimer: introduce hrtimer support

            List of files:
            /linux/rust/kernel/time/hrtimer.rs</description>
        <pubDate>Tue, 25 Mar 2025 22:33:11 +0100</pubDate>
        <dc:creator>Miguel Ojeda &lt;ojeda@kernel.org&gt;</dc:creator>
    </item>
</channel>
</rss>
