aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/public/domctl.h
diff options
context:
space:
mode:
authorTim Deegan <tim@xen.org>2012-03-08 16:40:05 +0000
committerTim Deegan <tim@xen.org>2012-03-08 16:40:05 +0000
commitcc0b0b4487dd1df3fd5e15050a2fb05bb88b3539 (patch)
tree4bf1f5a83b9331f2cd1ca84e5d3246e199fa39bc /xen/include/public/domctl.h
parent770d1e858de56ba8f2e0d7e45c08f48d599528e5 (diff)
downloadxen-cc0b0b4487dd1df3fd5e15050a2fb05bb88b3539.tar.gz
xen-cc0b0b4487dd1df3fd5e15050a2fb05bb88b3539.tar.bz2
xen-cc0b0b4487dd1df3fd5e15050a2fb05bb88b3539.zip
x86/mm: wire up sharing ring
Now that we have an interface close to finalizing, do the necessary plumbing to set up a ring for reporting failed allocations in the unshare path. Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.org> Acked-by: Tim Deegan <tim@xen.org> Committed-by: Tim Deegan <tim@xen.org>
Diffstat (limited to 'xen/include/public/domctl.h')
-rw-r--r--xen/include/public/domctl.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index a3ed8d76be..494520743d 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -711,7 +711,7 @@ struct xen_domctl_gdbsx_domstatus {
/* XEN_DOMCTL_mem_event_op */
/*
-* Domain memory paging
+ * Domain memory paging
* Page memory in and out.
* Domctl interface to set up and tear down the
* pager<->hypervisor interface. Use XENMEM_paging_op*
@@ -741,6 +741,24 @@ struct xen_domctl_gdbsx_domstatus {
#define XEN_DOMCTL_MEM_EVENT_OP_ACCESS_ENABLE 0
#define XEN_DOMCTL_MEM_EVENT_OP_ACCESS_DISABLE 1
+/*
+ * Sharing ENOMEM helper.
+ *
+ * As with paging, use the domctl for teardown/setup of the
+ * helper<->hypervisor interface.
+ *
+ * If setup, this ring is used to communicate failed allocations
+ * in the unshare path. XENMEM_sharing_op_resume is used to wake up
+ * vcpus that could not unshare.
+ *
+ * Note that shring can be turned on (as per the domctl below)
+ * *without* this ring being setup.
+ */
+#define XEN_DOMCTL_MEM_EVENT_OP_SHARING 3
+
+#define XEN_DOMCTL_MEM_EVENT_OP_SHARING_ENABLE 0
+#define XEN_DOMCTL_MEM_EVENT_OP_SHARING_DISABLE 1
+
/* Use for teardown/setup of helper<->hypervisor interface for paging,
* access and sharing.*/
struct xen_domctl_mem_event_op {