[libvirt PATCH v2 16/20] cpu_x86: Add virCPUDataGetHost

Tim Wiederhake twiederh at redhat.com
Thu Nov 4 16:27:16 UTC 2021


Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
---
 src/cpu/cpu.c            | 19 +++++++++++++++++++
 src/cpu/cpu.h            |  7 +++++++
 src/libvirt_private.syms |  1 +
 3 files changed, 27 insertions(+)

diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c
index b5669246b4..285c7eee44 100644
--- a/src/cpu/cpu.c
+++ b/src/cpu/cpu.c
@@ -1190,6 +1190,25 @@ virCPUDataIsIdentical(const virCPUData *a,
 }
 
 
+/**
+ * virCPUDataGetHost:
+ *
+ */
+virCPUData*
+virCPUDataGetHost(void)
+{
+    struct cpuArchDriver *driver;
+
+    if (!(driver = cpuGetSubDriver(virArchFromHost())))
+        return NULL;
+
+    if (!driver->dataGetHost)
+        return NULL;
+
+    return driver->dataGetHost();
+}
+
+
 /**
  * virCPUArchIsSupported:
  *
diff --git a/src/cpu/cpu.h b/src/cpu/cpu.h
index d3e5ca79f2..071b33fe76 100644
--- a/src/cpu/cpu.h
+++ b/src/cpu/cpu.h
@@ -130,6 +130,9 @@ typedef virCPUCompareResult
 (*virCPUArchDataIsIdentical)(const virCPUData *a,
                              const virCPUData *b);
 
+typedef virCPUData *
+(*virCPUArchDataGetHost)(void);
+
 struct cpuArchDriver {
     const char *name;
     const virArch *arch;
@@ -155,6 +158,7 @@ struct cpuArchDriver {
     virCPUArchValidateFeatures validateFeatures;
     virCPUArchDataAddFeature dataAddFeature;
     virCPUArchDataIsIdentical dataIsIdentical;
+    virCPUArchDataGetHost dataGetHost;
 };
 
 
@@ -291,6 +295,9 @@ virCPUCompareResult
 virCPUDataIsIdentical(const virCPUData *a,
                       const virCPUData *b);
 
+virCPUData*
+virCPUDataGetHost(void);
+
 bool
 virCPUArchIsSupported(virArch arch);
 
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index e92670c85d..d4e2d3db74 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1460,6 +1460,7 @@ virCPUDataAddFeature;
 virCPUDataCheckFeature;
 virCPUDataFormat;
 virCPUDataFree;
+virCPUDataGetHost;
 virCPUDataIsIdentical;
 virCPUDataNew;
 virCPUDataNewCopy;
-- 
2.31.1




More information about the libvir-list mailing list