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:
parent
42a4700bb9
commit
6d06b1e3f6
3 changed files with 17 additions and 1 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue