Brian Johnson wrote: [snip] >> My initial thought is to make the libraries at the individual device >> level. > > It would be good to have a general mechanism for bus providers, interrupts, > APICs, chipsets, etc. as well, so we could emulate fancier architectures > than a simple PC (or simple Sparc/MIPS/ARM/etc. box.) For instance, I'd > like to emulate multiple PCIe host bridges, each with an APIC and multiple > cards, which might contain PCI-to-PCI bridges. And I'd like to emulate > NUMA systems with many memory controllers and a complex memory map, with > multiple sets of chipset registers. I don't expect qemu to do this off the > shelf,
Why not? I would like to see better abstracted and more capable device emulations in Qemu. > but I'd like to avoid hardcoding PC assumptions into the device > libraries, so I can code the fancy machines myself and use the I/O as-is. Then, what does a librar-ized Qemu device with its hardcoded PC assumptions help you? One reason why I don't like the idea is that it introduces a external interface which is hard to maintain. Thiemo