Probe the bhyve binary to determine whether it supports TPM devices.
Signed-off-by: Roman Bogorodskiy <[email protected]>
---
src/bhyve/bhyve_capabilities.c | 15 +++++++++++++++
src/bhyve/bhyve_capabilities.h | 1 +
2 files changed, 16 insertions(+)
diff --git a/src/bhyve/bhyve_capabilities.c b/src/bhyve/bhyve_capabilities.c
index b321633b23..1fbee71205 100644
--- a/src/bhyve/bhyve_capabilities.c
+++ b/src/bhyve/bhyve_capabilities.c
@@ -357,6 +357,18 @@ bhyveProbeCapsRctl(unsigned int *caps)
return;
}
+
+static int
+bhyveProbeCapsLpcTpm(unsigned int *caps, char *binary)
+{
+ return bhyveProbeCapsDeviceHelper(caps, binary,
+ "-l",
+ "tpm",
+ "bhyve: invalid lpc device configuration
'tpm'",
+ BHYVE_CAP_LPC_TPM);
+}
+
+
int
virBhyveProbeCaps(unsigned int *caps)
{
@@ -381,6 +393,9 @@ virBhyveProbeCaps(unsigned int *caps)
bhyveProbeCapsRctl(caps);
+ if ((ret = bhyveProbeCapsLpcTpm(caps, binary)))
+ goto out;
+
out:
VIR_FREE(binary);
return ret;
diff --git a/src/bhyve/bhyve_capabilities.h b/src/bhyve/bhyve_capabilities.h
index 0302b68e22..9b3163b9ef 100644
--- a/src/bhyve/bhyve_capabilities.h
+++ b/src/bhyve/bhyve_capabilities.h
@@ -58,6 +58,7 @@ typedef enum {
BHYVE_CAP_ACPI = 1 << 12,
BHYVE_CAP_NUMA = 1 << 13,
BHYVE_CAP_RCTL = 1 << 14,
+ BHYVE_CAP_LPC_TPM = 1 << 15,
} virBhyveCapsFlags;
int virBhyveProbeGrubCaps(virBhyveGrubCapsFlags *caps);
--
2.55.0