This becomes -machine default_devices. Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- qemu-config.c | 4 ++++ vl.c | 40 ++++++++++++++++++---------------------- 2 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/qemu-config.c b/qemu-config.c index f5cf56b..6e97ff6 100644 --- a/qemu-config.c +++ b/qemu-config.c @@ -560,6 +560,10 @@ static QemuOptsList qemu_machine_opts = { .type = QEMU_OPT_STRING, .help = "accelerator list", }, { + .name = "default_devices", + .type = QEMU_OPT_BOOL, + .help = "create default devices", + }, { .name = "autostart", .type = QEMU_OPT_BOOL, .help = "start machine immediately", diff --git a/vl.c b/vl.c index b485f4c..aa324ed 100644 --- a/vl.c +++ b/vl.c @@ -3075,15 +3075,7 @@ int main(int argc, char **argv, char **envp) incoming = optarg; break; case QEMU_OPTION_nodefaults: - default_serial = 0; - default_parallel = 0; - default_virtcon = 0; - default_monitor = 0; - default_net = 0; - default_floppy = 0; - default_cdrom = 0; - default_sdcard = 0; - default_vga = 0; + qemu_opts_set(qemu_find_opts("machine"), 0, "default_devices", "off"); break; case QEMU_OPTION_xen_domid: if (!(xen_available())) { @@ -3243,26 +3235,30 @@ int main(int argc, char **argv, char **envp) machine->default_machine_opts, 0); } - qemu_opts_foreach(qemu_find_opts("device"), default_driver_check, NULL, 0); - qemu_opts_foreach(qemu_find_opts("global"), default_driver_check, NULL, 0); + if (qemu_opt_get_bool(machine_opts, "default_devices", true)) { + qemu_opts_foreach(qemu_find_opts("device"), default_driver_check, NULL, 0); + qemu_opts_foreach(qemu_find_opts("global"), default_driver_check, NULL, 0); + + default_serial &= !machine->no_serial; + default_parallel &= !machine->no_parallel; + default_virtcon &= machine->use_virtcon; + default_floppy &= !machine->no_floppy; + default_cdrom &= !machine->no_cdrom; + default_sdcard &= !machine->no_sdcard; - if (machine->no_serial) { + /* No need for machine->no_vga. Boards can simply ignore the + * vga_interface_type variable (most will, indeed). + */ + } else { default_serial = 0; - } - if (machine->no_parallel) { default_parallel = 0; - } - if (!machine->use_virtcon) { default_virtcon = 0; - } - if (machine->no_floppy) { + default_monitor = 0; + default_net = 0; default_floppy = 0; - } - if (machine->no_cdrom) { default_cdrom = 0; - } - if (machine->no_sdcard) { default_sdcard = 0; + default_vga = 0; } if (display_type == DT_NOGRAPHIC) { -- 1.7.7.6