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

[Xen-changelog] [xen master] libxl: ocaml: guard x86-specific functions behind an ifdef



commit 9b2691bdb499a3c2a136596658571056df1d42c8
Author:     Anil Madhavapeddy <anil@xxxxxxxxxx>
AuthorDate: Sat Jan 11 23:33:25 2014 +0000
Commit:     Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Wed Jan 15 13:08:56 2014 +0000

    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 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.
    
    With this patch, oxenstored can successfully start a domain on
    Xen/ARM.
    
    Signed-off-by: Anil Madhavapeddy <anil@xxxxxxxxxx>
    Acked-by: David Scott <dave.scott@xxxxxxxxxxxxx>
    Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
 tools/ocaml/libs/xc/xenctrl_stubs.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/tools/ocaml/libs/xc/xenctrl_stubs.c 
b/tools/ocaml/libs/xc/xenctrl_stubs.c
index f5cf0ed..ff29b47 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
+       caml_failwith("xc_domain_cpuid_set: not implemented");
+#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
+       caml_failwith("xc_domain_cpuid_apply_policy: not implemented");
+#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
+       caml_failwith("xc_domain_cpuid_check: not implemented");
+#endif
        CAMLreturn(ret);
 }
 
--
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®.