Probe the bhyve binary to determine whether it supports TPM devices. Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com> --- 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