linux/rust/kernel
Daniel Almeida bc4f9045a5 rust: platform: add resource accessors
The previous patches have added the abstractions for Resources and the
ability to map them and therefore read and write the underlying memory .

The only thing missing to make this accessible for platform devices is
to provide accessors that return instances of IoRequest<'a>. These
ensure that the resource are valid only for the lifetime of the platform
device, and that the platform device is in the Bound state.

Therefore, add these accessors. Also make it possible to retrieve
resources from platform devices in Rust using either a name or an index.

Acked-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com>
Link: https://lore.kernel.org/r/20250717-topics-tyr-platform_iomem-v15-3-beca780b77e3@collabora.com
[ Remove #[expect(dead_code)] from IoRequest::new() and move SAFETY
  comments right on top of unsafe blocks to avoid clippy warnings for
  some (older) clippy versions. - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2025-07-20 19:43:14 +02:00
..
alloc rust: alloc: add missing Markdown code span 2025-05-25 22:58:35 +02:00
block rust: pin-init: change blanket impls for [Pin]Init and add one for Result<T, E> 2025-06-11 21:13:56 +02:00
device rust: device: implement FwNode::is_of_node() 2025-06-25 18:10:12 +02:00
drm device: rust: rename Device::as_ref() to Device::from_raw() 2025-07-16 23:37:49 +02:00
fs rust: file: improve safety comments 2025-05-30 07:12:05 +02:00
io rust: platform: add resource accessors 2025-07-20 19:43:14 +02:00
list rust: list: Fix typo much in arc.rs 2025-05-29 23:35:44 +02:00
mm mm: rust: make CONFIG_MMU ifdefs more narrow 2025-05-31 22:46:12 -07:00
net rust: net::phy Change module_phy_driver macro to use module_device_table macro 2025-07-16 23:39:07 +02:00
sync rust: completion: implement initial abstraction 2025-06-13 23:46:56 +02:00
time rust: time: Fix compile error in impl_has_hr_timer macro 2025-06-10 20:11:36 +02:00
.gitignore rust: jump_label: skip formatting generated file 2024-11-20 13:32:42 -05: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
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
clk.rs rust: clk: Add initial abstractions 2025-05-19 12:55:40 +05:30
configfs.rs Rust changes for v6.16 2025-06-04 21:18:37 -07:00
cpu.rs device: rust: rename Device::as_ref() to Device::from_raw() 2025-07-16 23:37:49 +02:00
cpufreq.rs rust: devres: replace Devres::new_foreign_owned() 2025-06-28 18:06:53 +02:00
cpumask.rs rust: Use CpuId in place of raw CPU numbers 2025-06-12 10:31:28 +05:30
cred.rs cred,rust: mark Credential methods inline 2025-03-04 17:07:49 -05:00
device.rs device: rust: rename Device::as_ref() to Device::from_raw() 2025-07-16 23:37:49 +02:00
device_id.rs rust: device_id: split out index support into a separate trait 2025-07-16 23:38:21 +02:00
devres.rs rust: devres: provide an accessor for the device 2025-07-15 14:46:13 +02:00
dma.rs rust: dma: add DMA addressing capabilities 2025-07-19 19:36:51 +02:00
driver.rs rust: device_id: split out index support into a separate trait 2025-07-16 23:38:21 +02:00
error.rs Rust changes for v6.15 2025-03-30 17:03:26 -07:00
faux.rs device: rust: rename Device::as_ref() to Device::from_raw() 2025-07-16 23:37:49 +02:00
firmware.rs rust: firmware: Use ffi::c_char type in FwFunc 2025-04-14 14:13:23 +02: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 changes for v6.15 2025-03-30 17:03:26 -07:00
io.rs rust: io: mem: add a generic iomem abstraction 2025-07-20 19:43:14 +02: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: add kunit_tests to the prelude 2025-05-27 20:09:59 +02:00
lib.rs rust: acpi: add acpi::DeviceId abstraction 2025-06-26 23:22:17 +02:00
list.rs rust: list: Add examples for linked list 2025-05-22 12:00:52 +02:00
miscdevice.rs device: rust: rename Device::as_ref() to Device::from_raw() 2025-07-16 23:37:49 +02:00
mm.rs mm: rust: make CONFIG_MMU ifdefs more narrow 2025-05-31 22:46:12 -07:00
net.rs rust: core abstractions for network PHY drivers 2023-12-15 09:35:50 +00:00
of.rs rust: device_id: split out index support into a separate trait 2025-07-16 23:38:21 +02:00
opp.rs rust: opp: Move cfg(CONFIG_OF) attribute to the top of doc test 2025-05-27 15:29:17 +02:00
page.rs rust: page: optimize rust symbol generation for Page 2025-05-12 00:20:25 +02:00
pci.rs rust: pci: implement the dma::Device trait 2025-07-19 19:37:17 +02:00
pid_namespace.rs rust: add PidNamespace 2024-10-08 15:44:36 +02:00
platform.rs rust: platform: add resource accessors 2025-07-20 19:43:14 +02:00
prelude.rs rust: add kunit_tests to the prelude 2025-05-27 20:09:59 +02:00
print.rs rust: replace rustdoc references to alloc::format 2025-05-12 00:20:25 +02:00
rbtree.rs rust: retain pointer mut-ness in container_of! 2025-05-28 18:54:09 +02:00
revocable.rs rust: revocable: support fallible PinInit types 2025-06-28 18:06:52 +02:00
security.rs lsm,rust: reword "destroy" -> "release" in SecurityCtx 2025-03-04 15:44:46 -05:00
seq_file.rs Rust changes for v6.15 2025-03-30 17:03:26 -07:00
sizes.rs rust: sizes: add commonly used constants 2024-08-30 10:27:34 +01: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: str: take advantage of the -> Result support in KUnit #[test]'s 2025-05-27 20:09:59 +02:00
sync.rs rust: completion: implement initial abstraction 2025-06-13 23:46:56 +02:00
task.rs rust: task: add missing Markdown code spans and intra-doc links 2025-05-25 22:58:35 +02:00
time.rs rust: time: Introduce Instant type 2025-04-29 15:31:07 +02: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: implement Wrapper<T> for Opaque<T> 2025-06-28 14:58:08 +02:00
uaccess.rs Alloc changes for v6.16 2025-05-18 20:56:03 +02:00
workqueue.rs rust: workqueue: remove HasWork::OFFSET 2025-05-29 01:34:52 +02:00
xarray.rs rust: xarray: Add an abstraction for XArray 2025-05-01 11:37:59 +02:00