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

Re: [Xen-devel] [PATCH 04/11] ocaml, libxl: support "private" fields



On Thu, 2012-01-26 at 17:20 +0000, Ian Jackson wrote:
> The changeset
>   24378:b4365e2c2595  libxl: idl: support new "private" type attribute
> is not complete.  Actually using this feature does not work because
> the ocaml idl generator does not know about it.
> 
> So add that support.
> 
> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>

I acked this one last time round.

Ian.

> ---
>  tools/ocaml/libs/xl/genwrap.py |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/tools/ocaml/libs/xl/genwrap.py b/tools/ocaml/libs/xl/genwrap.py
> index 2e65aec..00583d2 100644
> --- a/tools/ocaml/libs/xl/genwrap.py
> +++ b/tools/ocaml/libs/xl/genwrap.py
> @@ -93,6 +93,8 @@ def gen_ocaml_ml(ty, interface, indent=""):
>              s += "\t{\n"
>              
>          for f in ty.fields:
> +            if f.type.private:
> +                continue
>              x = ocaml_instance_of(f.type, f.name)
>              x = x.replace("\n", "\n\t\t")
>              s += "\t\t" + x + ";\n"
> @@ -148,6 +150,8 @@ def c_val(ty, c, o, indent="", parent = None):
>      elif isinstance(ty, libxltypes.Aggregate) and (parent is None):
>          n = 0
>          for f in ty.fields:
> +            if f.type.private:
> +                continue
>              s += "%s\n" % c_val(f.type, "%s->%s" % (c, f.name), "Field(%s, 
> %d)" % (o,n), parent="%s->" % (c))
>              n = n + 1
>      else:
> @@ -212,6 +216,8 @@ def ocaml_Val(ty, o, c, indent="", parent = None):
>          
>          n = 0
>          for f in ty.fields:
> +            if f.type.private:
> +                continue
>              s += "\n"
>              s += "\t%s\n" % ocaml_Val(f.type, "%s_field" % ty.rawname, 
> "%s->%s" % (c,f.name), parent="%s->" % c)
>              s += "\tStore_field(%s, %d, %s);\n" % (o, n, "%s_field" % 
> ty.rawname)
> @@ -290,6 +296,8 @@ if __name__ == '__main__':
>      cinc.write(autogen_header("/*", "*/"))
>  
>      for ty in types:
> +        if ty.private:
> +            continue
>          #sys.stdout.write(" TYPE    %-20s " % ty.rawname)
>          ml.write(gen_ocaml_ml(ty, False))
>          ml.write("\n")



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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