From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36738) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZdH7M-0000W0-I6 for qemu-devel@nongnu.org; Sat, 19 Sep 2015 08:19:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZdH7I-0007Bw-FB for qemu-devel@nongnu.org; Sat, 19 Sep 2015 08:19:48 -0400 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Sat, 19 Sep 2015 14:19:38 +0200 Message-Id: <1442665178-22286-1-git-send-email-afaerber@suse.de> In-Reply-To: <1441391829-28017-7-git-send-email-ehabkost@redhat.com> References: <1441391829-28017-7-git-send-email-ehabkost@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH 6a/7] Revert use of DEFINE_MACHINE() for registrations of multiple machines List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , Evgeny Voevodin , Rob Herring , Igor Mitsyanko , Leon Alrae , Mark Cave-Ayland , Alexander Graf , Blue Swirl , Max Filippov , Michael Walle , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , Dmitry Solodkiy , "open list:405" , Maksim Kozlov , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Aurelien Jarno The script used for converting from QEMUMachine had used one DEFINE_MACHINE() per machine registered. In cases where multiple machines are registered from one source file, avoid the excessive generation of module init functions by reverting this unrolling. Signed-off-by: Andreas F=C3=A4rber --- hw/arm/exynos4_boards.c | 28 +++++++++++-- hw/arm/gumstix.c | 28 +++++++++++-- hw/arm/highbank.c | 28 +++++++++++-- hw/arm/nseries.c | 28 +++++++++++-- hw/arm/omap_sx1.c | 28 +++++++++++-- hw/arm/realview.c | 50 +++++++++++++++++++---- hw/arm/spitz.c | 50 +++++++++++++++++++---- hw/arm/stellaris.c | 28 +++++++++++-- hw/arm/versatilepb.c | 28 +++++++++++-- hw/lm32/lm32_boards.c | 28 +++++++++++-- hw/mips/mips_jazz.c | 28 +++++++++++-- hw/ppc/ppc405_boards.c | 28 +++++++++++-- hw/sparc/sun4m.c | 104 +++++++++++++++++++++++++++++++++++++++---= ------ hw/sparc64/sun4u.c | 38 +++++++++++++++--- hw/xtensa/xtfpga.c | 50 +++++++++++++++++++---- 15 files changed, 484 insertions(+), 88 deletions(-) diff --git a/hw/arm/exynos4_boards.c b/hw/arm/exynos4_boards.c index fadf372..da82b27 100644 --- a/hw/arm/exynos4_boards.c +++ b/hw/arm/exynos4_boards.c @@ -144,20 +144,40 @@ static void smdkc210_init(MachineState *machine) arm_load_kernel(ARM_CPU(first_cpu), &exynos4_board_binfo); } =20 -static void exynos4_machine_nuri_machine_init(MachineClass *mc) +static void nuri_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Samsung NURI board (Exynos4210)"; mc->init =3D nuri_init; mc->max_cpus =3D EXYNOS4210_NCPUS; } =20 -DEFINE_MACHINE("nuri", exynos4_machine_nuri_machine_init) +static const TypeInfo nuri_type =3D { + .name =3D MACHINE_TYPE_NAME("nuri"), + .parent =3D TYPE_MACHINE, + .class_init =3D nuri_class_init, +}; =20 -static void exynos4_machine_smdkc210_machine_init(MachineClass *mc) +static void smdkc210_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Samsung SMDKC210 board (Exynos4210)"; mc->init =3D smdkc210_init; mc->max_cpus =3D EXYNOS4210_NCPUS; } =20 -DEFINE_MACHINE("smdkc210", exynos4_machine_smdkc210_machine_init) +static const TypeInfo smdkc210_type =3D { + .name =3D MACHINE_TYPE_NAME("smdkc210"), + .parent =3D TYPE_MACHINE, + .class_init =3D smdkc210_class_init, +}; + +static void exynos4_machines_init(void) +{ + type_register_static(&nuri_type); + type_register_static(&smdkc210_type); +} + +machine_init(exynos4_machines_init) diff --git a/hw/arm/gumstix.c b/hw/arm/gumstix.c index 6dc98c8..32ad041 100644 --- a/hw/arm/gumstix.c +++ b/hw/arm/gumstix.c @@ -121,18 +121,38 @@ static void verdex_init(MachineState *machine) qdev_get_gpio_in(cpu->gpio, 99)); } =20 -static void connex_machine_init(MachineClass *mc) +static void connex_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Gumstix Connex (PXA255)"; mc->init =3D connex_init; } =20 -DEFINE_MACHINE("connex", connex_machine_init) +static const TypeInfo connex_type =3D { + .name =3D MACHINE_TYPE_NAME("connex"), + .parent =3D TYPE_MACHINE, + .class_init =3D connex_class_init, +}; =20 -static void verdex_machine_init(MachineClass *mc) +static void verdex_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Gumstix Verdex (PXA270)"; mc->init =3D verdex_init; } =20 -DEFINE_MACHINE("verdex", verdex_machine_init) +static const TypeInfo verdex_type =3D { + .name =3D MACHINE_TYPE_NAME("verdex"), + .parent =3D TYPE_MACHINE, + .class_init =3D verdex_class_init, +}; + +static void gumstix_machine_init(void) +{ + type_register_static(&connex_type); + type_register_static(&verdex_type); +} + +machine_init(gumstix_machine_init) diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c index 9b2887e..be04b27 100644 --- a/hw/arm/highbank.c +++ b/hw/arm/highbank.c @@ -391,22 +391,42 @@ static void midway_init(MachineState *machine) calxeda_init(machine, CALXEDA_MIDWAY); } =20 -static void highbank_machine_init(MachineClass *mc) +static void highbank_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Calxeda Highbank (ECX-1000)"; mc->init =3D highbank_init; mc->block_default_type =3D IF_SCSI; mc->max_cpus =3D 4; } =20 -DEFINE_MACHINE("highbank", highbank_machine_init) +static const TypeInfo highbank_type =3D { + .name =3D MACHINE_TYPE_NAME("highbank"), + .parent =3D TYPE_MACHINE, + .class_init =3D highbank_class_init, +}; =20 -static void midway_machine_init(MachineClass *mc) +static void midway_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Calxeda Midway (ECX-2000)"; mc->init =3D midway_init; mc->block_default_type =3D IF_SCSI; mc->max_cpus =3D 4; } =20 -DEFINE_MACHINE("midway", midway_machine_init) +static const TypeInfo midway_type =3D { + .name =3D MACHINE_TYPE_NAME("midway"), + .parent =3D TYPE_MACHINE, + .class_init =3D midway_class_init, +}; + +static void calxeda_machines_init(void) +{ + type_register_static(&highbank_type); + type_register_static(&midway_type); +} + +machine_init(calxeda_machines_init) diff --git a/hw/arm/nseries.c b/hw/arm/nseries.c index af28449..6a6b3e6 100644 --- a/hw/arm/nseries.c +++ b/hw/arm/nseries.c @@ -1413,20 +1413,40 @@ static void n810_init(MachineState *machine) n8x0_init(machine, &n810_binfo, 810); } =20 -static void n800_machine_init(MachineClass *mc) +static void n800_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Nokia N800 tablet aka. RX-34 (OMAP2420)"; mc->init =3D n800_init; mc->default_boot_order =3D ""; } =20 -DEFINE_MACHINE("n800", n800_machine_init) +static const TypeInfo n800_type =3D { + .name =3D MACHINE_TYPE_NAME("n800"), + .parent =3D TYPE_MACHINE, + .class_init =3D n800_class_init, +}; =20 -static void n810_machine_init(MachineClass *mc) +static void n810_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Nokia N810 tablet aka. RX-44 (OMAP2420)"; mc->init =3D n810_init; mc->default_boot_order =3D ""; } =20 -DEFINE_MACHINE("n810", n810_machine_init) +static const TypeInfo n810_type =3D { + .name =3D MACHINE_TYPE_NAME("n810"), + .parent =3D TYPE_MACHINE, + .class_init =3D n810_class_init, +}; + +static void nseries_machine_init(void) +{ + type_register_static(&n800_type); + type_register_static(&n810_type); +} + +machine_init(nseries_machine_init) diff --git a/hw/arm/omap_sx1.c b/hw/arm/omap_sx1.c index 68924fc..8eaf8f3 100644 --- a/hw/arm/omap_sx1.c +++ b/hw/arm/omap_sx1.c @@ -217,18 +217,38 @@ static void sx1_init_v2(MachineState *machine) sx1_init(machine, 2); } =20 -static void sx1_machine_v2_machine_init(MachineClass *mc) +static void sx1_machine_v2_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Siemens SX1 (OMAP310) V2"; mc->init =3D sx1_init_v2; } =20 -DEFINE_MACHINE("sx1", sx1_machine_v2_machine_init) +static const TypeInfo sx1_machine_v2_type =3D { + .name =3D MACHINE_TYPE_NAME("sx1"), + .parent =3D TYPE_MACHINE, + .class_init =3D sx1_machine_v2_class_init, +}; =20 -static void sx1_machine_v1_machine_init(MachineClass *mc) +static void sx1_machine_v1_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Siemens SX1 (OMAP310) V1"; mc->init =3D sx1_init_v1; } =20 -DEFINE_MACHINE("sx1-v1", sx1_machine_v1_machine_init) +static const TypeInfo sx1_machine_v1_type =3D { + .name =3D MACHINE_TYPE_NAME("sx1-v1"), + .parent =3D TYPE_MACHINE, + .class_init =3D sx1_machine_v1_class_init, +}; + +static void sx1_machine_init(void) +{ + type_register_static(&sx1_machine_v1_type); + type_register_static(&sx1_machine_v2_type); +} + +machine_init(sx1_machine_init) diff --git a/hw/arm/realview.c b/hw/arm/realview.c index 6c83817..e14828d 100644 --- a/hw/arm/realview.c +++ b/hw/arm/realview.c @@ -399,39 +399,73 @@ static void realview_pbx_a9_init(MachineState *mach= ine) realview_init(machine, BOARD_PBX_A9); } =20 -static void realview_eb_machine_init(MachineClass *mc) +static void realview_eb_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "ARM RealView Emulation Baseboard (ARM926EJ-S)"; mc->init =3D realview_eb_init; mc->block_default_type =3D IF_SCSI; } =20 -DEFINE_MACHINE("realview-eb", realview_eb_machine_init) +static const TypeInfo realview_eb_type =3D { + .name =3D MACHINE_TYPE_NAME("realview-eb"), + .parent =3D TYPE_MACHINE, + .class_init =3D realview_eb_class_init, +}; =20 -static void realview_eb_mpcore_machine_init(MachineClass *mc) +static void realview_eb_mpcore_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "ARM RealView Emulation Baseboard (ARM11MPCore)"; mc->init =3D realview_eb_mpcore_init; mc->block_default_type =3D IF_SCSI; mc->max_cpus =3D 4; } =20 -DEFINE_MACHINE("realview-eb-mpcore", realview_eb_mpcore_machine_init) +static const TypeInfo realview_eb_mpcore_type =3D { + .name =3D MACHINE_TYPE_NAME("realview-eb-mpcore"), + .parent =3D TYPE_MACHINE, + .class_init =3D realview_eb_mpcore_class_init, +}; =20 -static void realview_pb_a8_machine_init(MachineClass *mc) +static void realview_pb_a8_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "ARM RealView Platform Baseboard for Cortex-A8"; mc->init =3D realview_pb_a8_init; } =20 -DEFINE_MACHINE("realview-pb-a8", realview_pb_a8_machine_init) +static const TypeInfo realview_pb_a8_type =3D { + .name =3D MACHINE_TYPE_NAME("realview-pb-a8"), + .parent =3D TYPE_MACHINE, + .class_init =3D realview_pb_a8_class_init, +}; =20 -static void realview_pbx_a9_machine_init(MachineClass *mc) +static void realview_pbx_a9_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "ARM RealView Platform Baseboard Explore for Cortex-A9"= ; mc->init =3D realview_pbx_a9_init; mc->block_default_type =3D IF_SCSI; mc->max_cpus =3D 4; } =20 -DEFINE_MACHINE("realview-pbx-a9", realview_pbx_a9_machine_init) +static const TypeInfo realview_pbx_a9_type =3D { + .name =3D MACHINE_TYPE_NAME("realview-pbx-a9"), + .parent =3D TYPE_MACHINE, + .class_init =3D realview_pbx_a9_class_init, +}; + +static void realview_machine_init(void) +{ + type_register_static(&realview_eb_type); + type_register_static(&realview_eb_mpcore_type); + type_register_static(&realview_pb_a8_type); + type_register_static(&realview_pbx_a9_type); +} + +machine_init(realview_machine_init) diff --git a/hw/arm/spitz.c b/hw/arm/spitz.c index 0f59489..2af03be 100644 --- a/hw/arm/spitz.c +++ b/hw/arm/spitz.c @@ -972,37 +972,71 @@ static void terrier_init(MachineState *machine) spitz_common_init(machine, terrier, 0x33f); } =20 -static void akitapda_machine_init(MachineClass *mc) +static void akitapda_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Akita PDA (PXA270)"; mc->init =3D akita_init; } =20 -DEFINE_MACHINE("akita", akitapda_machine_init) +static const TypeInfo akitapda_type =3D { + .name =3D MACHINE_TYPE_NAME("akita"), + .parent =3D TYPE_MACHINE, + .class_init =3D akitapda_class_init, +}; =20 -static void spitzpda_machine_init(MachineClass *mc) +static void spitzpda_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Spitz PDA (PXA270)"; mc->init =3D spitz_init; } =20 -DEFINE_MACHINE("spitz", spitzpda_machine_init) +static const TypeInfo spitzpda_type =3D { + .name =3D MACHINE_TYPE_NAME("spitz"), + .parent =3D TYPE_MACHINE, + .class_init =3D spitzpda_class_init, +}; =20 -static void borzoipda_machine_init(MachineClass *mc) +static void borzoipda_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Borzoi PDA (PXA270)"; mc->init =3D borzoi_init; } =20 -DEFINE_MACHINE("borzoi", borzoipda_machine_init) +static const TypeInfo borzoipda_type =3D { + .name =3D MACHINE_TYPE_NAME("borzoi"), + .parent =3D TYPE_MACHINE, + .class_init =3D borzoipda_class_init, +}; =20 -static void terrierpda_machine_init(MachineClass *mc) +static void terrierpda_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Terrier PDA (PXA270)"; mc->init =3D terrier_init; } =20 -DEFINE_MACHINE("terrier", terrierpda_machine_init) +static const TypeInfo terrierpda_type =3D { + .name =3D MACHINE_TYPE_NAME("terrier"), + .parent =3D TYPE_MACHINE, + .class_init =3D terrierpda_class_init, +}; + +static void spitz_machine_init(void) +{ + type_register_static(&akitapda_type); + type_register_static(&spitzpda_type); + type_register_static(&borzoipda_type); + type_register_static(&terrierpda_type); +} + +machine_init(spitz_machine_init) =20 static bool is_version_0(void *opaque, int version_id) { diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c index a97d9e3..3d6486f 100644 --- a/hw/arm/stellaris.c +++ b/hw/arm/stellaris.c @@ -1366,21 +1366,41 @@ static void lm3s6965evb_init(MachineState *machin= e) stellaris_init(kernel_filename, cpu_model, &stellaris_boards[1]); } =20 -static void lm3s811evb_machine_init(MachineClass *mc) +static void lm3s811evb_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Stellaris LM3S811EVB"; mc->init =3D lm3s811evb_init; } =20 -DEFINE_MACHINE("lm3s811evb", lm3s811evb_machine_init) +static const TypeInfo lm3s811evb_type =3D { + .name =3D MACHINE_TYPE_NAME("lm3s811evb"), + .parent =3D TYPE_MACHINE, + .class_init =3D lm3s811evb_class_init, +}; =20 -static void lm3s6965evb_machine_init(MachineClass *mc) +static void lm3s6965evb_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Stellaris LM3S6965EVB"; mc->init =3D lm3s6965evb_init; } =20 -DEFINE_MACHINE("lm3s6965evb", lm3s6965evb_machine_init) +static const TypeInfo lm3s6965evb_type =3D { + .name =3D MACHINE_TYPE_NAME("lm3s6965evb"), + .parent =3D TYPE_MACHINE, + .class_init =3D lm3s6965evb_class_init, +}; + +static void stellaris_machine_init(void) +{ + type_register_static(&lm3s811evb_type); + type_register_static(&lm3s6965evb_type); +} + +machine_init(stellaris_machine_init) =20 static void stellaris_i2c_class_init(ObjectClass *klass, void *data) { diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c index 54281f4..912c290 100644 --- a/hw/arm/versatilepb.c +++ b/hw/arm/versatilepb.c @@ -391,23 +391,43 @@ static void vab_init(MachineState *machine) versatile_init(machine, 0x25e); } =20 -static void versatilepb_machine_init(MachineClass *mc) +static void versatilepb_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "ARM Versatile/PB (ARM926EJ-S)"; mc->init =3D vpb_init; mc->block_default_type =3D IF_SCSI; } =20 -DEFINE_MACHINE("versatilepb", versatilepb_machine_init) +static const TypeInfo versatilepb_type =3D { + .name =3D MACHINE_TYPE_NAME("versatilepb"), + .parent =3D TYPE_MACHINE, + .class_init =3D versatilepb_class_init, +}; =20 -static void versatileab_machine_init(MachineClass *mc) +static void versatileab_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "ARM Versatile/AB (ARM926EJ-S)"; mc->init =3D vab_init; mc->block_default_type =3D IF_SCSI; } =20 -DEFINE_MACHINE("versatileab", versatileab_machine_init) +static const TypeInfo versatileab_type =3D { + .name =3D MACHINE_TYPE_NAME("versatileab"), + .parent =3D TYPE_MACHINE, + .class_init =3D versatileab_class_init, +}; + +static void versatile_machine_init(void) +{ + type_register_static(&versatilepb_type); + type_register_static(&versatileab_type); +} + +machine_init(versatile_machine_init) =20 static void vpb_sic_class_init(ObjectClass *klass, void *data) { diff --git a/hw/lm32/lm32_boards.c b/hw/lm32/lm32_boards.c index 04d2066..8e17a82 100644 --- a/hw/lm32/lm32_boards.c +++ b/hw/lm32/lm32_boards.c @@ -292,20 +292,40 @@ static void lm32_uclinux_init(MachineState *machine= ) qemu_register_reset(main_cpu_reset, reset_info); } =20 -static void lm32_evr_machine_init(MachineClass *mc) +static void lm32_evr_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "LatticeMico32 EVR32 eval system"; mc->init =3D lm32_evr_init; mc->is_default =3D 1; } =20 -DEFINE_MACHINE("lm32-evr", lm32_evr_machine_init) +static const TypeInfo lm32_evr_type =3D { + .name =3D MACHINE_TYPE_NAME("lm32-evr"), + .parent =3D TYPE_MACHINE, + .class_init =3D lm32_evr_class_init, +}; =20 -static void lm32_uclinux_machine_init(MachineClass *mc) +static void lm32_uclinux_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "lm32 platform for uClinux and u-boot by Theobroma Syst= ems"; mc->init =3D lm32_uclinux_init; mc->is_default =3D 0; } =20 -DEFINE_MACHINE("lm32-uclinux", lm32_uclinux_machine_init) +static const TypeInfo lm32_uclinux_type =3D { + .name =3D MACHINE_TYPE_NAME("lm32-uclinux"), + .parent =3D TYPE_MACHINE, + .class_init =3D lm32_uclinux_class_init, +}; + +static void lm32_machine_init(void) +{ + type_register_static(&lm32_evr_type); + type_register_static(&lm32_uclinux_type); +} + +machine_init(lm32_machine_init) diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c index d3627ba..1ab885b 100644 --- a/hw/mips/mips_jazz.c +++ b/hw/mips/mips_jazz.c @@ -349,20 +349,40 @@ void mips_pica61_init(MachineState *machine) mips_jazz_init(machine, JAZZ_PICA61); } =20 -static void mips_magnum_machine_init(MachineClass *mc) +static void mips_magnum_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "MIPS Magnum"; mc->init =3D mips_magnum_init; mc->block_default_type =3D IF_SCSI; } =20 -DEFINE_MACHINE("magnum", mips_magnum_machine_init) +static const TypeInfo mips_magnum_type =3D { + .name =3D MACHINE_TYPE_NAME("magnum"), + .parent =3D TYPE_MACHINE, + .class_init =3D mips_magnum_class_init, +}; =20 -static void mips_pica61_machine_init(MachineClass *mc) +static void mips_pica61_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Acer Pica 61"; mc->init =3D mips_pica61_init; mc->block_default_type =3D IF_SCSI; } =20 -DEFINE_MACHINE("pica61", mips_pica61_machine_init) +static const TypeInfo mips_pica61_type =3D { + .name =3D MACHINE_TYPE_NAME("pica61"), + .parent =3D TYPE_MACHINE, + .class_init =3D mips_pica61_class_init, +}; + +static void mips_jazz_machine_init(void) +{ + type_register_static(&mips_magnum_type); + type_register_static(&mips_pica61_type); +} + +machine_init(mips_jazz_machine_init) diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c index 56980bf..ec87587 100644 --- a/hw/ppc/ppc405_boards.c +++ b/hw/ppc/ppc405_boards.c @@ -369,13 +369,19 @@ static void ref405ep_init(MachineState *machine) #endif } =20 -static void ref405ep_machine_init(MachineClass *mc) +static void ref405ep_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "ref405ep"; mc->init =3D ref405ep_init; } =20 -DEFINE_MACHINE("ref405ep", ref405ep_machine_init) +static const TypeInfo ref405ep_type =3D { + .name =3D MACHINE_TYPE_NAME("ref405ep"), + .parent =3D TYPE_MACHINE, + .class_init =3D ref405ep_class_init, +}; =20 /***********************************************************************= ******/ /* AMCC Taihu evaluation board */ @@ -667,10 +673,24 @@ static void taihu_405ep_init(MachineState *machine) #endif } =20 -static void taihu_machine_init(MachineClass *mc) +static void taihu_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "taihu"; mc->init =3D taihu_405ep_init; } =20 -DEFINE_MACHINE("taihu", taihu_machine_init) +static const TypeInfo taihu_type =3D { + .name =3D MACHINE_TYPE_NAME("taihu"), + .parent =3D TYPE_MACHINE, + .class_init =3D taihu_class_init, +}; + +static void ppc405_machine_init(void) +{ + type_register_static(&ref405ep_type); + type_register_static(&taihu_type); +} + +machine_init(ppc405_machine_init) diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c index 092e250..9f1917f 100644 --- a/hw/sparc/sun4m.c +++ b/hw/sparc/sun4m.c @@ -1420,8 +1420,10 @@ static void sbook_init(MachineState *machine) sun4m_hw_init(&sun4m_hwdefs[8], machine); } =20 -static void ss5_machine_init(MachineClass *mc) +static void ss5_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Sun4m platform, SPARCstation 5"; mc->init =3D ss5_init; mc->block_default_type =3D IF_SCSI; @@ -1429,10 +1431,16 @@ static void ss5_machine_init(MachineClass *mc) mc->default_boot_order =3D "c"; } =20 -DEFINE_MACHINE("SS-5", ss5_machine_init) +static const TypeInfo ss5_type =3D { + .name =3D MACHINE_TYPE_NAME("SS-5"), + .parent =3D TYPE_MACHINE, + .class_init =3D ss5_class_init, +}; =20 -static void ss10_machine_init(MachineClass *mc) +static void ss10_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Sun4m platform, SPARCstation 10"; mc->init =3D ss10_init; mc->block_default_type =3D IF_SCSI; @@ -1440,10 +1448,16 @@ static void ss10_machine_init(MachineClass *mc) mc->default_boot_order =3D "c"; } =20 -DEFINE_MACHINE("SS-10", ss10_machine_init) +static const TypeInfo ss10_type =3D { + .name =3D MACHINE_TYPE_NAME("SS-10"), + .parent =3D TYPE_MACHINE, + .class_init =3D ss10_class_init, +}; =20 -static void ss600mp_machine_init(MachineClass *mc) +static void ss600mp_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Sun4m platform, SPARCserver 600MP"; mc->init =3D ss600mp_init; mc->block_default_type =3D IF_SCSI; @@ -1451,10 +1465,16 @@ static void ss600mp_machine_init(MachineClass *mc= ) mc->default_boot_order =3D "c"; } =20 -DEFINE_MACHINE("SS-600MP", ss600mp_machine_init) +static const TypeInfo ss600mp_type =3D { + .name =3D MACHINE_TYPE_NAME("SS-600MP"), + .parent =3D TYPE_MACHINE, + .class_init =3D ss600mp_class_init, +}; =20 -static void ss20_machine_init(MachineClass *mc) +static void ss20_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Sun4m platform, SPARCstation 20"; mc->init =3D ss20_init; mc->block_default_type =3D IF_SCSI; @@ -1462,57 +1482,91 @@ static void ss20_machine_init(MachineClass *mc) mc->default_boot_order =3D "c"; } =20 -DEFINE_MACHINE("SS-20", ss20_machine_init) +static const TypeInfo ss20_type =3D { + .name =3D MACHINE_TYPE_NAME("SS-20"), + .parent =3D TYPE_MACHINE, + .class_init =3D ss20_class_init, +}; =20 -static void voyager_machine_init(MachineClass *mc) +static void voyager_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Sun4m platform, SPARCstation Voyager"; mc->init =3D vger_init; mc->block_default_type =3D IF_SCSI; mc->default_boot_order =3D "c"; } =20 -DEFINE_MACHINE("Voyager", voyager_machine_init) +static const TypeInfo voyager_type =3D { + .name =3D MACHINE_TYPE_NAME("Voyager"), + .parent =3D TYPE_MACHINE, + .class_init =3D voyager_class_init, +}; =20 -static void ss_lx_machine_init(MachineClass *mc) +static void ss_lx_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Sun4m platform, SPARCstation LX"; mc->init =3D ss_lx_init; mc->block_default_type =3D IF_SCSI; mc->default_boot_order =3D "c"; } =20 -DEFINE_MACHINE("LX", ss_lx_machine_init) +static const TypeInfo ss_lx_type =3D { + .name =3D MACHINE_TYPE_NAME("LX"), + .parent =3D TYPE_MACHINE, + .class_init =3D ss_lx_class_init, +}; =20 -static void ss4_machine_init(MachineClass *mc) +static void ss4_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Sun4m platform, SPARCstation 4"; mc->init =3D ss4_init; mc->block_default_type =3D IF_SCSI; mc->default_boot_order =3D "c"; } =20 -DEFINE_MACHINE("SS-4", ss4_machine_init) +static const TypeInfo ss4_type =3D { + .name =3D MACHINE_TYPE_NAME("SS-4"), + .parent =3D TYPE_MACHINE, + .class_init =3D ss4_class_init, +}; =20 -static void scls_machine_init(MachineClass *mc) +static void scls_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Sun4m platform, SPARCClassic"; mc->init =3D scls_init; mc->block_default_type =3D IF_SCSI; mc->default_boot_order =3D "c"; } =20 -DEFINE_MACHINE("SPARCClassic", scls_machine_init) +static const TypeInfo scls_type =3D { + .name =3D MACHINE_TYPE_NAME("SPARCClassic"), + .parent =3D TYPE_MACHINE, + .class_init =3D scls_class_init, +}; =20 -static void sbook_machine_init(MachineClass *mc) +static void sbook_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Sun4m platform, SPARCbook"; mc->init =3D sbook_init; mc->block_default_type =3D IF_SCSI; mc->default_boot_order =3D "c"; } =20 -DEFINE_MACHINE("SPARCbook", sbook_machine_init) +static const TypeInfo sbook_type =3D { + .name =3D MACHINE_TYPE_NAME("SPARCbook"), + .parent =3D TYPE_MACHINE, + .class_init =3D sbook_class_init, +}; =20 static void sun4m_register_types(void) { @@ -1522,4 +1576,18 @@ static void sun4m_register_types(void) type_register_static(&ram_info); } =20 +static void sun4m_machine_init(void) +{ + type_register_static(&ss5_type); + type_register_static(&ss10_type); + type_register_static(&ss600mp_type); + type_register_static(&ss20_type); + type_register_static(&voyager_type); + type_register_static(&ss_lx_type); + type_register_static(&ss4_type); + type_register_static(&scls_type); + type_register_static(&sbook_type); +} + type_init(sun4m_register_types) +machine_init(sun4m_machine_init) diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c index ab43dc6..a6b5957 100644 --- a/hw/sparc64/sun4u.c +++ b/hw/sparc64/sun4u.c @@ -965,8 +965,10 @@ static void niagara_init(MachineState *machine) sun4uv_init(get_system_memory(), machine, &hwdefs[2]); } =20 -static void sun4u_machine_init(MachineClass *mc) +static void sun4u_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Sun4u platform"; mc->init =3D sun4u_init; mc->max_cpus =3D 1; /* XXX for now */ @@ -974,27 +976,43 @@ static void sun4u_machine_init(MachineClass *mc) mc->default_boot_order =3D "c"; } =20 -DEFINE_MACHINE("sun4u", sun4u_machine_init) +static const TypeInfo sun4u_type =3D { + .name =3D MACHINE_TYPE_NAME("sun4u"), + .parent =3D TYPE_MACHINE, + .class_init =3D sun4u_class_init, +}; =20 -static void sun4v_machine_init(MachineClass *mc) +static void sun4v_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Sun4v platform"; mc->init =3D sun4v_init; mc->max_cpus =3D 1; /* XXX for now */ mc->default_boot_order =3D "c"; } =20 -DEFINE_MACHINE("sun4v", sun4v_machine_init) +static const TypeInfo sun4v_type =3D { + .name =3D MACHINE_TYPE_NAME("sun4v"), + .parent =3D TYPE_MACHINE, + .class_init =3D sun4v_class_init, +}; =20 -static void niagara_machine_init(MachineClass *mc) +static void niagara_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "Sun4v platform, Niagara"; mc->init =3D niagara_init; mc->max_cpus =3D 1; /* XXX for now */ mc->default_boot_order =3D "c"; } =20 -DEFINE_MACHINE("Niagara", niagara_machine_init) +static const TypeInfo niagara_type =3D { + .name =3D MACHINE_TYPE_NAME("Niagara"), + .parent =3D TYPE_MACHINE, + .class_init =3D niagara_class_init, +}; =20 static void sun4u_register_types(void) { @@ -1003,4 +1021,12 @@ static void sun4u_register_types(void) type_register_static(&ram_info); } =20 +static void sun4u_machine_init(void) +{ + type_register_static(&sun4u_type); + type_register_static(&sun4v_type); + type_register_static(&niagara_type); +} + type_init(sun4u_register_types) +machine_init(sun4u_machine_init) diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c index d6ddfa1..7aca1cf 100644 --- a/hw/xtensa/xtfpga.c +++ b/hw/xtensa/xtfpga.c @@ -428,38 +428,72 @@ static void xtensa_kc705_init(MachineState *machine= ) lx_init(&kc705_board, machine); } =20 -static void xtensa_lx60_machine_init(MachineClass *mc) +static void xtensa_lx60_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "lx60 EVB (" XTENSA_DEFAULT_CPU_MODEL ")"; mc->init =3D xtensa_lx60_init; mc->max_cpus =3D 4; } =20 -DEFINE_MACHINE("lx60", xtensa_lx60_machine_init) +static const TypeInfo xtensa_lx60_type =3D { + .name =3D MACHINE_TYPE_NAME("lx60"), + .parent =3D TYPE_MACHINE, + .class_init =3D xtensa_lx60_class_init, +}; =20 -static void xtensa_lx200_machine_init(MachineClass *mc) +static void xtensa_lx200_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "lx200 EVB (" XTENSA_DEFAULT_CPU_MODEL ")"; mc->init =3D xtensa_lx200_init; mc->max_cpus =3D 4; } =20 -DEFINE_MACHINE("lx200", xtensa_lx200_machine_init) +static const TypeInfo xtensa_lx200_type =3D { + .name =3D MACHINE_TYPE_NAME("lx200"), + .parent =3D TYPE_MACHINE, + .class_init =3D xtensa_lx200_class_init, +}; =20 -static void xtensa_ml605_machine_init(MachineClass *mc) +static void xtensa_ml605_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "ml605 EVB (" XTENSA_DEFAULT_CPU_MODEL ")"; mc->init =3D xtensa_ml605_init; mc->max_cpus =3D 4; } =20 -DEFINE_MACHINE("ml605", xtensa_ml605_machine_init) +static const TypeInfo xtensa_ml605_type =3D { + .name =3D MACHINE_TYPE_NAME("ml605"), + .parent =3D TYPE_MACHINE, + .class_init =3D xtensa_ml605_class_init, +}; =20 -static void xtensa_kc705_machine_init(MachineClass *mc) +static void xtensa_kc705_class_init(ObjectClass *oc, void *data) { + MachineClass *mc =3D MACHINE_CLASS(oc); + mc->desc =3D "kc705 EVB (" XTENSA_DEFAULT_CPU_MODEL ")"; mc->init =3D xtensa_kc705_init; mc->max_cpus =3D 4; } =20 -DEFINE_MACHINE("kc705", xtensa_kc705_machine_init) +static const TypeInfo xtensa_kc705_type =3D { + .name =3D MACHINE_TYPE_NAME("kc705"), + .parent =3D TYPE_MACHINE, + .class_init =3D xtensa_kc705_class_init, +}; + +static void xtensa_lx_machines_init(void) +{ + type_register_static(&xtensa_lx60_type); + type_register_static(&xtensa_lx200_type); + type_register_static(&xtensa_ml605_type); + type_register_static(&xtensa_kc705_type); +} + +machine_init(xtensa_lx_machines_init) --=20 2.1.4