@@ -98,17 +98,17 @@ impl<const SIZE: usize> IoRaw<SIZE> {
9898///# fn no_run() -> Result<(), Error> {
9999/// // SAFETY: Invalid usage for example purposes.
100100/// let iomem = unsafe { IoMem::<{ core::mem::size_of::<u32>() }>::new(0xBAAAAAAD)? };
101- /// iomem.writel (0x42, 0x0);
102- /// assert!(iomem.try_writel (0x42, 0x0).is_ok());
103- /// assert!(iomem.try_writel (0x42, 0x4).is_err());
101+ /// iomem.write32 (0x42, 0x0);
102+ /// assert!(iomem.try_write32 (0x42, 0x0).is_ok());
103+ /// assert!(iomem.try_write32 (0x42, 0x4).is_err());
104104/// # Ok(())
105105/// # }
106106/// ```
107107#[ repr( transparent) ]
108108pub struct Io < const SIZE : usize = 0 > ( IoRaw < SIZE > ) ;
109109
110110macro_rules! define_read {
111- ( $( #[ $attr: meta] ) * $name: ident, $try_name: ident, $type_name: ty) => {
111+ ( $( #[ $attr: meta] ) * $name: ident, $try_name: ident, $c_fn : ident -> $ type_name: ty) => {
112112 /// Read IO data from a given offset known at compile time.
113113 ///
114114 /// Bound checks are performed on compile time, hence if the offset is not known at compile
@@ -119,7 +119,7 @@ macro_rules! define_read {
119119 let addr = self . io_addr_assert:: <$type_name>( offset) ;
120120
121121 // SAFETY: By the type invariant `addr` is a valid address for MMIO operations.
122- unsafe { bindings:: $name ( addr as _) }
122+ unsafe { bindings:: $c_fn ( addr as _) }
123123 }
124124
125125 /// Read IO data from a given offset.
@@ -131,13 +131,13 @@ macro_rules! define_read {
131131 let addr = self . io_addr:: <$type_name>( offset) ?;
132132
133133 // SAFETY: By the type invariant `addr` is a valid address for MMIO operations.
134- Ok ( unsafe { bindings:: $name ( addr as _) } )
134+ Ok ( unsafe { bindings:: $c_fn ( addr as _) } )
135135 }
136136 } ;
137137}
138138
139139macro_rules! define_write {
140- ( $( #[ $attr: meta] ) * $name: ident, $try_name: ident, $type_name: ty) => {
140+ ( $( #[ $attr: meta] ) * $name: ident, $try_name: ident, $c_fn : ident <- $ type_name: ty) => {
141141 /// Write IO data from a given offset known at compile time.
142142 ///
143143 /// Bound checks are performed on compile time, hence if the offset is not known at compile
@@ -148,7 +148,7 @@ macro_rules! define_write {
148148 let addr = self . io_addr_assert:: <$type_name>( offset) ;
149149
150150 // SAFETY: By the type invariant `addr` is a valid address for MMIO operations.
151- unsafe { bindings:: $name ( value, addr as _, ) }
151+ unsafe { bindings:: $c_fn ( value, addr as _, ) }
152152 }
153153
154154 /// Write IO data from a given offset.
@@ -160,7 +160,7 @@ macro_rules! define_write {
160160 let addr = self . io_addr:: <$type_name>( offset) ?;
161161
162162 // SAFETY: By the type invariant `addr` is a valid address for MMIO operations.
163- unsafe { bindings:: $name ( value, addr as _) }
163+ unsafe { bindings:: $c_fn ( value, addr as _) }
164164 Ok ( ( ) )
165165 }
166166 } ;
@@ -218,43 +218,43 @@ impl<const SIZE: usize> Io<SIZE> {
218218 self . addr ( ) + offset
219219 }
220220
221- define_read ! ( readb , try_readb , u8 ) ;
222- define_read ! ( readw , try_readw , u16 ) ;
223- define_read ! ( readl , try_readl , u32 ) ;
221+ define_read ! ( read8 , try_read8 , readb -> u8 ) ;
222+ define_read ! ( read16 , try_read16 , readw -> u16 ) ;
223+ define_read ! ( read32 , try_read32 , readl -> u32 ) ;
224224 define_read ! (
225225 #[ cfg( CONFIG_64BIT ) ]
226- readq ,
227- try_readq ,
228- u64
226+ read64 ,
227+ try_read64 ,
228+ readq -> u64
229229 ) ;
230230
231- define_read ! ( readb_relaxed , try_readb_relaxed , u8 ) ;
232- define_read ! ( readw_relaxed , try_readw_relaxed , u16 ) ;
233- define_read ! ( readl_relaxed , try_readl_relaxed , u32 ) ;
231+ define_read ! ( read8_relaxed , try_read8_relaxed , readb_relaxed -> u8 ) ;
232+ define_read ! ( read16_relaxed , try_read16_relaxed , readw_relaxed -> u16 ) ;
233+ define_read ! ( read32_relaxed , try_read32_relaxed , readl_relaxed -> u32 ) ;
234234 define_read ! (
235235 #[ cfg( CONFIG_64BIT ) ]
236- readq_relaxed ,
237- try_readq_relaxed ,
238- u64
236+ read64_relaxed ,
237+ try_read64_relaxed ,
238+ readq_relaxed -> u64
239239 ) ;
240240
241- define_write ! ( writeb , try_writeb , u8 ) ;
242- define_write ! ( writew , try_writew , u16 ) ;
243- define_write ! ( writel , try_writel , u32 ) ;
241+ define_write ! ( write8 , try_write8 , writeb <- u8 ) ;
242+ define_write ! ( write16 , try_write16 , writew <- u16 ) ;
243+ define_write ! ( write32 , try_write32 , writel <- u32 ) ;
244244 define_write ! (
245245 #[ cfg( CONFIG_64BIT ) ]
246- writeq ,
247- try_writeq ,
248- u64
246+ write64 ,
247+ try_write64 ,
248+ writeq <- u64
249249 ) ;
250250
251- define_write ! ( writeb_relaxed , try_writeb_relaxed , u8 ) ;
252- define_write ! ( writew_relaxed , try_writew_relaxed , u16 ) ;
253- define_write ! ( writel_relaxed , try_writel_relaxed , u32 ) ;
251+ define_write ! ( write8_relaxed , try_write8_relaxed , writeb_relaxed <- u8 ) ;
252+ define_write ! ( write16_relaxed , try_write16_relaxed , writew_relaxed <- u16 ) ;
253+ define_write ! ( write32_relaxed , try_write32_relaxed , writel_relaxed <- u32 ) ;
254254 define_write ! (
255255 #[ cfg( CONFIG_64BIT ) ]
256- writeq_relaxed ,
257- try_writeq_relaxed ,
258- u64
256+ write64_relaxed ,
257+ try_write64_relaxed ,
258+ writeq_relaxed <- u64
259259 ) ;
260260}
0 commit comments