# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1274253531 -3600
# Node ID 165116a220d9912c29a56aaa32c1a6652cdd1988
# Parent ad319854bb30a4d924364b70a64f34454fa453e3
xl: recognize the "extra" entry in the domain config file
"extra" defines extra parameters to be added to the kernel command
line, so append it accordingly.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@xxxxxxxxxx>
---
tools/libxl/xl_cmdimpl.c | 27 +++++++++++++++++++--------
1 files changed, 19 insertions(+), 8 deletions(-)
diff -r ad319854bb30 -r 165116a220d9 tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c Wed May 19 08:15:05 2010 +0100
+++ b/tools/libxl/xl_cmdimpl.c Wed May 19 08:18:51 2010 +0100
@@ -507,14 +507,25 @@ static void parse_config_data(const char
if (!xlu_cfg_get_long (config, "viridian", &l))
b_info->u.hvm.viridian = l;
} else {
- char *cmdline;
- if (!xlu_cfg_get_string (config, "root", &buf)) {
- if (asprintf(&cmdline, "root=%s", buf) < 0) {
- fprintf(stderr, "Failed to allocate memory in asprintf\n");
- exit(1);
- }
- b_info->u.pv.cmdline = cmdline;
- }
+ char *cmdline = NULL;
+ const char *root = NULL, *extra = "";
+
+ xlu_cfg_get_string (config, "root", &root);
+ xlu_cfg_get_string (config, "extra", &extra);
+
+ if (root) {
+ if (asprintf(&cmdline, "root=%s %s", root, extra) == -1)
+ cmdline = NULL;
+ } else {
+ cmdline = strdup(extra);
+ }
+
+ if ((root || extra) && !cmdline) {
+ fprintf(stderr, "Failed to allocate memory for cmdline\n");
+ exit(1);
+ }
+
+ b_info->u.pv.cmdline = cmdline;
if (!xlu_cfg_get_string (config, "ramdisk", &buf))
b_info->u.pv.ramdisk = strdup(buf);
}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|