Message ID | 20190628115349.60293-3-slp@redhat.com |
---|---|
State | New |
Headers | show |
Series | Introduce the microvm machine type | expand |
On Fri, Jun 28, 2019 at 01:53:47PM +0200, Sergio Lopez wrote: > Put QOM and main struct definition in a separate header file, so it > can be accesed from other components. > > This is needed for the microvm machine type implementation. > > Signed-off-by: Sergio Lopez <slp@redhat.com> If you are going to productise virtio-mmio, then 1.0 support is a must. I am not sure we want a new machine with 0.X mmio devices. Especially considering that virtio-mmio does not have support for transitional devices. > --- > hw/virtio/virtio-mmio.c | 35 +----------------------- > hw/virtio/virtio-mmio.h | 60 +++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 61 insertions(+), 34 deletions(-) > create mode 100644 hw/virtio/virtio-mmio.h > > diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c > index 97b7f35496..87c7fe4d8d 100644 > --- a/hw/virtio/virtio-mmio.c > +++ b/hw/virtio/virtio-mmio.c > @@ -26,44 +26,11 @@ > #include "qemu/host-utils.h" > #include "qemu/module.h" > #include "sysemu/kvm.h" > -#include "hw/virtio/virtio-bus.h" > +#include "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/hw/virtio/virtio-mmio.h b/hw/virtio/virtio-mmio.h > new file mode 100644 > index 0000000000..2f3973f8c7 > --- /dev/null > +++ b/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
Michael S. Tsirkin <mst@redhat.com> writes: > On Fri, Jun 28, 2019 at 01:53:47PM +0200, Sergio Lopez wrote: >> Put QOM and main struct definition in a separate header file, so it >> can be accesed from other components. >> >> This is needed for the microvm machine type implementation. >> >> Signed-off-by: Sergio Lopez <slp@redhat.com> > > If you are going to productise virtio-mmio, then 1.0 support is a must. > I am not sure we want a new machine with 0.X mmio devices. > Especially considering that virtio-mmio does not have support for > transitional devices. What are the practical implications of that? >> --- >> hw/virtio/virtio-mmio.c | 35 +----------------------- >> hw/virtio/virtio-mmio.h | 60 +++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 61 insertions(+), 34 deletions(-) >> create mode 100644 hw/virtio/virtio-mmio.h >> >> diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c >> index 97b7f35496..87c7fe4d8d 100644 >> --- a/hw/virtio/virtio-mmio.c >> +++ b/hw/virtio/virtio-mmio.c >> @@ -26,44 +26,11 @@ >> #include "qemu/host-utils.h" >> #include "qemu/module.h" >> #include "sysemu/kvm.h" >> -#include "hw/virtio/virtio-bus.h" >> +#include "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/hw/virtio/virtio-mmio.h b/hw/virtio/virtio-mmio.h >> new file mode 100644 >> index 0000000000..2f3973f8c7 >> --- /dev/null >> +++ b/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
On Fri, Jun 28, 2019 at 10:50:47PM +0200, Sergio Lopez wrote: > > Michael S. Tsirkin <mst@redhat.com> writes: > > > On Fri, Jun 28, 2019 at 01:53:47PM +0200, Sergio Lopez wrote: > >> Put QOM and main struct definition in a separate header file, so it > >> can be accesed from other components. > >> > >> This is needed for the microvm machine type implementation. > >> > >> Signed-off-by: Sergio Lopez <slp@redhat.com> > > > > If you are going to productise virtio-mmio, then 1.0 support is a must. > > I am not sure we want a new machine with 0.X mmio devices. > > Especially considering that virtio-mmio does not have support for > > transitional devices. > > What are the practical implications of that? On the plus side, this means we don't need to maintain a bunch of hacks for old guests with quirky drivers. On the minus side, this requires Linux guests 3.19 and up. > >> --- > >> hw/virtio/virtio-mmio.c | 35 +----------------------- > >> hw/virtio/virtio-mmio.h | 60 +++++++++++++++++++++++++++++++++++++++++ > >> 2 files changed, 61 insertions(+), 34 deletions(-) > >> create mode 100644 hw/virtio/virtio-mmio.h > >> > >> diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c > >> index 97b7f35496..87c7fe4d8d 100644 > >> --- a/hw/virtio/virtio-mmio.c > >> +++ b/hw/virtio/virtio-mmio.c > >> @@ -26,44 +26,11 @@ > >> #include "qemu/host-utils.h" > >> #include "qemu/module.h" > >> #include "sysemu/kvm.h" > >> -#include "hw/virtio/virtio-bus.h" > >> +#include "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/hw/virtio/virtio-mmio.h b/hw/virtio/virtio-mmio.h > >> new file mode 100644 > >> index 0000000000..2f3973f8c7 > >> --- /dev/null > >> +++ b/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 >
> > > I am not sure we want a new machine with 0.X mmio devices. > > > Especially considering that virtio-mmio does not have support for > > > transitional devices. > > > > What are the practical implications of that? > > On the plus side, this means we don't need to maintain a bunch of hacks > for old guests with quirky drivers. Also note that some newer virtio devices require virtio 1.0. cheers, Gerd
On Tue, Jul 02, 2019 at 10:19:10AM +0200, Gerd Hoffmann wrote: > > > > I am not sure we want a new machine with 0.X mmio devices. > > > > Especially considering that virtio-mmio does not have support for > > > > transitional devices. > > > > > > What are the practical implications of that? > > > > On the plus side, this means we don't need to maintain a bunch of hacks > > for old guests with quirky drivers. > > Also note that some newer virtio devices require virtio 1.0. > > cheers, > Gerd Right. I forgot.
diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c index 97b7f35496..87c7fe4d8d 100644 --- a/hw/virtio/virtio-mmio.c +++ b/hw/virtio/virtio-mmio.c @@ -26,44 +26,11 @@ #include "qemu/host-utils.h" #include "qemu/module.h" #include "sysemu/kvm.h" -#include "hw/virtio/virtio-bus.h" +#include "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/hw/virtio/virtio-mmio.h b/hw/virtio/virtio-mmio.h new file mode 100644 index 0000000000..2f3973f8c7 --- /dev/null +++ b/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
Put QOM and main struct definition in a separate header file, so it can be accesed from other components. This is needed for the microvm machine type implementation. Signed-off-by: Sergio Lopez <slp@redhat.com> --- hw/virtio/virtio-mmio.c | 35 +----------------------- hw/virtio/virtio-mmio.h | 60 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 34 deletions(-) create mode 100644 hw/virtio/virtio-mmio.h