qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Andreas Färber" <afaerber@suse.de>
To: qemu-devel@nongnu.org
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
	"Eduardo Habkost" <ehabkost@redhat.com>,
	"Alexander Graf" <agraf@suse.de>,
	"Christian Borntraeger" <borntraeger@de.ibm.com>,
	"open list:New World" <qemu-ppc@nongnu.org>,
	"Cornelia Huck" <cornelia.huck@de.ibm.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Richard Henderson" <rth@twiddle.net>,
	"Andreas Färber" <afaerber@suse.de>,
	"David Gibson" <david@gibson.dropbear.id.au>
Subject: [Qemu-devel] [PULL 13/21] machine: Set MachineClass::name automatically
Date: Sat, 19 Sep 2015 16:43:22 +0200	[thread overview]
Message-ID: <1442673810-2679-14-git-send-email-afaerber@suse.de> (raw)
In-Reply-To: <1442673810-2679-1-git-send-email-afaerber@suse.de>

From: Eduardo Habkost <ehabkost@redhat.com>

Now all TYPE_MACHINE subclasses use MACHINE_TYPE_NAME to generate the
class name. So instead of requiring each subclass to set
MachineClass::name manually, we can now set it automatically at the
TYPE_MACHINE class_base_init() function.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
[AF/ehabkost: Updated for s390-ccw machines]
[AF: Cleanup of intermediate virt and vexpress name handling]
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
 hw/arm/vexpress.c          | 8 ++------
 hw/arm/virt.c              | 4 +---
 hw/core/machine.c          | 3 +++
 hw/ppc/mac_newworld.c      | 1 -
 hw/ppc/spapr.c             | 4 ----
 hw/s390x/s390-virtio-ccw.c | 2 --
 hw/s390x/s390-virtio.c     | 1 -
 vl.c                       | 1 -
 8 files changed, 6 insertions(+), 18 deletions(-)

diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
index 2bcd312..058abbd 100644
--- a/hw/arm/vexpress.c
+++ b/hw/arm/vexpress.c
@@ -168,10 +168,8 @@ typedef struct {
 } VexpressMachineState;
 
 #define TYPE_VEXPRESS_MACHINE   "vexpress"
-#define VEXPRESS_A9_MACHINE_NAME "vexpress-a9"
-#define VEXPRESS_A15_MACHINE_NAME "vexpress-a15"
-#define TYPE_VEXPRESS_A9_MACHINE   MACHINE_TYPE_NAME(VEXPRESS_A9_MACHINE_NAME)
-#define TYPE_VEXPRESS_A15_MACHINE   MACHINE_TYPE_NAME(VEXPRESS_A15_MACHINE_NAME)
+#define TYPE_VEXPRESS_A9_MACHINE   MACHINE_TYPE_NAME("vexpress-a9")
+#define TYPE_VEXPRESS_A15_MACHINE   MACHINE_TYPE_NAME("vexpress-a15")
 #define VEXPRESS_MACHINE(obj) \
     OBJECT_CHECK(VexpressMachineState, (obj), TYPE_VEXPRESS_MACHINE)
 #define VEXPRESS_MACHINE_GET_CLASS(obj) \
@@ -760,7 +758,6 @@ static void vexpress_a9_class_init(ObjectClass *oc, void *data)
     MachineClass *mc = MACHINE_CLASS(oc);
     VexpressMachineClass *vmc = VEXPRESS_MACHINE_CLASS(oc);
 
-    mc->name = VEXPRESS_A9_MACHINE_NAME;
     mc->desc = "ARM Versatile Express for Cortex-A9";
 
     vmc->daughterboard = &a9_daughterboard;
@@ -771,7 +768,6 @@ static void vexpress_a15_class_init(ObjectClass *oc, void *data)
     MachineClass *mc = MACHINE_CLASS(oc);
     VexpressMachineClass *vmc = VEXPRESS_MACHINE_CLASS(oc);
 
-    mc->name = VEXPRESS_A15_MACHINE_NAME;
     mc->desc = "ARM Versatile Express for Cortex-A15";
 
     vmc->daughterboard = &a15_daughterboard;
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index fba2595..6bf0d6d 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -83,8 +83,7 @@ typedef struct {
     bool highmem;
 } VirtMachineState;
 
-#define VIRT_MACHINE_NAME   "virt"
-#define TYPE_VIRT_MACHINE   MACHINE_TYPE_NAME(VIRT_MACHINE_NAME)
+#define TYPE_VIRT_MACHINE   MACHINE_TYPE_NAME("virt")
 #define VIRT_MACHINE(obj) \
     OBJECT_CHECK(VirtMachineState, (obj), TYPE_VIRT_MACHINE)
 #define VIRT_MACHINE_GET_CLASS(obj) \
@@ -1074,7 +1073,6 @@ static void virt_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
 
-    mc->name = VIRT_MACHINE_NAME;
     mc->desc = "ARM Virtual Machine",
     mc->init = machvirt_init;
     mc->max_cpus = 8;
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 3c1f248..f4db340 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -319,8 +319,11 @@ static void machine_class_init(ObjectClass *oc, void *data)
 static void machine_class_base_init(ObjectClass *oc, void *data)
 {
     if (!object_class_is_abstract(oc)) {
+        MachineClass *mc = MACHINE_CLASS(oc);
         const char *cname = object_class_get_name(oc);
         assert(g_str_has_suffix(cname, TYPE_MACHINE_SUFFIX));
+        mc->name = g_strndup(cname,
+                            strlen(cname) - strlen(TYPE_MACHINE_SUFFIX));
     }
 }
 
diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index 31c40c9..e1c5ed7 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -508,7 +508,6 @@ static void core99_machine_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
 
