From: David Gibson <david@gibson.dropbear.id.au>
To: Eric Auger <eric.auger@linaro.org>
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
Subject: Re: [Qemu-devel] [PATCH v5 03/10] hw/vfio/pci: introduce VFIODevice
Date: Tue, 12 Aug 2014 12:34:17 +1000 [thread overview]
Message-ID: <20140812023417.GC23065@voom.redhat.com> (raw)
In-Reply-To: <1407594349-9291-4-git-send-email-eric.auger@linaro.org>
[-- Attachment #1: Type: text/plain, Size: 2643 bytes --]
On Sat, Aug 09, 2014 at 03:25:42PM +0100, Eric Auger wrote:
> Introduce the VFIODevice struct that is going to be shared by
> VFIOPCIDevice and VFIOPlatformDevice.
>
> Additional fields will be added there later on for review
> convenience.
>
> the group's device_list becomes a list of VFIODevice
>
> This obliges to rework the reset_handler which becomes generic and
> calls VFIODevice ops that are specialized in each parent object.
> Also functions that iterate on this list must take care that the
> devices can be something else than VFIOPCIDevice. The type is used
> to discriminate them.
>
> we profit from this step to change the prototype of
> vfio_unmask_intx, vfio_mask_intx, vfio_disable_irqindex which now
> apply to VFIODevice. They are renamed as *_irqindex.
> The index is passed as parameter to anticipate their usage for
> platform IRQs
>
> Signed-off-by: Eric Auger <eric.auger@linaro.org>
>
> ---
>
> v4->v5:
> - fix style issues
> - in vfio_initfn, rework allocation of vdev->vbasedev.name and
> replace snprintf by g_strdup_printf
> ---
> hw/vfio/pci.c | 239 +++++++++++++++++++++++++++++++++++-----------------------
> 1 file changed, 146 insertions(+), 93 deletions(-)
>
> diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c
> index c2cdd73..ae827c5 100644
> --- a/hw/vfio/pci.c
> +++ b/hw/vfio/pci.c
> @@ -56,6 +56,11 @@
> #define VFIO_ALLOW_KVM_MSI 1
> #define VFIO_ALLOW_KVM_MSIX 1
>
> +enum {
> + VFIO_DEVICE_TYPE_PCI = 0,
> + VFIO_DEVICE_TYPE_PLATFORM = 1,
> +};
> +
> struct VFIOPCIDevice;
>
> typedef struct VFIOQuirk {
> @@ -193,9 +198,27 @@ typedef struct VFIOMSIXInfo {
> void *mmap;
> } VFIOMSIXInfo;
>
> +typedef struct VFIODeviceOps VFIODeviceOps;
> +
> +typedef struct VFIODevice {
> + QLIST_ENTRY(VFIODevice) next;
> + struct VFIOGroup *group;
> + char *name;
> + int fd;
> + int type;
I'm assuming this takes values from the enum above. Is this actually
necessary as a field, or could the same information be derived from
the device's QOM class information?
> + bool reset_works;
> + bool needs_reset;
> + VFIODeviceOps *ops;
> +} VFIODevice;
> +
> +struct VFIODeviceOps {
> + bool (*vfio_compute_needs_reset)(VFIODevice *vdev);
> + int (*vfio_hot_reset_multi)(VFIODevice *vdev);
> +};
Shouldn't these be methods in the QOM class, rather than a separate
ops structure?
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
next prev parent reply other threads:[~2014-08-12 3:06 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-09 14:25 [Qemu-devel] [PATCH v5 00/10] KVM platform device passthrough Eric Auger
2014-08-09 14:25 ` [Qemu-devel] [PATCH v5 01/10] vfio: move hw/misc/vfio.c to hw/vfio/pci.c Move vfio.h into include/hw/vfio Eric Auger
2014-08-09 14:25 ` [Qemu-devel] [PATCH v5 02/10] hw/vfio/pci: Rename VFIODevice into VFIOPCIDevice Eric Auger
2014-08-09 14:25 ` [Qemu-devel] [PATCH v5 03/10] hw/vfio/pci: introduce VFIODevice Eric Auger
2014-08-12 2:34 ` David Gibson [this message]
2014-08-09 14:25 ` [Qemu-devel] [PATCH v5 04/10] hw/vfio/pci: Introduce VFIORegion Eric Auger
2014-08-09 14:25 ` [Qemu-devel] [PATCH v5 05/10] hw/vfio/pci: split vfio_get_device Eric Auger
2014-08-12 2:41 ` David Gibson
2014-08-12 6:54 ` Eric Auger
2014-08-13 3:32 ` David Gibson
2014-08-29 10:00 ` Eric Auger
2014-08-09 14:25 ` [Qemu-devel] [PATCH v5 06/10] hw/vfio: create common module Eric Auger
2014-08-11 19:20 ` Alex Williamson
2014-08-12 5:57 ` Eric Auger
2014-08-11 19:25 ` Alex Williamson
2014-08-12 6:09 ` Eric Auger
2014-08-13 19:59 ` Alex Williamson
2014-09-01 16:31 ` Eric Auger
2014-09-01 17:41 ` Alexander Graf
2014-09-02 7:13 ` Eric Auger
2014-09-02 21:13 ` Alex Williamson
2014-08-20 19:12 ` Joel Schopp
2014-08-20 19:41 ` Alex Williamson
2014-08-20 20:08 ` Joel Schopp
2014-08-09 14:25 ` [Qemu-devel] [PATCH v5 07/10] hw/vfio/platform: add vfio-platform support Eric Auger
2014-08-11 9:36 ` Alexander Graf
2014-08-12 7:59 ` Bharat.Bhushan
2014-08-12 16:34 ` Eric Auger
2014-08-11 20:13 ` Alex Williamson
2014-08-12 5:51 ` Eric Auger
2014-08-09 14:25 ` [Qemu-devel] [PATCH v5 08/10] hw/intc/arm_gic_kvm: advertise irqfd Eric Auger
2014-08-11 9:37 ` Alexander Graf
2014-08-11 12:04 ` Eric Auger
2014-08-11 12:05 ` Alexander Graf
2014-08-11 12:27 ` Eric Auger
2014-08-11 12:29 ` Alexander Graf
2014-08-09 14:25 ` [Qemu-devel] [PATCH v5 09/10] hw/vfio/platform: Add irqfd support Eric Auger
2014-08-09 14:25 ` [Qemu-devel] [PATCH v5 10/10] hw/arm/dyn_sysbus_devtree: enable simple VFIO dynamic instantiation Eric Auger
2014-08-11 9:40 ` Alexander Graf
2014-08-11 11:55 ` Eric Auger
2014-08-18 21:54 ` Joel Schopp
2014-08-18 22:11 ` Peter Maydell
2014-08-18 22:26 ` Joel Schopp
2014-08-19 7:32 ` Eric Auger
2014-08-19 10:59 ` Alexander Graf
2014-08-19 14:15 ` Joel Schopp
2014-08-19 14:29 ` Alexander Graf
2014-08-19 7:24 ` Eric Auger
2014-08-19 8:17 ` Peter Maydell
2014-08-19 6:59 ` Eric Auger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140812023417.GC23065@voom.redhat.com \
--to=david@gibson.dropbear.id.au \
--cc=Bharat.Bhushan@freescale.com \
--cc=a.motakis@virtualopensystems.com \
--cc=a.rigo@virtualopensystems.com \
--cc=agraf@suse.de \
--cc=alex.williamson@redhat.com \
--cc=christoffer.dall@linaro.org \
--cc=eric.auger@linaro.org \
--cc=eric.auger@st.com \
--cc=joel.schopp@amd.com \
--cc=kim.phillips@freescale.com \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=patches@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stuart.yoder@freescale.com \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.