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

[Xen-changelog] [xen-unstable] libxc: Reorder functions in xc_misc.c to avoid weak symbol problem



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1265289399 0
# Node ID 3c3759296796ae9b986c1ec295ce66b654589f7f
# Parent  8c18892970840a17b91cede4f2e923181414d134
libxc: Reorder functions in xc_misc.c to avoid weak symbol problem

Using a function, and then declaring it weak later, has undefined
behaviour:
  cc1: warnings being treated as errors
  xc_misc.c:388: error: weak declaration of 'xc_map_foreign_bulk'
  after first use results in unspecified behavior

So swap the functions xc_map_foreign_pages and xc_map_foreign_bulk.

Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
 tools/libxc/xc_misc.c |   62 +++++++++++++++++++++++++-------------------------
 1 files changed, 31 insertions(+), 31 deletions(-)

diff -r 8c1889297084 -r 3c3759296796 tools/libxc/xc_misc.c
--- a/tools/libxc/xc_misc.c     Thu Feb 04 13:16:03 2010 +0000
+++ b/tools/libxc/xc_misc.c     Thu Feb 04 13:16:39 2010 +0000
@@ -369,37 +369,6 @@ int xc_hvm_set_mem_type(
     return rc;
 }
 
-
-void *xc_map_foreign_pages(int xc_handle, uint32_t dom, int prot,
-                           const xen_pfn_t *arr, int num)
-{
-    void *res;
-    int i, *err;
-
-    if (num < 0) {
-        errno = -EINVAL;
-        return NULL;
-    }
-
-    err = malloc(num * sizeof(*err));
-    if (!err)
-        return NULL;
-
-    res = xc_map_foreign_bulk(xc_handle, dom, prot, arr, err, num);
-    if (res) {
-        for (i = 0; i < num; i++) {
-            if (err[i]) {
-                errno = -err[i];
-                munmap(res, num * PAGE_SIZE);
-                res = NULL;
-                break;
-            }
-        }
-    }
-
-    free(err);
-    return res;
-}
 
 /* stub for all not yet converted OSes */
 void *
@@ -445,6 +414,37 @@ xc_map_foreign_bulk(int xc_handle, uint3
     return ret;
 }
 
+void *xc_map_foreign_pages(int xc_handle, uint32_t dom, int prot,
+                           const xen_pfn_t *arr, int num)
+{
+    void *res;
+    int i, *err;
+
+    if (num < 0) {
+        errno = -EINVAL;
+        return NULL;
+    }
+
+    err = malloc(num * sizeof(*err));
+    if (!err)
+        return NULL;
+
+    res = xc_map_foreign_bulk(xc_handle, dom, prot, arr, err, num);
+    if (res) {
+        for (i = 0; i < num; i++) {
+            if (err[i]) {
+                errno = -err[i];
+                munmap(res, num * PAGE_SIZE);
+                res = NULL;
+                break;
+            }
+        }
+    }
+
+    free(err);
+    return res;
+}
+
 /*
  * Local variables:
  * mode: C

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
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®.