From nobody Mon Feb 9 04:31:00 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1551860501781328.62333388741195; Wed, 6 Mar 2019 00:21:41 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 0E97B307D874; Wed, 6 Mar 2019 08:21:40 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DADA31001DC5; Wed, 6 Mar 2019 08:21:39 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 9707F181A276; Wed, 6 Mar 2019 08:21:39 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x268LBCu032638 for ; Wed, 6 Mar 2019 03:21:11 -0500 Received: by smtp.corp.redhat.com (Postfix) id 11E731A267; Wed, 6 Mar 2019 08:21:11 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8928227CB8 for ; Wed, 6 Mar 2019 08:21:10 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 6 Mar 2019 09:20:45 +0100 Message-Id: <3afca50b23e5199523795286800cb63d0eda08a1.1551859940.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 20/23] conf: Use virXMLFormatElement in virDomainDefFormatFeatures X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.48]); Wed, 06 Mar 2019 08:21:40 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Remove logic necessary to figure out whether to format the 'features' element by using virXMLFormatElement. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_conf.c | 91 +++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 58 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index beabbace94..f48b41da87 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -27150,19 +27150,6 @@ virDomainPerfDefFormat(virBufferPtr buf, virDomain= PerfDefPtr perf) virBufferAddLit(buf, "\n"); } -static bool -virDomainDefHasCapabilitiesFeatures(virDomainDefPtr def) -{ - size_t i; - - for (i =3D 0; i < VIR_DOMAIN_CAPS_FEATURE_LAST; i++) { - if (def->caps_features[i] !=3D VIR_TRISTATE_SWITCH_ABSENT) - return true; - } - - return false; -} - static void virDomainSchedulerFormat(virBufferPtr buf, @@ -27747,19 +27734,10 @@ virDomainDefFormatFeatures(virBufferPtr buf, { VIR_AUTOCLEAN(virBuffer) tmpAttrBuf =3D VIR_BUFFER_INITIALIZER; VIR_AUTOCLEAN(virBuffer) tmpChildBuf =3D VIR_BUFFER_INITIALIZER; + VIR_AUTOCLEAN(virBuffer) childBuf =3D VIR_BUFFER_INITIALIZER; size_t i; - for (i =3D 0; i < VIR_DOMAIN_FEATURE_LAST; i++) { - if (def->features[i] !=3D VIR_TRISTATE_SWITCH_ABSENT) - break; - } - - if (i =3D=3D VIR_DOMAIN_FEATURE_LAST && - !virDomainDefHasCapabilitiesFeatures(def)) - return 0; - - virBufferAddLit(buf, "\n"); - virBufferAdjustIndent(buf, 2); + virBufferSetChildIndent(&childBuf, buf); for (i =3D 0; i < VIR_DOMAIN_FEATURE_LAST; i++) { const char *name =3D virDomainFeatureTypeToString(i); @@ -27777,7 +27755,7 @@ virDomainDefFormatFeatures(virBufferPtr buf, break; case VIR_TRISTATE_SWITCH_ON: - virBufferAsprintf(buf, "<%s/>\n", name); + virBufferAsprintf(&childBuf, "<%s/>\n", name); break; case VIR_TRISTATE_SWITCH_LAST: @@ -27803,11 +27781,11 @@ virDomainDefFormatFeatures(virBufferPtr buf, break; case VIR_TRISTATE_SWITCH_ON: - virBufferAsprintf(buf, "<%s state=3D'on'/>\n", name); + virBufferAsprintf(&childBuf, "<%s state=3D'on'/>\n", name); break; case VIR_TRISTATE_SWITCH_OFF: - virBufferAsprintf(buf, "<%s state=3D'off'/>\n", name); + virBufferAsprintf(&childBuf, "<%s state=3D'off'/>\n", name); break; } @@ -27826,24 +27804,24 @@ virDomainDefFormatFeatures(virBufferPtr buf, unsigned long long short_size =3D virFormatIntPretty(def->= tseg_size, &unit); - virBufferSetChildIndent(&tmpChildBuf, buf); + virBufferSetChildIndent(&tmpChildBuf, &childBuf); virBufferAsprintf(&tmpChildBuf, "%llu\n", unit, short_size); } - if (virXMLFormatElement(buf, "smm", &tmpAttrBuf, &tmpChildBuf)= < 0) + if (virXMLFormatElement(&childBuf, "smm", &tmpAttrBuf, &tmpChi= ldBuf) < 0) return -1; break; case VIR_DOMAIN_FEATURE_APIC: if (def->features[i] =3D=3D VIR_TRISTATE_SWITCH_ON) { - virBufferAddLit(buf, "apic_eoi) { - virBufferAsprintf(buf, " eoi=3D'%s'", + virBufferAsprintf(&childBuf, " eoi=3D'%s'", virTristateSwitchTypeToString(def->a= pic_eoi)); } - virBufferAddLit(buf, "/>\n"); + virBufferAddLit(&childBuf, "/>\n"); } break; @@ -27851,13 +27829,13 @@ virDomainDefFormatFeatures(virBufferPtr buf, if (def->features[i] !=3D VIR_TRISTATE_SWITCH_ON) break; - virBufferAddLit(buf, "\n"); - virBufferAdjustIndent(buf, 2); + virBufferAddLit(&childBuf, "\n"); + virBufferAdjustIndent(&childBuf, 2); for (j =3D 0; j < VIR_DOMAIN_HYPERV_LAST; j++) { if (def->hyperv_features[j] =3D=3D VIR_TRISTATE_SWITCH_ABS= ENT) continue; - virBufferAsprintf(buf, "<%s state=3D'%s'", + virBufferAsprintf(&childBuf, "<%s state=3D'%s'", virDomainHypervTypeToString(j), virTristateSwitchTypeToString( def->hyperv_features[j])); @@ -27880,14 +27858,14 @@ virDomainDefFormatFeatures(virBufferPtr buf, case VIR_DOMAIN_HYPERV_SPINLOCKS: if (def->hyperv_features[j] !=3D VIR_TRISTATE_SWITCH_O= N) break; - virBufferAsprintf(buf, " retries=3D'%d'", + virBufferAsprintf(&childBuf, " retries=3D'%d'", def->hyperv_spinlocks); break; case VIR_DOMAIN_HYPERV_VENDOR_ID: if (def->hyperv_features[j] !=3D VIR_TRISTATE_SWITCH_O= N) break; - virBufferEscapeString(buf, " value=3D'%s'", + virBufferEscapeString(&childBuf, " value=3D'%s'", def->hyperv_vendor_id); break; @@ -27896,23 +27874,23 @@ virDomainDefFormatFeatures(virBufferPtr buf, break; } - virBufferAddLit(buf, "/>\n"); + virBufferAddLit(&childBuf, "/>\n"); } - virBufferAdjustIndent(buf, -2); - virBufferAddLit(buf, "\n"); + virBufferAdjustIndent(&childBuf, -2); + virBufferAddLit(&childBuf, "\n"); break; case VIR_DOMAIN_FEATURE_KVM: if (def->features[i] !=3D VIR_TRISTATE_SWITCH_ON) break; - virBufferAddLit(buf, "\n"); - virBufferAdjustIndent(buf, 2); + virBufferAddLit(&childBuf, "\n"); + virBufferAdjustIndent(&childBuf, 2); for (j =3D 0; j < VIR_DOMAIN_KVM_LAST; j++) { switch ((virDomainKVM) j) { case VIR_DOMAIN_KVM_HIDDEN: if (def->kvm_features[j]) - virBufferAsprintf(buf, "<%s state=3D'%s'/>\n", + virBufferAsprintf(&childBuf, "<%s state=3D'%s'/>\n= ", virDomainKVMTypeToString(j), virTristateSwitchTypeToString( def->kvm_features[j])); @@ -27923,12 +27901,12 @@ virDomainDefFormatFeatures(virBufferPtr buf, break; } } - virBufferAdjustIndent(buf, -2); - virBufferAddLit(buf, "\n"); + virBufferAdjustIndent(&childBuf, -2); + virBufferAddLit(&childBuf, "\n"); break; case VIR_DOMAIN_FEATURE_CAPABILITIES: - virBufferSetChildIndent(&tmpChildBuf, buf); + virBufferSetChildIndent(&tmpChildBuf, &childBuf); for (j =3D 0; j < VIR_DOMAIN_CAPS_FEATURE_LAST; j++) { if (def->caps_features[j] !=3D VIR_TRISTATE_SWITCH_ABSENT) @@ -27943,17 +27921,17 @@ virDomainDefFormatFeatures(virBufferPtr buf, virBufferAsprintf(&tmpAttrBuf, " policy=3D'%s'", virDomainCapabilitiesPolicyTypeToString(= def->features[i])); - if (virXMLFormatElement(buf, "capabilities", &tmpAttrBuf, &tmp= ChildBuf) < 0) + if (virXMLFormatElement(&childBuf, "capabilities", &tmpAttrBuf= , &tmpChildBuf) < 0) return -1; break; case VIR_DOMAIN_FEATURE_GIC: if (def->features[i] =3D=3D VIR_TRISTATE_SWITCH_ON) { - virBufferAddLit(buf, "gic_version !=3D VIR_GIC_VERSION_NONE) - virBufferAsprintf(buf, " version=3D'%s'", + virBufferAsprintf(&childBuf, " version=3D'%s'", virGICVersionTypeToString(def->gic_v= ersion)); - virBufferAddLit(buf, "/>\n"); + virBufferAddLit(&childBuf, "/>\n"); } break; @@ -27961,7 +27939,7 @@ virDomainDefFormatFeatures(virBufferPtr buf, if (def->features[i] =3D=3D VIR_DOMAIN_IOAPIC_NONE) break; - virBufferAsprintf(buf, "\n", + virBufferAsprintf(&childBuf, "\n", virDomainIOAPICTypeToString(def->features[i]= )); break; @@ -27975,13 +27953,13 @@ virDomainDefFormatFeatures(virBufferPtr buf, virDomainHPTResizingTypeToString(def->hp= t_resizing)); } if (def->hpt_maxpagesize > 0) { - virBufferSetChildIndent(&tmpChildBuf, buf); + virBufferSetChildIndent(&tmpChildBuf, &childBuf); virBufferAsprintf(&tmpChildBuf, "%llu\n", def->hpt_maxpagesize); } - if (virXMLFormatElement(buf, "hpt", &tmpAttrBuf, &tmpChildBuf)= < 0) + if (virXMLFormatElement(&childBuf, "hpt", &tmpAttrBuf, &tmpChi= ldBuf) < 0) return -1; break; @@ -27989,7 +27967,7 @@ virDomainDefFormatFeatures(virBufferPtr buf, if (def->features[i] !=3D VIR_TRISTATE_SWITCH_ON) break; - virBufferAsprintf(buf, "\n", + virBufferAsprintf(&childBuf, "\n", virDomainMsrsUnknownTypeToString(def->msrs_f= eatures[VIR_DOMAIN_MSRS_UNKNOWN])); break; @@ -27999,10 +27977,7 @@ virDomainDefFormatFeatures(virBufferPtr buf, } } - virBufferAdjustIndent(buf, -2); - virBufferAddLit(buf, "\n"); - - return 0; + return virXMLFormatElement(buf, "features", NULL, &childBuf); } --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list