]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: cpu: Introduce virCPUDefListFeatures
authorJiri Denemark <jdenemar@redhat.com>
Mon, 11 Mar 2024 14:37:32 +0000 (15:37 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Thu, 14 Mar 2024 15:15:06 +0000 (16:15 +0100)
The function returns a list of explicitly mentioned features in the CPU
definition.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/conf/cpu_conf.c
src/conf/cpu_conf.h
src/libvirt_private.syms

index 6e6e1b9a89768b01ea5ecae2b06807ccff62e5d7..4dca7e57ec75fc652fcb94ce24536900228fe313 100644 (file)
@@ -982,6 +982,30 @@ virCPUDefFindFeature(const virCPUDef *def,
 }
 
 
+/**
+ * virCPUDefListExplicitFeatures:
+ * @def: CPU definition
+ *
+ * Provides a list of feature names explicitly mentioned in the CPU definition
+ * regardless of the policy. The caller is responsible for freeing the list.
+ *
+ * Returns a NULL-terminated list of feature names.
+ */
+char **
+virCPUDefListExplicitFeatures(const virCPUDef *def)
+{
+    char **list;
+    size_t i;
+
+    list = g_new0(char *, def->nfeatures + 1);
+
+    for (i = 0; i < def->nfeatures; i++)
+        list[i] = g_strdup(def->features[i].name);
+
+    return list;
+}
+
+
 int
 virCPUDefFilterFeatures(virCPUDef *cpu,
                         virCPUDefFeatureFilter filter,
index 2694022fed1e3ab15e5f83572b5a466f74c3711c..b10c23ee82879b53994d8f361ec6c876f1a29bbb 100644 (file)
@@ -270,6 +270,9 @@ virCPUDefCheckFeatures(virCPUDef *cpu,
                        void *opaque,
                        char ***features);
 
+char **
+virCPUDefListExplicitFeatures(const virCPUDef *def);
+
 virCPUDef **
 virCPUDefListParse(const char **xmlCPUs,
                    unsigned int ncpus,
index 98a925933efbd18fd4ccc1722546f14720fa66fb..6b6bcc368ac3555ba52f0cf24330a6b30bf2e6a8 100644 (file)
@@ -111,6 +111,7 @@ virCPUDefFree;
 virCPUDefFreeFeatures;
 virCPUDefFreeModel;
 virCPUDefIsEqual;
+virCPUDefListExplicitFeatures;
 virCPUDefListFree;
 virCPUDefListParse;
 virCPUDefNew;