diff options
| author | Daniel Almeida <[email protected]> | 2025-07-17 15:55:22 +0000 |
|---|---|---|
| committer | Danilo Krummrich <[email protected]> | 2025-07-20 17:43:04 +0000 |
| commit | 493fc33ec25294cb2e444dfa77c105aa774c83f2 (patch) | |
| tree | cc3402f763e4847a0b6ce05a9363b8169467972f /rust/helpers/io.c | |
| parent | rust: samples: dma: set DMA mask (diff) | |
| download | kernel-493fc33ec25294cb2e444dfa77c105aa774c83f2.tar.gz kernel-493fc33ec25294cb2e444dfa77c105aa774c83f2.zip | |
rust: io: add resource abstraction
In preparation for ioremap support, add a Rust abstraction for struct
resource.
A future commit will introduce the Rust API to ioremap a resource from a
platform device. The current abstraction, therefore, adds only the
minimum API needed to get that done.
Acked-by: Miguel Ojeda <[email protected]>
Reviewed-by: Alice Ryhl <[email protected]>
Co-developed-by: Fiona Behrens <[email protected]>
Signed-off-by: Fiona Behrens <[email protected]>
Signed-off-by: Daniel Almeida <[email protected]>
Link: https://lore.kernel.org/r/20250717-topics-tyr-platform_iomem-v15-1-beca780b77e3@collabora.com
[ Capitalize safety comments and end it with a period. - Danilo ]
Signed-off-by: Danilo Krummrich <[email protected]>
Diffstat (limited to 'rust/helpers/io.c')
| -rw-r--r-- | rust/helpers/io.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/rust/helpers/io.c b/rust/helpers/io.c index 15ea187c5466..404776cf6717 100644 --- a/rust/helpers/io.c +++ b/rust/helpers/io.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 #include <linux/io.h> +#include <linux/ioport.h> void __iomem *rust_helper_ioremap(phys_addr_t offset, size_t size) { @@ -99,3 +100,38 @@ void rust_helper_writeq_relaxed(u64 value, void __iomem *addr) writeq_relaxed(value, addr); } #endif + +resource_size_t rust_helper_resource_size(struct resource *res) +{ + return resource_size(res); +} + +struct resource *rust_helper_request_mem_region(resource_size_t start, + resource_size_t n, + const char *name) +{ + return request_mem_region(start, n, name); +} + +void rust_helper_release_mem_region(resource_size_t start, resource_size_t n) +{ + release_mem_region(start, n); +} + +struct resource *rust_helper_request_region(resource_size_t start, + resource_size_t n, const char *name) +{ + return request_region(start, n, name); +} + +struct resource *rust_helper_request_muxed_region(resource_size_t start, + resource_size_t n, + const char *name) +{ + return request_muxed_region(start, n, name); +} + +void rust_helper_release_region(resource_size_t start, resource_size_t n) +{ + release_region(start, n); +} |
