Message ID | 20201027182144.3315885-21-pbonzini@redhat.com |
---|---|
State | New |
Headers | show |
Series | cleanup qemu_init and make sense of command line processing | expand |
On Tue, 27 Oct 2020 14:21:35 -0400 Paolo Bonzini <pbonzini@redhat.com> wrote: > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> > --- > softmmu/vl.c | 66 +++++++++++++++++++++++++++++----------------------- > 1 file changed, 37 insertions(+), 29 deletions(-) > > diff --git a/softmmu/vl.c b/softmmu/vl.c > index 38ad3cc895..9a3c92387e 100644 > --- a/softmmu/vl.c > +++ b/softmmu/vl.c > @@ -2700,6 +2700,41 @@ static bool object_create_early(const char *type, QemuOpts *opts) > return true; > } > > +static void qemu_apply_machine_options(void) > +{ > + MachineClass *machine_class = MACHINE_GET_CLASS(current_machine); > + QemuOpts *machine_opts = qemu_get_machine_opts(); > + QemuOpts *opts; > + > + qemu_opt_foreach(machine_opts, machine_set_property, current_machine, > + &error_fatal); > + current_machine->ram_size = ram_size; > + current_machine->maxram_size = maxram_size; > + current_machine->ram_slots = ram_slots; > + > + opts = qemu_opts_find(qemu_find_opts("boot-opts"), NULL); > + if (opts) { > + boot_order = qemu_opt_get(opts, "order"); > + if (boot_order) { > + validate_bootdevices(boot_order, &error_fatal); > + } > + > + boot_once = qemu_opt_get(opts, "once"); > + if (boot_once) { > + validate_bootdevices(boot_once, &error_fatal); > + } > + > + boot_menu = qemu_opt_get_bool(opts, "menu", boot_menu); > + boot_strict = qemu_opt_get_bool(opts, "strict", false); > + } > + > + if (!boot_order) { > + boot_order = machine_class->default_boot_order; > + } > + > + current_machine->boot_order = boot_order; > +} > + > static void qemu_create_early_backends(void) > { > MachineClass *machine_class = MACHINE_GET_CLASS(current_machine); > @@ -3455,7 +3490,7 @@ static void qemu_machine_creation_done(void) > > void qemu_init(int argc, char **argv, char **envp) > { > - QemuOpts *opts, *machine_opts; > + QemuOpts *opts; > QemuOpts *icount_opts = NULL, *accel_opts = NULL; > QemuOptsList *olist; > int optind; > @@ -4397,12 +4432,7 @@ void qemu_init(int argc, char **argv, char **envp) > qemu_create_default_devices(); > qemu_create_early_backends(); > > - machine_opts = qemu_get_machine_opts(); > - qemu_opt_foreach(machine_opts, machine_set_property, current_machine, > - &error_fatal); > - current_machine->ram_size = ram_size; > - current_machine->maxram_size = maxram_size; > - current_machine->ram_slots = ram_slots; > + qemu_apply_machine_options(); > > /* > * Note: uses machine properties such as kernel-irqchip, must run > @@ -4438,30 +4468,8 @@ void qemu_init(int argc, char **argv, char **envp) > */ > migration_object_init(); > > - opts = qemu_opts_find(qemu_find_opts("boot-opts"), NULL); > - if (opts) { > - boot_order = qemu_opt_get(opts, "order"); > - if (boot_order) { > - validate_bootdevices(boot_order, &error_fatal); > - } > - > - boot_once = qemu_opt_get(opts, "once"); > - if (boot_once) { > - validate_bootdevices(boot_once, &error_fatal); > - } > - > - boot_menu = qemu_opt_get_bool(opts, "menu", boot_menu); > - boot_strict = qemu_opt_get_bool(opts, "strict", false); > - } > - > - if (!boot_order) { > - boot_order = machine_class->default_boot_order; > - } > - > qemu_create_late_backends(); > > - current_machine->boot_order = boot_order; > - > /* parse features once if machine provides default cpu_type */ > current_machine->cpu_type = machine_class->default_cpu_type; > if (cpu_option) {
diff --git a/softmmu/vl.c b/softmmu/vl.c index 38ad3cc895..9a3c92387e 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -2700,6 +2700,41 @@ static bool object_create_early(const char *type, QemuOpts *opts) return true; } +static void qemu_apply_machine_options(void) +{ + MachineClass *machine_class = MACHINE_GET_CLASS(current_machine); + QemuOpts *machine_opts = qemu_get_machine_opts(); + QemuOpts *opts; + + qemu_opt_foreach(machine_opts, machine_set_property, current_machine, + &error_fatal); + current_machine->ram_size = ram_size; + current_machine->maxram_size = maxram_size; + current_machine->ram_slots = ram_slots; + + opts = qemu_opts_find(qemu_find_opts("boot-opts"), NULL); + if (opts) { + boot_order = qemu_opt_get(opts, "order"); + if (boot_order) { + validate_bootdevices(boot_order, &error_fatal); + } + + boot_once = qemu_opt_get(opts, "once"); + if (boot_once) { + validate_bootdevices(boot_once, &error_fatal); + } + + boot_menu = qemu_opt_get_bool(opts, "menu", boot_menu); + boot_strict = qemu_opt_get_bool(opts, "strict", false); + } + + if (!boot_order) { + boot_order = machine_class->default_boot_order; + } + + current_machine->boot_order = boot_order; +} + static void qemu_create_early_backends(void) { MachineClass *machine_class = MACHINE_GET_CLASS(current_machine); @@ -3455,7 +3490,7 @@ static void qemu_machine_creation_done(void) void qemu_init(int argc, char **argv, char **envp) { - QemuOpts *opts, *machine_opts; + QemuOpts *opts; QemuOpts *icount_opts = NULL, *accel_opts = NULL; QemuOptsList *olist; int optind; @@ -4397,12 +4432,7 @@ void qemu_init(int argc, char **argv, char **envp) qemu_create_default_devices(); qemu_create_early_backends(); - machine_opts = qemu_get_machine_opts(); - qemu_opt_foreach(machine_opts, machine_set_property, current_machine, - &error_fatal); - current_machine->ram_size = ram_size; - current_machine->maxram_size = maxram_size; - current_machine->ram_slots = ram_slots; + qemu_apply_machine_options(); /* * Note: uses machine properties such as kernel-irqchip, must run @@ -4438,30 +4468,8 @@ void qemu_init(int argc, char **argv, char **envp) */ migration_object_init(); - opts = qemu_opts_find(qemu_find_opts("boot-opts"), NULL); - if (opts) { - boot_order = qemu_opt_get(opts, "order"); - if (boot_order) { - validate_bootdevices(boot_order, &error_fatal); - } - - boot_once = qemu_opt_get(opts, "once"); - if (boot_once) { - validate_bootdevices(boot_once, &error_fatal); - } - - boot_menu = qemu_opt_get_bool(opts, "menu", boot_menu); - boot_strict = qemu_opt_get_bool(opts, "strict", false); - } - - if (!boot_order) { - boot_order = machine_class->default_boot_order; - } - qemu_create_late_backends(); - current_machine->boot_order = boot_order; - /* parse features once if machine provides default cpu_type */ current_machine->cpu_type = machine_class->default_cpu_type; if (cpu_option) {
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> --- softmmu/vl.c | 66 +++++++++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 29 deletions(-)