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

[Xen-changelog] [xen master] libxc: Expose xc_reserved_device_memory_map to ARM too



commit b4a044f6e8b5da47790d44ba0b93fa12c1819642
Author:     Julien Grall <julien.grall@xxxxxxxxxx>
AuthorDate: Thu Jul 23 17:47:09 2015 +0100
Commit:     Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
CommitDate: Thu Jul 23 19:20:48 2015 +0100

    libxc: Expose xc_reserved_device_memory_map to ARM too
    
    The commit 25652f2 "tools/libxl: detect and avoid conflicts with RDM"
    introduced the usage of xc_reserved_device_memory_map in the libxl
    generic code. But the function is only defined for x86 which breaks the
    ARM build.
    
    The hypercall called by this helper is implemented in the generic code
    and doesn't contain any x86 specific code. Therefore, it's fine to
    expose the helper to ARM.
    
    Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
    CC: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
    CC: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
    CC: Ian Campbell <ian.campbell@xxxxxxxxxx>
    CC: Wei Liu <wei.liu2@xxxxxxxxxx>
    CC: Tiejun Chen <tiejun.chen@xxxxxxxxx>
    Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>
    Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
 tools/libxc/include/xenctrl.h |    2 +-
 tools/libxc/xc_domain.c       |   70 ++++++++++++++++++++--------------------
 2 files changed, 36 insertions(+), 36 deletions(-)

diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h
index 3f2381a..0a98aee 100644
--- a/tools/libxc/include/xenctrl.h
+++ b/tools/libxc/include/xenctrl.h
@@ -1314,6 +1314,7 @@ int xc_domain_set_memory_map(xc_interface *xch,
 int xc_get_machine_memory_map(xc_interface *xch,
                               struct e820entry entries[],
                               uint32_t max_entries);
+#endif
 
 int xc_reserved_device_memory_map(xc_interface *xch,
                                   uint32_t flags,
@@ -1322,7 +1323,6 @@ int xc_reserved_device_memory_map(xc_interface *xch,
                                   uint8_t devfn,
                                   struct xen_reserved_device_memory entries[],
                                   uint32_t *max_entries);
-#endif
 int xc_domain_set_time_offset(xc_interface *xch,
                               uint32_t domid,
                               int32_t time_offset_seconds);
diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c
index df06314..77d852b 100644
--- a/tools/libxc/xc_domain.c
+++ b/tools/libxc/xc_domain.c
@@ -685,41 +685,6 @@ int xc_domain_set_memory_map(xc_interface *xch,
     return rc;
 }
 
-int xc_reserved_device_memory_map(xc_interface *xch,
-                                  uint32_t flags,
-                                  uint16_t seg,
-                                  uint8_t bus,
-                                  uint8_t devfn,
-                                  struct xen_reserved_device_memory entries[],
-                                  uint32_t *max_entries)
-{
-    int rc;
-    struct xen_reserved_device_memory_map xrdmmap = {
-        .flags = flags,
-        .dev.pci.seg = seg,
-        .dev.pci.bus = bus,
-        .dev.pci.devfn = devfn,
-        .nr_entries = *max_entries
-    };
-    DECLARE_HYPERCALL_BOUNCE(entries,
-                             sizeof(struct xen_reserved_device_memory) *
-                             *max_entries, XC_HYPERCALL_BUFFER_BOUNCE_OUT);
-
-    if ( xc_hypercall_bounce_pre(xch, entries) )
-        return -1;
-
-    set_xen_guest_handle(xrdmmap.buffer, entries);
-
-    rc = do_memory_op(xch, XENMEM_reserved_device_memory_map,
-                      &xrdmmap, sizeof(xrdmmap));
-
-    xc_hypercall_bounce_post(xch, entries);
-
-    *max_entries = xrdmmap.nr_entries;
-
-    return rc;
-}
-
 int xc_get_machine_memory_map(xc_interface *xch,
                               struct e820entry entries[],
                               uint32_t max_entries)
@@ -766,6 +731,41 @@ int xc_domain_set_memmap_limit(xc_interface *xch,
 }
 #endif
 
+int xc_reserved_device_memory_map(xc_interface *xch,
+                                  uint32_t flags,
+                                  uint16_t seg,
+                                  uint8_t bus,
+                                  uint8_t devfn,
+                                  struct xen_reserved_device_memory entries[],
+                                  uint32_t *max_entries)
+{
+    int rc;
+    struct xen_reserved_device_memory_map xrdmmap = {
+        .flags = flags,
+        .dev.pci.seg = seg,
+        .dev.pci.bus = bus,
+        .dev.pci.devfn = devfn,
+        .nr_entries = *max_entries
+    };
+    DECLARE_HYPERCALL_BOUNCE(entries,
+                             sizeof(struct xen_reserved_device_memory) *
+                             *max_entries, XC_HYPERCALL_BUFFER_BOUNCE_OUT);
+
+    if ( xc_hypercall_bounce_pre(xch, entries) )
+        return -1;
+
+    set_xen_guest_handle(xrdmmap.buffer, entries);
+
+    rc = do_memory_op(xch, XENMEM_reserved_device_memory_map,
+                      &xrdmmap, sizeof(xrdmmap));
+
+    xc_hypercall_bounce_post(xch, entries);
+
+    *max_entries = xrdmmap.nr_entries;
+
+    return rc;
+}
+
 int xc_domain_set_time_offset(xc_interface *xch,
                               uint32_t domid,
                               int32_t time_offset_seconds)
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.