]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
xen: Handle XEN_DOMCTL_{test_assign,assign,deassign}_device
authorBart Van Assche <bvanassche@acm.org>
Sun, 28 Jun 2015 16:41:06 +0000 (16:41 +0000)
committerBart Van Assche <bvanassche@acm.org>
Sun, 28 Jun 2015 16:41:06 +0000 (16:41 +0000)
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15373

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

index 42559845c1644215725e104f39d37e0c3ef46ec3..548649a0dcfa183f3566bab947282d112736f0fb 100644 (file)
@@ -663,6 +663,16 @@ PRE(domctl)
       __PRE_XEN_DOMCTL_READ(set_address_size, address_size, size);
       break;
 
+   case VKI_XEN_DOMCTL_test_assign_device:
+      __PRE_XEN_DOMCTL_READ(test_assign_device, assign_device, machine_sbdf);
+      break;
+   case VKI_XEN_DOMCTL_assign_device:
+      __PRE_XEN_DOMCTL_READ(assign_device, assign_device, machine_sbdf);
+      break;
+   case VKI_XEN_DOMCTL_deassign_device:
+      __PRE_XEN_DOMCTL_READ(deassign_device, assign_device, machine_sbdf);
+      break;
+
    case VKI_XEN_DOMCTL_settscinfo:
       __PRE_XEN_DOMCTL_READ(settscinfo, tsc_info, info.tsc_mode);
       __PRE_XEN_DOMCTL_READ(settscinfo, tsc_info, info.gtsc_khz);
@@ -1433,6 +1443,9 @@ POST(domctl){
    case VKI_XEN_DOMCTL_max_mem:
    case VKI_XEN_DOMCTL_setvcpuextstate:
    case VKI_XEN_DOMCTL_set_address_size:
+   case VKI_XEN_DOMCTL_test_assign_device:
+   case VKI_XEN_DOMCTL_assign_device:
+   case VKI_XEN_DOMCTL_deassign_device:
    case VKI_XEN_DOMCTL_settscinfo:
    case VKI_XEN_DOMCTL_ioport_permission:
    case VKI_XEN_DOMCTL_hypercall_init:
index 6af60be564bcfb2fb4bb0776fdb47388f73eeb36..6bb872ac8e7fb2d7e19d8eea5fb5072ec8bd8078 100644 (file)
@@ -386,6 +386,10 @@ struct vki_xen_domctl_address_size {
     vki_uint32_t size;
 };
 
+struct vki_xen_domctl_assign_device {
+    vki_uint32_t  machine_sbdf;   /* machine PCI ID of assigned device */
+};
+
 struct vki_xen_domctl_debug_op {
     vki_uint32_t op;   /* IN */
     vki_uint32_t vcpu; /* IN */
@@ -463,7 +467,7 @@ struct vki_xen_domctl {
         struct vki_xen_domctl_address_size      address_size;
         //struct vki_xen_domctl_sendtrigger       sendtrigger;
         //struct vki_xen_domctl_get_device_group  get_device_group;
-        //struct vki_xen_domctl_assign_device     assign_device;
+        struct vki_xen_domctl_assign_device     assign_device;
         //struct vki_xen_domctl_bind_pt_irq       bind_pt_irq;
         //struct vki_xen_domctl_memory_mapping    memory_mapping;
         //struct vki_xen_domctl_ioport_mapping    ioport_mapping;