Set TYPE_LOONGARCH_VIRT_MACHINE to MACHINE_TYPE_NAME("loongarch-virt")
so LoongArch 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/loongarch/virt.c | 45 ++++++++++++++++++++----------------- include/hw/loongarch/virt.h | 5 ++++- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/hw/loongarch/virt.c b/hw/loongarch/virt.c index 9c5371af9de..5ca992a5ac7 100644 --- a/hw/loongarch/virt.c +++ b/hw/loongarch/virt.c @@ -1543,21 +1543,24 @@ static void virt_class_init(ObjectClass *oc, const void *data) MACHINE_VER_SYM(options, virt, __VA_ARGS__)(mc); \ mc->desc = "QEMU " MACHINE_VER_STR(__VA_ARGS__) " LoongArch Virtual Machine"; \ MACHINE_VER_DEPRECATION(__VA_ARGS__); \ + machine_class_set_name(mc, "virt-" MACHINE_VER_STR(__VA_ARGS__)); \ if (latest) { \ mc->alias = "virt"; \ mc->is_default = true; \ } \ } \ - static const TypeInfo MACHINE_VER_SYM(info, virt, __VA_ARGS__) = \ - { \ - .name = MACHINE_VER_TYPE_NAME("virt", __VA_ARGS__), \ - .parent = TYPE_LOONGARCH_VIRT_MACHINE, \ - .class_init = MACHINE_VER_SYM(class_init, virt, __VA_ARGS__), \ - }; \ static void MACHINE_VER_SYM(register, virt, __VA_ARGS__)(void) \ { \ + const TypeInfo virt_machine_info = \ + { \ + .name = target_combined_binary() ? \ + MACHINE_VER_TYPE_NAME("loongarch-virt", __VA_ARGS__) : \ + MACHINE_VER_TYPE_NAME("virt", __VA_ARGS__), \ + .parent = TYPE_LOONGARCH_VIRT_MACHINE, \ + .class_init = MACHINE_VER_SYM(class_init, virt, __VA_ARGS__), \ + }; \ MACHINE_VER_DELETION(__VA_ARGS__); \ - type_register_static(&MACHINE_VER_SYM(info, virt, __VA_ARGS__)); \ + type_register_static(&virt_machine_info); \ } \ type_init(MACHINE_VER_SYM(register, virt, __VA_ARGS__)); @@ -1579,22 +1582,22 @@ static void virt_instance_finalize(Object *obj) g_free(lvms->oem_table_id); } -static const TypeInfo virt_machine_info = { - .name = TYPE_LOONGARCH_VIRT_MACHINE, - .parent = TYPE_MACHINE, - .abstract = true, - .instance_size = sizeof(LoongArchVirtMachineState), - .class_init = virt_class_init, - .instance_init = virt_initfn, - .instance_finalize = virt_instance_finalize, - .interfaces = (InterfaceInfo[]) { - { TYPE_HOTPLUG_HANDLER }, - { } - }, -}; - static void machvirt_machine_init(void) { + const TypeInfo virt_machine_info = { + .name = TYPE_LOONGARCH_VIRT_MACHINE, + .parent = TYPE_MACHINE, + .abstract = true, + .instance_size = sizeof(LoongArchVirtMachineState), + .class_init = virt_class_init, + .instance_init = virt_initfn, + .instance_finalize = virt_instance_finalize, + .interfaces = (InterfaceInfo[]) { + { TYPE_HOTPLUG_HANDLER }, + { } + }, + }; + type_register_static(&virt_machine_info); } diff --git a/include/hw/loongarch/virt.h b/include/hw/loongarch/virt.h index d39a9bbf5dd..9a5f6486c0f 100644 --- a/include/hw/loongarch/virt.h +++ b/include/hw/loongarch/virt.h @@ -9,6 +9,7 @@ #define HW_LOONGARCH_H #include "hw/core/boards.h" +#include "qemu/target-info.h" #include "qemu/queue.h" #include "hw/block/flash.h" #include "hw/loongarch/boot.h" @@ -130,7 +131,9 @@ struct LoongArchVirtMachineState { bool highmem_mmio; }; -#define TYPE_LOONGARCH_VIRT_MACHINE MACHINE_TYPE_NAME("virt") +#define TYPE_LOONGARCH_VIRT_MACHINE \ + (target_combined_binary() ? MACHINE_TYPE_NAME("loongarch-virt") : \ + MACHINE_TYPE_NAME("virt")) OBJECT_DECLARE_SIMPLE_TYPE(LoongArchVirtMachineState, LOONGARCH_VIRT_MACHINE) void virt_acpi_setup(LoongArchVirtMachineState *lvms); void virt_fdt_setup(LoongArchVirtMachineState *lvms); -- 2.55.0.windows.3
