From: David Gibson <david@gibson.dropbear.id.au>
To: peter.maydell@linaro.org, mdroth@linux.vnet.ibm.com, aik@ozlabs.ru
Cc: lvivier@redhat.com, thuth@redhat.com, agraf@suse.de,
qemu-devel@nongnu.org, qemu-ppc@nongnu.org,
David Gibson <david@gibson.dropbear.id.au>
Subject: [Qemu-devel] [PULL 05/16] pseries: Rearrange versioned machine type code
Date: Mon, 11 Jan 2016 15:37:27 +1100 [thread overview]
Message-ID: <1452487058-17182-6-git-send-email-david@gibson.dropbear.id.au> (raw)
In-Reply-To: <1452487058-17182-1-git-send-email-david@gibson.dropbear.id.au>
hw/ppc/spapr.c has a number of definitions related to the various versioned
machine types ("pseries-2.1" .. "pseries-2.5") it defines. These are
mostly arranged by type of function first, then machine version second, and
it's not consistent about whether it goes in increasing or decreasing
version order.
This rearranges the code to keep all the definitions for a particular
machine version together, and arrange then consistently in order most
recent to least recent.
This brings us closer to matching the way PC does things, and makes later
cleanups easier to follow.
Apart from adding some comments marking each section, this is a pure
mechanical rearrangement with no semantic changes.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
---
hw/ppc/spapr.c | 180 +++++++++++++++++++++++++++++++--------------------------
1 file changed, 98 insertions(+), 82 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index a69856f..c126e10 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -2301,9 +2301,53 @@ static const TypeInfo spapr_machine_info = {
},
};
+/*
+ * pseries-2.5
+ */
+static void spapr_machine_2_5_class_init(ObjectClass *oc, void *data)
+{
+ MachineClass *mc = MACHINE_CLASS(oc);
+ sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(oc);
+
+ mc->desc = "pSeries Logical Partition (PAPR compliant) v2.5";
+ mc->alias = "pseries";
+ mc->is_default = 1;
+ smc->dr_lmb_enabled = true;
+}
+
+static const TypeInfo spapr_machine_2_5_info = {
+ .name = MACHINE_TYPE_NAME("pseries-2.5"),
+ .parent = TYPE_SPAPR_MACHINE,
+ .class_init = spapr_machine_2_5_class_init,
+};
+
+/*
+ * pseries-2.4
+ */
#define SPAPR_COMPAT_2_4 \
HW_COMPAT_2_4
+static void spapr_machine_2_4_class_init(ObjectClass *oc, void *data)
+{
+ static GlobalProperty compat_props[] = {
+ SPAPR_COMPAT_2_4
+ { /* end of list */ }
+ };
+ MachineClass *mc = MACHINE_CLASS(oc);
+
+ mc->desc = "pSeries Logical Partition (PAPR compliant) v2.4";
+ mc->compat_props = compat_props;
+}
+
+static const TypeInfo spapr_machine_2_4_info = {
+ .name = MACHINE_TYPE_NAME("pseries-2.4"),
+ .parent = TYPE_SPAPR_MACHINE,
+ .class_init = spapr_machine_2_4_class_init,
+};
+
+/*
+ * pseries-2.3
+ */
#define SPAPR_COMPAT_2_3 \
SPAPR_COMPAT_2_4 \
HW_COMPAT_2_3 \
@@ -2313,72 +2357,61 @@ static const TypeInfo spapr_machine_info = {
.value = "off",\
},
-#define SPAPR_COMPAT_2_2 \
- SPAPR_COMPAT_2_3 \
- HW_COMPAT_2_2 \
- {\
- .driver = TYPE_SPAPR_PCI_HOST_BRIDGE,\
- .property = "mem_win_size",\
- .value = "0x20000000",\
- },
-
-#define SPAPR_COMPAT_2_1 \
- SPAPR_COMPAT_2_2 \
- HW_COMPAT_2_1
-
static void spapr_compat_2_3(Object *obj)
{
savevm_skip_section_footers();
global_state_set_optional();
}
-static void spapr_compat_2_2(Object *obj)
-{
- spapr_compat_2_3(obj);
-}
-
-static void spapr_compat_2_1(Object *obj)
-{
- spapr_compat_2_2(obj);
-}
-
static void spapr_machine_2_3_instance_init(Object *obj)
{
spapr_compat_2_3(obj);
spapr_machine_initfn(obj);
}
-static void spapr_machine_2_2_instance_init(Object *obj)
-{
- spapr_compat_2_2(obj);
- spapr_machine_initfn(obj);
-}
-
-static void spapr_machine_2_1_instance_init(Object *obj)
-{
- spapr_compat_2_1(obj);
- spapr_machine_initfn(obj);
-}
-
-static void spapr_machine_2_1_class_init(ObjectClass *oc, void *data)
+static void spapr_machine_2_3_class_init(ObjectClass *oc, void *data)
{
- MachineClass *mc = MACHINE_CLASS(oc);
static GlobalProperty compat_props[] = {
- SPAPR_COMPAT_2_1
+ SPAPR_COMPAT_2_3
{ /* end of list */ }
};
+ MachineClass *mc = MACHINE_CLASS(oc);
- mc->desc = "pSeries Logical Partition (PAPR compliant) v2.1";
+ mc->desc = "pSeries Logical Partition (PAPR compliant) v2.3";
mc->compat_props = compat_props;
}
-static const TypeInfo spapr_machine_2_1_info = {
- .name = MACHINE_TYPE_NAME("pseries-2.1"),
+static const TypeInfo spapr_machine_2_3_info = {
+ .name = MACHINE_TYPE_NAME("pseries-2.3"),
.parent = TYPE_SPAPR_MACHINE,
- .class_init = spapr_machine_2_1_class_init,
- .instance_init = spapr_machine_2_1_instance_init,
+ .class_init = spapr_machine_2_3_class_init,
+ .instance_init = spapr_machine_2_3_instance_init,
};
+/*
+ * pseries-2.2
+ */
+
+#define SPAPR_COMPAT_2_2 \
+ SPAPR_COMPAT_2_3 \
+ HW_COMPAT_2_2 \
+ {\
+ .driver = TYPE_SPAPR_PCI_HOST_BRIDGE,\
+ .property = "mem_win_size",\
+ .value = "0x20000000",\
+ },
+
+static void spapr_compat_2_2(Object *obj)
+{
+ spapr_compat_2_3(obj);
+}
+
+static void spapr_machine_2_2_instance_init(Object *obj)
+{
+ spapr_compat_2_2(obj);
+ spapr_machine_initfn(obj);
+}
+
static void spapr_machine_2_2_class_init(ObjectClass *oc, void *data)
{
static GlobalProperty compat_props[] = {
@@ -2398,58 +2431,41 @@ static const TypeInfo spapr_machine_2_2_info = {
.instance_init = spapr_machine_2_2_instance_init,
};
-static void spapr_machine_2_3_class_init(ObjectClass *oc, void *data)
-{
- static GlobalProperty compat_props[] = {
- SPAPR_COMPAT_2_3
- { /* end of list */ }
- };
- MachineClass *mc = MACHINE_CLASS(oc);
+/*
+ * pseries-2.1
+ */
+#define SPAPR_COMPAT_2_1 \
+ SPAPR_COMPAT_2_2 \
+ HW_COMPAT_2_1
- mc->desc = "pSeries Logical Partition (PAPR compliant) v2.3";
- mc->compat_props = compat_props;
+static void spapr_compat_2_1(Object *obj)
+{
+ spapr_compat_2_2(obj);
}
-static const TypeInfo spapr_machine_2_3_info = {
- .name = MACHINE_TYPE_NAME("pseries-2.3"),
- .parent = TYPE_SPAPR_MACHINE,
- .class_init = spapr_machine_2_3_class_init,
- .instance_init = spapr_machine_2_3_instance_init,
-};
+static void spapr_machine_2_1_instance_init(Object *obj)
+{
+ spapr_compat_2_1(obj);
+ spapr_machine_initfn(obj);
+}
-static void spapr_machine_2_4_class_init(ObjectClass *oc, void *data)
+static void spapr_machine_2_1_class_init(ObjectClass *oc, void *data)
{
+ MachineClass *mc = MACHINE_CLASS(oc);
static GlobalProperty compat_props[] = {
- SPAPR_COMPAT_2_4
+ SPAPR_COMPAT_2_1
{ /* end of list */ }
};
- MachineClass *mc = MACHINE_CLASS(oc);
- mc->desc = "pSeries Logical Partition (PAPR compliant) v2.4";
+ mc->desc = "pSeries Logical Partition (PAPR compliant) v2.1";
mc->compat_props = compat_props;
}
-static const TypeInfo spapr_machine_2_4_info = {
- .name = MACHINE_TYPE_NAME("pseries-2.4"),
- .parent = TYPE_SPAPR_MACHINE,
- .class_init = spapr_machine_2_4_class_init,
-};
-
-static void spapr_machine_2_5_class_init(ObjectClass *oc, void *data)
-{
- MachineClass *mc = MACHINE_CLASS(oc);
- sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(oc);
-
- mc->desc = "pSeries Logical Partition (PAPR compliant) v2.5";
- mc->alias = "pseries";
- mc->is_default = 1;
- smc->dr_lmb_enabled = true;
-}
-
-static const TypeInfo spapr_machine_2_5_info = {
- .name = MACHINE_TYPE_NAME("pseries-2.5"),
+static const TypeInfo spapr_machine_2_1_info = {
+ .name = MACHINE_TYPE_NAME("pseries-2.1"),
.parent = TYPE_SPAPR_MACHINE,
- .class_init = spapr_machine_2_5_class_init,
+ .class_init = spapr_machine_2_1_class_init,
+ .instance_init = spapr_machine_2_1_instance_init,
};
static void spapr_machine_register_types(void)
--
2.5.0
next prev parent reply other threads:[~2016-01-11 4:37 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-11 4:37 [Qemu-devel] [PULL 00/16] ppc-for-2.6 queue 20160111 David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 01/16] hw/ppc/spapr_rtc: Remove bad class_size value David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 02/16] target-ppc: Define kvmppc_read_int_dt() David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 03/16] spapr: Add /system-id David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 04/16] pseries: Remove redundant setting of mc->name for pseries-2.5 machine David Gibson
2016-01-11 4:37 ` David Gibson [this message]
2016-01-11 4:37 ` [Qemu-devel] [PULL 06/16] pseries: Remove redundant calls to spapr_machine_initfn() David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 07/16] pseries: Remove versions from mc->desc David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 08/16] Move SET_MACHINE_COMPAT macro to boards.h David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 09/16] pseries: Use SET_MACHINE_COMPAT David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 10/16] pseries: DEFINE_SPAPR_MACHINE David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 11/16] pseries: Restructure class_options functions David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 12/16] pseries: Improve setting of default machine version David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 13/16] pseries: Add pseries-2.6 machine type David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 14/16] hw/ppc/spapr: Use XHCI as host controller for new spapr machines David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 15/16] spapr vio: fix to incomplete QOMify David Gibson
2016-01-11 4:37 ` [Qemu-devel] [PULL 16/16] hw/ppc/spapr: fix spapr->kvm_type leak David Gibson
2016-01-11 12:29 ` [Qemu-devel] [PULL 00/16] ppc-for-2.6 queue 20160111 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=1452487058-17182-6-git-send-email-david@gibson.dropbear.id.au \
--to=david@gibson.dropbear.id.au \
--cc=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=lvivier@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=thuth@redhat.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 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).