[libvirt] [PATCH 4/5] implement -no-user-config command-line option

Eduardo Habkost ehabkost at redhat.com
Wed Apr 18 20:02:39 UTC 2012


Signed-off-by: Eduardo Habkost <ehabkost at redhat.com>
---
 arch_init.c     |   10 +++++++---
 arch_init.h     |    2 +-
 qemu-options.hx |   16 +++++++++++++---
 vl.c            |    6 +++++-
 4 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/arch_init.c b/arch_init.c
index 62332e9..c5fc00f 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -114,19 +114,23 @@ const uint32_t arch_type = QEMU_ARCH;
 
 static struct defconfig_file {
     const char *filename;
+    /* If non-zero, this is a user config file (disabled by -no-user-config) */
+    int userconfig;
 } default_config_files[] = {
-    { CONFIG_QEMU_CONFDIR "/qemu.conf" },
-    { CONFIG_QEMU_CONFDIR "/target-" TARGET_ARCH ".conf" },
+    { CONFIG_QEMU_CONFDIR "/qemu.conf",                   1 },
+    { CONFIG_QEMU_CONFDIR "/target-" TARGET_ARCH ".conf", 1 },
     { NULL }, /* end of list */
 };
 
 
-int qemu_read_default_config_files(void)
+int qemu_read_default_config_files(int userconfig)
 {
     int ret;
     struct defconfig_file *f;
 
     for (f = default_config_files; f->filename; f++) {
+        if (!userconfig && f->userconfig)
+            continue;
         ret = qemu_read_config_file(f->filename);
         if (ret < 0 && ret != -ENOENT) {
             return ret;
diff --git a/arch_init.h b/arch_init.h
index 495871b..07510cf 100644
--- a/arch_init.h
+++ b/arch_init.h
@@ -32,6 +32,6 @@ int xen_available(void);
 
 /* Read default Qemu config files
  */
-int qemu_read_default_config_files(void);
+int qemu_read_default_config_files(int userconfig);
 
 #endif
diff --git a/qemu-options.hx b/qemu-options.hx
index a169792..7d0b054 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -2685,9 +2685,19 @@ DEF("nodefconfig", 0, QEMU_OPTION_nodefconfig,
 STEXI
 @item -nodefconfig
 @findex -nodefconfig
-Normally QEMU loads a configuration file from @var{sysconfdir}/qemu.conf and
- at var{sysconfdir}/target- at var{ARCH}.conf on startup.  The @code{-nodefconfig}
-option will prevent QEMU from loading these configuration files at startup.
+Normally QEMU loads configuration files from @var{sysconfdir} and @var{datadir} at startup.
+The @code{-nodefconfig} option will prevent QEMU from loading any of those config files.
+ETEXI
+DEF("no-user-config", 0, QEMU_OPTION_nouserconfig,
+    "-no-user-config\n"
+    "                do not load user-provided config files at startup\n",
+    QEMU_ARCH_ALL)
+STEXI
+ at item -no-user-config
+ at findex -no-user-config
+The @code{-no-user-config} option makes QEMU not load any of the user-provided
+config files on @var{sysconfdir}, but won't make it skip the QEMU-provided config
+files from @var{datadir}.
 ETEXI
 DEF("trace", HAS_ARG, QEMU_OPTION_trace,
     "-trace [events=<file>][,file=<file>]\n"
diff --git a/vl.c b/vl.c
index 1e5e593..347dadd 100644
--- a/vl.c
+++ b/vl.c
@@ -2280,6 +2280,7 @@ int main(int argc, char **argv, char **envp)
     int show_vnc_port = 0;
 #endif
     int defconfig = 1;
+    int userconfig = 1;
     const char *log_mask = NULL;
     const char *log_file = NULL;
     GMemVTable mem_trace = {
@@ -2348,13 +2349,16 @@ int main(int argc, char **argv, char **envp)
             case QEMU_OPTION_nodefconfig:
                 defconfig=0;
                 break;
+            case QEMU_OPTION_nouserconfig:
+                userconfig=0;
+                break;
             }
         }
     }
 
     if (defconfig) {
         int ret;
-        ret = qemu_read_default_config_files();
+        ret = qemu_read_default_config_files(userconfig);
         if (ret < 0) {
             exit(1);
         }
-- 
1.7.3.2




More information about the libvir-list mailing list