[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 Wed, 2015-07-08 at 11:17 +0100, Ian Campbell wrote: > On Tue, 2015-07-07 at 17:22 +0100, Julien Grall wrote: > > diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl > > index e1632fa..11f6461 100644 > > --- a/tools/libxl/libxl_types.idl > > +++ b/tools/libxl/libxl_types.idl > > @@ -369,6 +369,12 @@ libxl_vnode_info = Struct("vnode_info", [ > > ("vcpus", libxl_bitmap), # vcpus in this node > > ]) > > > > +libxl_gic_version = Enumeration("gic_version", [ > > + (0, "DEFAULT"), > > + (0x20, "v2"), > > + (0x30, "v3") > > + ], init_val = "LIBXL_GIC_VERSION_DEFAULT") > > + > > libxl_domain_build_info = Struct("domain_build_info",[ > > ("max_vcpus", integer), > > ("avail_vcpus", libxl_bitmap), > > @@ -480,6 +486,11 @@ libxl_domain_build_info = Struct("domain_build_info",[ > > ])), > > ("invalid", None), > > ], keyvar_init_val = "LIBXL_DOMAIN_TYPE_INVALID")), > > + > > + > > + ("arch_arm", Struct(None, [("gic_version", libxl_gic_version), > > + ])), > > + > > ], dir=DIR_IN > > This results in the following when building the ocaml bindings: > > Traceback (most recent call last): > File "genwrap.py", line 529, in <module> > ml.write(gen_ocaml_ml(ty, False)) > File "genwrap.py", line 217, in gen_ocaml_ml > s += gen_struct(ty) > File "genwrap.py", line 119, in gen_struct > x = ocaml_instance_of_field(f) > File "genwrap.py", line 112, in ocaml_instance_of_field > return "%s : %s" % (munge_name(name), ocaml_type_of(f.type)) > File "genwrap.py", line 90, in ocaml_type_of > return ty.rawname.capitalize() + ".t" > AttributeError: 'NoneType' object has no attribute 'capitalize' > make[7]: *** No rule to make target '_libxl_types.ml.in', needed by > 'xenlight.ml'. Stop. > > I'll take a look. 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? 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |