1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

qemuBuildTPMProxyCommandLine: Generate via JSON

All properties are strings according to QEMU.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2021-10-11 16:12:52 +02:00
parent 304ffa2dff
commit 5e24a5021c

View File

@ -9980,19 +9980,20 @@ qemuBuildTPMCommandLine(virCommand *cmd,
static int
qemuBuildTPMProxyCommandLine(virCommand *cmd,
virDomainTPMDef *tpm)
virDomainTPMDef *tpm,
virQEMUCaps *qemuCaps)
{
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
const char *filePath = NULL;
g_autoptr(virJSONValue) props = NULL;
filePath = tpm->data.passthrough.source.data.file.path;
if (virJSONValueObjectCreate(&props,
"s:driver", virDomainTPMModelTypeToString(tpm->model),
"s:id", tpm->info.alias,
"s:host-path", tpm->data.passthrough.source.data.file.path,
NULL) < 0)
return -1;
virCommandAddArg(cmd, "-device");
virBufferAsprintf(&buf, "%s,id=%s,host-path=",
virDomainTPMModelTypeToString(tpm->model),
tpm->info.alias);
virQEMUBuildBufferEscapeComma(&buf, filePath);
virCommandAddArgBuffer(cmd, &buf);
if (qemuBuildDeviceCommandlineFromJSON(cmd, props, qemuCaps) < 0)
return -1;
return 0;
}
@ -10007,7 +10008,7 @@ qemuBuildTPMsCommandLine(virCommand *cmd,
for (i = 0; i < def->ntpms; i++) {
if (def->tpms[i]->model == VIR_DOMAIN_TPM_MODEL_SPAPR_PROXY) {
if (qemuBuildTPMProxyCommandLine(cmd, def->tpms[i]) < 0)
if (qemuBuildTPMProxyCommandLine(cmd, def->tpms[i], qemuCaps) < 0)
return -1;
} else if (qemuBuildTPMCommandLine(cmd, def,
def->tpms[i], qemuCaps) < 0) {