Re: [PATCH v10 2/5] rust: io: separate generic I/O helpers from MMIO implementation

From: Zhi Wang

Date: Tue Jan 20 2026 - 12:27:24 EST


On Tue, 20 Jan 2026 11:12:18 +0100
"Danilo Krummrich" <dakr@xxxxxxxxxx> wrote:

Hey folks:

Thanks for the comments and RBs! Agreed. I will adopt this approach in
v11: using a single series of IoCapable<T> traits and retaining
IoKnownSize.

Z.

> On Tue Jan 20, 2026 at 9:04 AM CET, Alice Ryhl wrote:
> > On Mon, Jan 19, 2026 at 10:22:44PM +0200, Zhi Wang wrote:
> > Overall looks good to me. Some comments below:
> >
> > I still think it would make sense to have `IoCapable<T>:
> > IoTryCapable<T>`, but it's not a big deal.
>
> I think with this approach it's not necessary to have this requirement.
> In practice, most impls will have both, but I think it's a good thing
> that we don't have to have an impl even if not used by any driver, i.e.
> it helps avoiding dead code.
>
> >> + /// Infallible 64-bit read with compile-time bounds check.
> >> + #[cfg(CONFIG_64BIT)]
> >> + fn read64(&self, offset: usize) -> u64
> >> + #[cfg(CONFIG_64BIT)]
> >> + fn try_read64(&self, offset: usize) -> Result<u64>
> >
> > These don't really need cfg(CONFIG_64BIT). You can place that cfg on
> > impl blocks of IoCapable<u64>.
>
> If you agree with the above, I can fix this up when applying the series.