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

Re: [Xen-devel] [PATCH v5 2/3] arm: Allow the user to specify the GIC version



> On 8 Jul 2015, at 12:37, Ian Campbell <Ian.Campbell@xxxxxxxxxx> wrote:
> ...
> 
> I have a patch to genwrap.py which results in the following diff to the
> generate ml files for the anonymous sub-struct added by the IDL change
> above.
> 
> Dave/Euan/Rob, is that idiomatic ocaml or is it possible to have
> anonymous structs in ocaml like it is in C?

I think that you have done the right thing. Iâm not sure if you can define a 
nested record type without giving the inner one a name. But frankly, I donât 
think there is much point to that either. In fact, Iâd even drop the "__anonâ 
and use the struct name as the type name directly.

Or for consistency, use "type_<name>â, which is similar to what happens in the 
keyed union case (âtype_hvm", âtype_pvâ). Incidentally, those structs are also 
defined as "Struct(None, [...â, but are probably handled specially because the 
struct appears inside the union.

Cheers,
Rob

> If there is a better/more usual way to do this would you mind supplying
> me with the ocaml I should be aiming for please?
> 
> Ian.
> 
> --- tools/ocaml/libs/xl/_libxl_BACKUP_types.ml.in     2015-07-08 
> 11:22:35.000000000 +0100
> +++ tools/ocaml/libs/xl/_libxl_types.ml.in    2015-07-08 12:25:56.000000000 
> +0100
> @@ -508,6 +508,17 @@ module Vnode_info = struct
>       external default : ctx -> unit -> t = "stub_libxl_vnode_info_init"
> end
> 
> +(* libxl_gic_version implementation *)
> +type gic_version = 
> +      | GIC_VERSION_DEFAULT
> +      | GIC_VERSION_V2
> +      | GIC_VERSION_V3
> +
> +let string_of_gic_version = function
> +     | GIC_VERSION_DEFAULT -> "DEFAULT"
> +     | GIC_VERSION_V2 -> "V2"
> +     | GIC_VERSION_V3 -> "V3"
> +
> (* libxl_domain_build_info implementation *)
> module Domain_build_info = struct
> 
> @@ -566,6 +577,10 @@ module Domain_build_info = struct
>       
>       type type__union = Hvm of type_hvm | Pv of type_pv | Invalid
>       
> +     type arch_arm__anon = {
> +             gic_version : gic_version;
> +     }
> +     
>       type t =
>       {
>               max_vcpus : int;
> @@ -607,6 +622,7 @@ module Domain_build_info = struct
>               ramdisk : string option;
>               device_tree : string option;
>               xl_type : type__union;
> +             arch_arm : arch_arm__anon;
>       }
>       external default : ctx -> ?xl_type:domain_type -> unit -> t = 
> "stub_libxl_domain_build_info_init"
> end
> 
> 
> 

_______________________________________________
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®.