currently the rust `Io` type maps to the c read{b, w, l, q}/write{b, w, l, q} functions and have no support for port io.this is a problem for pci::Bar because the pointer returned by pci_iomap is expected to accessed with the ioread/iowrite api [0].
this patch series splits the `Io` type into `Io`, `PortIo` and `MMIo`.and, updates pci::Bar, as suggested in the zulip[1], so that it is generic over Io and, a user can optionally give a compile time hint about the type of io. Link: https://docs.kernel.org/6.11/driver-api/pci/pci.html#c.pci_iomap [0] Link: https://rust-for-linux.zulipchat.com/#narrow/channel/288089-General/topic/.60IoRaw.60.20and.20.60usize.60/near/514788730 [1] Andrew Ballance (6): rust: io: add new Io type rust: io: add from_raw_cookie functions rust: pci: make Bar generic over Io samples: rust: rust_driver_pci: update to use new bar and io api gpu: nova-core: update to use the new bar and io api rust: devres: fix doctest Fiona Behrens (5): rust: helpers: io: use macro to generate io accessor functions rust: io: Replace Io with MMIo using IoAccess trait rust: io: implement Debug for IoRaw and add some doctests rust: io: add PortIo io: move PIO_OFFSET to linux/io.h drivers/gpu/nova-core/driver.rs | 4 +- drivers/gpu/nova-core/regs.rs | 1 + include/linux/io.h | 13 + lib/iomap.c | 13 - rust/helpers/io.c | 132 +++--- rust/kernel/devres.rs | 4 +- rust/kernel/io.rs | 753 +++++++++++++++++++++++++------- rust/kernel/pci.rs | 88 +++- samples/rust/rust_driver_pci.rs | 6 +- 9 files changed, 731 insertions(+), 283 deletions(-) base-commit: 92a09c47464d040866cf2b4cd052bc60555185fb -- 2.49.0