While DEFINE_MACHINE() is a succinct macro, it doesn't allow registering QOM interfaces to the defined machine. Convert to the generic DEFINE_TYPES() in preparation to register interfaces.
Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org> --- hw/arm/imx25_pdk.c | 14 ++++++++++++-- hw/arm/imx8mp-evk.c | 15 +++++++++++++-- hw/arm/mcimx6ul-evk.c | 15 +++++++++++++-- hw/arm/mcimx7d-sabre.c | 15 +++++++++++++-- hw/arm/sabrelite.c | 14 ++++++++++++-- 5 files changed, 63 insertions(+), 10 deletions(-) diff --git a/hw/arm/imx25_pdk.c b/hw/arm/imx25_pdk.c index e95ea5e4e18..a90def7f1a2 100644 --- a/hw/arm/imx25_pdk.c +++ b/hw/arm/imx25_pdk.c @@ -141,8 +141,10 @@ static void imx25_pdk_init(MachineState *machine) } } -static void imx25_pdk_machine_init(MachineClass *mc) +static void imx25_pdk_machine_class_init(ObjectClass *oc, void *data) { + MachineClass *mc = MACHINE_CLASS(oc); + mc->desc = "ARM i.MX25 PDK board (ARM926)"; mc->init = imx25_pdk_init; mc->ignore_memory_transaction_failures = true; @@ -150,4 +152,12 @@ static void imx25_pdk_machine_init(MachineClass *mc) mc->auto_create_sdcard = true; } -DEFINE_MACHINE("imx25-pdk", imx25_pdk_machine_init) +static const TypeInfo imx25_machine_types[] = { + { + .name = MACHINE_TYPE_NAME("imx25-pdk"), + .parent = TYPE_MACHINE, + .class_init = imx25_pdk_machine_class_init, + }, +}; + +DEFINE_TYPES(imx25_machine_types) diff --git a/hw/arm/imx8mp-evk.c b/hw/arm/imx8mp-evk.c index 967258e6484..c7d87d99230 100644 --- a/hw/arm/imx8mp-evk.c +++ b/hw/arm/imx8mp-evk.c @@ -64,11 +64,22 @@ static void imx8mp_evk_init(MachineState *machine) } } -static void imx8mp_evk_machine_init(MachineClass *mc) +static void imx8mp_evk_machine_class_init(ObjectClass *oc, void *data) { + MachineClass *mc = MACHINE_CLASS(oc); + mc->desc = "NXP i.MX 8M Plus EVK Board"; mc->init = imx8mp_evk_init; mc->max_cpus = FSL_IMX8MP_NUM_CPUS; mc->default_ram_id = "imx8mp-evk.ram"; } -DEFINE_MACHINE("imx8mp-evk", imx8mp_evk_machine_init) + +static const TypeInfo imx8_machine_types[] = { + { + .name = MACHINE_TYPE_NAME("imx8mp-evk"), + .parent = TYPE_MACHINE, + .class_init = imx8mp_evk_machine_class_init, + }, +}; + +DEFINE_TYPES(imx8_machine_types) diff --git a/hw/arm/mcimx6ul-evk.c b/hw/arm/mcimx6ul-evk.c index 86982cb0772..d947836d2be 100644 --- a/hw/arm/mcimx6ul-evk.c +++ b/hw/arm/mcimx6ul-evk.c @@ -68,12 +68,23 @@ static void mcimx6ul_evk_init(MachineState *machine) } } -static void mcimx6ul_evk_machine_init(MachineClass *mc) +static void mcimx6ul_evk_machine_class_init(ObjectClass *oc, void *data) { + MachineClass *mc = MACHINE_CLASS(oc); + mc->desc = "Freescale i.MX6UL Evaluation Kit (Cortex-A7)"; mc->init = mcimx6ul_evk_init; mc->max_cpus = FSL_IMX6UL_NUM_CPUS; mc->default_ram_id = "mcimx6ul-evk.ram"; mc->auto_create_sdcard = true; } -DEFINE_MACHINE("mcimx6ul-evk", mcimx6ul_evk_machine_init) + +static const TypeInfo imx6_machine_types[] = { + { + .name = MACHINE_TYPE_NAME("mcimx6ul-evk"), + .parent = TYPE_MACHINE, + .class_init = mcimx6ul_evk_machine_class_init, + }, +}; + +DEFINE_TYPES(imx6_machine_types) diff --git a/hw/arm/mcimx7d-sabre.c b/hw/arm/mcimx7d-sabre.c index 33119610113..f5dc9c211dd 100644 --- a/hw/arm/mcimx7d-sabre.c +++ b/hw/arm/mcimx7d-sabre.c @@ -68,12 +68,23 @@ static void mcimx7d_sabre_init(MachineState *machine) } } -static void mcimx7d_sabre_machine_init(MachineClass *mc) +static void mcimx7d_sabre_machine_class_init(ObjectClass *oc, void *data) { + MachineClass *mc = MACHINE_CLASS(oc); + mc->desc = "Freescale i.MX7 DUAL SABRE (Cortex-A7)"; mc->init = mcimx7d_sabre_init; mc->max_cpus = FSL_IMX7_NUM_CPUS; mc->default_ram_id = "mcimx7d-sabre.ram"; mc->auto_create_sdcard = true; } -DEFINE_MACHINE("mcimx7d-sabre", mcimx7d_sabre_machine_init) + +static const TypeInfo imx7_machine_types[] = { + { + .name = MACHINE_TYPE_NAME("mcimx7d-sabre"), + .parent = TYPE_MACHINE, + .class_init = mcimx7d_sabre_machine_class_init, + }, +}; + +DEFINE_TYPES(imx7_machine_types) diff --git a/hw/arm/sabrelite.c b/hw/arm/sabrelite.c index df60d47c6fd..ea59ba301e7 100644 --- a/hw/arm/sabrelite.c +++ b/hw/arm/sabrelite.c @@ -103,8 +103,10 @@ static void sabrelite_init(MachineState *machine) } } -static void sabrelite_machine_init(MachineClass *mc) +static void sabrelite_machine_class_init(ObjectClass *oc, void *data) { + MachineClass *mc = MACHINE_CLASS(oc); + mc->desc = "Freescale i.MX6 Quad SABRE Lite Board (Cortex-A9)"; mc->init = sabrelite_init; mc->max_cpus = FSL_IMX6_NUM_CPUS; @@ -113,4 +115,12 @@ static void sabrelite_machine_init(MachineClass *mc) mc->auto_create_sdcard = true; } -DEFINE_MACHINE("sabrelite", sabrelite_machine_init) +static const TypeInfo sabrelite_machine_types[] = { + { + .name = MACHINE_TYPE_NAME("sabrelite"), + .parent = TYPE_MACHINE, + .class_init = sabrelite_machine_class_init, + }, +}; + +DEFINE_TYPES(sabrelite_machine_types) -- 2.47.1