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

[Xen-changelog] [xen-unstable] [IA64] catch up new hypercall HYPERVISR_hvm_op for IPF (libxc)



# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 111936ef42911810bc4e9f474130990ad2b6f192
# Parent  d735526b02ec060cbe98ef93119f60898c174e7b
[IA64] catch up new hypercall HYPERVISR_hvm_op for IPF (libxc)

append xc_set_hvm_param for IPF

Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@xxxxxxxxxxxxxx>
Signed-off-by: Tomonari Horikoshi <t.horikoshi@xxxxxxxxxxxxxx>
---
 tools/libxc/ia64/xc_ia64_hvm_build.c |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+)

diff -r d735526b02ec -r 111936ef4291 tools/libxc/ia64/xc_ia64_hvm_build.c
--- a/tools/libxc/ia64/xc_ia64_hvm_build.c      Wed Aug 09 09:59:52 2006 -0600
+++ b/tools/libxc/ia64/xc_ia64_hvm_build.c      Wed Aug 09 10:04:43 2006 -0600
@@ -6,6 +6,7 @@
 #include <zlib.h>
 #include "xen/arch-ia64.h"
 #include <xen/hvm/ioreq.h>
+#include <xen/hvm/params.h>
 
 static int
 xc_ia64_copy_to_domain_pages(int xc_handle, uint32_t domid, void* src_page,
@@ -40,6 +41,31 @@ error_out:
     return -1;
 }
 
+static void
+xc_set_hvm_param(int handle, domid_t dom, int param, unsigned long value)
+{
+    DECLARE_HYPERCALL;
+    xen_hvm_param_t arg;
+    int rc;
+
+    hypercall.op = __HYPERVISOR_hvm_op;
+    hypercall.arg[0] = HVMOP_set_param;
+    hypercall.arg[1] = (unsigned long)&arg;
+
+    arg.domid = dom;
+    arg.index = param;
+    arg.value = value;
+
+    if (mlock(&arg, sizeof(arg)) != 0) {
+        PERROR("Could not lock memory for set parameter");
+        return;
+    }
+
+    rc = do_xen_hypercall(handle, &hypercall);
+    safe_munlock(&arg, sizeof(arg));
+    if (rc < 0)
+        PERROR("set HVM parameter failed (%d)", rc);
+}
 
 #define HOB_SIGNATURE         0x3436474953424f48        // "HOBSIG64"
 #define GFW_HOB_START         ((4UL<<30)-(14UL<<20))    // 4G - 14M
@@ -568,6 +594,10 @@ setup_guest(int xc_handle, uint32_t dom,
         goto error_out;
     }
 
+    xc_set_hvm_param(xc_handle, dom,
+                     HVM_PARAM_STORE_PFN, STORE_PAGE_START>>PAGE_SHIFT);
+    xc_set_hvm_param(xc_handle, dom, HVM_PARAM_STORE_EVTCHN, store_evtchn);
+
     *store_mfn = page_array[1];
     sp = (shared_iopage_t *)xc_map_foreign_range(xc_handle, dom,
                                PAGE_SIZE, PROT_READ|PROT_WRITE, page_array[0]);

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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