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

Re: [Xen-devel] [PATCH v2 2/3] mem_event: Added new helper API to teardown mem event setup and unmap ring_page.



>tools/libxc/xc_mem_event.c: Added new generic API to teardown mem
>event setup,
>the API supports hvm params PAGING, ACCESS and SHARING and also
>completes the
>obvious job of unmapping ring_page.
>
>tools/libxc/xc_mem_access.c: Modified mem_event_disable to use the new
>teardown API.
>
>tools/tests/xen-access/: Updated code to use the new API's.
>
>Signed-off-by: Dushyant Behl <myselfdushyantbehl@xxxxxxxxx>
>---
> tools/libxc/xc_mem_access.c         |  9 +++----
> tools/libxc/xc_mem_event.c          | 53
>+++++++++++++++++++++++++++++++++++++
> tools/libxc/xc_private.h            |  8 ++++++
> tools/libxc/xenctrl.h               |  5 ++--
> tools/tests/xen-access/xen-access.c |  6 ++---
> 5 files changed, 69 insertions(+), 12 deletions(-)
>
>diff --git a/tools/libxc/xc_mem_access.c b/tools/libxc/xc_mem_access.c
>index 89050be..29835c3 100644
>--- a/tools/libxc/xc_mem_access.c
>+++ b/tools/libxc/xc_mem_access.c
>@@ -33,12 +33,11 @@ int xc_mem_access_enable(xc_interface *xch,
>domid_t domain_id,
>                                port, ring_page, back_ring);
> }
>
>-int xc_mem_access_disable(xc_interface *xch, domid_t domain_id)
>+int xc_mem_access_disable(xc_interface *xch, domid_t domain_id, void
>*ring_page)
> {
>-    return xc_mem_event_control(xch, domain_id,
>-                                XEN_DOMCTL_MEM_EVENT_OP_ACCESS_DISABLE,
>-                                XEN_DOMCTL_MEM_EVENT_OP_ACCESS,
>-                                NULL);
>+    return xc_mem_event_disable(xch, domain_id,
>+                                HVM_PARAM_ACCESS_RING_PFN,
>+                                ring_page);
> }
>
> int xc_mem_access_resume(xc_interface *xch, domid_t domain_id)
>diff --git a/tools/libxc/xc_mem_event.c b/tools/libxc/xc_mem_event.c
>index cdbeca8..b6ae7d0 100644
>--- a/tools/libxc/xc_mem_event.c
>+++ b/tools/libxc/xc_mem_event.c
>@@ -200,3 +200,56 @@ int xc_mem_event_enable(xc_interface *xch,
>domid_t domain_id, int param,
>
>     return rc1;
> }
>+
>+/*
>+ * Disable mem_event.
>+ * Returns 0 on success, if failure returns -1 with errno properly set.
>+ * param can be HVM_PARAM_PAGING/ACCESS/SHARING_RING_PFN
>+ */
>+int xc_mem_event_disable(xc_interface *xch, domid_t domain_id,
>+                         int param, void *ring_page)
>+{
>+    int rc;
>+    unsigned int op, mode;
>+
>+    switch ( param )
>+    {
>+        case HVM_PARAM_PAGING_RING_PFN:
>+            op = XEN_DOMCTL_MEM_EVENT_OP_PAGING_DISABLE;
>+            mode = XEN_DOMCTL_MEM_EVENT_OP_PAGING;
>+            break;
>+
>+        case HVM_PARAM_ACCESS_RING_PFN:
>+            op = XEN_DOMCTL_MEM_EVENT_OP_ACCESS_DISABLE;
>+            mode = XEN_DOMCTL_MEM_EVENT_OP_ACCESS;
>+            break;
>+
>+        case HVM_PARAM_SHARING_RING_PFN:
>+            op = XEN_DOMCTL_MEM_EVENT_OP_SHARING_DISABLE;
>+            mode = XEN_DOMCTL_MEM_EVENT_OP_SHARING;
>+            break;
>+
>+        /*
>+         * This is for the outside chance that the HVM_PARAM is valid but is
>invalid
>+         * as far as mem_event goes.
>+         */
>+        default:
>+            errno = EINVAL;
>+            rc = -1;
>+            goto out;
>+    }

Sorry, I should have caught this in my previous review. I think the Xen coding 
style places the case statement with the same indent as the switch.

Thanks,
Aravindh


_______________________________________________
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®.