[libvirt] [PATCH v2 15/31] qemu: Introduce virQEMUCapsCPUDefsToModels

Ján Tomko jtomko at redhat.com
Wed Oct 16 15:20:05 UTC 2019


On Tue, Oct 15, 2019 at 05:34:51PM +0200, Jiri Denemark wrote:
>The function translates qemuMonitorCPUDefsPtr (used by QEMU caps probing
>code) into virDomainCapsCPUModelsPtr used by domain capabilities.
>
>Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
>---
>
>Notes:
>    Version 2:
>    - trivial rebase
>
> src/qemu/qemu_capabilities.c | 71 +++++++++++++++++++++---------------
> 1 file changed, 42 insertions(+), 29 deletions(-)
>
>diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
>index e38ad03ab5..87ac9bacdc 100644
>--- a/src/qemu/qemu_capabilities.c
>+++ b/src/qemu/qemu_capabilities.c
>@@ -1887,6 +1887,41 @@ virQEMUCapsAddCPUDefinitions(virQEMUCapsPtr qemuCaps,
> }
>
>
>+static virDomainCapsCPUModelsPtr
>+virQEMUCapsCPUDefsToModels(qemuMonitorCPUDefsPtr defs,
>+                           const char **modelWhitelist,
>+                           const char **modelBlacklist)
>+{
>+    VIR_AUTOUNREF(virDomainCapsCPUModelsPtr) cpuModels = NULL;

g_autoptr

>+    size_t i;
>+
>+    if (!(cpuModels = virDomainCapsCPUModelsNew(defs->ncpus)))
>+        return NULL;
>+
>+    for (i = 0; i < defs->ncpus; i++) {
>+        qemuMonitorCPUDefInfoPtr cpu = defs->cpus + i;
>+        virDomainCapsCPUUsable usable = VIR_DOMCAPS_CPU_USABLE_UNKNOWN;
>+
>+        if (modelWhitelist && !virStringListHasString(modelWhitelist, cpu->name))
>+            continue;
>+
>+        if (modelBlacklist && virStringListHasString(modelBlacklist, cpu->name))
>+            continue;
>+
>+        if (cpu->usable == VIR_TRISTATE_BOOL_YES)
>+            usable = VIR_DOMCAPS_CPU_USABLE_YES;
>+        else if (cpu->usable == VIR_TRISTATE_BOOL_NO)
>+            usable = VIR_DOMCAPS_CPU_USABLE_NO;
>+
>+        if (virDomainCapsCPUModelsAdd(cpuModels, cpu->name,
>+                                      usable, cpu->blockers) < 0)
>+            return NULL;
>+    }
>+
>+    VIR_RETURN_PTR(cpuModels);

return g_steal_pointer(&cpuModels);

Reviewed-by: Ján Tomko <jtomko at redhat.com>

Jano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20191016/95030e92/attachment-0001.sig>


More information about the libvir-list mailing list