|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2] 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>
---
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..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);
}
--
1.8.1.2
--
Anil Madhavapeddy http://anil.recoil.org
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |