|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] libxl: ocaml: guard x86-specific functions behind an ifdef
On 09/01/14 16:36, Anil Madhavapeddy wrote:
> 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));
You probably want to set xc's last error so failwith_xc() gives an
exception with a relevant error message.
~Andrew
> +#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);
> }
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |