From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39864) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UotLy-0007AF-9q for qemu-devel@nongnu.org; Tue, 18 Jun 2013 06:41:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UotLv-0007Wc-Fd for qemu-devel@nongnu.org; Tue, 18 Jun 2013 06:41:34 -0400 Received: from cantor2.suse.de ([195.135.220.15]:59872 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UotLv-0007WP-6V for qemu-devel@nongnu.org; Tue, 18 Jun 2013 06:41:31 -0400 Message-ID: <51C03959.2070100@suse.de> Date: Tue, 18 Jun 2013 12:41:29 +0200 From: =?ISO-8859-1?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <20130618102320.GC26066@redhat.com> In-Reply-To: <20130618102320.GC26066@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [RFC PATCH v1 0/7] QOM Super class access List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" , Peter Crosthwaite Cc: peter.maydell@linaro.org, edgar.iglesias@gmail.com, aliguori@us.ibm.com, qemu-devel@nongnu.org, pbonzini@redhat.com Am 18.06.2013 12:23, schrieb Michael S. Tsirkin: > On Tue, Jun 18, 2013 at 07:43:11PM +1000, peter.crosthwaite@xilinx.com = wrote: >> From: Peter Crosthwaite >> >> >> This series enables QOM super class access and demostrates some usages= . >> Replaces the save->override->call via FooClass technique, to reduce >> some of the boiler plate in recently fully QOMified devices. >> >> Applied the change to ARM CPU, MB CPU and some of Andreas's recently >> QOMified i386 devices, all which have the save->override->call issue. >> ARMCPU I've done a brief test on and seems to work. >> >> ARM CPU was particularly difficult, as it has 3 layers of heirachy, >> where a non-concrete class (TYPE_ARM_CPU) need to super class itself >> (to TYPE_CPU). This sees the need for super-classers to specify their >> expected base class level. See patches for illustration. >> >> The main future work to the series is to apply the change pattern to >> the reset of the tree >=20 > Looks good to me overall. > Some nits: > - Super is an immediate parent in java and python. > - One of the design points of QOM is that it let > you ignore which class is a parent and which is a child. > All casts look the same. >=20 > So, why do we need the new APIs with _SUPER? > What's wrong with simple > object_class_by_name() > and casting to that? I guess the idea was to avoid open-coding that multiple times, but I think I would then prefer something more local like #define ARM_CPU_SUPER_CLASS() \ object_class_get_parent(object_class_by_name(TYPE_ARM_CPU)) and then use DEVICE_CLASS(ARM_CPU_SUPER_CLASS()) or CPU_CLASS(ARM_CPU_SUPER_CLASS()) as needed. What do you think? Andreas --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg