From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35464) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XH5yp-0000bQ-Uz for qemu-devel@nongnu.org; Tue, 12 Aug 2014 02:54:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XH5yi-0004c3-F1 for qemu-devel@nongnu.org; Tue, 12 Aug 2014 02:54:47 -0400 Received: from mail-we0-f179.google.com ([74.125.82.179]:33512) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XH5yi-0004bv-9B for qemu-devel@nongnu.org; Tue, 12 Aug 2014 02:54:40 -0400 Received: by mail-we0-f179.google.com with SMTP id u57so9515423wes.38 for ; Mon, 11 Aug 2014 23:54:39 -0700 (PDT) Message-ID: <53E9BA2A.8040209@linaro.org> Date: Tue, 12 Aug 2014 08:54:34 +0200 From: Eric Auger MIME-Version: 1.0 References: <1407594349-9291-1-git-send-email-eric.auger@linaro.org> <1407594349-9291-6-git-send-email-eric.auger@linaro.org> <20140812024147.GD23065@voom.redhat.com> In-Reply-To: <20140812024147.GD23065@voom.redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v5 05/10] hw/vfio/pci: split vfio_get_device List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: David Gibson Cc: peter.maydell@linaro.org, kim.phillips@freescale.com, eric.auger@st.com, patches@linaro.org, joel.schopp@amd.com, will.deacon@arm.com, qemu-devel@nongnu.org, a.rigo@virtualopensystems.com, Bharat.Bhushan@freescale.com, agraf@suse.de, alex.williamson@redhat.com, stuart.yoder@freescale.com, a.motakis@virtualopensystems.com, kvmarm@lists.cs.columbia.edu, christoffer.dall@linaro.org On 08/12/2014 04:41 AM, David Gibson wrote: > On Sat, Aug 09, 2014 at 03:25:44PM +0100, Eric Auger wrote: >> vfio_get_device now takes a VFIODevice as argument. The function is split >> into 4 functional parts: dev_info query, device check, region populate >> and interrupt populate. the last 3 are specialized by parent device and >> are added into DeviceOps. > > Why is splitting these up into 4 stages useful, rather than having a > single sub-class specific callback? Hi David, VFIOPlatformDevice already inherits from SysBusDevice and hence cannot inherit from another VFIODevice. Same for VFIOPCIDevice that inherits from PCIDevice. This is why I created this non QOM struct. But did you mean something else? Then splitting into 4: This was to share some code between platform and PCI (dev_info query) and vfio_get_device was quite big already. I thought it makes sense to split it into functional parts. Best Regards Eric >