Signed-off-by: Xu Wang <gesaint(a)linux.vnet.ibm.com>
---
libxkutil/xmlgen.c | 44 ++++++++++++++++++++++++++++++++++----------
1 files changed, 34 insertions(+), 10 deletions(-)
diff --git a/libxkutil/xmlgen.c b/libxkutil/xmlgen.c
index 4bce159..10a04a6 100644
--- a/libxkutil/xmlgen.c
+++ b/libxkutil/xmlgen.c
@@ -2256,20 +2256,44 @@ static char *os_xml(xmlNodePtr root, struct domain *domain)
static char *features_xml(xmlNodePtr root, struct domain *domain)
{
- xmlNodePtr features;
+ CU_DEBUG("Enter features_xml()");
- features = xmlNewChild(root, NULL, BAD_CAST "features", NULL);
- if (features == NULL)
- return "Failed to allocate XML memory";
+ domain->others = add_node_to_others(domain->others,
+ 0,
+ "features",
+ NULL,
+ TYPE_NODE,
+ 0,
+ "domain");
- if (domain->acpi)
- xmlNewChild(features, NULL, BAD_CAST "acpi", NULL);
+ if (domain->others == NULL) {
+ CU_DEBUG("add node <features> failed.");
+ return XML_ERROR;
+ }
- if (domain->apic)
- xmlNewChild(features, NULL, BAD_CAST "apic", NULL);
+ domain->others = add_node_to_others(domain->others,
+ 0,
+ "acpi",
+ NULL,
+ TYPE_NODE,
+ 0,
+ "features");
+
+ domain->others = add_node_to_others(domain->others,
+ 0,
+ "apic",
+ NULL,
+ TYPE_NODE,
+ 0,
+ "features");
- if (domain->pae)
- xmlNewChild(features, NULL, BAD_CAST "pae", NULL);
+ domain->others = add_node_to_others(domain->others,
+ 0,
+ "pae",
+ NULL,
+ TYPE_NODE,
+ 0,
+ "features");
return NULL;
}
--
1.7.1