I was looking at how much work it would take to switch to using ISA-PNP
for resource management. I believe that it might simplify some of the
QEMU internals, as well as make things like having multiple
network/other devices much easier. It may make moving to PCI (or having
an option to boot with either ISAPNP or PCI on the fly) much easier.
For anyone interested, the ISAPNP spec page is at:
http://osdev.neopages.net/docs/PNP-ISA-v1.0a.pdf?the_id=54
I believe the best way to implement ISA-PNP would be for each device to
register an ISA-PNP context, then add specific resource requirements to
the context as necessary. The ISAPNP manager would then interact with
the operating system and call the isapnp_configure method whenever the
OS changes the setup.
Perhaps something like this. I would imagine that the ISAPNP resource
manager would clear the IO port range back to the default IO port
manager before calling the *_isapnp_configure routine: