linux/rust/kernel
Lyude Paul 4521438fb0 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>
2025-09-04 16:56:48 +02:00
..
alloc rust: alloc: fix rusttest by providing Cmalloc::aligned_layout too 2025-08-17 01:29:21 +02:00
block pin-init changes for v6.17 2025-07-13 23:05:14 +02:00
device rust: device: implement FwNode::is_of_node() 2025-06-25 18:10:12 +02:00
drm rust: drm: don't pass the address of drm::Device to drm_dev_put() 2025-08-11 23:21:45 +02:00
fs rust: enable clippy::ref_as_ptr lint 2025-06-22 23:09:32 +02:00
io rust: io: fix broken intra-doc links to platform::Device 2025-07-22 11:08:59 +02:00
list rust: list: remove nonexistent generic parameter in link 2025-07-20 19:29:19 +02:00
mm rust: enable clippy::as_underscore lint 2025-06-22 23:09:17 +02:00
net Rust changes for v6.17 2025-08-03 13:49:10 -07:00
sync Rust changes for v6.17 2025-08-03 13:49:10 -07:00
time rust: hrtimer: Add HrTimer::expires() 2025-09-04 16:54:39 +02:00
.gitignore rust: Add warn_on macro 2025-07-23 02:05:58 +02:00
acpi.rs rust: device_id: split out index support into a separate trait 2025-07-16 23:38:21 +02:00
alloc.rs rust: alloc: add missing Markdown code spans 2025-05-25 22:58:35 +02:00
auxiliary.rs rust: device_id: split out index support into a separate trait 2025-07-16 23:38:21 +02:00
bits.rs rust: bits: add support for bits/genmask macros 2025-07-19 23:18:18 +02:00
block.rs
bug.rs rust: Add warn_on macro 2025-07-23 02:05:58 +02:00
build_assert.rs rust: add build_error! to the prelude 2025-01-10 00:19:09 +01:00
clk.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
configfs.rs rust: types: rename Opaque::raw_get to cast_into 2025-07-15 22:26:11 +02:00
cpu.rs device: rust: rename Device::as_ref() to Device::from_raw() 2025-07-16 23:37:49 +02:00
cpufreq.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
cpumask.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
cred.rs cred,rust: mark Credential methods inline 2025-03-04 17:07:49 -05:00
device.rs device: rust: expand documentation for Device 2025-08-12 15:23:46 +02:00
device_id.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
devres.rs rust: devres: fix leaking call to devm_add_action() 2025-08-14 01:52:15 +02:00
dma.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
driver.rs driver: rust: expand documentation for driver infrastructure 2025-08-12 15:23:49 +02:00
error.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
faux.rs rust: faux: fix C header link 2025-08-13 17:40:28 +02:00
firmware.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
fmt.rs rust: kernel: add fmt module 2025-07-21 01:16:35 +02:00
fs.rs
generated_arch_reachable_asm.rs.S rust: Add warn_on macro 2025-07-23 02:05:58 +02:00
generated_arch_static_branch_asm.rs.S
generated_arch_warn_asm.rs.S rust: Add warn_on macro 2025-07-23 02:05:58 +02:00
init.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
io.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
ioctl.rs
jump_label.rs
kunit.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
lib.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
list.rs rust: list: remove OFFSET constants 2025-07-19 23:18:18 +02:00
miscdevice.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
mm.rs mm: rust: make CONFIG_MMU ifdefs more narrow 2025-05-31 22:46:12 -07:00
net.rs
of.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
opp.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
page.rs rust: page: optimize rust symbol generation for Page 2025-05-12 00:20:25 +02:00
pci.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
pid_namespace.rs
platform.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
prelude.rs rust: kernel: remove fmt!, fix clippy::uninlined-format-args 2025-07-21 01:15:51 +02:00
print.rs rust: use kernel::{fmt,prelude::fmt!} 2025-07-21 01:16:35 +02:00
rbtree.rs rust: rbtree: simplify finding current in remove_current 2025-07-14 23:53:35 +02:00
regulator.rs rust: regulator: add a bare minimum regulator abstraction 2025-07-15 15:07:40 +01:00
revocable.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
security.rs lsm,rust: reword "destroy" -> "release" in SecurityCtx 2025-03-04 15:44:46 -05:00
seq_file.rs rust: enable clippy::ptr_as_ptr lint 2025-06-22 23:08:42 +02:00
sizes.rs rust: sizes: add constants up to SZ_2G 2025-06-23 18:12:30 +02:00
static_assert.rs rust: use absolute paths in macros referencing core and kernel 2025-05-23 00:12:14 +02:00
std_vendor.rs rust: convert raw URLs to Markdown autolinks in comments 2025-05-12 00:20:25 +02:00
str.rs rust: kernel: use core::ffi::CStr method names 2025-07-21 01:16:36 +02:00
sync.rs rust: kernel: move ARef and AlwaysRefCounted to sync::aref 2025-07-22 13:52:14 +02:00
task.rs rust: task: Add Rust version of might_sleep() 2025-06-24 15:53:50 -07:00
time.rs rust: time: Implement basic arithmetic operations for Delta 2025-09-04 16:56:48 +02:00
tracepoint.rs
transmute.rs
types.rs Rust changes for v6.17 2025-08-03 13:49:10 -07:00
uaccess.rs rust: uaccess: use newtype for user pointers 2025-07-14 23:52:45 +02:00
workqueue.rs workqueue: rust: add delayed work items 2025-07-15 22:54:52 +02:00
xarray.rs rust: types: add FOREIGN_ALIGN to ForeignOwnable 2025-07-14 23:55:24 +02:00