mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
hw/loongarch/virt: Define versioned virt machine
Add versioned virt machine started from QEMU 11.1 Signed-off-by: Bibo Mao <maobibo@loongson.cn> Reviewed-by: Song Gao <gaosong@loongson.cn> Signed-off-by: Song Gao <gaosong@loongson.cn>
This commit is contained in:
@@ -1535,9 +1535,41 @@ static void virt_class_init(ObjectClass *oc, const void *data)
|
||||
"for PCI MMIO");
|
||||
}
|
||||
|
||||
#define DEFINE_VIRT_MACHINE_VERSION(latest, ...) \
|
||||
static void MACHINE_VER_SYM(class_init, virt, __VA_ARGS__)( \
|
||||
ObjectClass *oc, \
|
||||
const void *data) \
|
||||
{ \
|
||||
MachineClass *mc = MACHINE_CLASS(oc); \
|
||||
MACHINE_VER_SYM(options, virt, __VA_ARGS__)(mc); \
|
||||
mc->desc = "QEMU " MACHINE_VER_STR(__VA_ARGS__) " LoongArch Virtual Machine"; \
|
||||
MACHINE_VER_DEPRECATION(__VA_ARGS__); \
|
||||
if (latest) { \
|
||||
mc->alias = "virt"; \
|
||||
} \
|
||||
} \
|
||||
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) \
|
||||
{ \
|
||||
MACHINE_VER_DELETION(__VA_ARGS__); \
|
||||
type_register_static(&MACHINE_VER_SYM(info, virt, __VA_ARGS__)); \
|
||||
} \
|
||||
type_init(MACHINE_VER_SYM(register, virt, __VA_ARGS__));
|
||||
|
||||
#define DEFINE_VIRT_MACHINE_AS_LATEST(major, minor) \
|
||||
DEFINE_VIRT_MACHINE_VERSION(true, major, minor)
|
||||
#define DEFINE_VIRT_MACHINE(major, minor) \
|
||||
DEFINE_VIRT_MACHINE_VERSION(false, major, minor)
|
||||
|
||||
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,
|
||||
@@ -1553,3 +1585,8 @@ static void machvirt_machine_init(void)
|
||||
}
|
||||
|
||||
type_init(machvirt_machine_init);
|
||||
|
||||
static void virt_machine_11_1_options(MachineClass *mc)
|
||||
{
|
||||
}
|
||||
DEFINE_VIRT_MACHINE_AS_LATEST(11, 1)
|
||||
|
||||
Reference in New Issue
Block a user