]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Check for QMP query-tpm-models
authorStefan Berger <stefanb@linux.vnet.ibm.com>
Mon, 15 Apr 2013 20:46:53 +0000 (16:46 -0400)
committerStefan Berger <stefanb@us.ibm.com>
Mon, 15 Apr 2013 20:46:53 +0000 (16:46 -0400)
Check for QMP query-tpm-models and set a capability flag. Do not use
this QMP command if it is not supported.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h

index 502c603c7b44c3fc30b02fa89d0ad4f67b0ae3c4..b174672f561650b36d01e66c7052bdfd2e9d8d97 100644 (file)
@@ -220,6 +220,8 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
               "machine-usb-opt",
               "tpm-passthrough",
               "tpm-tis",
+
+              "query-tpm-models", /* 140 */
     );
 
 struct _virQEMUCaps {
@@ -1962,6 +1964,8 @@ virQEMUCapsProbeQMPCommands(virQEMUCapsPtr qemuCaps,
             virQEMUCapsSet(qemuCaps, QEMU_CAPS_ADD_FD);
         else if (STREQ(name, "nbd-server-start"))
             virQEMUCapsSet(qemuCaps, QEMU_CAPS_NBD_SERVER);
+        else if (STREQ(name, "query-tpm-models"))
+            virQEMUCapsSet(qemuCaps, QEMU_CAPS_TPM_MODELS);
         VIR_FREE(name);
     }
     VIR_FREE(commands);
@@ -2144,6 +2148,10 @@ virQEMUCapsProbeQMPTPM(virQEMUCapsPtr qemuCaps,
 {
     int nentries, i;
     char **entries = NULL;
+
+    if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_TPM_MODELS))
+        return 0;
+
     if ((nentries = qemuMonitorGetTPMModels(mon, &entries)) < 0)
         return -1;
 
index 728add5620571454487a9c00228a3bd0c0df3bd2..7a0f191a66938c34cbf69dd4e6b5025242f411b0 100644 (file)
@@ -179,6 +179,7 @@ enum virQEMUCapsFlags {
     QEMU_CAPS_MACHINE_USB_OPT    = 137, /* -machine xxx,usb=on/off */
     QEMU_CAPS_DEVICE_TPM_PASSTHROUGH = 138, /* -tpmdev passthrough */
     QEMU_CAPS_DEVICE_TPM_TIS     = 139, /* -device tpm_tis */
+    QEMU_CAPS_TPM_MODELS         = 140, /* query-tpm-models QMP command */
 
     QEMU_CAPS_LAST,                   /* this must always be the last item */
 };