[libvirt] [PATCHv2 02/15] virDomainControllerDefFormat: do not mix attributes and subelements

Ján Tomko jtomko at redhat.com
Tue Jun 6 11:36:16 UTC 2017


Move out the PCI controller's subelements formatting out of the switch
handling attributes. This removes the need for a few bool variables.
---
 src/conf/domain_conf.c | 27 +++++++++------------------
 1 file changed, 9 insertions(+), 18 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 02b2e49..e50628f 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -21409,7 +21409,6 @@ virDomainControllerDefFormat(virBufferPtr buf,
     const char *type = virDomainControllerTypeToString(def->type);
     const char *model = NULL;
     const char *modelName = NULL;
-    bool pcihole64 = false, pciModel = false, pciTarget = false;
     virBuffer childBuf = VIR_BUFFER_INITIALIZER;
 
     virBufferAdjustIndent(&childBuf, virBufferGetIndent(buf, false) + 2);
@@ -21456,25 +21455,12 @@ virDomainControllerDefFormat(virBufferPtr buf,
         }
         break;
 
-    case VIR_DOMAIN_CONTROLLER_TYPE_PCI:
-        if (def->opts.pciopts.pcihole64)
-            pcihole64 = true;
-        if (def->opts.pciopts.modelName != VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_NONE)
-            pciModel = true;
-        if (def->opts.pciopts.chassisNr != -1 ||
-            def->opts.pciopts.chassis != -1 ||
-            def->opts.pciopts.port != -1 ||
-            def->opts.pciopts.busNr != -1 ||
-            def->opts.pciopts.numaNode != -1)
-            pciTarget = true;
-        break;
-
     default:
         break;
     }
 
-    if (pciModel || pciTarget) {
-        if (pciModel) {
+    if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI) {
+        if (def->opts.pciopts.modelName != VIR_DOMAIN_CONTROLLER_PCI_MODEL_NAME_NONE) {
             modelName = virDomainControllerPCIModelNameTypeToString(def->opts.pciopts.modelName);
             if (!modelName) {
                 virReportError(VIR_ERR_INTERNAL_ERROR,
@@ -21485,7 +21471,11 @@ virDomainControllerDefFormat(virBufferPtr buf,
             virBufferAsprintf(&childBuf, "<model name='%s'/>\n", modelName);
         }
 
-        if (pciTarget) {
+        if (def->opts.pciopts.chassisNr != -1 ||
+            def->opts.pciopts.chassis != -1 ||
+            def->opts.pciopts.port != -1 ||
+            def->opts.pciopts.busNr != -1 ||
+            def->opts.pciopts.numaNode != -1) {
             virBufferAddLit(&childBuf, "<target");
             if (def->opts.pciopts.chassisNr != -1)
                 virBufferAsprintf(&childBuf, " chassisNr='%d'",
@@ -21518,7 +21508,8 @@ virDomainControllerDefFormat(virBufferPtr buf,
         virDomainDeviceInfoFormat(&childBuf, &def->info, flags) < 0)
         return -1;
 
-    if (pcihole64) {
+    if (def->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI &&
+        def->opts.pciopts.pcihole64) {
         virBufferAsprintf(&childBuf, "<pcihole64 unit='KiB'>%lu</"
                           "pcihole64>\n", def->opts.pciopts.pcihole64size);
     }
-- 
2.10.2




More information about the libvir-list mailing list