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

[Xen-devel] [PATCH] libxl: ocaml: guard x86-specific functions behind an ifdef



The various cpuid functions are not available on ARM, so this
makes them raise an OCaml exception.  Omitting the functions
completely them results in a link failure in oxenstored due to
the missing symbols, so this is preferable to the much bigger
patch that would result from adding conditional compilation into
the OCaml interfaces.

Signed-off-by: Anil Madhavapeddy <anil@xxxxxxxxxx>

---
 tools/ocaml/libs/xc/xenctrl_stubs.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c 
b/tools/ocaml/libs/xc/xenctrl_stubs.c
index f5cf0ed..76864cc 100644
--- a/tools/ocaml/libs/xc/xenctrl_stubs.c
+++ b/tools/ocaml/libs/xc/xenctrl_stubs.c
@@ -714,6 +714,7 @@ CAMLprim value stub_xc_domain_cpuid_set(value xch, value 
domid,
 {
        CAMLparam4(xch, domid, input, config);
        CAMLlocal2(array, tmp);
+#if defined(__i386__) || defined(__x86_64__)
        int r;
        unsigned int c_input[2];
        char *c_config[4], *out_config[4];
@@ -742,17 +743,24 @@ CAMLprim value stub_xc_domain_cpuid_set(value xch, value 
domid,
                         c_input, (const char **)c_config, out_config);
        if (r < 0)
                failwith_xc(_H(xch));
+#else
+       failwith_xc(_H(xch));
+#endif
        CAMLreturn(array);
 }
 
 CAMLprim value stub_xc_domain_cpuid_apply_policy(value xch, value domid)
 {
        CAMLparam2(xch, domid);
+#if defined(__i386__) || defined(__x86_64__)
        int r;
 
        r = xc_cpuid_apply_policy(_H(xch), _D(domid));
        if (r < 0)
                failwith_xc(_H(xch));
+#else
+       failwith_xc(_H(xch));
+#endif
        CAMLreturn(Val_unit);
 }
 
@@ -760,6 +768,7 @@ CAMLprim value stub_xc_cpuid_check(value xch, value input, 
value config)
 {
        CAMLparam3(xch, input, config);
        CAMLlocal3(ret, array, tmp);
+#if defined(__i386__) || defined(__x86_64__)
        int r;
        unsigned int c_input[2];
        char *c_config[4], *out_config[4];
@@ -792,6 +801,9 @@ CAMLprim value stub_xc_cpuid_check(value xch, value input, 
value config)
        Store_field(ret, 0, Val_bool(r));
        Store_field(ret, 1, array);
 
+#else
+       failwith_xc(_H(xch));
+#endif
        CAMLreturn(ret);
 }
 
-- 
1.8.1.2


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