|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] libxl: idl: support new "private" type attribute
# HG changeset patch
# User Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
# Date 1323712118 0
# Node ID b4365e2c25958162500c37e01eb06da4d0df5427
# Parent 3b62011ab51fede8795e4e8de643fad48d3d3567
libxl: idl: support new "private" type attribute
This provides for fields in libxl datatypes which are only present in
the C version of structures and are used only by libxl itself. This
is useful 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>
Committed-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
diff -r 3b62011ab51f -r b4365e2c2595 tools/libxl/gentest.py
--- a/tools/libxl/gentest.py Mon Dec 12 17:48:38 2011 +0000
+++ b/tools/libxl/gentest.py Mon Dec 12 17:48:38 2011 +0000
@@ -56,6 +56,8 @@
s += "%s = rand() %% 2;\n" % v
elif ty.typename in ["char *"]:
s += "%s = rand_str();\n" % v
+ elif ty.private:
+ pass
elif ty.typename in handcoded:
raise Exception("Gen for handcoded %s" % ty.typename)
else:
diff -r 3b62011ab51f -r b4365e2c2595 tools/libxl/libxltypes.py
--- a/tools/libxl/libxltypes.py Mon Dec 12 17:48:38 2011 +0000
+++ b/tools/libxl/libxltypes.py Mon Dec 12 17:48:38 2011 +0000
@@ -33,6 +33,8 @@
if self.passby not in [PASS_BY_VALUE, PASS_BY_REFERENCE]:
raise ValueError
+ self.private = kwargs.setdefault('private', False)
+
if typename is None: # Anonymous type
self.typename = None
self.rawname = None
@@ -50,7 +52,7 @@
self.autogenerate_dispose_fn =
kwargs.setdefault('autogenerate_dispose_fn', True)
- if self.typename is not None:
+ if self.typename is not None and not self.private:
self.json_fn = kwargs.setdefault('json_fn', self.typename +
"_gen_json")
else:
self.json_fn = kwargs.setdefault('json_fn', None)
diff -r 3b62011ab51f -r b4365e2c2595 tools/python/genwrap.py
--- a/tools/python/genwrap.py Mon Dec 12 17:48:38 2011 +0000
+++ b/tools/python/genwrap.py Mon Dec 12 17:48:38 2011 +0000
@@ -129,6 +129,8 @@
l.append('static PyGetSetDef Py%s_getset[] = {'%ty.rawname)
for f in ty.fields:
+ if f.type.private:
+ continue
l.append(' { .name = "%s", '%f.name)
if ty.marshal_out():
l.append(' .get = (getter)py_%s_%s_get, '%(ty.rawname,
f.name))
@@ -295,9 +297,13 @@
""" % tuple((' '.join(sys.argv),) + (os.path.split(decls)[-1:]),))
for ty in types:
+ if ty.private:
+ continue
if isinstance(ty, libxltypes.Aggregate):
f.write('/* Attribute get/set functions for %s */\n'%ty.typename)
for a in ty.fields:
+ if a.type.private:
+ continue
if ty.marshal_out():
f.write(py_attrib_get(ty,a))
if ty.marshal_in():
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |