From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:43721) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rpzt5-0000zf-UK for qemu-devel@nongnu.org; Wed, 25 Jan 2012 05:15:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rpzt0-0007Mu-5C for qemu-devel@nongnu.org; Wed, 25 Jan 2012 05:15:31 -0500 Sender: Paolo Bonzini Message-ID: <4F1FD632.2000409@redhat.com> Date: Wed, 25 Jan 2012 11:15:14 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1327433600-7403-1-git-send-email-aliguori@us.ibm.com> <1327433600-7403-28-git-send-email-aliguori@us.ibm.com> <4F1F0E2D.2020706@web.de> <4F1F12E7.2020309@us.ibm.com> <4F1F1C28.4040600@web.de> <4F1F1E91.50609@codemonkey.ws> <4F1F233B.8040804@web.de> <4F1F2875.3050509@codemonkey.ws> <4F1F2B77.2020703@web.de> <4F1F38B6.7000506@codemonkey.ws> <4F1FBF31.2020002@web.de> In-Reply-To: <4F1FBF31.2020002@web.de> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 27/28] sysbus: apic: ioapic: convert to QEMU Object Model List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: Peter Maydell , "Michael S. Tsirkin" , Alexander Graf , qemu-devel@nongnu.org, Blue Swirl , =?ISO-8859-15?Q?Andreas_F=E4rber?= , qemu-ppc@nongnu.org, Paul Brook , Aurelien Jarno , Gerd Hoffmann On 01/25/2012 09:37 AM, Jan Kiszka wrote: >> > They're exactly the same size (16 lines). If you embed TypeInfo into >> > DeviceTypeInfo, and introduce a Device specific type registration >> > function, then you could do: >> > >> > static DeviceTypeInfo my_device_type_info = { >> > .type.name = TYPE_MY_DEVICE, >> > .type.parent = TYPE_PARENT_DEVICE, >> > .reset = my_device_reset, > And if you introduce some > > #define TYPE_UNIMPLEMENTED (void *)&dummy_variable > > you can easily express > > [.field = NULL] => use parent > .field = UNIMPLEMENTED => don't run any handler > I agree with Anthony, this would get really ugly where you are calling the functions and doing the class initialization. It's a different style from what we're used to, granted, but the difference in code size is not relevant (not enough to introduce a level of macro magic, at least) and the diffstat in this series is misleading because qdev is left with temporary duplication for now. (I also complained with him about this a month ago or so). Paolo