On Tue, Aug 17, 2021 at 12:10 AM Samuel Thibault
<samuel.thiba...@gnu.org> wrote:
> Yes, and we want to implement nesting: providing a sub-hurd with a
> partial view of the PCI space.

Interesting. But I still don't think I understand what the problem you
are running into.

boot(1) already emulates Mach devices; it would itself use
libpciaccess (or the PCI arbiter directly, since it doesn't need
portability?) to get access to the host's devices that are to be
passed through to the subhurd. Then it'd return whatever memory
objects it got from the host's PCI arbiter — or proxies to them — from
emulated device_map (). The kernel would take care of short-circuiting
the nested proxies, although this is just a tiny optimization in this
case and is not required for correctness or anything like that.

Is that how you're implementing it?

(Hmm, how does I/O port access work in a subhurd? I'm guessing the
subhurd has to be privileged? But then it probably has to anyway, to
access the PCI devices?)

Sergey

Reply via email to