]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: numatune: Extract code for requesting memory nodeset from formatting
authorPeter Krempa <pkrempa@redhat.com>
Thu, 15 Jan 2015 21:40:15 +0000 (22:40 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Sat, 31 Jan 2015 07:53:21 +0000 (08:53 +0100)
Extract the logic to determine which nodeset has to be used for a domain
from the formatting step so that it can be reused separately when the
nodeset is used in a different way.

src/conf/numatune_conf.c
src/conf/numatune_conf.h
src/libvirt_private.syms

index 323cd59d19cac8ee366a9eb05bd59eceff64d45b..7f322ea7e2c81950606ea9a7bdc60deec422954d 100644 (file)
@@ -400,13 +400,14 @@ virDomainNumatuneFormatNodeset(virDomainNumatunePtr numatune,
                                                        cellid));
 }
 
+
 int
-virDomainNumatuneMaybeFormatNodeset(virDomainNumatunePtr numatune,
-                                    virBitmapPtr auto_nodeset,
-                                    char **mask,
-                                    int cellid)
+virDomainNumatuneMaybeGetNodeset(virDomainNumatunePtr numatune,
+                                 virBitmapPtr auto_nodeset,
+                                 virBitmapPtr *retNodeset,
+                                 int cellid)
 {
-    *mask = NULL;
+    *retNodeset = NULL;
 
     if (!numatune)
         return 0;
@@ -424,8 +425,26 @@ virDomainNumatuneMaybeFormatNodeset(virDomainNumatunePtr numatune,
         return -1;
     }
 
-    *mask = virDomainNumatuneFormatNodeset(numatune, auto_nodeset, cellid);
-    if (!*mask)
+    *retNodeset = virDomainNumatuneGetNodeset(numatune, auto_nodeset, cellid);
+
+    return 0;
+}
+
+
+int
+virDomainNumatuneMaybeFormatNodeset(virDomainNumatunePtr numatune,
+                                    virBitmapPtr auto_nodeset,
+                                    char **mask,
+                                    int cellid)
+{
+    virBitmapPtr nodeset;
+
+    if (virDomainNumatuneMaybeGetNodeset(numatune, auto_nodeset, &nodeset,
+                                         cellid) < 0)
+        return -1;
+
+    if (nodeset &&
+        !(*mask = virBitmapFormat(nodeset)))
         return -1;
 
     return 0;
index 7ca7f976f2f182dbb1029049f15190f5f42159bf..28c4ce255cc5654ce2c15adeed53fd268f2e243e 100644 (file)
@@ -70,6 +70,11 @@ virBitmapPtr virDomainNumatuneGetNodeset(virDomainNumatunePtr numatune,
                                          virBitmapPtr auto_nodeset,
                                          int cellid);
 
+int virDomainNumatuneMaybeGetNodeset(virDomainNumatunePtr numatune,
+                                     virBitmapPtr auto_nodeset,
+                                     virBitmapPtr *retNodeset,
+                                     int cellid);
+
 /*
  * Formatters
  */
index db60813566cdca515c407a6e65e0a7dce2f63429..d8f15e956841df33e7d885d5bf6166204e5eac1a 100644 (file)
@@ -626,6 +626,7 @@ virDomainNumatuneGetNodeset;
 virDomainNumatuneHasPerNodeBinding;
 virDomainNumatuneHasPlacementAuto;
 virDomainNumatuneMaybeFormatNodeset;
+virDomainNumatuneMaybeGetNodeset;
 virDomainNumatuneMemModeTypeFromString;
 virDomainNumatuneMemModeTypeToString;
 virDomainNumatuneNodesetIsAvailable;