rust: time: Implement basic arithmetic operations for Delta
authorLyude Paul <lyude@redhat.com>
Wed, 20 Aug 2025 20:26:44 +0000 (16:26 -0400)
committerAndreas Hindborg <a.hindborg@kernel.org>
Thu, 4 Sep 2025 14:56:48 +0000 (16:56 +0200)
commit4521438fb076f8a6a52f45b0e508f6ef10ac0c49
tree9540a54305a34b8bc8a31a7b295b93f8d1555461
parent22b65a40574e597e1919ca22cc3535c2b541f764
rust: time: Implement basic arithmetic operations for Delta

While rvkms is only going to be using a few of these, since Deltas are
basically the same as i64 it's easy enough to just implement all of the
basic arithmetic operations for Delta types.

Keep in mind there's one quirk here - the kernel has no support for
i64 % i64 on 32 bit platforms, the closest we have is i64 % i32 through
div_s64_rem(). So, instead of implementing ops::Rem or ops::RemAssign we
simply provide Delta::rem_nanos().

Signed-off-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: FUJITA Tomonori <fujita.tomonori@gmail.com>
Reviewed-by: Andreas Hindborg <a.hindborg@kernel.org>
Link: https://lore.kernel.org/r/20250820203704.731588-3-lyude@redhat.com
Signed-off-by: Andreas Hindborg <a.hindborg@kernel.org>
rust/kernel/time.rs