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.
> 
I do not think that window manager is a good analogy. Window can
overlap with only its siblings. In our memory tree each final node may
overlap with any other node in the tree.
 
--
                        Gleb.

Reply via email to