]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
xen: support for XEN_DOMCTL_iomem_permission
authorBart Van Assche <bvanassche@acm.org>
Sun, 28 Jun 2015 16:42:05 +0000 (16:42 +0000)
committerBart Van Assche <bvanassche@acm.org>
Sun, 28 Jun 2015 16:42:05 +0000 (16:42 +0000)
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15374

coregrind/m_syswrap/syswrap-xen.c
include/vki/vki-xen-domctl.h

index 548649a0dcfa183f3566bab947282d112736f0fb..ed948a041dc5f08b5a51e4949b9705694359392c 100644 (file)
@@ -680,6 +680,12 @@ PRE(domctl)
       __PRE_XEN_DOMCTL_READ(settscinfo, tsc_info, info.elapsed_nsec);
       break;
 
+   case VKI_XEN_DOMCTL_iomem_permission:
+      PRE_XEN_DOMCTL_READ(iomem_permission, first_mfn);
+      PRE_XEN_DOMCTL_READ(iomem_permission, nr_mfns);
+      PRE_XEN_DOMCTL_READ(iomem_permission, allow_access);
+      break;
+
    case VKI_XEN_DOMCTL_ioport_permission:
       PRE_XEN_DOMCTL_READ(ioport_permission, first_port);
       PRE_XEN_DOMCTL_READ(ioport_permission, nr_ports);
@@ -1447,6 +1453,7 @@ POST(domctl){
    case VKI_XEN_DOMCTL_assign_device:
    case VKI_XEN_DOMCTL_deassign_device:
    case VKI_XEN_DOMCTL_settscinfo:
+   case VKI_XEN_DOMCTL_iomem_permission:
    case VKI_XEN_DOMCTL_ioport_permission:
    case VKI_XEN_DOMCTL_hypercall_init:
    case VKI_XEN_DOMCTL_setvcpucontext:
index 6bb872ac8e7fb2d7e19d8eea5fb5072ec8bd8078..8d18b98766ff394c03903d2826f6bef026b17074 100644 (file)
@@ -280,6 +280,12 @@ struct vki_xen_domctl_max_vcpus {
     vki_uint32_t max;           /* maximum number of vcpus */
 };
 
+struct vki_xen_domctl_iomem_permission {
+    vki_xen_uint64_aligned_t first_mfn;/* first page (physical page number) in range */
+    vki_xen_uint64_aligned_t nr_mfns;  /* number of pages in range (>0) */
+    vki_uint8_t  allow_access;     /* allow (!0) or deny (0) access to range? */
+};
+
 struct vki_xen_domctl_ioport_permission {
     vki_uint32_t first_port;              /* IN */
     vki_uint32_t nr_ports;                /* IN */
@@ -454,7 +460,7 @@ struct vki_xen_domctl {
         //struct vki_xen_domctl_setdomainhandle   setdomainhandle;
         //struct vki_xen_domctl_setdebugging      setdebugging;
         //struct vki_xen_domctl_irq_permission    irq_permission;
-        //struct vki_xen_domctl_iomem_permission  iomem_permission;
+        struct vki_xen_domctl_iomem_permission  iomem_permission;
         struct vki_xen_domctl_ioport_permission ioport_permission;
         struct vki_xen_domctl_hypercall_init    hypercall_init;
         //struct vki_xen_domctl_arch_setup        arch_setup;