2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/rust/kernel
Miguel Ojeda e6ea10d5db Rust hrtimer API for v6.15
Introduce Rust support for the `hrtimer` subsystem:
 
  - Add a way to use the `hrtimer` subsystem from Rust. Rust code can now set up
    intrusive timers without allocating when starting the timer.
 
  - Add support for `Pin<Box<_>>`, `Arc<_>`, `Pin<&_>` and `Pin<&mut _>` as
    pointer types for use with timer callbacks.
 
  - Add support for setting clock source and timer mode.
 
 `kernel` crate:
 
  - Add `Arc::as_ptr` for converting an `Arc` to a raw pointer. This is a
    dependency for the `hrtimer` API.
 
  - Add `Box::into_pin` for converting a `Box<_>` into a `Pin<Box<_>>` to align
    with Rust `alloc`. This is a dependency for the `hrtimer` API.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEEsH5R1a/fCoV1sAS4bgaPnkoY3cFAmfempwACgkQ4bgaPnko
 Y3duBg/+LVcEOEQvmaVi6+5TqOSsytMG2Cf+61n7HHqFhY2ptoY8Br5yMhtY8qxy
 fEPr8F/pGvW8nMN8H9smlscqwp8fAs/DKj2nnX4ZPU3xNj1BwAk52SmUbedBNY37
 JaRxFqheAM3AXVrpHjP2flUyXb3c2G7PR4CaZApa0pzMuHCKSI9iZZNACh/c/ViS
 9pcf1FKLGLqYwFDcLN+d2CtPtJq6ghOjRcaJTGc3G1Wiosw3VYmQK/vyGCwROCQX
 h0OwwT+1wokp9cIhBW4X1WzNdp9df71lW32qpZ4weYeV8y9oPJNvr1SqDblpGLm0
 T+qE2RSRKNsXxiJS4viLUsqVUgzCtu7bB402MxcmoGInxt74AEmY1Vx80QVF4SFq
 KvfDlyk9al2dVc24GsDTAvQo/1KiDCEVWsxLIbyRQMuOZLuA5sGSN6FSGt/aW+Vb
 ngYLnwTangvANWqaRdiTSa9tcGviaqA7V3EcpL27hsL2eMCilm6M3PuC2LnHLp46
 Yf2G6fWUdVi8Sra1cHIArKOz1PVZ+KuMn3SHoKo1UwJPJ3J5VrYxSPIFRd38+2qg
 sjaITJfYg6ZWeBfECfaOv6AHnjBi8AAskrRyUzrUu7bdGqXW6IxnAoGc195Q+wz/
 0h0wK9Z2+UqbNT96jeOk+1FvXk4cL0wUYsZM4hviCi1+w4rP4kg=
 =vNJu
 -----END PGP SIGNATURE-----

Merge tag 'rust-hrtimer-for-v6.15-v3' of https://github.com/Rust-for-Linux/linux into rust-next

Pull rust-hrtimer updates from Andreas Hindborg:
 "Introduce Rust support for the 'hrtimer' subsystem:

   - Add a way to use the 'hrtimer' subsystem from Rust. Rust code can
     now set up intrusive timers without allocating when starting the
     timer.

   - Add support for 'Pin<Box<_>>', 'Arc<_>', 'Pin<&_>' and
     'Pin<&mut _>' as pointer types for use with timer callbacks.

   - Add support for setting clock source and timer mode.

  'kernel' crate:

   - Add 'Arc::as_ptr' for converting an 'Arc' to a raw pointer. This is
     a dependency for the 'hrtimer' API.

   - Add 'Box::into_pin' for converting a 'Box<_>' into a 'Pin<Box<_>>'
     to align with Rust 'alloc'. This is a dependency for the 'hrtimer'
     API."

