/** * virCPUDefStealModel: * * Move CPU model related parts virCPUDef from @src to @dst. If @keepVendor * is true, the function keeps the original vendor/vendor_id in @dst rather * than overwriting it with the values from @src. */ void virCPUDefStealModel(virCPUDefPtr dst, virCPUDefPtr src, bool keepVendor) { char *vendor = NULL; char *vendor_id = NULL; if (keepVendor) { VIR_STEAL_PTR(vendor, dst->vendor); VIR_STEAL_PTR(vendor_id, dst->vendor_id); } virCPUDefFreeModel(dst); VIR_STEAL_PTR(dst->model, src->model); VIR_STEAL_PTR(dst->features, src->features); dst->microcodeVersion = src->microcodeVersion; dst->nfeatures_max = src->nfeatures_max; src->nfeatures_max = 0; dst->nfeatures = src->nfeatures; src->nfeatures = 0; if (keepVendor) { dst->vendor = vendor; dst->vendor_id = vendor_id; } else { VIR_STEAL_PTR(dst->vendor, src->vendor); VIR_STEAL_PTR(dst->vendor_id, src->vendor_id); } }
void virCPUDefFree(virCPUDefPtr def) { if (!def) return; virCPUDefFreeModel(def); VIR_FREE(def->cache); VIR_FREE(def); }
void virCPUDefFree(virCPUDefPtr def) { unsigned int i; if (!def) return; VIR_FREE(def->arch); virCPUDefFreeModel(def); for (i = 0 ; i < def->ncells ; i++) { VIR_FREE(def->cells[i].cpumask); VIR_FREE(def->cells[i].cpustr); } VIR_FREE(def->cells); VIR_FREE(def); }
void virCPUDefFree(virCPUDefPtr def) { size_t i; if (!def) return; virCPUDefFreeModel(def); for (i = 0; i < def->ncells; i++) { virBitmapFree(def->cells[i].cpumask); VIR_FREE(def->cells[i].cpustr); } VIR_FREE(def->cells); VIR_FREE(def->vendor_id); VIR_FREE(def); }