[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH 1 of 3] [v3] HVM firmware passthrough libxl support



Switch libxl to use the new xc_hvm_build() libxc API.

Signed-off-by: Ross Philipson <ross.philipson@xxxxxxxxxx>

diff -r 63594ce1708f -r c5a851de03f1 tools/libxl/libxl_dom.c
--- a/tools/libxl/libxl_dom.c   Wed Feb 13 09:31:48 2013 +0100
+++ b/tools/libxl/libxl_dom.c   Wed Feb 13 14:51:51 2013 -0500
@@ -542,17 +542,24 @@ int libxl__build_hvm(libxl__gc *gc, uint
               libxl__domain_build_state *state)
 {
     libxl_ctx *ctx = libxl__gc_owner(gc);
+    struct xc_hvm_build_args args = {};
     int ret, rc = ERROR_FAIL;
     const char *firmware = libxl__domain_firmware(gc, info);
 
     if (!firmware)
         goto out;
-    ret = xc_hvm_build_target_mem(
-        ctx->xch,
-        domid,
-        (info->max_memkb - info->video_memkb) / 1024,
-        (info->target_memkb - info->video_memkb) / 1024,
-        firmware);
+
+    memset(&args, 0, sizeof(struct xc_hvm_build_args));
+    /* The params from the configuration file are in Mb, which are then
+     * multiplied by 1 Kb. This was then divided off when calling
+     * the old xc_hvm_build_target_mem() which then turned them to bytes.
+     * Do all this in one step here...
+     */
+    args.mem_size = (uint64_t)(info->max_memkb - info->video_memkb) << 10;
+    args.mem_target = (uint64_t)(info->target_memkb - info->video_memkb) << 10;
+    args.image_file_name = firmware;
+
+    ret = xc_hvm_build(ctx->xch, domid, &args);
     if (ret) {
         LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, ret, "hvm building failed");
         goto out;

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.