[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] libxl: Support linux-stubdom in libxl
author jiageng_yu <yujiageng734@xxxxxxxxx> Tue, 31 May 2011 02:18:01 +0000 (03:18 +0100) committer jiageng_yu <yujiageng734@xxxxxxxxx> ue, 31 May 2011 02:18:01 +0000 (03:18 +0100) commit 179b4167dd9e86a06a700d60e277c4477f0c06ef tree 4e4c8492b480e08d9122abcb37aca52ae5650786 tree | snapshot (tar.gz zip) parent cf4866b9161a724e4b2c366da73de271cf7ef348 commit | diff libxl: Support linux-stubdom in libxl Add linux-stubdom support in libxl. Users could start a linux-stubdom throuh the following options: device_model_override = 'linux-stubdom' device_model_stubdomain_override=1 linux-stubdom project: http://repo.or.cz/w/linux-based-stubdoms.git diff -r 37c77bacb52a tools/libxl/libxl_dm.c --- a/tools/libxl/libxl_dm.c Mon May 23 17:38:28 2011 +0100 +++ b/tools/libxl/libxl_dm.c Tue May 31 02:41:59 2011 +0100 @@ -556,6 +556,14 @@ return 0; } +inline int libxl__is_linux_stubdom(libxl_device_model_info *info) +{ + if(!strncmp(info->device_model,"linux-stubdom",strlen(info->device_model))) + return 1; + else + return 0; +}; + static int libxl__create_stubdom(libxl__gc *gc, libxl_device_model_info *info, libxl_device_disk *disks, int num_disks, @@ -581,7 +589,12 @@ goto out; } - args = libxl__build_device_model_args(gc, "stubdom-dm", info, + if(libxl__is_linux_stubdom(info)) + args = libxl__build_device_model_args(gc, "linux-stubdom", info, + disks, num_disks, + vifs, num_vifs); + else + args = libxl__build_device_model_args(gc, "stubdom-dm", info, disks, num_disks, vifs, num_vifs); if (!args) { @@ -599,13 +612,22 @@ b_info.max_vcpus = 1; b_info.max_memkb = 32 * 1024; b_info.target_memkb = b_info.max_memkb; - b_info.u.pv.kernel.path = libxl__abs_path(gc, "ioemu-stubdom.gz", - libxl_xenfirmwaredir_path()); b_info.u.pv.cmdline = libxl__sprintf(gc, " -d %d", info->domid); - b_info.u.pv.ramdisk.path = ""; b_info.u.pv.features = ""; b_info.hvm = 0; + if(libxl__is_linux_stubdom(info)){ + b_info.u.pv.kernel.path = libxl__abs_path(gc, "vmlinuz-ioemu", + libxl_xenfirmwaredir_path()); + b_info.u.pv.ramdisk.path = libxl__abs_path(gc, "ramdisk-ioemu", + libxl_xenfirmwaredir_path()); + } + else{ + b_info.u.pv.kernel.path = libxl__abs_path(gc, "ioemu-stubdom.gz", + libxl_xenfirmwaredir_path()); + b_info.u.pv.ramdisk.path = ""; + } + /* fixme: this function can leak the stubdom if it fails */ ret = libxl__domain_make(gc, &c_info, &domid); diff -r 37c77bacb52a tools/libxl/libxl_internal.h --- a/tools/libxl/libxl_internal.h Mon May 23 17:38:28 2011 +0100 +++ b/tools/libxl/libxl_internal.h Tue May 31 02:41:59 2011 +0100 @@ -249,6 +249,7 @@ libxl__domain_build_state *state); /* for device model creation */ +_hidden int libxl__is_linux_stubdom(libxl_device_model_info *info); _hidden const char *libxl__domain_device_model(libxl__gc *gc, libxl_device_model_info *info); _hidden int libxl__create_device_model(libxl__gc *gc, diff -r 37c77bacb52a tools/libxl/xl_cmdimpl.c --- a/tools/libxl/xl_cmdimpl.c Mon May 23 17:38:28 2011 +0100 +++ b/tools/libxl/xl_cmdimpl.c Tue May 31 02:41:59 2011 +0100 @@ -1087,7 +1087,7 @@ fprintf(stderr, "WARNING: ignoring device_model directive.\n" "WARNING: Use \"device_model_override\" instead if you really want a non-default device_model\n"); - if (strstr(buf, "stubdom-dm")) + if (strstr(buf, "stubdom-dm") || strstr(buf, "linux-stubdom")) fprintf(stderr, "WARNING: Or use \"device_model_stubdomain_override\" if you want to enable stubdomains\n"); } _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |