From: Jiri Denemark Date: Fri, 29 May 2026 11:00:10 +0000 (+0200) Subject: cpu_conf: Introduce virCPUDefSortFeatures X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0900cc4f2dca2c17e8854330d45dffa4cc7952c4;p=thirdparty%2Flibvirt.git cpu_conf: Introduce virCPUDefSortFeatures Separate the sorting code from virCPUExpandFeatures into a standalone function. Signed-off-by: Jiri Denemark Reviewed-by: Peter Krempa --- diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index 7aeedf64f5..f5a2004ee6 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -1277,3 +1277,23 @@ virCPUDefListFree(virCPUDef **cpus) g_free(cpus); } + + +static int +virCPUFeatureDefCompare(const void *p1, + const void *p2, + void *opaque G_GNUC_UNUSED) +{ + const virCPUFeatureDef *f1 = p1; + const virCPUFeatureDef *f2 = p2; + + return strcmp(f1->name, f2->name); +} + + +void +virCPUDefSortFeatures(virCPUDef *cpu) +{ + g_qsort_with_data(cpu->features, cpu->nfeatures, sizeof(*cpu->features), + virCPUFeatureDefCompare, NULL); +} diff --git a/src/conf/cpu_conf.h b/src/conf/cpu_conf.h index cfb8f1a461..0cac1a1489 100644 --- a/src/conf/cpu_conf.h +++ b/src/conf/cpu_conf.h @@ -280,3 +280,6 @@ virCPUDefListParse(const char **xmlCPUs, virCPUType cpuType); void virCPUDefListFree(virCPUDef **cpus); + +void +virCPUDefSortFeatures(virCPUDef *cpu); diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index 233686485d..d81e620a1d 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -1125,18 +1125,6 @@ virCPUConvertLegacy(virArch arch, } -static int -virCPUFeatureCompare(const void *p1, - const void *p2, - void *opaque G_GNUC_UNUSED) -{ - const virCPUFeatureDef *f1 = p1; - const virCPUFeatureDef *f2 = p2; - - return strcmp(f1->name, f2->name); -} - - /** * virCPUExpandFeatures: * @@ -1168,8 +1156,7 @@ virCPUExpandFeatures(virArch arch, driver->expandFeatures(cpu) < 0) return -1; - g_qsort_with_data(cpu->features, cpu->nfeatures, sizeof(*cpu->features), - virCPUFeatureCompare, NULL); + virCPUDefSortFeatures(cpu); VIR_DEBUG("nfeatures=%zu", cpu->nfeatures); return 0; diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index c2daf10ebc..fa448a2a1c 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -118,6 +118,7 @@ virCPUDefNew; virCPUDefParseXML; virCPUDefParseXMLString; virCPUDefRef; +virCPUDefSortFeatures; virCPUDefStealModel; virCPUDefUpdateFeature; virCPUMaxPhysAddrModeTypeFromString;