return ret;
}
+
+
+int
+virDomainNumaFillCPUsInNode(virDomainNumaPtr numa,
+ size_t node,
+ unsigned int maxCpus)
+{
+ g_autoptr(virBitmap) maxCPUsBitmap = virBitmapNew(maxCpus);
+ size_t i;
+
+ if (node >= virDomainNumaGetNodeCount(numa))
+ return -1;
+
+ virBitmapSetAll(maxCPUsBitmap);
+
+ for (i = 0; i < numa->nmem_nodes; i++) {
+ virBitmapPtr nodeCpus = virDomainNumaGetNodeCpumask(numa, i);
+
+ if (i == node)
+ continue;
+
+ virBitmapSubtract(maxCPUsBitmap, nodeCpus);
+ }
+
+ if (!virBitmapEqual(numa->mem_nodes[node].cpumask, maxCPUsBitmap)) {
+ virBitmapFree(numa->mem_nodes[node].cpumask);
+ numa->mem_nodes[node].cpumask = g_steal_pointer(&maxCPUsBitmap);
+ }
+
+ return 0;
+}
int virDomainNumaDefCPUFormatXML(virBufferPtr buf, virDomainNumaPtr def);
unsigned int virDomainNumaGetCPUCountTotal(virDomainNumaPtr numa);
+
+int virDomainNumaFillCPUsInNode(virDomainNumaPtr numa, size_t node,
+ unsigned int maxCpus);
virDomainMemoryAccessTypeToString;
virDomainNumaCheckABIStability;
virDomainNumaEquals;
+virDomainNumaFillCPUsInNode;
virDomainNumaFree;
virDomainNumaGetCPUCountTotal;
virDomainNumaGetMaxCPUID;