]> xenbits.xensource.com Git - libvirt.git/commitdiff
virQEMUCapsProbeHVF: Factor out setting of the capability
authorPeter Krempa <pkrempa@redhat.com>
Wed, 8 Mar 2023 17:14:03 +0000 (18:14 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 3 Apr 2023 07:19:06 +0000 (09:19 +0200)
Separate the architecture specific code to probe the support for HVF
from the actual setting of the capability.

In upcoming patches 'virQEMUCapsProbeHVF' will be mocked in the
testsuite to provide testing for the HVF hypervisor.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/domaincapsmock.c

index c5f144d20afed4e8287cf9a1d7054aaeff5c68de..6244dca6dc3180a98c378dab37694037f82a47f7 100644 (file)
@@ -3339,7 +3339,7 @@ virQEMUCapsProbeQMPKVMState(virQEMUCaps *qemuCaps,
 }
 
 #ifdef __APPLE__
-int
+bool
 virQEMUCapsProbeHVF(virQEMUCaps *qemuCaps)
 {
     int hv_support = 0;
@@ -3349,22 +3349,19 @@ virQEMUCapsProbeHVF(virQEMUCaps *qemuCaps)
     /* Guest and host arch need to match for hardware acceleration
      * to be usable */
     if (qemuCaps->arch != hostArch)
-        return 0;
+        return false;
 
     /* We need the OS to report Hypervisor.framework availability */
     if (sysctlbyname("kern.hv_support", &hv_support, &len, NULL, 0) < 0)
-        return 0;
-
-    if (hv_support)
-        virQEMUCapsSet(qemuCaps, QEMU_CAPS_HVF);
+        return false;
 
-    return 0;
+    return !!hv_support;
 }
 #else
-int
+bool
 virQEMUCapsProbeHVF(virQEMUCaps *qemuCaps G_GNUC_UNUSED)
 {
-    return 0;
+    return false;
 }
 #endif
 
@@ -5626,8 +5623,8 @@ virQEMUCapsInitQMPMonitor(virQEMUCaps *qemuCaps,
     if (virQEMUCapsProbeQMPKVMState(qemuCaps, mon) < 0)
         return -1;
 
-    if (virQEMUCapsProbeHVF(qemuCaps) < 0)
-        return -1;
+    if (virQEMUCapsProbeHVF(qemuCaps))
+        virQEMUCapsSet(qemuCaps, QEMU_CAPS_HVF);
 
     type = virQEMUCapsGetVirtType(qemuCaps);
     accel = virQEMUCapsGetAccel(qemuCaps, type);
index c4f170863912b482e1c7ba37afeaba35a0be2b38..15f0df531716092a0f862ebc65c4427874586480 100644 (file)
@@ -887,7 +887,8 @@ virQEMUCapsGetSGXCapabilities(virQEMUCaps *qemuCaps);
 bool
 virQEMUCapsGetKVMSupportsSecureGuest(virQEMUCaps *qemuCaps) G_NO_INLINE;
 
-int virQEMUCapsProbeHVF(virQEMUCaps *qemuCaps) G_NO_INLINE;
+bool
+virQEMUCapsProbeHVF(virQEMUCaps *qemuCaps) G_NO_INLINE;
 
 virArch virQEMUCapsArchFromString(const char *arch);
 const char *virQEMUCapsArchToString(virArch arch);
index 4d53e48c4825335218f8fcf64b3b177152037836..8f27eeb3a1e9ae64615b8bd8a420dc0d36fdeb26 100644 (file)
@@ -52,10 +52,10 @@ virQEMUCapsGetKVMSupportsSecureGuest(virQEMUCaps *qemuCaps)
     return real_virQEMUCapsGetKVMSupportsSecureGuest(qemuCaps);
 }
 
-int
+bool
 virQEMUCapsProbeHVF(virQEMUCaps *qemuCaps G_GNUC_UNUSED)
 {
-    return 0;
+    return false;
 }
 #endif