Register the board as xtensa-virt so Xtensa virt no longer collides with other virt-machine types in one process. Keep the -M / help / migration name as virt via machine_class_set_name().
Signed-off-by: Yonggang Luo <[email protected]> Reviewed-by: Marc-André Lureau <[email protected]> Reviewed-by: Zhao Liu <[email protected]> --- hw/xtensa/virt.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/hw/xtensa/virt.c b/hw/xtensa/virt.c index 271f06e0953..d3c51f8158a 100644 --- a/hw/xtensa/virt.c +++ b/hw/xtensa/virt.c @@ -26,6 +26,7 @@ */ #include "qemu/osdep.h" +#include "qemu/target-info.h" #include "qapi/error.h" #include "system/reset.h" #include "hw/core/boards.h" @@ -118,10 +119,29 @@ static void xtensa_virt_init(MachineState *machine) static void xtensa_virt_machine_init(MachineClass *mc) { mc->desc = "virt machine (" XTENSA_DEFAULT_CPU_MODEL ")"; + machine_class_set_name(mc, "virt"); mc->init = xtensa_virt_init; mc->max_cpus = 32; mc->default_cpu_type = XTENSA_DEFAULT_CPU_TYPE; mc->default_nic = "virtio-net-pci"; } -DEFINE_MACHINE("virt", xtensa_virt_machine_init) +static void xtensa_virt_machine_class_init(ObjectClass *oc, + const void *data) +{ + xtensa_virt_machine_init(MACHINE_CLASS(oc)); +} + +static void xtensa_virt_machine_register_types(void) +{ + const TypeInfo xtensa_virt_machine_typeinfo = { + .name = target_combined_binary() ? MACHINE_TYPE_NAME("xtensa-virt") : + MACHINE_TYPE_NAME("virt"), + .parent = TYPE_MACHINE, + .class_init = xtensa_virt_machine_class_init, + .instance_size = sizeof(MachineState), + }; + type_register_static(&xtensa_virt_machine_typeinfo); +} + +type_init(xtensa_virt_machine_register_types) -- 2.55.0.windows.3
