On Mon, 20 May 2024 at 23:07, Dave Airlie <airlied@xxxxxxxxx> wrote: > > > > > Wedson wrote a similar abstraction in the past > > (`rust/kernel/io_mem.rs` in the old `rust` branch), with a > > compile-time `SIZE` -- it is probably worth taking a look. > > > > Just on this point, we can't know in advance what size the IO BARs are > at compile time. > > The old method just isn't useful for real devices with runtime IO BAR sizes. The compile-time `SIZE` in my implementation is a minimum size. Attempts to read/write with constants within that size (offset + size) were checked at compile time, that is, they would have zero additional runtime cost when compared to C. Reads/writes beyond the minimum would have to be checked at runtime.