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

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



Hi Anil,

Thanks for getting oxenstored on ARM working!

I'm happy with a simple 'Failure not implemented' exception for the moment. I 
think that once we're using the libxl bindings everywhere we can probably 
remove these libxc bindings anyway.

Acked-by: David Scott <dave.scott@xxxxxxxxxxxxx>

Cheers,
Dave

> -----Original Message-----
> From: Anil Madhavapeddy [mailto:anil@xxxxxxxxxx]
> Sent: 11 January 2014 11:33 PM
> To: xen-devel@xxxxxxxxxxxxx
> Cc: Dave Scott
> Subject: [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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.