Add an accessor so that a later refactor is simpler.
if (virDomainNumatuneParseXML(def->numa,
def->placement_mode ==
VIR_DOMAIN_CPU_PLACEMENT_MODE_STATIC,
- def->cpu ? def->cpu->ncells : 0,
+ virDomainNumaGetNodeCount(def->cpu),
ctxt) < 0)
goto error;
{
virNumaMemAccess memAccess;
char *cpustr;
+ size_t ncells = virDomainNumaGetNodeCount(def);
size_t i;
- if (def->ncells == 0)
+ if (ncells == 0)
return 0;
virBufferAddLit(buf, "<numa>\n");
virBufferAdjustIndent(buf, 2);
- for (i = 0; i < def->ncells; i++) {
+ for (i = 0; i < ncells; i++) {
memAccess = def->cells[i].memAccess;
if (!(cpustr = virBitmapFormat(def->cells[i].cpumask)))
return ret;
}
+
+
+size_t
+virDomainNumaGetNodeCount(virCPUDefPtr numa)
+{
+ if (!numa)
+ return 0;
+
+ return numa->ncells;
+}
virBitmapPtr *retNodeset,
int cellid);
+size_t virDomainNumaGetNodeCount(virCPUDefPtr numa)
+ ATTRIBUTE_NONNULL(1);
+
/*
* Formatters
*/
# conf/numa_conf.h
virDomainNumaEquals;
virDomainNumaFree;
+virDomainNumaGetNodeCount;
virDomainNumaNew;
virDomainNumatuneFormatNodeset;
virDomainNumatuneFormatXML;
bool needBackend = false;
int rc;
int ret = -1;
- size_t ncells = def->cpu->ncells;
+ size_t ncells = virDomainNumaGetNodeCount(def->cpu);
const long system_page_size = virGetSystemPageSizeKB();
if (virDomainNumatuneHasPerNodeBinding(def->numa) &&
virCommandAddArg(cmd, "-m");
def->mem.max_balloon = VIR_DIV_UP(def->mem.max_balloon, 1024) * 1024;
virCommandAddArgFormat(cmd, "%llu", def->mem.max_balloon / 1024);
- if (def->mem.nhugepages && (!def->cpu || !def->cpu->ncells)) {
+ if (def->mem.nhugepages && !virDomainNumaGetNodeCount(def->cpu)) {
const long system_page_size = virGetSystemPageSizeKB();
char *mem_path = NULL;
}
}
- if (def->cpu && def->cpu->ncells)
+ if (virDomainNumaGetNodeCount(def->cpu))
if (qemuBuildNumaArgStr(cfg, def, cmd, qemuCaps, nodeset) < 0)
goto error;