qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 11/12] cmdline: implement -nodefaults with qemuopts


From: Paolo Bonzini
Subject: [Qemu-devel] [PATCH 11/12] cmdline: implement -nodefaults with qemuopts
Date: Tue, 20 Mar 2012 09:01:37 +0100

This becomes -machine default_devices.

Signed-off-by: Paolo Bonzini <address@hidden>
---
 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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]