* tag 'rust-hrtimer-for-v6.15-v3' 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<Box<T>>`
  rust: alloc: add `Box::into_pin`
  rust: hrtimer: implement `UnsafeHrTimerPointer` for `Pin<&mut T>`
  rust: hrtimer: implement `UnsafeHrTimerPointer` for `Pin<&T>`
  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
2025-03-25 23:41:14 +01:00
..
alloc Rust hrtimer API for v6.15 2025-03-25 23:41:14 +01:00
block rust: block: refactor to use &raw mut 2025-03-23 20:39:37 +01:00
fs rust: improve lifetimes markup 2025-03-08 23:04:38 +01:00
list rust: use derive(CoercePointee) on rustc >= 1.84.0 2025-01-13 23:45:30 +01:00
net rust: module: introduce authors key 2025-03-10 15:12:17 +01:00
sync Rust hrtimer API for v6.15 2025-03-25 23:41:14 +01:00
time Rust hrtimer API for v6.15 2025-03-25 23:41:14 +01:00
.gitignore rust: jump_label: skip formatting generated file 2024-11-20 13:32:42 -05:00
alloc.rs rust: use derive(CoercePointee) on rustc >= 1.84.0 2025-01-13 23:45:30 +01:00
block.rs rust: block: introduce kernel::block::mq module 2024-06-14 07:45:04 -06:00
build_assert.rs rust: add build_error! to the prelude 2025-01-10 00:19:09 +01:00
cred.rs rust: file: add Kuid wrapper 2024-09-30 13:02:29 +02:00
device_id.rs rust: implement IdArray, IdTable and RawDeviceId 2024-12-20 17:19:25 +01:00
device.rs Driver core and debugfs updates 2025-01-28 12:25:12 -08:00
devres.rs rust: devres: remove action in Devres::drop 2025-01-10 15:49:06 +01:00
dma.rs rust: dma: add Send implementation for CoherentAllocation 2025-03-24 20:14:10 +01:00
driver.rs rust: make pin-init its own crate 2025-03-16 21:59:19 +01:00
error.rs rust: error: Add EOVERFLOW 2025-03-20 21:44:46 +01:00
faux.rs rust/kernel: Add faux device bindings 2025-02-13 16:58:58 +01:00
firmware.rs rust: map long to isize and char to u8 2024-12-16 21:49:33 +01:00
fs.rs rust: file: add Rust abstraction for struct file 2024-09-30 13:02:28 +02:00
generated_arch_static_branch_asm.rs.S rust: jump_label: skip formatting generated file 2024-11-20 13:32:42 -05:00
init.rs rust: make pin-init its own crate 2025-03-16 21:59:19 +01:00
io.rs rust: add io::{Io, IoRaw} base types 2024-12-20 17:19:26 +01:00
ioctl.rs rust: start using the #[expect(...)] attribute 2024-10-07 21:39:57 +02:00
jump_label.rs rust: jump_label: skip formatting generated file 2024-11-20 13:32:42 -05:00
kunit.rs rust: kunit: allow to know if we are in a test 2025-03-20 12:27:05 +01:00
lib.rs rust: enable raw_ref_op feature 2025-03-23 19:56:45 +01:00
list.rs rust: make pin-init its own crate 2025-03-16 21:59:19 +01:00
miscdevice.rs Driver core and debugfs updates 2025-01-28 12:25:12 -08:00
net.rs rust: core abstractions for network PHY drivers 2023-12-15 09:35:50 +00:00
of.rs rust: of: add of::DeviceId abstraction 2024-12-20 17:21:04 +01:00
page.rs rust: page: remove unnecessary helper function from doctest 2025-01-13 23:44:55 +01:00
pci.rs rust: module: introduce authors key 2025-03-10 15:12:17 +01:00
pid_namespace.rs rust: add PidNamespace 2024-10-08 15:44:36 +02:00
platform.rs rust: module: introduce authors key 2025-03-10 15:12:17 +01:00
prelude.rs rust: make pin-init its own crate 2025-03-16 21:59:19 +01:00
print.rs print: use new #[export] macro for rust_fmt_argument 2025-03-09 20:52:46 +01:00
rbtree.rs rust: rbtree: fix comments referring to Box instead of KBox 2025-03-23 19:43:02 +01:00
revocable.rs rust: add Revocable type 2024-12-20 17:19:26 +01:00
security.rs rust: finish using custom FFI integer types 2024-12-16 21:48:45 +01:00
seq_file.rs rust: improve lifetimes markup 2025-03-08 23:04:38 +01:00
sizes.rs rust: sizes: add commonly used constants 2024-08-30 10:27:34 +01:00
static_assert.rs rust: static_assert: add static_assert! macro 2022-12-04 01:59:16 +01:00
std_vendor.rs rust: std_vendor: update dbg macro from Rust upstream 2024-10-10 00:33:42 +02:00
str.rs rust: str: implement strip_prefix for BStr 2025-03-20 21:44:47 +01:00
sync.rs Driver core and debugfs updates 2025-01-28 12:25:12 -08:00
task.rs rust: task: make Pid type alias public 2025-03-06 20:59:45 +01:00
time.rs rust: hrtimer: add clocksource selection through ClockId 2025-03-22 12:08:54 +01:00
tracepoint.rs rust: add tracepoint support 2024-11-04 16:21:44 -05:00
transmute.rs rust: kernel: move FromBytes and AsBytes traits to a new transmute module 2024-10-10 00:33:42 +02:00
types.rs rust: make pin-init its own crate 2025-03-16 21:59:19 +01:00
uaccess.rs rust: uaccess: name the correct function 2025-03-23 19:45:03 +01:00
workqueue.rs Rust changes for v6.14 2025-01-21 17:48:03 -08:00