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

[Xen-devel] [PATCH] Export mca_op to user space tools



Export do_mca hypercall to user space tools.

This is mainly for software trigger MCE operation, so that test suites can 
trigger software MCE.

Signed-off-by: Jiang, Yunhong <yunhong.jiang@xxxxxxxxx>

--- a/tools/libxc/xc_private.c  Sun Jan 31 20:25:54 2010 +0800
+++ b/tools/libxc/xc_private.c  Sun Jan 31 20:30:25 2010 +0800
@@ -242,6 +242,25 @@ void hcall_buf_release(void **addr, size
 }
 
 #endif
+
+int xc_mca_op(int xc_handle, struct xen_mc *mc)
+{
+    int ret = 0;
+    DECLARE_HYPERCALL;
+
+    mc->interface_version = XEN_MCA_INTERFACE_VERSION;
+    if ( lock_pages(mc, sizeof(mc)) )
+    {
+        PERROR("Could not lock xen_mc memory\n");
+        return -EINVAL;
+    }
+
+    hypercall.op = __HYPERVISOR_mca;
+    hypercall.arg[0] = (unsigned long)mc;
+    ret = do_xen_hypercall(xc_handle, &hypercall);
+    unlock_pages(mc, sizeof(mc));
+    return ret;
+}
 
 /* NB: arr must be locked */
 int xc_get_pfn_type_batch(int xc_handle, uint32_t dom,
--- a/tools/libxc/xenctrl.h     Sun Jan 31 20:25:54 2010 +0800
+++ b/tools/libxc/xenctrl.h     Sun Jan 31 20:26:01 2010 +0800
@@ -37,6 +37,7 @@
 #if defined(__i386__) || defined(__x86_64__)
 #include <xen/foreign/x86_32.h>
 #include <xen/foreign/x86_64.h>
+#include <xen/arch-x86/xen-mca.h>
 #endif
 
 #ifdef __ia64__
@@ -799,6 +800,7 @@ long xc_get_max_pages(int xc_handle, uin
 
 int xc_mmuext_op(int xc_handle, struct mmuext_op *op, unsigned int nr_ops,
                  domid_t dom);
+int xc_mca_op(int xc_handle, struct xen_mc *mc);
 
 int xc_memory_op(int xc_handle, int cmd, void *arg);
 


Attachment: export_mcaop.patch
Description: export_mcaop.patch

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

 


Rackspace

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