mirror of
https://github.com/izzy2lost/xemu.git
synced 2026-07-06 00:20:22 -07:00
hw/core: Introduce MachineClass::get_default_cpu_type() helper
MachineClass::get_default_cpu_type() runs once the machine is created, being able to evaluate runtime checks; it returns the machine default CPU type. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Message-Id: <20251020221508.67413-7-philmd@linaro.org>
This commit is contained in:
@@ -1556,6 +1556,16 @@ const char *machine_class_default_cpu_type(MachineClass *mc)
|
||||
return mc->default_cpu_type;
|
||||
}
|
||||
|
||||
const char *machine_default_cpu_type(const MachineState *ms)
|
||||
{
|
||||
MachineClass *mc = MACHINE_GET_CLASS(ms);
|
||||
|
||||
if (mc->get_default_cpu_type) {
|
||||
return mc->get_default_cpu_type(ms);
|
||||
}
|
||||
return machine_class_default_cpu_type(mc);
|
||||
}
|
||||
|
||||
static bool is_cpu_type_supported(const MachineState *machine, Error **errp)
|
||||
{
|
||||
MachineClass *mc = MACHINE_GET_CLASS(machine);
|
||||
|
||||
@@ -25,6 +25,11 @@ OBJECT_DECLARE_TYPE(MachineState, MachineClass, MACHINE)
|
||||
|
||||
extern MachineState *current_machine;
|
||||
|
||||
/**
|
||||
* machine_default_cpu_type: Return the machine default CPU type.
|
||||
* @ms: Machine state
|
||||
*/
|
||||
const char *machine_default_cpu_type(const MachineState *ms);
|
||||
/**
|
||||
* machine_class_default_cpu_type: Return the machine default CPU type.
|
||||
* @mc: Machine class
|
||||
@@ -303,6 +308,7 @@ struct MachineClass {
|
||||
int numa_mem_align_shift;
|
||||
const char * const *valid_cpu_types;
|
||||
GPtrArray *(*get_valid_cpu_types)(const MachineState *ms);
|
||||
const char *(*get_default_cpu_type)(const MachineState *ms);
|
||||
strList *allowed_dynamic_sysbus_devices;
|
||||
bool auto_enable_numa_with_memhp;
|
||||
bool auto_enable_numa_with_memdev;
|
||||
|
||||
+1
-1
@@ -3817,7 +3817,7 @@ void qemu_init(int argc, char **argv)
|
||||
migration_object_init();
|
||||
|
||||
/* parse features once if machine provides default cpu_type */
|
||||
current_machine->cpu_type = machine_class_default_cpu_type(machine_class);
|
||||
current_machine->cpu_type = machine_default_cpu_type(current_machine);
|
||||
if (cpu_option) {
|
||||
current_machine->cpu_type = parse_cpu_option(cpu_option);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user