int virDomainNumatuneMaybeGetNodeset(virDomainNumaPtr numatune, virBitmapPtr auto_nodeset, virBitmapPtr *retNodeset, int cellid) { *retNodeset = NULL; if (!numatune) return 0; if (!virDomainNumatuneNodeSpecified(numatune, cellid) && !numatune->memory.specified) return 0; if (numatune->memory.specified && numatune->memory.placement == VIR_DOMAIN_NUMATUNE_PLACEMENT_AUTO && !auto_nodeset) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Advice from numad is needed in case of " "automatic numa placement")); return -1; } *retNodeset = virDomainNumatuneGetNodeset(numatune, auto_nodeset, cellid); return 0; }
virDomainNumatuneMemMode virDomainNumatuneGetMode(virDomainNumatunePtr numatune, int cellid) { if (!numatune) return 0; if (virDomainNumatuneNodeSpecified(numatune, cellid)) return numatune->mem_nodes[cellid].mode; if (numatune->memory.specified) return numatune->memory.mode; return 0; }
virBitmapPtr virDomainNumatuneGetNodeset(virDomainNumaPtr numatune, virBitmapPtr auto_nodeset, int cellid) { if (!numatune) return NULL; if (numatune->memory.specified && numatune->memory.placement == VIR_DOMAIN_NUMATUNE_PLACEMENT_AUTO) return auto_nodeset; if (virDomainNumatuneNodeSpecified(numatune, cellid)) return numatune->mem_nodes[cellid].nodeset; if (!numatune->memory.specified) return NULL; return numatune->memory.nodeset; }
/** * virDomainNumatuneGetMode: * @numatune: pointer to numatune definition * @cellid: cell selector * @mode: where to store the result * * Get the defined mode for domain's memory. It's safe to pass * NULL to @mode if the return value is the only info needed. * * Returns: 0 on success (with @mode updated) * -1 if no mode was defined in XML */ int virDomainNumatuneGetMode(virDomainNumaPtr numatune, int cellid, virDomainNumatuneMemMode *mode) { int ret = -1; virDomainNumatuneMemMode tmp_mode; if (!numatune) return ret; if (virDomainNumatuneNodeSpecified(numatune, cellid)) tmp_mode = numatune->mem_nodes[cellid].mode; else if (numatune->memory.specified) tmp_mode = numatune->memory.mode; else goto cleanup; if (mode) *mode = tmp_mode; ret = 0; cleanup: return ret; }