mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 20:15:17 +00:00
Eliminate all uses of virBufferAdd with string literals.
* Makefile.maint (sc_prohibit_virBufferAdd_with_string_literal): New rule. * src/buf.h (virBufferAddLit): Define. * src/conf.c (virConfSaveValue): Use virBufferAddLit, in place of virBufferAdd everywhere possible. (virConfSaveEntry): Likewise. * src/qemu_conf.c (qemudGenerateXML, qemudGenerateNetworkXML): Likewise. * src/qemu_driver.c (qemudGetFeatures, qemudGetCapabilities): Likewise. * src/test.c (testDomainDumpXML, testNetworkDumpXML): Likewise. * src/xen_internal.c (xenHypervisorMakeCapabilitiesXML): Likewise. * src/xend_internal.c (xend_parse_sexp_desc_os): Likewise. (xend_parse_sexp_desc, sexpr_to_xend_topology_xml): Likewise. * src/xm_internal.c (xenXMDomainFormatXML, xenXMDomainPinVcpu): Likewise. * src/xml.c (virSaveCpuSet, virParseXenCpuTopology): Likewise. (virDomainParseXMLGraphicsDescImage): Likewise. (virDomainParseXMLGraphicsDescVFB, virDomainParseXMLOSDescHVM): Likewise. (virDomainParseXMLOSDescPV, virDomainParseXMLDiskDesc): Likewise. (virDomainParseXMLIfDesc, virDomainParseXMLDesc): Likewise.
This commit is contained in:
parent
ecaa696250
commit
fb66d5ab92
22
ChangeLog
22
ChangeLog
@ -1,3 +1,25 @@
|
||||
Tue Feb 3 15:21:45 CET 2008 Jim Meyering <meyering@redhat.com>
|
||||
|
||||
Eliminate all uses of virBufferAdd with string literals.
|
||||
* Makefile.maint (sc_prohibit_virBufferAdd_with_string_literal):
|
||||
New rule.
|
||||
* src/buf.h (virBufferAddLit): Define.
|
||||
* src/conf.c (virConfSaveValue): Use virBufferAddLit, in place
|
||||
of virBufferAdd everywhere possible.
|
||||
(virConfSaveEntry): Likewise.
|
||||
* src/qemu_conf.c (qemudGenerateXML, qemudGenerateNetworkXML): Likewise.
|
||||
* src/qemu_driver.c (qemudGetFeatures, qemudGetCapabilities): Likewise.
|
||||
* src/test.c (testDomainDumpXML, testNetworkDumpXML): Likewise.
|
||||
* src/xen_internal.c (xenHypervisorMakeCapabilitiesXML): Likewise.
|
||||
* src/xend_internal.c (xend_parse_sexp_desc_os): Likewise.
|
||||
(xend_parse_sexp_desc, sexpr_to_xend_topology_xml): Likewise.
|
||||
* src/xm_internal.c (xenXMDomainFormatXML, xenXMDomainPinVcpu): Likewise.
|
||||
* src/xml.c (virSaveCpuSet, virParseXenCpuTopology): Likewise.
|
||||
(virDomainParseXMLGraphicsDescImage): Likewise.
|
||||
(virDomainParseXMLGraphicsDescVFB, virDomainParseXMLOSDescHVM): Likewise.
|
||||
(virDomainParseXMLOSDescPV, virDomainParseXMLDiskDesc): Likewise.
|
||||
(virDomainParseXMLIfDesc, virDomainParseXMLDesc): Likewise.
|
||||
|
||||
Mon Feb 2 15:56:45 CET 2008 Jim Meyering <meyering@redhat.com>
|
||||
|
||||
Enable more checks for unmarked messages; fix violators.
|
||||
|
@ -304,6 +304,11 @@ sc_unmarked_diagnostics:
|
||||
{ echo '$(ME): found unmarked diagnostic(s)' 1>&2; \
|
||||
exit 1; } || :
|
||||
|
||||
sc_prohibit_virBufferAdd_with_string_literal:
|
||||
@grep -nE '\<virBufferAdd *\([^,]+, *"[^"]' $$($(CVS_LIST_EXCEPT)) && \
|
||||
{ echo '$(ME): use virBufferAddLit, not virBufferAdd,' \
|
||||
'with a string literal' 1>&2; exit 1; } || :
|
||||
|
||||
# Avoid useless parentheses like those in this example:
|
||||
# #if defined (SYMBOL) || defined (SYM2)
|
||||
sc_useless_cpp_parens:
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* buf.h: buffers for libvirt
|
||||
*
|
||||
* Copyright (C) 2005-2007 Red Hat, Inc.
|
||||
* Copyright (C) 2005-2008 Red Hat, Inc.
|
||||
*
|
||||
* See COPYING.LIB for the License of this software
|
||||
*
|
||||
@ -37,4 +37,7 @@ int virBufferStrcat(virBufferPtr buf, ...);
|
||||
int virBufferEscapeString(virBufferPtr buf, const char *format, const char *str);
|
||||
int virBufferURIEncodeString (virBufferPtr buf, const char *str);
|
||||
|
||||
#define virBufferAddLit(buf_, literal_string_) \
|
||||
virBufferAdd (buf_, "" literal_string_ "", sizeof literal_string_ - 1)
|
||||
|
||||
#endif /* __VIR_BUFFER_H__ */
|
||||
|
14
src/conf.c
14
src/conf.c
@ -264,17 +264,17 @@ virConfSaveValue(virBufferPtr buf, virConfValuePtr val)
|
||||
virConfValuePtr cur;
|
||||
|
||||
cur = val->list;
|
||||
virBufferAdd(buf, "[ ", 2);
|
||||
virBufferAddLit(buf, "[ ");
|
||||
if (cur != NULL) {
|
||||
virConfSaveValue(buf, cur);
|
||||
cur = cur->next;
|
||||
while (cur != NULL) {
|
||||
virBufferAdd(buf, ", ", 2);
|
||||
virBufferAddLit(buf, ", ");
|
||||
virConfSaveValue(buf, cur);
|
||||
cur = cur->next;
|
||||
}
|
||||
}
|
||||
virBufferAdd(buf, " ]", 2);
|
||||
virBufferAddLit(buf, " ]");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@ -297,17 +297,17 @@ virConfSaveEntry(virBufferPtr buf, virConfEntryPtr cur)
|
||||
{
|
||||
if (cur->name != NULL) {
|
||||
virBufferAdd(buf, cur->name, -1);
|
||||
virBufferAdd(buf, " = ", 3);
|
||||
virBufferAddLit(buf, " = ");
|
||||
virConfSaveValue(buf, cur->value);
|
||||
if (cur->comment != NULL) {
|
||||
virBufferAdd(buf, " #", 2);
|
||||
virBufferAddLit(buf, " #");
|
||||
virBufferAdd(buf, cur->comment, -1);
|
||||
}
|
||||
} else if (cur->comment != NULL) {
|
||||
virBufferAdd(buf, "#", 1);
|
||||
virBufferAddLit(buf, "#");
|
||||
virBufferAdd(buf, cur->comment, -1);
|
||||
}
|
||||
virBufferAdd(buf, "\n", 1);
|
||||
virBufferAddLit(buf, "\n");
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
@ -2714,7 +2714,7 @@ char *qemudGenerateXML(virConnectPtr conn,
|
||||
if (virBufferVSprintf(buf, " <vcpu>%d</vcpu>\n", def->vcpus) < 0)
|
||||
goto no_memory;
|
||||
|
||||
if (virBufferAdd(buf, " <os>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <os>\n") < 0)
|
||||
goto no_memory;
|
||||
|
||||
if (def->virtType == QEMUD_VIRT_QEMU) {
|
||||
@ -2756,33 +2756,33 @@ char *qemudGenerateXML(virConnectPtr conn,
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
if (virBufferAdd(buf, " </os>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " </os>\n") < 0)
|
||||
goto no_memory;
|
||||
|
||||
if (def->features & QEMUD_FEATURE_ACPI) {
|
||||
if (virBufferAdd(buf, " <features>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <features>\n") < 0)
|
||||
goto no_memory;
|
||||
if (virBufferAdd(buf, " <acpi/>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <acpi/>\n") < 0)
|
||||
goto no_memory;
|
||||
if (virBufferAdd(buf, " </features>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " </features>\n") < 0)
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
virBufferVSprintf(buf, " <clock offset='%s'/>\n", def->localtime ? "localtime" : "utc");
|
||||
|
||||
if (virBufferAdd(buf, " <on_poweroff>destroy</on_poweroff>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <on_poweroff>destroy</on_poweroff>\n") < 0)
|
||||
goto no_memory;
|
||||
if (def->noReboot) {
|
||||
if (virBufferAdd(buf, " <on_reboot>destroy</on_reboot>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <on_reboot>destroy</on_reboot>\n") < 0)
|
||||
goto no_memory;
|
||||
} else {
|
||||
if (virBufferAdd(buf, " <on_reboot>restart</on_reboot>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <on_reboot>restart</on_reboot>\n") < 0)
|
||||
goto no_memory;
|
||||
}
|
||||
if (virBufferAdd(buf, " <on_crash>destroy</on_crash>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <on_crash>destroy</on_crash>\n") < 0)
|
||||
goto no_memory;
|
||||
|
||||
if (virBufferAdd(buf, " <devices>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <devices>\n") < 0)
|
||||
goto no_memory;
|
||||
|
||||
if (virBufferVSprintf(buf, " <emulator>%s</emulator>\n", def->os.binary) < 0)
|
||||
@ -2814,7 +2814,7 @@ char *qemudGenerateXML(virConnectPtr conn,
|
||||
goto no_memory;
|
||||
|
||||
if (disk->readonly)
|
||||
if (virBufferAdd(buf, " <readonly/>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <readonly/>\n") < 0)
|
||||
goto no_memory;
|
||||
|
||||
if (virBufferVSprintf(buf, " </disk>\n") < 0)
|
||||
@ -2904,12 +2904,12 @@ char *qemudGenerateXML(virConnectPtr conn,
|
||||
}
|
||||
/* If graphics is enable, add implicit mouse */
|
||||
if (def->graphicsType != QEMUD_GRAPHICS_NONE)
|
||||
if (virBufferAdd(buf, " <input type='mouse' bus='ps2'/>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <input type='mouse' bus='ps2'/>\n") < 0)
|
||||
goto no_memory;
|
||||
|
||||
switch (def->graphicsType) {
|
||||
case QEMUD_GRAPHICS_VNC:
|
||||
if (virBufferAdd(buf, " <graphics type='vnc'", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <graphics type='vnc'") < 0)
|
||||
goto no_memory;
|
||||
|
||||
if (def->vncPort &&
|
||||
@ -2927,12 +2927,12 @@ char *qemudGenerateXML(virConnectPtr conn,
|
||||
def->keymap) < 0)
|
||||
goto no_memory;
|
||||
|
||||
if (virBufferAdd(buf, "/>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, "/>\n") < 0)
|
||||
goto no_memory;
|
||||
break;
|
||||
|
||||
case QEMUD_GRAPHICS_SDL:
|
||||
if (virBufferAdd(buf, " <graphics type='sdl'/>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <graphics type='sdl'/>\n") < 0)
|
||||
goto no_memory;
|
||||
break;
|
||||
|
||||
@ -2944,11 +2944,11 @@ char *qemudGenerateXML(virConnectPtr conn,
|
||||
if (def->graphicsType == QEMUD_GRAPHICS_VNC) {
|
||||
}
|
||||
|
||||
if (virBufferAdd(buf, " </devices>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " </devices>\n") < 0)
|
||||
goto no_memory;
|
||||
|
||||
|
||||
if (virBufferAdd(buf, "</domain>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, "</domain>\n") < 0)
|
||||
goto no_memory;
|
||||
|
||||
return virBufferContentAndFree (buf);
|
||||
@ -2989,11 +2989,11 @@ char *qemudGenerateNetworkXML(virConnectPtr conn,
|
||||
virBufferVSprintf(buf, " <forward dev='%s'/>\n",
|
||||
def->forwardDev);
|
||||
} else {
|
||||
virBufferAdd(buf, " <forward/>\n", -1);
|
||||
virBufferAddLit(buf, " <forward/>\n");
|
||||
}
|
||||
}
|
||||
|
||||
virBufferAdd(buf, " <bridge", -1);
|
||||
virBufferAddLit(buf, " <bridge");
|
||||
if (qemudIsActiveNetwork(network)) {
|
||||
if (virBufferVSprintf(buf, " name='%s'", network->bridge) < 0)
|
||||
goto no_memory;
|
||||
@ -3007,7 +3007,7 @@ char *qemudGenerateNetworkXML(virConnectPtr conn,
|
||||
goto no_memory;
|
||||
|
||||
if (def->ipAddress[0] || def->netmask[0]) {
|
||||
if (virBufferAdd(buf, " <ip", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <ip") < 0)
|
||||
goto no_memory;
|
||||
|
||||
if (def->ipAddress[0] &&
|
||||
@ -3018,12 +3018,12 @@ char *qemudGenerateNetworkXML(virConnectPtr conn,
|
||||
virBufferVSprintf(buf, " netmask='%s'", def->netmask) < 0)
|
||||
goto no_memory;
|
||||
|
||||
if (virBufferAdd(buf, ">\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, ">\n") < 0)
|
||||
goto no_memory;
|
||||
|
||||
if (def->ranges) {
|
||||
struct qemud_dhcp_range_def *range = def->ranges;
|
||||
if (virBufferAdd(buf, " <dhcp>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " <dhcp>\n") < 0)
|
||||
goto no_memory;
|
||||
while (range) {
|
||||
if (virBufferVSprintf(buf, " <range start='%s' end='%s' />\n",
|
||||
@ -3031,15 +3031,15 @@ char *qemudGenerateNetworkXML(virConnectPtr conn,
|
||||
goto no_memory;
|
||||
range = range->next;
|
||||
}
|
||||
if (virBufferAdd(buf, " </dhcp>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " </dhcp>\n") < 0)
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
if (virBufferAdd(buf, " </ip>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, " </ip>\n") < 0)
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
if (virBufferAdd(buf, "</network>\n", -1) < 0)
|
||||
if (virBufferAddLit(buf, "</network>\n") < 0)
|
||||
goto no_memory;
|
||||
|
||||
return virBufferContentAndFree (buf);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* driver.c: core driver methods for managing qemu guests
|
||||
*
|
||||
* Copyright (C) 2006, 2007 Red Hat, Inc.
|
||||
* Copyright (C) 2006, 2007, 2008 Red Hat, Inc.
|
||||
* Copyright (C) 2006 Daniel P. Berrange
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
@ -1459,19 +1459,19 @@ static int qemudGetFeatures(virBufferPtr xml,
|
||||
if (flags == NULL)
|
||||
return 0;
|
||||
|
||||
r = virBufferAdd(xml, "\
|
||||
<features>\n", -1);
|
||||
r = virBufferAddLit(xml, "\
|
||||
<features>\n");
|
||||
if (r == -1) return r;
|
||||
for (i = 0; flags[i].name; ++i) {
|
||||
if (STREQ(flags[i].name, "pae")) {
|
||||
int pae = flags[i].default_on || flags[i].toggle;
|
||||
int nonpae = flags[i].toggle;
|
||||
if (pae) {
|
||||
r = virBufferAdd(xml, " <pae/>\n", -1);
|
||||
r = virBufferAddLit(xml, " <pae/>\n");
|
||||
if (r == -1) return r;
|
||||
}
|
||||
if (nonpae) {
|
||||
r = virBufferAdd(xml, " <nonpae/>\n", -1);
|
||||
r = virBufferAddLit(xml, " <nonpae/>\n");
|
||||
if (r == -1) return r;
|
||||
}
|
||||
} else {
|
||||
@ -1482,7 +1482,7 @@ static int qemudGetFeatures(virBufferPtr xml,
|
||||
if (r == -1) return r;
|
||||
}
|
||||
}
|
||||
r = virBufferAdd(xml, " </features>\n", -1);
|
||||
r = virBufferAddLit(xml, " </features>\n");
|
||||
return r;
|
||||
}
|
||||
|
||||
@ -1550,26 +1550,26 @@ static char *qemudGetCapabilities(virConnectPtr conn ATTRIBUTE_UNUSED) {
|
||||
}
|
||||
|
||||
if (have_kqemu) {
|
||||
r = virBufferAdd (xml,
|
||||
r = virBufferAddLit (xml,
|
||||
"\
|
||||
<domain type=\"kqemu\"/>\n", -1);
|
||||
<domain type=\"kqemu\"/>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
if (have_kvm) {
|
||||
r = virBufferAdd (xml,
|
||||
r = virBufferAddLit (xml,
|
||||
"\
|
||||
<domain type=\"kvm\">\n\
|
||||
<emulator>/usr/bin/qemu-kvm</emulator>\n\
|
||||
</domain>\n", -1);
|
||||
</domain>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
r = virBufferAdd (xml, " </arch>\n", -1);
|
||||
r = virBufferAddLit (xml, " </arch>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
|
||||
r = qemudGetFeatures(xml, qemudArchs[i].fflags);
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
|
||||
r = virBufferAdd (xml, " </guest>\n", -1);
|
||||
r = virBufferAddLit (xml, " </guest>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
|
||||
/* The "other" PC architecture needs emulation. */
|
||||
@ -1594,7 +1594,7 @@ static char *qemudGetCapabilities(virConnectPtr conn ATTRIBUTE_UNUSED) {
|
||||
qemudArchs[i].machines[j]);
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
r = virBufferAdd (xml, " </arch>\n </guest>\n", -1);
|
||||
r = virBufferAddLit (xml, " </arch>\n </guest>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
|
||||
@ -1620,20 +1620,20 @@ static char *qemudGetCapabilities(virConnectPtr conn ATTRIBUTE_UNUSED) {
|
||||
qemudArchs[i].machines[j]);
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
r = virBufferAdd (xml, " </arch>\n", -1);
|
||||
r = virBufferAddLit (xml, " </arch>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
|
||||
r = qemudGetFeatures(xml, qemudArchs[i].fflags);
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
|
||||
r = virBufferAdd (xml, " </guest>\n", -1);
|
||||
r = virBufferAddLit (xml, " </guest>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
|
||||
/* Finish off. */
|
||||
r = virBufferAdd (xml,
|
||||
r = virBufferAddLit (xml,
|
||||
"\
|
||||
</capabilities>\n", -1);
|
||||
</capabilities>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
|
||||
return virBufferContentAndFree(xml);
|
||||
|
14
src/test.c
14
src/test.c
@ -1492,7 +1492,7 @@ static char *testDomainDumpXML(virDomainPtr domain, int flags ATTRIBUTE_UNUSED)
|
||||
virBufferVSprintf(buf, " <on_poweroff>%s</on_poweroff>\n", testRestartFlagToString(privdom->onPoweroff));
|
||||
virBufferVSprintf(buf, " <on_crash>%s</on_crash>\n", testRestartFlagToString(privdom->onCrash));
|
||||
|
||||
virBufferAdd(buf, "</domain>\n", -1);
|
||||
virBufferAddLit(buf, "</domain>\n");
|
||||
|
||||
xml = buf->content;
|
||||
free(buf);
|
||||
@ -1863,7 +1863,7 @@ static char *testNetworkDumpXML(virNetworkPtr network, int flags ATTRIBUTE_UNUSE
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
virBufferAdd(buf, "<network>\n", -1);
|
||||
virBufferAddLit(buf, "<network>\n");
|
||||
virBufferVSprintf(buf, " <name>%s</name>\n", network->name);
|
||||
uuid = network->uuid;
|
||||
virUUIDFormat(uuid, uuidstr);
|
||||
@ -1873,18 +1873,18 @@ static char *testNetworkDumpXML(virNetworkPtr network, int flags ATTRIBUTE_UNUSE
|
||||
if (privnet->forwardDev[0])
|
||||
virBufferVSprintf(buf, " <forward dev='%s'/>\n", privnet->forwardDev);
|
||||
else
|
||||
virBufferAdd(buf, " <forward/>\n", -1);
|
||||
virBufferAddLit(buf, " <forward/>\n");
|
||||
}
|
||||
|
||||
virBufferVSprintf(buf, " <ip address='%s' netmask='%s'>\n",
|
||||
privnet->ipAddress, privnet->ipNetmask);
|
||||
virBufferAdd(buf, " <dhcp>\n", -1);
|
||||
virBufferAddLit(buf, " <dhcp>\n");
|
||||
virBufferVSprintf(buf, " <range start='%s' end='%s'/>\n",
|
||||
privnet->dhcpStart, privnet->dhcpEnd);
|
||||
virBufferAdd(buf, " </dhcp>\n", -1);
|
||||
virBufferAdd(buf, " </ip>\n", -1);
|
||||
virBufferAddLit(buf, " </dhcp>\n");
|
||||
virBufferAddLit(buf, " </ip>\n");
|
||||
|
||||
virBufferAdd(buf, "</network>\n", -1);
|
||||
virBufferAddLit(buf, "</network>\n");
|
||||
|
||||
xml = buf->content;
|
||||
free(buf);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* xen_internal.c: direct access to Xen hypervisor level
|
||||
*
|
||||
* Copyright (C) 2005, 2006, 2007 Red Hat, Inc.
|
||||
* Copyright (C) 2005, 2006, 2007, 2008 Red Hat, Inc.
|
||||
*
|
||||
* See COPYING.LIB for the License of this software
|
||||
*
|
||||
@ -2330,11 +2330,11 @@ xenHypervisorMakeCapabilitiesXML(virConnectPtr conn,
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
if (host_pae) {
|
||||
r = virBufferAdd (xml, "\
|
||||
<pae/>\n", -1);
|
||||
r = virBufferAddLit (xml, "\
|
||||
<pae/>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
r = virBufferAdd (xml,
|
||||
r = virBufferAddLit (xml,
|
||||
"\
|
||||
</features>\n\
|
||||
</cpu>\n\
|
||||
@ -2344,7 +2344,7 @@ xenHypervisorMakeCapabilitiesXML(virConnectPtr conn,
|
||||
<uri_transport>xenmigr</uri_transport>\n\
|
||||
</uri_transports>\n\
|
||||
</migration_features>\n\
|
||||
</host>\n", -1);
|
||||
</host>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
|
||||
if (sys_interface_version >= 4) {
|
||||
@ -2376,48 +2376,48 @@ xenHypervisorMakeCapabilitiesXML(virConnectPtr conn,
|
||||
guest_archs[i].bits == 64 ? "64" : "");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
r = virBufferAdd (xml,
|
||||
r = virBufferAddLit (xml,
|
||||
"\
|
||||
</arch>\n\
|
||||
<features>\n", -1);
|
||||
<features>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
if (guest_archs[i].pae) {
|
||||
r = virBufferAdd (xml,
|
||||
r = virBufferAddLit (xml,
|
||||
"\
|
||||
<pae/>\n", -1);
|
||||
<pae/>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
if (guest_archs[i].nonpae) {
|
||||
r = virBufferAdd (xml, " <nonpae/>\n", -1);
|
||||
r = virBufferAddLit (xml, " <nonpae/>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
if (guest_archs[i].ia64_be) {
|
||||
r = virBufferAdd (xml, " <ia64_be/>\n", -1);
|
||||
r = virBufferAddLit (xml, " <ia64_be/>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
if (guest_archs[i].hvm) {
|
||||
r = virBufferAdd (xml, " <acpi default='on' toggle='yes'/>\n",
|
||||
-1);
|
||||
r = virBufferAddLit (xml,
|
||||
" <acpi default='on' toggle='yes'/>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
// In Xen 3.1.0, APIC is always on and can't be toggled
|
||||
if (hv_major >= 3 && hv_minor > 0) {
|
||||
r = virBufferAdd (xml,
|
||||
" <apic default='off' toggle='no'/>\n", -1);
|
||||
r = virBufferAddLit (xml,
|
||||
" <apic default='off' toggle='no'/>\n");
|
||||
} else {
|
||||
r = virBufferAdd (xml,
|
||||
" <apic default='on' toggle='yes'/>\n", -1);
|
||||
r = virBufferAddLit (xml,
|
||||
" <apic default='on' toggle='yes'/>\n");
|
||||
}
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
r = virBufferAdd (xml, "\
|
||||
r = virBufferAddLit (xml, "\
|
||||
</features>\n\
|
||||
</guest>\n", -1);
|
||||
</guest>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
}
|
||||
|
||||
r = virBufferAdd (xml,
|
||||
r = virBufferAddLit (xml,
|
||||
"\
|
||||
</capabilities>\n", -1);
|
||||
</capabilities>\n");
|
||||
if (r == -1) goto vir_buffer_failed;
|
||||
xml_str = strdup (xml->content);
|
||||
if (!xml_str) goto vir_buffer_failed;
|
||||
|
@ -1286,7 +1286,7 @@ xend_parse_sexp_desc_os(virConnectPtr xend, struct sexpr *node, virBufferPtr buf
|
||||
return(-1);
|
||||
}
|
||||
|
||||
virBufferAdd(buf, " <os>\n", 7);
|
||||
virBufferAddLit(buf, " <os>\n");
|
||||
if (hvm) {
|
||||
virBufferVSprintf(buf, " <type>hvm</type>\n");
|
||||
tmp = sexpr_node(node, "domain/image/hvm/kernel");
|
||||
@ -1304,7 +1304,7 @@ xend_parse_sexp_desc_os(virConnectPtr xend, struct sexpr *node, virBufferPtr buf
|
||||
while (*tmp) {
|
||||
if (*tmp == 'a')
|
||||
/* XXX no way to deal with boot from 2nd floppy */
|
||||
virBufferAdd(buf, " <boot dev='fd'/>\n", 21 );
|
||||
virBufferAddLit(buf, " <boot dev='fd'/>\n");
|
||||
else if (*tmp == 'c')
|
||||
/*
|
||||
* Don't know what to put here. Say the vm has been given 3
|
||||
@ -1312,11 +1312,11 @@ xend_parse_sexp_desc_os(virConnectPtr xend, struct sexpr *node, virBufferPtr buf
|
||||
* We're going to assume that first disk is the boot disk since
|
||||
* this is most common practice
|
||||
*/
|
||||
virBufferAdd(buf, " <boot dev='hd'/>\n", 21 );
|
||||
virBufferAddLit(buf, " <boot dev='hd'/>\n");
|
||||
else if (*tmp == 'd')
|
||||
virBufferAdd(buf, " <boot dev='cdrom'/>\n", 24 );
|
||||
virBufferAddLit(buf, " <boot dev='cdrom'/>\n");
|
||||
else if (*tmp == 'n')
|
||||
virBufferAdd(buf, " <boot dev='network'/>\n", 26 );
|
||||
virBufferAddLit(buf, " <boot dev='network'/>\n");
|
||||
tmp++;
|
||||
}
|
||||
}
|
||||
@ -1341,7 +1341,7 @@ xend_parse_sexp_desc_os(virConnectPtr xend, struct sexpr *node, virBufferPtr buf
|
||||
virBufferEscapeString(buf, " <cmdline>%s</cmdline>\n", tmp);
|
||||
}
|
||||
|
||||
virBufferAdd(buf, " </os>\n", 8);
|
||||
virBufferAddLit(buf, " </os>\n");
|
||||
return(0);
|
||||
}
|
||||
|
||||
@ -1472,20 +1472,20 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root,
|
||||
if (hvm) {
|
||||
int clockLocal;
|
||||
|
||||
virBufferAdd(&buf, " <features>\n", 13);
|
||||
virBufferAddLit(&buf, " <features>\n");
|
||||
if (sexpr_int(root, "domain/image/hvm/acpi"))
|
||||
virBufferAdd(&buf, " <acpi/>\n", 12);
|
||||
virBufferAddLit(&buf, " <acpi/>\n");
|
||||
if (sexpr_int(root, "domain/image/hvm/apic"))
|
||||
virBufferAdd(&buf, " <apic/>\n", 12);
|
||||
virBufferAddLit(&buf, " <apic/>\n");
|
||||
if (sexpr_int(root, "domain/image/hvm/pae"))
|
||||
virBufferAdd(&buf, " <pae/>\n", 11);
|
||||
virBufferAdd(&buf, " </features>\n", 14);
|
||||
virBufferAddLit(&buf, " <pae/>\n");
|
||||
virBufferAddLit(&buf, " </features>\n");
|
||||
|
||||
clockLocal = sexpr_int(root, "domain/image/hvm/localtime");
|
||||
virBufferVSprintf(&buf, " <clock offset='%s'/>\n", clockLocal ? "localtime" : "utc");
|
||||
}
|
||||
|
||||
virBufferAdd(&buf, " <devices>\n", 12);
|
||||
virBufferAddLit(&buf, " <devices>\n");
|
||||
|
||||
/* in case of HVM we have devices emulation */
|
||||
tmp = sexpr_node(root, "domain/image/hvm/device_model");
|
||||
@ -1636,7 +1636,7 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root,
|
||||
virBufferVSprintf(&buf, " <readonly/>\n");
|
||||
else if ((mode != NULL) && (!strcmp(mode, "w!")))
|
||||
virBufferVSprintf(&buf, " <shareable/>\n");
|
||||
virBufferAdd(&buf, " </disk>\n", 12);
|
||||
virBufferAddLit(&buf, " </disk>\n");
|
||||
|
||||
bad_parse:
|
||||
free(drvName);
|
||||
@ -1673,7 +1673,7 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root,
|
||||
virBufferVSprintf(&buf, " <script path='%s'/>\n",
|
||||
tmp2);
|
||||
|
||||
virBufferAdd(&buf, " </interface>\n", 17);
|
||||
virBufferAddLit(&buf, " </interface>\n");
|
||||
vif_index++;
|
||||
} else if (sexpr_lookup(node, "device/vfb")) {
|
||||
/* New style graphics config for PV guests in >= 3.0.4,
|
||||
@ -1682,7 +1682,7 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root,
|
||||
|
||||
if (tmp && !strcmp(tmp, "sdl")) {
|
||||
virBufferVSprintf(&buf, " <input type='mouse' bus='%s'/>\n", hvm ? "ps2": "xen");
|
||||
virBufferAdd(&buf, " <graphics type='sdl'/>\n", 27);
|
||||
virBufferAddLit(&buf, " <graphics type='sdl'/>\n");
|
||||
} else if (tmp && !strcmp(tmp, "vnc")) {
|
||||
int port = xenStoreDomainGetVNCPort(conn, domid);
|
||||
const char *listenAddr = sexpr_node(node, "device/vfb/vnclisten");
|
||||
@ -1699,7 +1699,7 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root,
|
||||
}
|
||||
if (keymap)
|
||||
virBufferVSprintf(&buf, " keymap='%s'", keymap);
|
||||
virBufferAdd(&buf, "/>\n", 3);
|
||||
virBufferAddLit(&buf, "/>\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1707,29 +1707,29 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root,
|
||||
if (hvm) {
|
||||
tmp = sexpr_node(root, "domain/image/hvm/fda");
|
||||
if ((tmp != NULL) && (tmp[0] != 0)) {
|
||||
virBufferAdd(&buf, " <disk type='file' device='floppy'>\n", 39);
|
||||
virBufferAddLit(&buf, " <disk type='file' device='floppy'>\n");
|
||||
virBufferVSprintf(&buf, " <source file='%s'/>\n", tmp);
|
||||
virBufferAdd(&buf, " <target dev='fda'/>\n", 26);
|
||||
virBufferAdd(&buf, " </disk>\n", 12);
|
||||
virBufferAddLit(&buf, " <target dev='fda'/>\n");
|
||||
virBufferAddLit(&buf, " </disk>\n");
|
||||
}
|
||||
tmp = sexpr_node(root, "domain/image/hvm/fdb");
|
||||
if ((tmp != NULL) && (tmp[0] != 0)) {
|
||||
virBufferAdd(&buf, " <disk type='file' device='floppy'>\n", 39);
|
||||
virBufferAddLit(&buf, " <disk type='file' device='floppy'>\n");
|
||||
virBufferVSprintf(&buf, " <source file='%s'/>\n", tmp);
|
||||
virBufferAdd(&buf, " <target dev='fdb'/>\n", 26);
|
||||
virBufferAdd(&buf, " </disk>\n", 12);
|
||||
virBufferAddLit(&buf, " <target dev='fdb'/>\n");
|
||||
virBufferAddLit(&buf, " </disk>\n");
|
||||
}
|
||||
|
||||
/* Old style cdrom config from Xen <= 3.0.2 */
|
||||
if (xendConfigVersion == 1) {
|
||||
tmp = sexpr_node(root, "domain/image/hvm/cdrom");
|
||||
if ((tmp != NULL) && (tmp[0] != 0)) {
|
||||
virBufferAdd(&buf, " <disk type='file' device='cdrom'>\n", 38);
|
||||
virBufferAdd(&buf, " <driver name='file'/>\n", 28);
|
||||
virBufferAddLit(&buf, " <disk type='file' device='cdrom'>\n");
|
||||
virBufferAddLit(&buf, " <driver name='file'/>\n");
|
||||
virBufferVSprintf(&buf, " <source file='%s'/>\n", tmp);
|
||||
virBufferAdd(&buf, " <target dev='hdc'/>\n", 26);
|
||||
virBufferAdd(&buf, " <readonly/>\n", 18);
|
||||
virBufferAdd(&buf, " </disk>\n", 12);
|
||||
virBufferAddLit(&buf, " <target dev='hdc'/>\n");
|
||||
virBufferAddLit(&buf, " <readonly/>\n");
|
||||
virBufferAddLit(&buf, " </disk>\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1742,9 +1742,9 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root,
|
||||
tmp = sexpr_node(node, "usbdevice");
|
||||
if (tmp && *tmp) {
|
||||
if (!strcmp(tmp, "tablet"))
|
||||
virBufferAdd(&buf, " <input type='tablet' bus='usb'/>\n", 37);
|
||||
virBufferAddLit(&buf, " <input type='tablet' bus='usb'/>\n");
|
||||
else if (!strcmp(tmp, "mouse"))
|
||||
virBufferAdd(&buf, " <input type='mouse' bus='usb'/>\n", 36);
|
||||
virBufferAddLit(&buf, " <input type='mouse' bus='usb'/>\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1779,7 +1779,7 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root,
|
||||
}
|
||||
if (keymap)
|
||||
virBufferVSprintf(&buf, " keymap='%s'", keymap);
|
||||
virBufferAdd(&buf, "/>\n", 3);
|
||||
virBufferAddLit(&buf, "/>\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1788,7 +1788,7 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root,
|
||||
if (tmp != NULL) {
|
||||
if (tmp[0] == '1') {
|
||||
virBufferVSprintf(&buf, " <input type='mouse' bus='%s'/>\n", hvm ? "ps2" : "xen");
|
||||
virBufferAdd(&buf, " <graphics type='sdl'/>\n", 27 );
|
||||
virBufferAddLit(&buf, " <graphics type='sdl'/>\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1799,8 +1799,8 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root,
|
||||
free(tty);
|
||||
}
|
||||
|
||||
virBufferAdd(&buf, " </devices>\n", 13);
|
||||
virBufferAdd(&buf, "</domain>\n", 10);
|
||||
virBufferAddLit(&buf, " </devices>\n");
|
||||
virBufferAddLit(&buf, "</domain>\n");
|
||||
|
||||
buf.content[buf.use] = 0;
|
||||
return (buf.content);
|
||||
@ -1969,9 +1969,9 @@ sexpr_to_xend_topology_xml(virConnectPtr conn, const struct sexpr *root,
|
||||
r = virParseXenCpuTopology(conn, xml, nodeToCpu, numCpus);
|
||||
if (r < 0) goto error;
|
||||
|
||||
r = virBufferAdd (xml, "\
|
||||
r = virBufferAddLit (xml, "\
|
||||
</cells>\n\
|
||||
</topology>\n", -1);
|
||||
</topology>\n");
|
||||
if (r < 0) goto vir_buffer_failed;
|
||||
return (0);
|
||||
|
||||
|
@ -592,7 +592,7 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
||||
|
||||
buf = virBufferNew(4096);
|
||||
|
||||
virBufferAdd(buf, "<domain type='xen'>\n", -1);
|
||||
virBufferAddLit(buf, "<domain type='xen'>\n");
|
||||
virBufferVSprintf(buf, " <name>%s</name>\n", name);
|
||||
virUUIDFormat(uuid, uuidstr);
|
||||
virBufferVSprintf(buf, " <uuid>%s</uuid>\n", uuidstr);
|
||||
@ -603,8 +603,8 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
||||
|
||||
if (hvm) {
|
||||
const char *boot;
|
||||
virBufferAdd(buf, " <os>\n", -1);
|
||||
virBufferAdd(buf, " <type>hvm</type>\n", -1);
|
||||
virBufferAddLit(buf, " <os>\n");
|
||||
virBufferAddLit(buf, " <type>hvm</type>\n");
|
||||
if (xenXMConfigGetString(conf, "kernel", &str) == 0)
|
||||
virBufferVSprintf(buf, " <loader>%s</loader>\n", str);
|
||||
|
||||
@ -629,7 +629,7 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
||||
boot++;
|
||||
}
|
||||
|
||||
virBufferAdd(buf, " </os>\n", -1);
|
||||
virBufferAddLit(buf, " </os>\n");
|
||||
} else {
|
||||
|
||||
if (xenXMConfigGetString(conf, "bootloader", &str) == 0)
|
||||
@ -637,14 +637,14 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
||||
if (xenXMConfigGetString(conf, "bootargs", &str) == 0)
|
||||
virBufferEscapeString(buf, " <bootloader_args>%s</bootloader_args>\n", str);
|
||||
if (xenXMConfigGetString(conf, "kernel", &str) == 0) {
|
||||
virBufferAdd(buf, " <os>\n", -1);
|
||||
virBufferAdd(buf, " <type>linux</type>\n", -1);
|
||||
virBufferAddLit(buf, " <os>\n");
|
||||
virBufferAddLit(buf, " <type>linux</type>\n");
|
||||
virBufferVSprintf(buf, " <kernel>%s</kernel>\n", str);
|
||||
if (xenXMConfigGetString(conf, "ramdisk", &str) == 0)
|
||||
virBufferVSprintf(buf, " <initrd>%s</initrd>\n", str);
|
||||
if (xenXMConfigGetString(conf, "extra", &str) == 0)
|
||||
virBufferEscapeString(buf, " <cmdline>%s</cmdline>\n", str);
|
||||
virBufferAdd(buf, " </os>\n", -1);
|
||||
virBufferAddLit(buf, " </os>\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -687,24 +687,24 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
||||
|
||||
|
||||
if (hvm) {
|
||||
virBufferAdd(buf, " <features>\n", -1);
|
||||
virBufferAddLit(buf, " <features>\n");
|
||||
if (xenXMConfigGetInt(conf, "pae", &val) == 0 &&
|
||||
val)
|
||||
virBufferAdd(buf, " <pae/>\n", -1);
|
||||
virBufferAddLit(buf, " <pae/>\n");
|
||||
if (xenXMConfigGetInt(conf, "acpi", &val) == 0 &&
|
||||
val)
|
||||
virBufferAdd(buf, " <acpi/>\n", -1);
|
||||
virBufferAddLit(buf, " <acpi/>\n");
|
||||
if (xenXMConfigGetInt(conf, "apic", &val) == 0 &&
|
||||
val)
|
||||
virBufferAdd(buf, " <apic/>\n", -1);
|
||||
virBufferAdd(buf, " </features>\n", -1);
|
||||
virBufferAddLit(buf, " <apic/>\n");
|
||||
virBufferAddLit(buf, " </features>\n");
|
||||
|
||||
if (xenXMConfigGetInt(conf, "localtime", &val) < 0)
|
||||
val = 0;
|
||||
virBufferVSprintf(buf, " <clock offset='%s'/>\n", val ? "localtime" : "utc");
|
||||
}
|
||||
|
||||
virBufferAdd(buf, " <devices>\n", -1);
|
||||
virBufferAddLit(buf, " <devices>\n");
|
||||
|
||||
if (hvm) {
|
||||
if (xenXMConfigGetString(conf, "device_model", &str) == 0)
|
||||
@ -808,11 +808,11 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
||||
virBufferVSprintf(buf, " <target dev='%s'/>\n", dev);
|
||||
if (!strcmp(head, "r") ||
|
||||
!strcmp(head, "ro"))
|
||||
virBufferAdd(buf, " <readonly/>\n", -1);
|
||||
virBufferAddLit(buf, " <readonly/>\n");
|
||||
else if ((!strcmp(head, "w!")) ||
|
||||
(!strcmp(head, "!")))
|
||||
virBufferAdd(buf, " <shareable/>\n", -1);
|
||||
virBufferAdd(buf, " </disk>\n", -1);
|
||||
virBufferAddLit(buf, " <shareable/>\n");
|
||||
virBufferAddLit(buf, " </disk>\n");
|
||||
|
||||
skipdisk:
|
||||
list = list->next;
|
||||
@ -821,12 +821,12 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
||||
|
||||
if (hvm && priv->xendConfigVersion == 1) {
|
||||
if (xenXMConfigGetString(conf, "cdrom", &str) == 0) {
|
||||
virBufferAdd(buf, " <disk type='file' device='cdrom'>\n", -1);
|
||||
virBufferAdd(buf, " <driver name='file'/>\n", -1);
|
||||
virBufferAddLit(buf, " <disk type='file' device='cdrom'>\n");
|
||||
virBufferAddLit(buf, " <driver name='file'/>\n");
|
||||
virBufferVSprintf(buf, " <source file='%s'/>\n", str);
|
||||
virBufferAdd(buf, " <target dev='hdc'/>\n", -1);
|
||||
virBufferAdd(buf, " <readonly/>\n", -1);
|
||||
virBufferAdd(buf, " </disk>\n", -1);
|
||||
virBufferAddLit(buf, " <target dev='hdc'/>\n");
|
||||
virBufferAddLit(buf, " <readonly/>\n");
|
||||
virBufferAddLit(buf, " </disk>\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -897,7 +897,7 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
||||
type = 1;
|
||||
}
|
||||
|
||||
virBufferAdd(buf, " <interface type='bridge'>\n", -1);
|
||||
virBufferAddLit(buf, " <interface type='bridge'>\n");
|
||||
if (mac[0])
|
||||
virBufferVSprintf(buf, " <mac address='%s'/>\n", mac);
|
||||
if (type == 1 && bridge[0])
|
||||
@ -906,7 +906,7 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
||||
virBufferVSprintf(buf, " <script path='%s'/>\n", script);
|
||||
if (ip[0])
|
||||
virBufferVSprintf(buf, " <ip address='%s'/>\n", ip);
|
||||
virBufferAdd(buf, " </interface>\n", -1);
|
||||
virBufferAddLit(buf, " </interface>\n");
|
||||
|
||||
skipnic:
|
||||
list = list->next;
|
||||
@ -916,9 +916,9 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
||||
if (hvm) {
|
||||
if (xenXMConfigGetString(conf, "usbdevice", &str) == 0 && str) {
|
||||
if (!strcmp(str, "tablet"))
|
||||
virBufferAdd(buf, " <input type='tablet' bus='usb'/>\n", 37);
|
||||
virBufferAddLit(buf, " <input type='tablet' bus='usb'/>\n");
|
||||
else if (!strcmp(str, "mouse"))
|
||||
virBufferAdd(buf, " <input type='mouse' bus='usb'/>\n", 36);
|
||||
virBufferAddLit(buf, " <input type='mouse' bus='usb'/>\n");
|
||||
/* Ignore else branch - probably some other non-input device we don't
|
||||
support in libvirt yet */
|
||||
}
|
||||
@ -1006,23 +1006,23 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
|
||||
if (keymap) {
|
||||
virBufferVSprintf(buf, " keymap='%s'", keymap);
|
||||
}
|
||||
virBufferAdd(buf, "/>\n", 3);
|
||||
virBufferAddLit(buf, "/>\n");
|
||||
}
|
||||
if (sdl) {
|
||||
virBufferAdd(buf, " <graphics type='sdl'/>\n", -1);
|
||||
virBufferAddLit(buf, " <graphics type='sdl'/>\n");
|
||||
}
|
||||
|
||||
if (hvm) {
|
||||
if (xenXMConfigGetString(conf, "serial", &str) == 0 && !strcmp(str, "pty")) {
|
||||
virBufferAdd(buf, " <console/>\n", -1);
|
||||
virBufferAddLit(buf, " <console/>\n");
|
||||
}
|
||||
} else { /* Paravirt implicitly always has a console */
|
||||
virBufferAdd(buf, " <console/>\n", -1);
|
||||
virBufferAddLit(buf, " <console/>\n");
|
||||
}
|
||||
|
||||
virBufferAdd(buf, " </devices>\n", -1);
|
||||
virBufferAddLit(buf, " </devices>\n");
|
||||
|
||||
virBufferAdd(buf, "</domain>\n", -1);
|
||||
virBufferAddLit(buf, "</domain>\n");
|
||||
|
||||
xml = buf->content;
|
||||
buf->content = NULL;
|
||||
@ -1274,7 +1274,7 @@ int xenXMDomainPinVcpu(virDomainPtr domain,
|
||||
n = i*8 + j;
|
||||
|
||||
if (comma) {
|
||||
if (virBufferAdd (mapbuf, ",", 1) == -1) {
|
||||
if (virBufferAddLit (mapbuf, ",") == -1) {
|
||||
xenXMError (domain->conn, VIR_ERR_NO_MEMORY, __FUNCTION__);
|
||||
virBufferFree (mapbuf);
|
||||
return -1;
|
||||
|
84
src/xml.c
84
src/xml.c
@ -172,7 +172,7 @@ virSaveCpuSet(virConnectPtr conn, char *cpuset, int maxcpu)
|
||||
start = cur;
|
||||
} else if (start != -1) {
|
||||
if (!first)
|
||||
virBufferAdd(buf, ",", -1);
|
||||
virBufferAddLit(buf, ",");
|
||||
else
|
||||
first = 0;
|
||||
if (cur == start + 1)
|
||||
@ -185,7 +185,7 @@ virSaveCpuSet(virConnectPtr conn, char *cpuset, int maxcpu)
|
||||
}
|
||||
if (start != -1) {
|
||||
if (!first)
|
||||
virBufferAdd(buf, ",", -1);
|
||||
virBufferAddLit(buf, ",");
|
||||
if (maxcpu == start + 1)
|
||||
virBufferVSprintf(buf, "%d", start);
|
||||
else
|
||||
@ -384,9 +384,9 @@ virParseXenCpuTopology(virConnectPtr conn, virBufferPtr xml,
|
||||
goto memory_error;
|
||||
}
|
||||
}
|
||||
ret = virBufferAdd(xml, "\
|
||||
ret = virBufferAddLit(xml, "\
|
||||
</cpus>\n\
|
||||
</cell>\n", -1);
|
||||
</cell>\n");
|
||||
if (ret < 0)
|
||||
goto memory_error;
|
||||
|
||||
@ -718,15 +718,15 @@ virDomainParseXMLGraphicsDescImage(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
graphics_type = xmlGetProp(node, BAD_CAST "type");
|
||||
if (graphics_type != NULL) {
|
||||
if (xmlStrEqual(graphics_type, BAD_CAST "sdl")) {
|
||||
virBufferAdd(buf, "(sdl 1)", 7);
|
||||
virBufferAddLit(buf, "(sdl 1)", 7);
|
||||
/* TODO:
|
||||
* Need to understand sdl options
|
||||
*
|
||||
*virBufferAdd(buf, "(display localhost:10.0)", 24);
|
||||
*virBufferAdd(buf, "(xauthority /root/.Xauthority)", 30);
|
||||
*virBufferAddLit(buf, "(display localhost:10.0)");
|
||||
*virBufferAddLit(buf, "(xauthority /root/.Xauthority)");
|
||||
*/
|
||||
} else if (xmlStrEqual(graphics_type, BAD_CAST "vnc")) {
|
||||
virBufferAdd(buf, "(vnc 1)", 7);
|
||||
virBufferAddLit(buf, "(vnc 1)");
|
||||
if (xendConfigVersion >= 2) {
|
||||
xmlChar *vncport = xmlGetProp(node, BAD_CAST "port");
|
||||
xmlChar *vnclisten = xmlGetProp(node, BAD_CAST "listen");
|
||||
@ -737,7 +737,7 @@ virDomainParseXMLGraphicsDescImage(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
long port = strtol((const char *) vncport, NULL, 10);
|
||||
|
||||
if (port == -1)
|
||||
virBufferAdd(buf, "(vncunused 1)", 13);
|
||||
virBufferAddLit(buf, "(vncunused 1)");
|
||||
else if (port >= 5900)
|
||||
virBufferVSprintf(buf, "(vncdisplay %ld)",
|
||||
port - 5900);
|
||||
@ -784,18 +784,18 @@ virDomainParseXMLGraphicsDescVFB(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
|
||||
graphics_type = xmlGetProp(node, BAD_CAST "type");
|
||||
if (graphics_type != NULL) {
|
||||
virBufferAdd(buf, "(device (vkbd))", 15);
|
||||
virBufferAdd(buf, "(device (vfb ", 13);
|
||||
virBufferAddLit(buf, "(device (vkbd))");
|
||||
virBufferAddLit(buf, "(device (vfb ");
|
||||
if (xmlStrEqual(graphics_type, BAD_CAST "sdl")) {
|
||||
virBufferAdd(buf, "(type sdl)", 10);
|
||||
virBufferAddLit(buf, "(type sdl)");
|
||||
/* TODO:
|
||||
* Need to understand sdl options
|
||||
*
|
||||
*virBufferAdd(buf, "(display localhost:10.0)", 24);
|
||||
*virBufferAdd(buf, "(xauthority /root/.Xauthority)", 30);
|
||||
*virBufferAddLit(buf, "(display localhost:10.0)");
|
||||
*virBufferAddLit(buf, "(xauthority /root/.Xauthority)");
|
||||
*/
|
||||
} else if (xmlStrEqual(graphics_type, BAD_CAST "vnc")) {
|
||||
virBufferAdd(buf, "(type vnc)", 10);
|
||||
virBufferAddLit(buf, "(type vnc)");
|
||||
xmlChar *vncport = xmlGetProp(node, BAD_CAST "port");
|
||||
xmlChar *vnclisten = xmlGetProp(node, BAD_CAST "listen");
|
||||
xmlChar *vncpasswd = xmlGetProp(node, BAD_CAST "passwd");
|
||||
@ -805,7 +805,7 @@ virDomainParseXMLGraphicsDescVFB(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
long port = strtol((const char *) vncport, NULL, 10);
|
||||
|
||||
if (port == -1)
|
||||
virBufferAdd(buf, "(vncunused 1)", 13);
|
||||
virBufferAddLit(buf, "(vncunused 1)");
|
||||
else if (port >= 5900)
|
||||
virBufferVSprintf(buf, "(vncdisplay %ld)",
|
||||
port - 5900);
|
||||
@ -824,7 +824,7 @@ virDomainParseXMLGraphicsDescVFB(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
xmlFree(keymap);
|
||||
}
|
||||
}
|
||||
virBufferAdd(buf, "))", 2);
|
||||
virBufferAddLit(buf, "))");
|
||||
xmlFree(graphics_type);
|
||||
}
|
||||
return 0;
|
||||
@ -910,7 +910,7 @@ virDomainParseXMLOSDescHVM(virConnectPtr conn, xmlNodePtr node,
|
||||
virXMLError(conn, VIR_ERR_OS_TYPE, (const char *) type, 0);
|
||||
return (-1);
|
||||
}
|
||||
virBufferAdd(buf, "(image (hvm ", 12);
|
||||
virBufferAddLit(buf, "(image (hvm ");
|
||||
if (loader == NULL) {
|
||||
virXMLError(conn, VIR_ERR_NO_KERNEL, NULL, 0);
|
||||
goto error;
|
||||
@ -980,13 +980,13 @@ virDomainParseXMLOSDescHVM(virConnectPtr conn, xmlNodePtr node,
|
||||
}
|
||||
|
||||
if (virXPathNode("/domain/features/acpi", ctxt) != NULL)
|
||||
virBufferAdd(buf, "(acpi 1)", 8);
|
||||
virBufferAddLit(buf, "(acpi 1)");
|
||||
if (virXPathNode("/domain/features/apic", ctxt) != NULL)
|
||||
virBufferAdd(buf, "(apic 1)", 8);
|
||||
virBufferAddLit(buf, "(apic 1)");
|
||||
if (virXPathNode("/domain/features/pae", ctxt) != NULL)
|
||||
virBufferAdd(buf, "(pae 1)", 7);
|
||||
virBufferAddLit(buf, "(pae 1)");
|
||||
|
||||
virBufferAdd(buf, "(usb 1)", 7);
|
||||
virBufferAddLit(buf, "(usb 1)");
|
||||
nb_nodes = virXPathNodeSet("/domain/devices/input", ctxt, &nodes);
|
||||
if (nb_nodes > 0) {
|
||||
int i;
|
||||
@ -1015,7 +1015,7 @@ virDomainParseXMLOSDescHVM(virConnectPtr conn, xmlNodePtr node,
|
||||
if (!isMouse) {
|
||||
/* Nothing - implicit ps2 */
|
||||
} else {
|
||||
virBufferAdd(buf, "(usbdevice tablet)", 13);
|
||||
virBufferAddLit(buf, "(usbdevice tablet)");
|
||||
}
|
||||
} else {
|
||||
if (!strcmp((const char *) bus, "ps2")) {
|
||||
@ -1028,9 +1028,9 @@ virDomainParseXMLOSDescHVM(virConnectPtr conn, xmlNodePtr node,
|
||||
/* Nothing - implicit ps2 */
|
||||
} else if (!strcmp((const char *) bus, "usb")) {
|
||||
if (isMouse)
|
||||
virBufferAdd(buf, "(usbdevice mouse)", 17);
|
||||
virBufferAddLit(buf, "(usbdevice mouse)");
|
||||
else
|
||||
virBufferAdd(buf, "(usbdevice tablet)", 18);
|
||||
virBufferAddLit(buf, "(usbdevice tablet)");
|
||||
}
|
||||
}
|
||||
xmlFree(bus);
|
||||
@ -1046,7 +1046,7 @@ virDomainParseXMLOSDescHVM(virConnectPtr conn, xmlNodePtr node,
|
||||
goto error;
|
||||
}
|
||||
if (res) {
|
||||
virBufferAdd(buf, "(serial pty)", 12);
|
||||
virBufferAddLit(buf, "(serial pty)");
|
||||
}
|
||||
|
||||
/* HVM graphics for xen <= 3.0.5 */
|
||||
@ -1064,11 +1064,11 @@ virDomainParseXMLOSDescHVM(virConnectPtr conn, xmlNodePtr node,
|
||||
|
||||
str = virXPathString("string(/domain/clock/@offset)", ctxt);
|
||||
if (str != NULL && !strcmp(str, "localtime")) {
|
||||
virBufferAdd(buf, "(localtime 1)", 13);
|
||||
virBufferAddLit(buf, "(localtime 1)");
|
||||
}
|
||||
free(str);
|
||||
|
||||
virBufferAdd(buf, "))", 2);
|
||||
virBufferAddLit(buf, "))");
|
||||
|
||||
return (0);
|
||||
|
||||
@ -1147,7 +1147,7 @@ virDomainParseXMLOSDescPV(virConnectPtr conn, xmlNodePtr node,
|
||||
virXMLError(conn, VIR_ERR_OS_TYPE, (const char *) type, 0);
|
||||
return (-1);
|
||||
}
|
||||
virBufferAdd(buf, "(image (linux ", 14);
|
||||
virBufferAddLit(buf, "(image (linux ");
|
||||
if (kernel == NULL) {
|
||||
virXMLError(conn, VIR_ERR_NO_KERNEL, NULL, 0);
|
||||
return (-1);
|
||||
@ -1174,7 +1174,7 @@ virDomainParseXMLOSDescPV(virConnectPtr conn, xmlNodePtr node,
|
||||
}
|
||||
|
||||
error:
|
||||
virBufferAdd(buf, "))", 2);
|
||||
virBufferAddLit(buf, "))");
|
||||
return (0);
|
||||
}
|
||||
|
||||
@ -1304,14 +1304,14 @@ virDomainParseXMLDiskDesc(virConnectPtr conn, xmlNodePtr node,
|
||||
}
|
||||
|
||||
|
||||
virBufferAdd(buf, "(device ", 8);
|
||||
virBufferAddLit(buf, "(device ");
|
||||
/* Normally disks are in a (device (vbd ...)) block
|
||||
* but blktap disks ended up in a differently named
|
||||
* (device (tap ....)) block.... */
|
||||
if (drvName && !strcmp((const char *) drvName, "tap")) {
|
||||
virBufferAdd(buf, "(tap ", 5);
|
||||
virBufferAddLit(buf, "(tap ");
|
||||
} else {
|
||||
virBufferAdd(buf, "(vbd ", 5);
|
||||
virBufferAddLit(buf, "(vbd ");
|
||||
}
|
||||
|
||||
if (hvm) {
|
||||
@ -1358,8 +1358,8 @@ virDomainParseXMLDiskDesc(virConnectPtr conn, xmlNodePtr node,
|
||||
else
|
||||
virBufferVSprintf(buf, "(mode 'w')");
|
||||
|
||||
virBufferAdd(buf, ")", 1);
|
||||
virBufferAdd(buf, ")", 1);
|
||||
virBufferAddLit(buf, ")");
|
||||
virBufferAddLit(buf, ")");
|
||||
|
||||
cleanup:
|
||||
if (drvType)
|
||||
@ -1442,7 +1442,7 @@ virDomainParseXMLIfDesc(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
cur = cur->next;
|
||||
}
|
||||
|
||||
virBufferAdd(buf, "(vif ", 5);
|
||||
virBufferAddLit(buf, "(vif ");
|
||||
if (mac != NULL) {
|
||||
unsigned int addr[12];
|
||||
int tmp = sscanf((const char *) mac,
|
||||
@ -1496,9 +1496,9 @@ virDomainParseXMLIfDesc(virConnectPtr conn ATTRIBUTE_UNUSED,
|
||||
* from Xen 3.1.0
|
||||
*/
|
||||
if ((hvm) && (xendConfigVersion < 4))
|
||||
virBufferAdd(buf, "(type ioemu)", 12);
|
||||
virBufferAddLit(buf, "(type ioemu)");
|
||||
|
||||
virBufferAdd(buf, ")", 1);
|
||||
virBufferAddLit(buf, ")");
|
||||
ret = 0;
|
||||
error:
|
||||
if (mac != NULL)
|
||||
@ -1583,7 +1583,7 @@ virDomainParseXMLDesc(virConnectPtr conn, const char *xmldesc, char **name,
|
||||
}
|
||||
xmlFree(prop);
|
||||
}
|
||||
virBufferAdd(&buf, "(vm ", 4);
|
||||
virBufferAddLit(&buf, "(vm ");
|
||||
ctxt = xmlXPathNewContext(xml);
|
||||
if (ctxt == NULL) {
|
||||
goto error;
|
||||
@ -1748,7 +1748,7 @@ virDomainParseXMLDesc(virConnectPtr conn, const char *xmldesc, char **name,
|
||||
nb_nodes = virXPathNodeSet("/domain/devices/interface", ctxt, &nodes);
|
||||
if (nb_nodes > 0) {
|
||||
for (i = 0; i < nb_nodes; i++) {
|
||||
virBufferAdd(&buf, "(device ", 8);
|
||||
virBufferAddLit(&buf, "(device ");
|
||||
res =
|
||||
virDomainParseXMLIfDesc(conn, nodes[i], &buf, hvm,
|
||||
xendConfigVersion);
|
||||
@ -1756,7 +1756,7 @@ virDomainParseXMLDesc(virConnectPtr conn, const char *xmldesc, char **name,
|
||||
free(nodes);
|
||||
goto error;
|
||||
}
|
||||
virBufferAdd(&buf, ")", 1);
|
||||
virBufferAddLit(&buf, ")");
|
||||
}
|
||||
free(nodes);
|
||||
}
|
||||
@ -1779,7 +1779,7 @@ virDomainParseXMLDesc(virConnectPtr conn, const char *xmldesc, char **name,
|
||||
}
|
||||
|
||||
|
||||
virBufferAdd(&buf, ")", 1); /* closes (vm */
|
||||
virBufferAddLit(&buf, ")"); /* closes (vm */
|
||||
buf.content[buf.use] = 0;
|
||||
|
||||
xmlXPathFreeContext(ctxt);
|
||||
|
Loading…
x
Reference in New Issue
Block a user