From: john cooper <john.cooper@redhat.com>
To: qemu-devel@nongnu.org
Cc: john.cooper@redhat.com
Subject: [Qemu-devel] [PATCH] Add optional dump of default config file paths..
Date: Wed, 09 Jun 2010 04:05:58 -0400 [thread overview]
Message-ID: <4C0F4B66.3010106@redhat.com> (raw)
In-Reply-To: <4B6DBC01.4060307@redhat.com>
This patch adds the ability to determine the build-configured
runtime "config file" paths from the command line. After
support for cpu model definitions were added to the default
runtime "target-" config file, testing of this feature has
tripped over an unintentionally mis-installed config file
enough to indicate some help is needed resolving such issues.
As no general "verbose" flag is currently available, specifying
"-readconfig ?" on the command line will maintain the default
(config file) disposition but additionally emit diagnostic info.
This mode is optional, otherwise the existing startup behavior
is identical.
Signed-off-by: john cooper <john.cooper@redhat.com>
---
diff --git a/qemu-config.c b/qemu-config.c
index 5a4e61b..a490603 100644
--- a/qemu-config.c
+++ b/qemu-config.c
@@ -518,21 +518,29 @@ out:
return res;
}
-int qemu_read_config_file(const char *filename)
+/* attempt to open and parse config file, report problems if vflag
+ */
+int qemu_read_config_file(const char *filename, int vflag)
{
FILE *f = fopen(filename, "r");
- int ret;
+ int rv = 0;
if (f == NULL) {
- return -errno;
+ rv = -errno;
}
-
- ret = qemu_config_parse(f, vm_config_groups, filename);
- fclose(f);
-
- if (ret == 0) {
- return 0;
- } else {
- return -EINVAL;
+ else if (qemu_config_parse(f, vm_config_groups, filename) != 0) {
+ rv = -EINVAL;
+ }
+ else if (vflag) {
+ fprintf(stderr, "read config file %s\n", filename);
}
+ if (f) {
+ fclose(f);
+ }
+ if (rv && vflag) {
+ fprintf(stderr, "can't read config file %s: %s\n",
+ filename, strerror(-rv));
+ }
+ return rv;
}
+
diff --git a/qemu-config.h b/qemu-config.h
index dca69d4..2e15556 100644
--- a/qemu-config.h
+++ b/qemu-config.h
@@ -23,6 +23,6 @@ void qemu_add_globals(void);
void qemu_config_write(FILE *fp);
int qemu_config_parse(FILE *fp, QemuOptsList **lists, const char *fname);
-int qemu_read_config_file(const char *filename);
+int qemu_read_config_file(const char *filename, int vflag);
#endif /* QEMU_CONFIG_H */
diff --git a/vl.c b/vl.c
index 7121cd0..23c7276 100644
--- a/vl.c
+++ b/vl.c
@@ -2582,6 +2582,7 @@ int main(int argc, char **argv, char **envp)
#endif
int show_vnc_port = 0;
int defconfig = 1;
+ int defconfig_verbose = 0;
error_set_progname(argv[0]);
@@ -2657,6 +2658,10 @@ int main(int argc, char **argv, char **envp)
case QEMU_OPTION_nodefconfig:
defconfig=0;
break;
+ case QEMU_OPTION_readconfig:
+ if (!strcmp(optarg, "?"))
+ defconfig_verbose = 1;
+ break;
}
}
}
@@ -2664,12 +2669,14 @@ int main(int argc, char **argv, char **envp)
if (defconfig) {
int ret;
- ret = qemu_read_config_file(CONFIG_QEMU_CONFDIR "/qemu.conf");
+ ret = qemu_read_config_file(CONFIG_QEMU_CONFDIR "/qemu.conf",
+ defconfig_verbose);
if (ret < 0 && ret != -ENOENT) {
exit(1);
}
- ret = qemu_read_config_file(arch_config_name);
+ ret = qemu_read_config_file(arch_config_name,
+ defconfig_verbose);
if (ret < 0 && ret != -ENOENT) {
exit(1);
}
@@ -3386,15 +3393,9 @@ int main(int argc, char **argv, char **envp)
xen_mode = XEN_ATTACH;
break;
case QEMU_OPTION_readconfig:
- {
- int ret = qemu_read_config_file(optarg);
- if (ret < 0) {
- fprintf(stderr, "read config %s: %s\n", optarg,
- strerror(-ret));
- exit(1);
- }
- break;
- }
+ if (!defconfig_verbose && qemu_read_config_file(optarg, 1) < 0)
+ exit(1);
+ break;
case QEMU_OPTION_writeconfig:
{
FILE *fp;
--
john.cooper@redhat.com
next prev parent reply other threads:[~2010-06-09 8:28 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-01 19:02 [PATCH] Add cpu model configuration support.. (resend) john cooper
2010-02-01 19:02 ` [Qemu-devel] " john cooper
2010-02-02 10:17 ` Andre Przywara
2010-02-02 10:17 ` [Qemu-devel] " Andre Przywara
2010-02-02 11:07 ` Andre Przywara
2010-02-02 11:07 ` [Qemu-devel] " Andre Przywara
2010-02-02 19:34 ` john cooper
2010-02-02 19:34 ` [Qemu-devel] " john cooper
2010-02-06 18:59 ` [PATCH] Add assignment operation to config file parser john cooper
2010-02-06 18:59 ` [Qemu-devel] " john cooper
2010-02-07 16:24 ` Anthony Liguori
2010-02-07 16:24 ` Anthony Liguori
2010-02-08 13:21 ` Gerd Hoffmann
2010-02-08 16:00 ` john cooper
2010-02-08 16:00 ` john cooper
2010-06-09 8:05 ` john cooper [this message]
2010-06-14 17:01 ` [Qemu-devel] [PATCH] Add optional dump of default config file paths Anthony Liguori
2010-06-14 17:07 ` Daniel P. Berrange
2010-06-14 17:59 ` john cooper
2010-06-14 19:13 ` Anthony Liguori
2010-02-10 20:00 ` [Qemu-devel] [PATCH] Add cpu model configuration support.. (resend) Anthony Liguori
2010-02-10 20:00 ` Anthony Liguori
2010-02-14 6:52 ` john cooper
2010-02-14 6:52 ` john cooper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C0F4B66.3010106@redhat.com \
--to=john.cooper@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.