[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 03/14] s390x: Convert QEMUMachine to MachineClass
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PULL 03/14] s390x: Convert QEMUMachine to MachineClass |
Date: |
Thu, 28 Aug 2014 16:09:02 +0200 |
From: Alexey Kardashevskiy <address@hidden>
This converts s390-virtio and s390-ccw-virtio machines to QOM MachineClass.
This brings ability to add interfaces to the machine classes. The first
interface for addition will be NMI.
The patch is mechanical so no change in behavior is expected.
Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Reviewed-by: Alexander Graf <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/s390x/s390-virtio-ccw.c | 43 +++++++++++++++++++++++++++----------------
hw/s390x/s390-virtio.c | 44 +++++++++++++++++++++++++++-----------------
2 files changed, 54 insertions(+), 33 deletions(-)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 42f5cec..05311b8 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -18,6 +18,8 @@
#include "css.h"
#include "virtio-ccw.h"
+#define TYPE_S390_CCW_MACHINE "s390-ccw-machine"
+
void io_subsystem_reset(void)
{
DeviceState *css, *sclp, *flic;
@@ -134,24 +136,33 @@ static void ccw_init(MachineState *machine)
s390_create_virtio_net(BUS(css_bus), "virtio-net-ccw");
}
-static QEMUMachine ccw_machine = {
- .name = "s390-ccw-virtio",
- .alias = "s390-ccw",
- .desc = "VirtIO-ccw based S390 machine",
- .init = ccw_init,
- .block_default_type = IF_VIRTIO,
- .no_cdrom = 1,
- .no_floppy = 1,
- .no_serial = 1,
- .no_parallel = 1,
- .no_sdcard = 1,
- .use_sclp = 1,
- .max_cpus = 255,
+static void ccw_machine_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
+ mc->name = "s390-ccw-virtio";
+ mc->alias = "s390-ccw";
+ mc->desc = "VirtIO-ccw based S390 machine";
+ mc->init = ccw_init;
+ mc->block_default_type = IF_VIRTIO;
+ mc->no_cdrom = 1;
+ mc->no_floppy = 1;
+ mc->no_serial = 1;
+ mc->no_parallel = 1;
+ mc->no_sdcard = 1;
+ mc->use_sclp = 1,
+ mc->max_cpus = 255;
+}
+
+static const TypeInfo ccw_machine_info = {
+ .name = TYPE_S390_CCW_MACHINE,
+ .parent = TYPE_MACHINE,
+ .class_init = ccw_machine_class_init,
};
-static void ccw_machine_init(void)
+static void ccw_machine_register_types(void)
{
- qemu_register_machine(&ccw_machine);
+ type_register_static(&ccw_machine_info);
}
-machine_init(ccw_machine_init)
+type_init(ccw_machine_register_types)
diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
index 93c7ace..f1e0dbc 100644
--- a/hw/s390x/s390-virtio.c
+++ b/hw/s390x/s390-virtio.c
@@ -51,6 +51,7 @@
#define MAX_BLK_DEVS 10
#define ZIPL_FILENAME "s390-zipl.rom"
+#define TYPE_S390_MACHINE "s390-machine"
static VirtIOS390Bus *s390_bus;
static S390CPU **ipi_states;
@@ -279,25 +280,34 @@ static void s390_init(MachineState *machine)
s390_create_virtio_net((BusState *)s390_bus, "virtio-net-s390");
}
-static QEMUMachine s390_machine = {
- .name = "s390-virtio",
- .alias = "s390",
- .desc = "VirtIO based S390 machine",
- .init = s390_init,
- .block_default_type = IF_VIRTIO,
- .no_cdrom = 1,
- .no_floppy = 1,
- .no_serial = 1,
- .no_parallel = 1,
- .no_sdcard = 1,
- .use_virtcon = 1,
- .max_cpus = 255,
- .is_default = 1,
+static void s390_machine_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+
+ mc->name = "s390-virtio";
+ mc->alias = "s390";
+ mc->desc = "VirtIO based S390 machine";
+ mc->init = s390_init;
+ mc->block_default_type = IF_VIRTIO;
+ mc->max_cpus = 255;
+ mc->no_serial = 1;
+ mc->no_parallel = 1;
+ mc->use_virtcon = 1;
+ mc->no_floppy = 1;
+ mc->no_cdrom = 1;
+ mc->no_sdcard = 1;
+ mc->is_default = 1;
+}
+
+static const TypeInfo s390_machine_info = {
+ .name = TYPE_S390_MACHINE,
+ .parent = TYPE_MACHINE,
+ .class_init = s390_machine_class_init,
};
-static void s390_machine_init(void)
+static void s390_machine_register_types(void)
{
- qemu_register_machine(&s390_machine);
+ type_register_static(&s390_machine_info);
}
-machine_init(s390_machine_init);
+type_init(s390_machine_register_types)
--
1.8.3.1
- [Qemu-devel] [PULL 00/14] KVM changes for 2014-08-28, Paolo Bonzini, 2014/08/28
- [Qemu-devel] [PULL 02/14] cpus: Define callback for QEMU "nmi" command, Paolo Bonzini, 2014/08/28
- [Qemu-devel] [PULL 03/14] s390x: Convert QEMUMachine to MachineClass,
Paolo Bonzini <=
- [Qemu-devel] [PULL 04/14] s390x: Migrate to new NMI interface, Paolo Bonzini, 2014/08/28
- [Qemu-devel] [PULL 01/14] kvm: run cpu state synchronization on target vcpu thread, Paolo Bonzini, 2014/08/28
- [Qemu-devel] [PULL 05/14] spapr: Add support for new NMI interface, Paolo Bonzini, 2014/08/28
- [Qemu-devel] [PULL 06/14] target-i386: Don't forbid NX bit on PAE PDEs and PTEs, Paolo Bonzini, 2014/08/28
- [Qemu-devel] [PULL 07/14] x86: Use common variable range MTRR counts, Paolo Bonzini, 2014/08/28
- [Qemu-devel] [PULL 09/14] x86: Clear MTRRs on vCPU reset, Paolo Bonzini, 2014/08/28
- [Qemu-devel] [PULL 08/14] x86: kvm: Add MTRR support for kvm_get|put_msrs(), Paolo Bonzini, 2014/08/28
- [Qemu-devel] [PULL 11/14] vl: process -object after other backend options, Paolo Bonzini, 2014/08/28
- [Qemu-devel] [PULL 10/14] checkpatch.pl: adjust typedef definition to QEMU coding style, Paolo Bonzini, 2014/08/28
- [Qemu-devel] [PULL 12/14] target-i386: Add "mpx" CPU feature name, Paolo Bonzini, 2014/08/28