|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC 13/14] xen: tools: Introduce the set-subpage into xenctrl
From: Zhang Yi Z <yi.z.zhang@xxxxxxxxxxxxxxx>
Introduce the Xen Hypercall HVMOP_set_subpage into Xenctl.
The API is defined as flowing.
int xc_mem_set_subpage(xc_interface *handle, domid_t domid,
xen_pfn_t gfn, uint32_t access);
Signed-off-by: Zhang, Yi Z <yi.z.zhang@xxxxxxxxxxxxxxx>
---
tools/libxc/include/xenctrl.h | 2 ++
tools/libxc/xc_mem_paging.c | 20 ++++++++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h
index bde8313..a13f2c7 100644
--- a/tools/libxc/include/xenctrl.h
+++ b/tools/libxc/include/xenctrl.h
@@ -1956,6 +1956,8 @@ int xc_mem_paging_evict(xc_interface *xch, domid_t
domain_id, uint64_t gfn);
int xc_mem_paging_prep(xc_interface *xch, domid_t domain_id, uint64_t gfn);
int xc_mem_paging_load(xc_interface *xch, domid_t domain_id,
uint64_t gfn, void *buffer);
+int xc_mem_set_subpage(xc_interface *handle, domid_t domid,
+ xen_pfn_t gfn, uint32_t access);
/**
* Access tracking operations.
diff --git a/tools/libxc/xc_mem_paging.c b/tools/libxc/xc_mem_paging.c
index 28611f4..36f7949 100644
--- a/tools/libxc/xc_mem_paging.c
+++ b/tools/libxc/xc_mem_paging.c
@@ -116,6 +116,26 @@ int xc_mem_paging_load(xc_interface *xch, domid_t
domain_id,
return rc;
}
+int xc_mem_set_subpage(xc_interface *handle, domid_t domid,
+ xen_pfn_t gfn, uint32_t access)
+{
+ int rc;
+ DECLARE_HYPERCALL_BUFFER(xen_hvm_subpage_t, arg);
+
+ arg = xc_hypercall_buffer_alloc(handle, arg, sizeof(*arg));
+ if ( arg == NULL )
+ return -1;
+
+ arg->domid = domid;
+ arg->access_map = access;
+ arg->gfn = gfn;
+
+ rc = xencall2(handle->xcall, __HYPERVISOR_hvm_op, HVMOP_set_subpage,
+ HYPERCALL_BUFFER_AS_ARG(arg));
+
+ xc_hypercall_buffer_free(handle, arg);
+ return rc;
+}
/*
* Local variables:
--
2.7.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |