Signed-off-by: Xu Wang <gesaint(a)linux.vnet.ibm.com>
---
libxkutil/xmlgen.c | 60 +++++++++++++++++++++++++++++++++++----------------
1 files changed, 41 insertions(+), 19 deletions(-)
diff --git a/libxkutil/xmlgen.c b/libxkutil/xmlgen.c
index 8e793f9..cbc69be 100644
--- a/libxkutil/xmlgen.c
+++ b/libxkutil/xmlgen.c
@@ -1564,10 +1564,11 @@ static const char *cputune_xml(xmlNodePtr root, struct domain
*dominfo)
static const char *mem_xml(xmlNodePtr root, struct domain *dominfo)
{
struct mem_device *mem;
- xmlNodePtr tmp = NULL;
int ret;
char *string = NULL;
+ CU_DEBUG("Enter mem_xml()");
+
if (dominfo->dev_mem == NULL)
return NULL;
@@ -1576,39 +1577,60 @@ static const char *mem_xml(xmlNodePtr root, struct domain
*dominfo)
ret = asprintf(&string, "%" PRIu64, mem->size);
if (ret == -1)
goto out;
- tmp = xmlNewChild(root,
- NULL,
- BAD_CAST "currentMemory",
- BAD_CAST string);
- if (tmp == NULL)
+
+ mem->others = add_node_to_others(mem->others,
+ 0,
+ "currentMemory",
+ string,
+ TYPE_NODE,
+ 0,
+ "domain");
+
+ if (mem->others == NULL) {
+ CU_DEBUG("add node <currentMemory> failed.");
return XML_ERROR;
+ }
free(string);
- tmp = NULL;
ret = asprintf(&string, "%" PRIu64, mem->maxsize);
if (ret == -1)
goto out;
- tmp = xmlNewChild(root,
- NULL,
- BAD_CAST "memory",
- BAD_CAST string);
+
+ mem->others = add_node_to_others(mem->others,
+ 0,
+ "memory",
+ string,
+ TYPE_NODE,
+ 0,
+ "domain");
free(string);
- if (tmp == NULL)
- return XML_ERROR;
if (mem->dumpCore == MEM_DUMP_CORE_ON) {
- xmlNewProp(tmp, BAD_CAST "dumpCore", BAD_CAST "on");
+ mem->others = add_node_to_others(mem->others,
+ 0,
+ "dumpCore",
+ "on",
+ TYPE_PROP,
+ 0,
+ "memory");
} else if (mem->dumpCore == MEM_DUMP_CORE_OFF) {
- xmlNewProp(tmp, BAD_CAST "dumpCore", BAD_CAST
"off");
+ mem->others = add_node_to_others(mem->others,
+ 0,
+ "dumpCore",
+ "off",
+ TYPE_PROP,
+ 0,
+ "memory");
}
+ dominfo->others = combine_others(dominfo->others, mem->others);
+ mem->others = NULL;
+
+ return NULL;
out:
- if (tmp == NULL)
- return XML_ERROR;
- else
- return NULL;
+ return XML_ERROR;
}
static const char *emu_xml(xmlNodePtr root, struct domain *dominfo)
--
1.7.1