|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |