# HG changeset patch
# User vm2000@xxxxxxxxxxxxxxxxxxxx
# Node ID dc9bc6403dc76287e2d9643430f74b5b8c46a4bb
# Parent f8187a343ad2bdbfe3166d7ee7e3d55a9f157fdc
The patch fixes a problem in libxen which prevents the uses of the
c function xen_event_register.
The conversion of input parameter xen_string_set to XML format creates
a XML "struct" tag instead of "array".
The patch sets the XML tag for SET now to "array".
Signed-off-by: Lutz Dube <Lutz.Dube@xxxxxxxxxxxxxxxxxxx>
diff -r f8187a343ad2 -r dc9bc6403dc7 tools/libxen/src/xen_common.c
--- a/tools/libxen/src/xen_common.c Fri Feb 20 17:02:36 2009 +0000
+++ b/tools/libxen/src/xen_common.c Mon Mar 02 17:20:32 2009 +0100
@@ -90,6 +90,8 @@ static xmlNode *
static xmlNode *
add_param_struct(xmlNode *);
static xmlNode *
+add_param_array(xmlNode *);
+static xmlNode *
add_struct_array(xmlNode *, const char *);
static xmlNode *
add_nested_struct(xmlNode *, const char *);
@@ -1292,7 +1294,7 @@ make_body_add_type(enum abstract_typenam
const struct abstract_type *member_type = v->type->child;
arbitrary_set *set_val = v->u.struct_val;
abstract_value v;
- xmlNode *data_node = add_param_struct(params_node);
+ xmlNode *data_node = add_param_array(params_node);
for (size_t i = 0; i < set_val->size; i++)
{
@@ -1611,6 +1613,16 @@ add_param_struct(xmlNode *params_node)
}
+static xmlNode *
+add_param_array(xmlNode *params_node)
+{
+ xmlNode *param_node = add_container(params_node, "param");
+ xmlNode *value_node = add_container(param_node, "value");
+
+ return xmlNewChild(value_node, NULL, BAD_CAST "array", NULL);
+}
+
+
static void
add_struct_member(xmlNode *struct_node, const char *name, const char *type,
const char *value)
---
Lutz Dube
Softwareentwickler
FSC IP SW OS 7
Fujitsu Siemens Computers GmbH
Otto-Hahn-Ring 6
81730 München
Telefon: ++49 89 636 49272
Telefax: ++49 89 636 49974