aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Habkost <ehabkost@redhat.com>2012-05-02 13:07:29 -0300
committerAnthony Liguori <aliguori@us.ibm.com>2012-05-10 12:37:57 -0500
commitf29a56147b66845914d0a645bf9b4c5bb9a6af57 (patch)
tree907eae26d1dc9c1ca7b77bcf487a487698a37d70
parent3ed2d9ee1f7a09129df2694ba9fae2f7c5abf050 (diff)
implement -no-user-config command-line option (v3)
Changes v2 -> v3: - Rebase against latest qemu.git Changes v1 -> v2: - Change 'userconfig' field/variables to bool instead of int - Coding style change Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--arch_init.c11
-rw-r--r--qemu-config.h2
-rw-r--r--qemu-options.hx16
-rw-r--r--vl.c6
4 files changed, 27 insertions, 8 deletions
diff --git a/arch_init.c b/arch_init.c
index 62332e9ff0..996babae9b 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -114,19 +114,24 @@ const uint32_t arch_type = QEMU_ARCH;
static struct defconfig_file {
const char *filename;
+ /* Indicates it is an user config file (disabled by -no-user-config) */
+ bool userconfig;
} default_config_files[] = {
- { CONFIG_QEMU_CONFDIR "/qemu.conf" },
- { CONFIG_QEMU_CONFDIR "/target-" TARGET_ARCH ".conf" },
+ { CONFIG_QEMU_CONFDIR "/qemu.conf", true },
+ { CONFIG_QEMU_CONFDIR "/target-" TARGET_ARCH ".conf", true },
{ NULL }, /* end of list */
};
-int qemu_read_default_config_files(void)
+int qemu_read_default_config_files(bool 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/qemu-config.h b/qemu-config.h
index ff934a1eda..6d7365d35b 100644
--- a/qemu-config.h
+++ b/qemu-config.h
@@ -18,6 +18,6 @@ int qemu_read_config_file(const char *filename);
/* Read default Qemu config files
*/
-int qemu_read_default_config_files(void);
+int qemu_read_default_config_files(bool userconfig);
#endif /* QEMU_CONFIG_H */
diff --git a/qemu-options.hx b/qemu-options.hx
index a169792f07..7d0b054dd5 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
-@var{sysconfdir}/target-@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
+@item -no-user-config
+@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 4667bd2399..91b18bca59 100644
--- a/vl.c
+++ b/vl.c
@@ -2284,6 +2284,7 @@ int main(int argc, char **argv, char **envp)
int show_vnc_port = 0;
#endif
bool defconfig = true;
+ bool userconfig = true;
const char *log_mask = NULL;
const char *log_file = NULL;
GMemVTable mem_trace = {
@@ -2352,13 +2353,16 @@ int main(int argc, char **argv, char **envp)
case QEMU_OPTION_nodefconfig:
defconfig = false;
break;
+ case QEMU_OPTION_nouserconfig:
+ userconfig = false;
+ break;
}
}
}
if (defconfig) {
int ret;
- ret = qemu_read_default_config_files();
+ ret = qemu_read_default_config_files(userconfig);
if (ret < 0) {
exit(1);
}