Hello, Time ago I sent some patches to implement mapping region and ROM files using mmap(). However, a BAR region can represent either memory or I/O space, and only the former should be allowed to be mapped, since I/O BARs don't contain physical memory addresses, but I/O addresses. I attached a small patch to prevent mapping I/O region files.
On the other hand, in the past we discussed how to make IO spaces available for users through the arbiter [1]. It seems the way to go is adding a new RPC that checks for permissions, calls i386_io_perm_create() and returns the resulting port. I could work on that. After all changes in the arbiter and the Hurd these last years, would still be useful to have such RPC? --- [1] https://lists.gnu.org/archive/html/bug-hurd/2017-12/msg00048.html