From: Sergio Lopez <slp@redhat.com> To: qemu-devel@nongnu.org Cc: mst@redhat.com, imammedo@redhat.com, marcel.apfelbaum@gmail.com, pbonzini@redhat.com, rth@twiddle.net, ehabkost@redhat.com, philmd@redhat.com, lersek@redhat.com, kraxel@redhat.com, mtosatti@redhat.com, kvm@vger.kernel.org, Sergio Lopez <slp@redhat.com> Subject: [PATCH v4 3/8] hw/virtio: Factorize virtio-mmio headers Date: Tue, 24 Sep 2019 14:44:28 +0200 [thread overview] Message-ID: <20190924124433.96810-4-slp@redhat.com> (raw) In-Reply-To: <20190924124433.96810-1-slp@redhat.com> Put QOM and main struct definition in a separate header file, so it can be accessed from other components. Signed-off-by: Sergio Lopez <slp@redhat.com> --- hw/virtio/virtio-mmio.c | 35 +------------------ include/hw/virtio/virtio-mmio.h | 60 +++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 34 deletions(-) create mode 100644 include/hw/virtio/virtio-mmio.h diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c index eccc795f28..6be6b298d5 100644 --- a/hw/virtio/virtio-mmio.c +++ b/hw/virtio/virtio-mmio.c @@ -29,44 +29,11 @@ #include "qemu/host-utils.h" #include "qemu/module.h" #include "sysemu/kvm.h" -#include "hw/virtio/virtio-bus.h" +#include "hw/virtio/virtio-mmio.h" #include "qemu/error-report.h" #include "qemu/log.h" #include "trace.h" -/* QOM macros */ -/* virtio-mmio-bus */ -#define TYPE_VIRTIO_MMIO_BUS "virtio-mmio-bus" -#define VIRTIO_MMIO_BUS(obj) \ - OBJECT_CHECK(VirtioBusState, (obj), TYPE_VIRTIO_MMIO_BUS) -#define VIRTIO_MMIO_BUS_GET_CLASS(obj) \ - OBJECT_GET_CLASS(VirtioBusClass, (obj), TYPE_VIRTIO_MMIO_BUS) -#define VIRTIO_MMIO_BUS_CLASS(klass) \ - OBJECT_CLASS_CHECK(VirtioBusClass, (klass), TYPE_VIRTIO_MMIO_BUS) - -/* virtio-mmio */ -#define TYPE_VIRTIO_MMIO "virtio-mmio" -#define VIRTIO_MMIO(obj) \ - OBJECT_CHECK(VirtIOMMIOProxy, (obj), TYPE_VIRTIO_MMIO) - -#define VIRT_MAGIC 0x74726976 /* 'virt' */ -#define VIRT_VERSION 1 -#define VIRT_VENDOR 0x554D4551 /* 'QEMU' */ - -typedef struct { - /* Generic */ - SysBusDevice parent_obj; - MemoryRegion iomem; - qemu_irq irq; - /* Guest accessible state needing migration and reset */ - uint32_t host_features_sel; - uint32_t guest_features_sel; - uint32_t guest_page_shift; - /* virtio-bus */ - VirtioBusState bus; - bool format_transport_address; -} VirtIOMMIOProxy; - static bool virtio_mmio_ioeventfd_enabled(DeviceState *d) { return kvm_eventfds_enabled(); diff --git a/include/hw/virtio/virtio-mmio.h b/include/hw/virtio/virtio-mmio.h new file mode 100644 index 0000000000..2f3973f8c7 --- /dev/null +++ b/include/hw/virtio/virtio-mmio.h @@ -0,0 +1,60 @@ +/* + * Virtio MMIO bindings + * + * Copyright (c) 2011 Linaro Limited + * + * Author: + * Peter Maydell <peter.maydell@linaro.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef QEMU_VIRTIO_MMIO_H +#define QEMU_VIRTIO_MMIO_H + +#include "hw/virtio/virtio-bus.h" + +/* QOM macros */ +/* virtio-mmio-bus */ +#define TYPE_VIRTIO_MMIO_BUS "virtio-mmio-bus" +#define VIRTIO_MMIO_BUS(obj) \ + OBJECT_CHECK(VirtioBusState, (obj), TYPE_VIRTIO_MMIO_BUS) +#define VIRTIO_MMIO_BUS_GET_CLASS(obj) \ + OBJECT_GET_CLASS(VirtioBusClass, (obj), TYPE_VIRTIO_MMIO_BUS) +#define VIRTIO_MMIO_BUS_CLASS(klass) \ + OBJECT_CLASS_CHECK(VirtioBusClass, (klass), TYPE_VIRTIO_MMIO_BUS) + +/* virtio-mmio */ +#define TYPE_VIRTIO_MMIO "virtio-mmio" +#define VIRTIO_MMIO(obj) \ + OBJECT_CHECK(VirtIOMMIOProxy, (obj), TYPE_VIRTIO_MMIO) + +#define VIRT_MAGIC 0x74726976 /* 'virt' */ +#define VIRT_VERSION 1 +#define VIRT_VENDOR 0x554D4551 /* 'QEMU' */ + +typedef struct { + /* Generic */ + SysBusDevice parent_obj; + MemoryRegion iomem; + qemu_irq irq; + /* Guest accessible state needing migration and reset */ + uint32_t host_features_sel; + uint32_t guest_features_sel; + uint32_t guest_page_shift; + /* virtio-bus */ + VirtioBusState bus; + bool format_transport_address; +} VirtIOMMIOProxy; + +#endif -- 2.21.0
WARNING: multiple messages have this Message-ID (diff)
From: Sergio Lopez <slp@redhat.com> To: qemu-devel@nongnu.org Cc: Sergio Lopez <slp@redhat.com>, ehabkost@redhat.com, kvm@vger.kernel.org, mst@redhat.com, lersek@redhat.com, mtosatti@redhat.com, kraxel@redhat.com, pbonzini@redhat.com, imammedo@redhat.com, philmd@redhat.com, rth@twiddle.net Subject: [PATCH v4 3/8] hw/virtio: Factorize virtio-mmio headers Date: Tue, 24 Sep 2019 14:44:28 +0200 [thread overview] Message-ID: <20190924124433.96810-4-slp@redhat.com> (raw) In-Reply-To: <20190924124433.96810-1-slp@redhat.com> Put QOM and main struct definition in a separate header file, so it can be accessed from other components. Signed-off-by: Sergio Lopez <slp@redhat.com> --- hw/virtio/virtio-mmio.c | 35 +------------------ include/hw/virtio/virtio-mmio.h | 60 +++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 34 deletions(-) create mode 100644 include/hw/virtio/virtio-mmio.h diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c index eccc795f28..6be6b298d5 100644 --- a/hw/virtio/virtio-mmio.c +++ b/hw/virtio/virtio-mmio.c @@ -29,44 +29,11 @@ #include "qemu/host-utils.h" #include "qemu/module.h" #include "sysemu/kvm.h" -#include "hw/virtio/virtio-bus.h" +#include "hw/virtio/virtio-mmio.h" #include "qemu/error-report.h" #include "qemu/log.h" #include "trace.h" -/* QOM macros */ -/* virtio-mmio-bus */ -#define TYPE_VIRTIO_MMIO_BUS "virtio-mmio-bus" -#define VIRTIO_MMIO_BUS(obj) \ - OBJECT_CHECK(VirtioBusState, (obj), TYPE_VIRTIO_MMIO_BUS) -#define VIRTIO_MMIO_BUS_GET_CLASS(obj) \ - OBJECT_GET_CLASS(VirtioBusClass, (obj), TYPE_VIRTIO_MMIO_BUS) -#define VIRTIO_MMIO_BUS_CLASS(klass) \ - OBJECT_CLASS_CHECK(VirtioBusClass, (klass), TYPE_VIRTIO_MMIO_BUS) - -/* virtio-mmio */ -#define TYPE_VIRTIO_MMIO "virtio-mmio" -#define VIRTIO_MMIO(obj) \ - OBJECT_CHECK(VirtIOMMIOProxy, (obj), TYPE_VIRTIO_MMIO) - -#define VIRT_MAGIC 0x74726976 /* 'virt' */ -#define VIRT_VERSION 1 -#define VIRT_VENDOR 0x554D4551 /* 'QEMU' */ - -typedef struct { - /* Generic */ - SysBusDevice parent_obj; - MemoryRegion iomem; - qemu_irq irq; - /* Guest accessible state needing migration and reset */ - uint32_t host_features_sel; - uint32_t guest_features_sel; - uint32_t guest_page_shift; - /* virtio-bus */ - VirtioBusState bus; - bool format_transport_address; -} VirtIOMMIOProxy; - static bool virtio_mmio_ioeventfd_enabled(DeviceState *d) { return kvm_eventfds_enabled(); diff --git a/include/hw/virtio/virtio-mmio.h b/include/hw/virtio/virtio-mmio.h new file mode 100644 index 0000000000..2f3973f8c7 --- /dev/null +++ b/include/hw/virtio/virtio-mmio.h @@ -0,0 +1,60 @@ +/* + * Virtio MMIO bindings + * + * Copyright (c) 2011 Linaro Limited + * + * Author: + * Peter Maydell <peter.maydell@linaro.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef QEMU_VIRTIO_MMIO_H +#define QEMU_VIRTIO_MMIO_H + +#include "hw/virtio/virtio-bus.h" + +/* QOM macros */ +/* virtio-mmio-bus */ +#define TYPE_VIRTIO_MMIO_BUS "virtio-mmio-bus" +#define VIRTIO_MMIO_BUS(obj) \ + OBJECT_CHECK(VirtioBusState, (obj), TYPE_VIRTIO_MMIO_BUS) +#define VIRTIO_MMIO_BUS_GET_CLASS(obj) \ + OBJECT_GET_CLASS(VirtioBusClass, (obj), TYPE_VIRTIO_MMIO_BUS) +#define VIRTIO_MMIO_BUS_CLASS(klass) \ + OBJECT_CLASS_CHECK(VirtioBusClass, (klass), TYPE_VIRTIO_MMIO_BUS) + +/* virtio-mmio */ +#define TYPE_VIRTIO_MMIO "virtio-mmio" +#define VIRTIO_MMIO(obj) \ + OBJECT_CHECK(VirtIOMMIOProxy, (obj), TYPE_VIRTIO_MMIO) + +#define VIRT_MAGIC 0x74726976 /* 'virt' */ +#define VIRT_VERSION 1 +#define VIRT_VENDOR 0x554D4551 /* 'QEMU' */ + +typedef struct { + /* Generic */ + SysBusDevice parent_obj; + MemoryRegion iomem; + qemu_irq irq; + /* Guest accessible state needing migration and reset */ + uint32_t host_features_sel; + uint32_t guest_features_sel; + uint32_t guest_page_shift; + /* virtio-bus */ + VirtioBusState bus; + bool format_transport_address; +} VirtIOMMIOProxy; + +#endif -- 2.21.0
next prev parent reply other threads:[~2019-09-24 12:45 UTC|newest] Thread overview: 133+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-09-24 12:44 [PATCH v4 0/8] Introduce the microvm machine type Sergio Lopez 2019-09-24 12:44 ` Sergio Lopez 2019-09-24 12:44 ` [PATCH v4 1/8] hw/i386: Factorize PVH related functions Sergio Lopez 2019-09-24 12:44 ` Sergio Lopez 2019-09-24 13:18 ` Philippe Mathieu-Daudé 2019-09-24 13:18 ` Philippe Mathieu-Daudé 2019-09-25 6:03 ` Sergio Lopez 2019-09-25 6:03 ` Sergio Lopez 2019-09-25 8:36 ` Stefano Garzarella 2019-09-25 8:36 ` Stefano Garzarella 2019-09-25 9:00 ` Sergio Lopez 2019-09-25 9:00 ` Sergio Lopez 2019-09-25 9:29 ` Stefano Garzarella 2019-09-25 9:29 ` Stefano Garzarella 2019-09-24 12:44 ` [PATCH v4 2/8] hw/i386: Factorize e820 " Sergio Lopez 2019-09-24 12:44 ` Sergio Lopez 2019-09-24 13:20 ` Philippe Mathieu-Daudé 2019-09-24 13:20 ` Philippe Mathieu-Daudé 2019-09-24 14:12 ` Sergio Lopez 2019-09-24 14:12 ` Sergio Lopez 2019-09-24 12:44 ` Sergio Lopez [this message] 2019-09-24 12:44 ` [PATCH v4 3/8] hw/virtio: Factorize virtio-mmio headers Sergio Lopez 2019-09-24 12:44 ` [PATCH v4 4/8] hw/i386: split PCMachineState deriving X86MachineState from it Sergio Lopez 2019-09-24 13:40 ` Philippe Mathieu-Daudé 2019-09-25 15:39 ` Philippe Mathieu-Daudé 2019-09-24 12:44 ` [PATCH v4 5/8] fw_cfg: add "modify" functions for all types Sergio Lopez 2019-09-24 12:44 ` Sergio Lopez 2019-09-24 12:44 ` [PATCH v4 6/8] roms: add microvm-bios (qboot) as binary and git submodule Sergio Lopez 2019-09-24 12:44 ` Sergio Lopez 2019-09-24 13:31 ` Philippe Mathieu-Daudé 2019-09-24 13:31 ` Philippe Mathieu-Daudé 2019-09-25 6:09 ` Sergio Lopez 2019-09-25 6:09 ` Sergio Lopez 2019-09-24 12:44 ` [PATCH v4 7/8] docs/microvm.txt: document the new microvm machine type Sergio Lopez 2019-09-24 12:44 ` Sergio Lopez 2019-09-24 13:10 ` Paolo Bonzini 2019-09-24 13:10 ` Paolo Bonzini 2019-09-25 5:49 ` Sergio Lopez 2019-09-25 5:49 ` Sergio Lopez 2019-09-25 7:57 ` Paolo Bonzini 2019-09-25 7:57 ` Paolo Bonzini 2019-09-25 8:40 ` Sergio Lopez 2019-09-25 8:40 ` Sergio Lopez 2019-09-25 9:22 ` Paolo Bonzini 2019-09-25 9:22 ` Paolo Bonzini 2019-09-25 11:04 ` Sergio Lopez 2019-09-25 11:04 ` Sergio Lopez 2019-09-25 11:20 ` Paolo Bonzini 2019-09-25 11:20 ` Paolo Bonzini 2019-09-25 15:04 ` Sergio Lopez 2019-09-25 15:04 ` Sergio Lopez 2019-09-25 16:46 ` Paolo Bonzini 2019-09-25 16:46 ` Paolo Bonzini 2019-09-26 6:23 ` Sergio Lopez 2019-09-26 6:23 ` Sergio Lopez 2019-09-26 8:58 ` Paolo Bonzini 2019-09-26 8:58 ` Paolo Bonzini 2019-09-26 10:16 ` Sergio Lopez 2019-09-26 10:16 ` Sergio Lopez 2019-09-26 10:21 ` Paolo Bonzini 2019-09-26 10:21 ` Paolo Bonzini 2019-09-26 12:12 ` Sergio Lopez 2019-09-26 12:12 ` Sergio Lopez 2019-09-25 5:06 ` Gerd Hoffmann 2019-09-25 5:06 ` Gerd Hoffmann 2019-09-25 7:33 ` Sergio Lopez 2019-09-25 7:33 ` Sergio Lopez 2019-09-25 8:51 ` Gerd Hoffmann 2019-09-25 8:51 ` Gerd Hoffmann 2019-09-24 12:44 ` [PATCH v4 8/8] hw/i386: Introduce the " Sergio Lopez 2019-09-24 12:44 ` Sergio Lopez 2019-09-24 13:12 ` Paolo Bonzini 2019-09-24 13:12 ` Paolo Bonzini 2019-09-24 13:24 ` Michael S. Tsirkin 2019-09-24 13:24 ` Michael S. Tsirkin 2019-09-24 13:34 ` Paolo Bonzini 2019-09-24 13:34 ` Paolo Bonzini 2019-09-25 5:53 ` Sergio Lopez 2019-09-25 5:53 ` Sergio Lopez 2019-09-24 13:28 ` Michael S. Tsirkin 2019-09-24 13:28 ` Michael S. Tsirkin 2019-09-25 5:59 ` Sergio Lopez 2019-09-25 5:59 ` Sergio Lopez 2019-10-01 8:56 ` Sergio Lopez 2019-10-01 8:56 ` Sergio Lopez 2019-09-25 15:40 ` Philippe Mathieu-Daudé 2019-09-25 15:40 ` Philippe Mathieu-Daudé 2019-09-26 6:34 ` Sergio Lopez 2019-09-26 6:34 ` Sergio Lopez 2019-09-26 8:59 ` Paolo Bonzini 2019-09-26 8:59 ` Paolo Bonzini 2019-09-24 13:57 ` [PATCH v4 0/8] " Peter Maydell 2019-09-24 13:57 ` Peter Maydell 2019-09-25 5:51 ` Sergio Lopez 2019-09-25 5:51 ` Sergio Lopez 2019-09-25 11:33 ` Philippe Mathieu-Daudé 2019-09-25 11:33 ` Philippe Mathieu-Daudé 2019-09-25 12:39 ` Peter Maydell 2019-09-25 12:39 ` Peter Maydell 2019-09-25 7:41 ` David Hildenbrand 2019-09-25 7:41 ` David Hildenbrand 2019-09-25 7:58 ` Pankaj Gupta 2019-09-25 7:58 ` Pankaj Gupta 2019-09-25 8:10 ` Sergio Lopez 2019-09-25 8:10 ` Sergio Lopez 2019-09-25 8:16 ` David Hildenbrand 2019-09-25 8:16 ` David Hildenbrand 2019-09-25 8:37 ` Pankaj Gupta 2019-09-25 8:37 ` Pankaj Gupta 2019-09-25 8:26 ` Paolo Bonzini 2019-09-25 8:26 ` Paolo Bonzini 2019-09-25 8:42 ` Sergio Lopez 2019-09-25 8:42 ` Sergio Lopez 2019-09-25 8:44 ` David Hildenbrand 2019-09-25 8:44 ` David Hildenbrand 2019-09-25 10:19 ` when to use virtio (was Re: [PATCH v4 0/8] Introduce the microvm machine type) Paolo Bonzini 2019-09-25 10:19 ` Paolo Bonzini 2019-09-25 10:50 ` David Hildenbrand 2019-09-25 10:50 ` David Hildenbrand 2019-09-25 11:24 ` Paolo Bonzini 2019-09-25 11:24 ` Paolo Bonzini 2019-09-25 11:32 ` David Hildenbrand 2019-09-25 11:32 ` David Hildenbrand 2019-09-25 9:12 ` [PATCH v4 0/8] Introduce the microvm machine type Gerd Hoffmann 2019-09-25 9:12 ` Gerd Hoffmann 2019-09-25 9:29 ` Paolo Bonzini 2019-09-25 9:29 ` Paolo Bonzini 2019-09-25 9:47 ` David Hildenbrand 2019-09-25 9:47 ` David Hildenbrand 2019-09-26 7:48 ` Christian Borntraeger 2019-09-26 7:48 ` Christian Borntraeger 2019-09-26 8:22 ` Sergio Lopez 2019-09-26 8:22 ` Sergio Lopez
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=20190924124433.96810-4-slp@redhat.com \ --to=slp@redhat.com \ --cc=ehabkost@redhat.com \ --cc=imammedo@redhat.com \ --cc=kraxel@redhat.com \ --cc=kvm@vger.kernel.org \ --cc=lersek@redhat.com \ --cc=marcel.apfelbaum@gmail.com \ --cc=mst@redhat.com \ --cc=mtosatti@redhat.com \ --cc=pbonzini@redhat.com \ --cc=philmd@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=rth@twiddle.net \ /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: linkBe 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.