On Thu, May 19, 2011 at 05:40:50PM +0300, Avi Kivity wrote:
> On 05/19/2011 05:37 PM, Anthony Liguori wrote:
> >
> >So....  do you do:
> >
> >isa_register_region(ISABus *bus, MemoryRegion *mr, int priority)
> >{
> >    chipset_register_region(bus->chipset, mr, priority + 1);
> >}
> >
> >I don't really understand how you can fold everything into one
> >table and not allow devices to override their parents using
> >priorities.
> 
> Think of how a window manager folds windows with priorities onto a
> flat framebuffer.
> 
> You do a depth-first walk of the tree.  For each child list, you
> iterate it from the lowest to highest priority, allowing later
> subregions override earlier subregions.
> 
And how you set those priorities in a sensible way? Why two device on a
PCI bus will want to register their memory region with anything but
highest priority? And if you let PCI subsystem to assign priorities how
it will coordinate with ISA subsystem/memory controller what priorities
to assign to get meaningful system?

--
                        Gleb.

Reply via email to