From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:33108) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R4E1U-0007ZA-OI for qemu-devel@nongnu.org; Thu, 15 Sep 2011 11:38:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R4E1T-0003vy-KY for qemu-devel@nongnu.org; Thu, 15 Sep 2011 11:38:44 -0400 Received: from mx1.redhat.com ([209.132.183.28]:33234) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R4E1T-0003vm-BD for qemu-devel@nongnu.org; Thu, 15 Sep 2011 11:38:43 -0400 Date: Thu, 15 Sep 2011 18:38:38 +0300 From: Gleb Natapov Message-ID: <20110915153838.GE11524@redhat.com> References: <4E70EC90.8000904@us.ibm.com> <20110915063121.GW21417@redhat.com> <4E720435.3060509@codemonkey.ws> <4E720855.1090501@redhat.com> <20110915142534.GC11524@redhat.com> <4E7219B4.9050109@us.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E7219B4.9050109@us.ibm.com> Subject: Re: [Qemu-devel] [RFC] Plan for moving forward with QOM List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Peter Maydell , Jan Kiszka , qemu-devel , Markus Armbruster , Gerd Hoffmann , "Edgar E. Iglesias" , Paolo Bonzini On Thu, Sep 15, 2011 at 10:28:52AM -0500, Anthony Liguori wrote: > On 09/15/2011 09:25 AM, Gleb Natapov wrote: > >On Thu, Sep 15, 2011 at 04:14:45PM +0200, Paolo Bonzini wrote: > >>On 09/15/2011 03:57 PM, Anthony Liguori wrote: > >>> > >>>void generate_tree(Device *node) > >>>{ > >>> if (IS_PCI_BUS(node)) { > >>> for (i = 0; i< 32; i++) { > >>> generate_tree(lookup_device(get_property(node, "slot[%d]", i))); > >>> } > >>> } else if (IS_ISA_BUS(node)) { > >>> .... > >>> } else { > >>> // leaf node, generate path segment > >>> } > >>>} > >>> > >>>There are certainly ways to walk the graph generically (by coloring or > >>>following the composition paths) but that won't give you the desired > >>>ordering. > >> > >>It seems easier to go backwards from the target device. > >That what we do in qdev. > > > >> > >>Each device most likely will have a canonical parent link, and > >>together they will give the OF path. > >> > >Yeah, this canonical parent link should be marked somehow. > > There is no canonical parent link. A device may have multiple (more > or less equivalent) parents. > > What should be treated as the "canonical" link depends on what > you're trying to do. In the case of OF, you want to treat the bus > as a parent. If a device happens to sit on multiple buses, I'm not > really sure what you do. > Yes, "canonical" is a link to a bus. Can you give an example of a device that sits on multiple buses? -- Gleb.