提交 292444cb 编写于 作者: A Anthony Liguori

Load global config files by default

A new option, -nodefconfig is introduced to prevent loading from the default
config location.  Otherwise, two configuration files will be searched for,
qemu.conf and target-<TARGET_NAME>.conf.

To ensure that the default configuration is overridden by a user specified
config, we introduce a two stage option parsing mechanism.
Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
上级 6530a97b
...@@ -1965,6 +1965,15 @@ STEXI ...@@ -1965,6 +1965,15 @@ STEXI
@item -writeconfig @var{file} @item -writeconfig @var{file}
Write device configuration to @var{file}. Write device configuration to @var{file}.
ETEXI ETEXI
DEF("nodefconfig", 0, QEMU_OPTION_nodefconfig,
"-nodefconfig\n"
" do not load default config files at startup\n")
STEXI
@item -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.
ETEXI
HXCOMM This is the last statement. Insert new options before this line! HXCOMM This is the last statement. Insert new options before this line!
STEXI STEXI
......
...@@ -4730,6 +4730,7 @@ int main(int argc, char **argv, char **envp) ...@@ -4730,6 +4730,7 @@ int main(int argc, char **argv, char **envp)
#endif #endif
CPUState *env; CPUState *env;
int show_vnc_port = 0; int show_vnc_port = 0;
int defconfig = 1;
init_clocks(); init_clocks();
...@@ -4789,6 +4790,44 @@ int main(int argc, char **argv, char **envp) ...@@ -4789,6 +4790,44 @@ int main(int argc, char **argv, char **envp)
tb_size = 0; tb_size = 0;
autostart= 1; autostart= 1;
/* first pass of option parsing */
optind = 1;
while (optind < argc) {
if (argv[optind][0] != '-') {
/* disk image */
continue;
} else {
const QEMUOption *popt;
popt = lookup_opt(argc, argv, &optarg, &optind);
switch (popt->index) {
case QEMU_OPTION_nodefconfig:
defconfig=0;
break;
}
}
}
if (defconfig) {
FILE *fp;
fp = fopen(CONFIG_QEMU_CONFDIR "/qemu.conf", "r");
if (fp) {
if (qemu_config_parse(fp) != 0) {
exit(1);
}
fclose(fp);
}
fp = fopen(CONFIG_QEMU_CONFDIR "/target-" TARGET_ARCH ".conf", "r");
if (fp) {
if (qemu_config_parse(fp) != 0) {
exit(1);
}
fclose(fp);
}
}
/* second pass of option parsing */
optind = 1; optind = 1;
for(;;) { for(;;) {
if (optind >= argc) if (optind >= argc)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册