projects/linux·blob master · refs

161 lines · 3.3 KiB

1// SPDX-License-Identifier: GPL-2.0
2
3#include <linux/io.h>
4#include <linux/ioport.h>
5
6#ifdef CONFIG_HAS_IOMEM
7__rust_helper void __iomem *rust_helper_ioremap(phys_addr_t offset, size_t size)
8{
9 return ioremap(offset, size);
10}
11
12__rust_helper void __iomem *rust_helper_ioremap_np(phys_addr_t offset,
13 size_t size)
14{
15 return ioremap_np(offset, size);
16}
17
18__rust_helper void rust_helper_iounmap(void __iomem *addr)
19{
20 iounmap(addr);
21}
22#endif /* CONFIG_HAS_IOMEM */
23
24__rust_helper void rust_helper_memcpy_fromio(void *dst,
25 const volatile void __iomem *src,
26 size_t count)
27{
28 memcpy_fromio(dst, src, count);
29}
30
31__rust_helper void rust_helper_memcpy_toio(volatile void __iomem *dst,
32 const void *src, size_t count)
33{
34 memcpy_toio(dst, src, count);
35}
36
37__rust_helper u8 rust_helper_readb(const void __iomem *addr)
38{
39 return readb(addr);
40}
41
42__rust_helper u16 rust_helper_readw(const void __iomem *addr)
43{
44 return readw(addr);
45}
46
47__rust_helper u32 rust_helper_readl(const void __iomem *addr)
48{
49 return readl(addr);
50}
51
52#ifdef CONFIG_64BIT
53__rust_helper u64 rust_helper_readq(const void __iomem *addr)
54{
55 return readq(addr);
56}
57#endif
58
59__rust_helper void rust_helper_writeb(u8 value, void __iomem *addr)
60{
61 writeb(value, addr);
62}
63
64__rust_helper void rust_helper_writew(u16 value, void __iomem *addr)
65{
66 writew(value, addr);
67}
68
69__rust_helper void rust_helper_writel(u32 value, void __iomem *addr)
70{
71 writel(value, addr);
72}
73
74#ifdef CONFIG_64BIT
75__rust_helper void rust_helper_writeq(u64 value, void __iomem *addr)
76{
77 writeq(value, addr);
78}
79#endif
80
81__rust_helper u8 rust_helper_readb_relaxed(const void __iomem *addr)
82{
83 return readb_relaxed(addr);
84}
85
86__rust_helper u16 rust_helper_readw_relaxed(const void __iomem *addr)
87{
88 return readw_relaxed(addr);
89}
90
91__rust_helper u32 rust_helper_readl_relaxed(const void __iomem *addr)
92{
93 return readl_relaxed(addr);
94}
95
96#ifdef CONFIG_64BIT
97__rust_helper u64 rust_helper_readq_relaxed(const void __iomem *addr)
98{
99 return readq_relaxed(addr);
100}
101#endif
102
103__rust_helper void rust_helper_writeb_relaxed(u8 value, void __iomem *addr)
104{
105 writeb_relaxed(value, addr);
106}
107
108__rust_helper void rust_helper_writew_relaxed(u16 value, void __iomem *addr)
109{
110 writew_relaxed(value, addr);
111}
112
113__rust_helper void rust_helper_writel_relaxed(u32 value, void __iomem *addr)
114{
115 writel_relaxed(value, addr);
116}
117
118#ifdef CONFIG_64BIT
119__rust_helper void rust_helper_writeq_relaxed(u64 value, void __iomem *addr)
120{
121 writeq_relaxed(value, addr);
122}
123#endif
124
125__rust_helper resource_size_t rust_helper_resource_size(struct resource *res)
126{
127 return resource_size(res);
128}
129
130__rust_helper struct resource *
131rust_helper_request_mem_region(resource_size_t start, resource_size_t n,
132 const char *name)
133{
134 return request_mem_region(start, n, name);
135}
136
137__rust_helper void rust_helper_release_mem_region(resource_size_t start,
138 resource_size_t n)
139{
140 release_mem_region(start, n);
141}
142
143__rust_helper struct resource *rust_helper_request_region(resource_size_t start,
144 resource_size_t n,
145 const char *name)
146{
147 return request_region(start, n, name);
148}
149
150__rust_helper struct resource *
151rust_helper_request_muxed_region(resource_size_t start, resource_size_t n,
152 const char *name)
153{
154 return request_muxed_region(start, n, name);
155}
156
157__rust_helper void rust_helper_release_region(resource_size_t start,
158 resource_size_t n)
159{
160 release_region(start, n);
161}