Peter Maydell <peter.mayd...@linaro.org> writes: > On 25 October 2012 15:38, Avik Sil <avik...@linux.vnet.ibm.com> wrote: >> @@ -171,6 +171,7 @@ static QEMUMachine clipper_machine = { >> .init = clipper_init, >> .max_cpus = 4, >> .is_default = 1, >> + .default_machine_opts = DEFAULT_BOOT_ORDER, >> }; > >> @@ -86,6 +86,7 @@ static QEMUMachine an5206_machine = { >> .name = "an5206", >> .desc = "Arnewsh 5206", >> .init = an5206_init, >> + .default_machine_opts = DEFAULT_BOOT_ORDER, >> }; > >> +++ b/hw/axis_dev88.c >> @@ -355,6 +355,7 @@ static QEMUMachine axisdev88_machine = { >> .desc = "AXIS devboard 88", >> .init = axisdev88_init, >> .is_default = 1, >> + .default_machine_opts = DEFAULT_BOOT_ORDER, >> }; > > The thing about a default is that you shouldn't have to > explicitly say it in every QEMUMachine struct... Please > make the code handle a NULL in the struct in a way > that means you don't need to touch every board.
I hate to spin a lot on a touch everything patch, but I also agree that this is the wrong approach. I think there are two reasonable approaches to this. One would be a macro to provide default initialization. Something along the lines of: #define DEFAULT_MACHINE_OPTIONS \ .boot_order = "cad" And then: static QEMUMachine axisdev88_machine = { DEFAULT_MACHINE_OPTIONS, ... }; static QEMUMachine pseries_machine = { DEFAULT_MACHINE_OPTIONS, /* no default boot order so we can detect absence of boot option */ .boot_order = NULL, }; Baking this into .default_machines_opts is too much overloading. The other approach to this would be: static QEMUMachine pseries_machine = { .no_boot_order = 1, }; Which I think is what Peter is suggesting. I'm not a huge fan of this because it's backwards logic but we already do this for a bunch of other things so I can't object too strongly to it. Regards, Anthony Liguori > > -- PMM