On Fri, 2011-10-28 at 19:37 +0100, Ian Jackson wrote:
> This provides for fields in libxl datatypes which are only present in
> the C version of structures. This is useful, for example, when a
> libxl datatype wants to contain fields which are used by libxl
> internally and which are only present in the structure to avoid
> additional memory allocation inconvenience.
>
> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> ---
> tools/libxl/gentest.py | 2 ++
> tools/libxl/libxltypes.py | 4 +++-
> 2 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/tools/libxl/gentest.py b/tools/libxl/gentest.py
> index 6697ac5..ed5358d 100644
> --- a/tools/libxl/gentest.py
> +++ b/tools/libxl/gentest.py
> @@ -56,6 +56,8 @@ def gen_rand_init(ty, v, indent = " ", parent = None):
> s += "%s = rand() %% 2;\n" % v
> elif ty.typename in ["char *"]:
> s += "%s = rand_str();\n" % v
> + elif ty.c_only:
> + pass
> elif ty.typename in handcoded:
> raise Exception("Gen for handcoded %s" % ty.typename)
> else:
> diff --git a/tools/libxl/libxltypes.py b/tools/libxl/libxltypes.py
> index 05cba88..83a9426 100644
> --- a/tools/libxl/libxltypes.py
> +++ b/tools/libxl/libxltypes.py
> @@ -33,6 +33,8 @@ class Type(object):
> if self.passby not in [PASS_BY_VALUE, PASS_BY_REFERENCE]:
> raise ValueError
>
> + self.c_only = kwargs.setdefault('c_only', False)
> +
> if typename is None: # Anonymous type
> self.typename = None
> self.rawname = None
> @@ -50,7 +52,7 @@ class Type(object):
>
> self.autogenerate_destructor =
> kwargs.setdefault('autogenerate_destructor', True)
>
> - if self.typename is not None:
> + if self.typename is not None and not self.c_only:
> self.json_fn = kwargs.setdefault('json_fn', self.typename +
> "_gen_json")
> else:
> self.json_fn = kwargs.setdefault('json_fn', None)
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|