-    mc->name = "mac99";
     mc->desc = "Mac99 based PowerMAC";
     mc->init = ppc_core99_init;
     mc->max_cpus = MAX_CPUS;
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 012b6ed..05926a3 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -1919,7 +1919,6 @@ static void spapr_machine_2_1_class_init(ObjectClass *oc, void *data)
         { /* end of list */ }
     };
 
-    mc->name = "pseries-2.1";
     mc->desc = "pSeries Logical Partition (PAPR compliant) v2.1";
     mc->compat_props = compat_props;
 }
@@ -1939,7 +1938,6 @@ static void spapr_machine_2_2_class_init(ObjectClass *oc, void *data)
     };
     MachineClass *mc = MACHINE_CLASS(oc);
 
-    mc->name = "pseries-2.2";
     mc->desc = "pSeries Logical Partition (PAPR compliant) v2.2";
     mc->compat_props = compat_props;
 }
@@ -1959,7 +1957,6 @@ static void spapr_machine_2_3_class_init(ObjectClass *oc, void *data)
     };
     MachineClass *mc = MACHINE_CLASS(oc);
 
-    mc->name = "pseries-2.3";
     mc->desc = "pSeries Logical Partition (PAPR compliant) v2.3";
     mc->compat_props = compat_props;
 }
@@ -1975,7 +1972,6 @@ static void spapr_machine_2_4_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
 
-    mc->name = "pseries-2.4";
     mc->desc = "pSeries Logical Partition (PAPR compliant) v2.4";
     mc->alias = "pseries";
     mc->is_default = 1;
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index e738b5b..36f78b4 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -252,7 +252,6 @@ static void ccw_machine_2_4_class_init(ObjectClass *oc, void *data)
         { /* end of list */ }
     };
 
-    mc->name = "s390-ccw-virtio-2.4";
     mc->desc = "VirtIO-ccw based S390 machine v2.4";
     mc->compat_props = compat_props;
 }
@@ -267,7 +266,6 @@ static void ccw_machine_2_5_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
 
-    mc->name = "s390-ccw-virtio-2.5";
     mc->alias = "s390-ccw-virtio";
     mc->desc = "VirtIO-ccw based S390 machine v2.5";
     mc->is_default = 1;
diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
index a1eca09..bc013eb 100644
--- a/hw/s390x/s390-virtio.c
+++ b/hw/s390x/s390-virtio.c
@@ -319,7 +319,6 @@ static void s390_machine_class_init(ObjectClass *oc, void *data)
     MachineClass *mc = MACHINE_CLASS(oc);
     NMIClass *nc = NMI_CLASS(oc);
 
-    mc->name = S390_MACHINE;
     mc->alias = "s390";
     mc->desc = "VirtIO based S390 machine";
     mc->init = s390_init;
diff --git a/vl.c b/vl.c
index 3c6c9b0..3b92635 100644
--- a/vl.c
+++ b/vl.c
@@ -1437,7 +1437,6 @@ static void qemu_machine_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
     QEMUMachine *qm = data;
-    mc->name = qm->name;
     mc->desc = qm->desc;
     mc->init = qm->init;
     mc->kvm_type = qm->kvm_type;
-- 
2.1.4

  parent reply	other threads:[~2015-09-19 14:43 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-19 14:43 [Qemu-devel] [PULL 00/21] QOM devices patch queue 2015-09-19 Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 01/21] qom: Do not reuse errp after a possible error Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 02/21] qom: Fix invalid error check in property_get_str() Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 03/21] qdev: Do not use slow [*] expansion for GPIO creation Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 04/21] machine: MACHINE_TYPE_NAME macro Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 05/21] vexpress: Don't set name on abstract class Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 06/21] vexpress: Rename machine classes to use MACHINE_TYPE_NAME Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 07/21] arm: Rename virt machine class " Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 08/21] pseries: Rename machine class names " Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 09/21] s390-virtio: Rename machine class name " Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 10/21] s390: Rename s390-ccw-virtio-2.4 " Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 11/21] mac99: Use MACHINE_TYPE_NAME to encode class name Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 12/21] machine: Ensure all TYPE_MACHINE subclasses have the right suffix Andreas Färber
2015-09-19 14:43 ` Andreas Färber [this message]
2015-09-19 14:43 ` [Qemu-devel] [PULL 14/21] exynos4: Use EXYNOS4210_NCPUS instead of max_cpus on error message Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 15/21] exynos4: Use MachineClass instead of exynos4_machines array Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 16/21] exynos4: Declare each QEMUMachine as a separate variable Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 17/21] machine: DEFINE_MACHINE() macro Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 18/21] mac_world: Break long line Andreas Färber
2015-09-19 15:14   ` Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 19/21] Use DEFINE_MACHINE() to register all machines Andreas Färber
2015-09-19 14:43 ` [Qemu-devel] [PULL 20/21] Revert use of DEFINE_MACHINE() for registrations of multiple machines Andreas Färber
2015-09-21 15:49   ` Eduardo Habkost
2015-09-21 15:52     ` Andreas Färber
2015-09-21 17:24       ` Eduardo Habkost
2015-09-21 17:57         ` Eduardo Habkost
2015-09-19 14:43 ` [Qemu-devel] [PULL 21/21] machine: Eliminate QEMUMachine and qemu_register_machine() Andreas Färber
2015-09-19 16:56 ` [Qemu-devel] [PULL 00/21] QOM devices patch queue 2015-09-19 Peter Maydell

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=1442673810-2679-14-git-send-email-afaerber@suse.de \
    --to=afaerber@suse.de \
    --cc=agraf@suse.de \
    --cc=borntraeger@de.ibm.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=ehabkost@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).