[libvirt] [PATCH v4 4/6] qemu: add virQEMUCapsSupportsVmport

Martin Kletzander mkletzan at redhat.com
Mon Apr 27 14:19:11 UTC 2015


On Tue, Apr 21, 2015 at 01:57:39PM +0200, Marc-André Lureau wrote:
>The vmport machine argument works with pc machine kind, not with xen for
>example.
>---
> src/qemu/qemu_capabilities.c | 13 +++++++++++++
> src/qemu/qemu_capabilities.h |  3 +++
> src/qemu/qemu_command.c      | 19 -------------------
> src/qemu/qemu_domain.c       | 19 +++++++++++++++++++
> src/qemu/qemu_domain.h       |  3 +++
> 5 files changed, 38 insertions(+), 19 deletions(-)
>

This one's not directly applicable, but trivial enough that it doesn't
cause any problems.  I'd rather move the domain functions in another
patch, though.  That way it's clearly separated.

>diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
>index ca26855..607b6d5 100644
>--- a/src/qemu/qemu_capabilities.c
>+++ b/src/qemu/qemu_capabilities.c
>@@ -3725,6 +3725,19 @@ virQEMUCapsSupportsChardev(virDomainDefPtr def,
>
>
> bool
>+virQEMUCapsSupportsVmport(virQEMUCapsPtr qemuCaps,
>+                          const virDomainDef *def)
>+{
>+    if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_VMPORT_OPT))
>+        return false;
>+
>+    return qemuDomainMachineIsI440FX(def) ||
>+        qemuDomainMachineIsQ35(def) ||
>+        STREQ(def->os.machine, "isapc");
>+}
>+
>+
>+bool
> virQEMUCapsIsMachineSupported(virQEMUCapsPtr qemuCaps,
>                               const char *canonical_machine)
> {
>diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
>index 48c8f96..81557b7 100644
>--- a/src/qemu/qemu_capabilities.h
>+++ b/src/qemu/qemu_capabilities.h
>@@ -263,6 +263,9 @@ bool virQEMUCapsGet(virQEMUCapsPtr qemuCaps,
> bool virQEMUCapsHasPCIMultiBus(virQEMUCapsPtr qemuCaps,
>                                virDomainDefPtr def);
>
>+bool virQEMUCapsSupportsVmport(virQEMUCapsPtr qemuCaps,
>+                               const virDomainDef *def);
>+
> char *virQEMUCapsFlagsString(virQEMUCapsPtr qemuCaps);
>
> const char *virQEMUCapsGetBinary(virQEMUCapsPtr qemuCaps);
>diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>index 29b876e..f25a75f 100644
>--- a/src/qemu/qemu_command.c
>+++ b/src/qemu/qemu_command.c
>@@ -1954,25 +1954,6 @@ qemuValidateDevicePCISlotsPIIX3(virDomainDefPtr def,
> }
>
>
>-static bool
>-qemuDomainMachineIsQ35(virDomainDefPtr def)
>-{
>-    return (STRPREFIX(def->os.machine, "pc-q35") ||
>-            STREQ(def->os.machine, "q35"));
>-}
>-
>-
>-static bool
>-qemuDomainMachineIsI440FX(virDomainDefPtr def)
>-{
>-    return (STREQ(def->os.machine, "pc") ||
>-            STRPREFIX(def->os.machine, "pc-0.") ||
>-            STRPREFIX(def->os.machine, "pc-1.") ||
>-            STRPREFIX(def->os.machine, "pc-i440") ||
>-            STRPREFIX(def->os.machine, "rhel"));
>-}
>-
>-
> static int
> qemuDomainValidateDevicePCISlotsQ35(virDomainDefPtr def,
>                                     virQEMUCapsPtr qemuCaps,
>diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
>index 1368386..506c0af 100644
>--- a/src/qemu/qemu_domain.c
>+++ b/src/qemu/qemu_domain.c
>@@ -3082,3 +3082,22 @@ qemuDomainSupportsBlockJobs(virDomainObjPtr vm,
>
>     return 0;
> }
>+
>+
>+bool
>+qemuDomainMachineIsQ35(const virDomainDef *def)
>+{
>+    return (STRPREFIX(def->os.machine, "pc-q35") ||
>+            STREQ(def->os.machine, "q35"));
>+}
>+
>+
>+bool
>+qemuDomainMachineIsI440FX(const virDomainDef *def)
>+{
>+    return (STREQ(def->os.machine, "pc") ||
>+            STRPREFIX(def->os.machine, "pc-0.") ||
>+            STRPREFIX(def->os.machine, "pc-1.") ||
>+            STRPREFIX(def->os.machine, "pc-i440") ||
>+            STRPREFIX(def->os.machine, "rhel"));
>+}
>diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
>index 6bea7c7..d68e41b 100644
>--- a/src/qemu/qemu_domain.h
>+++ b/src/qemu/qemu_domain.h
>@@ -431,4 +431,7 @@ void qemuDomObjEndAPI(virDomainObjPtr *vm);
> int qemuDomainAlignMemorySizes(virDomainDefPtr def);
> void qemuDomainMemoryDeviceAlignSize(virDomainMemoryDefPtr mem);
>
>+bool qemuDomainMachineIsQ35(const virDomainDef *def);
>+bool qemuDomainMachineIsI440FX(const virDomainDef *def);
>+
> #endif /* __QEMU_DOMAIN_H__ */
>-- 
>2.1.0
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150427/c0c57314/attachment-0001.sig>


More information about the libvir-list mailing list