From 868eae25430b00560be5f078d12137b875ce6239 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 26 Nov 2020 19:07:03 +0100 Subject: [PATCH 09/16] qemu: command: Generate commandline of iothread objects JSON MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The commandline generator for 'iothread' objects has a private implementation of the properties. Convert it to JSON so that it can be later validated. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/qemu/qemu_command.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 4ec661e4b5..be51400928 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7386,15 +7386,19 @@ qemuBuildIOThreadCommandLine(virCommandPtr cmd, if (def->niothreadids == 0) return 0; - /* Create iothread objects using the defined iothreadids list - * and the defined id and name from the list. These may be used - * by a disk definition which will associate to an iothread by - * supplying a value of an id from the list - */ for (i = 0; i < def->niothreadids; i++) { + g_autoptr(virJSONValue) props = NULL; + g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER; + g_autofree char *alias = g_strdup_printf("iothread%u", def->iothreadids[i]->iothread_id); + + if (qemuMonitorCreateObjectProps(&props, "iothread", alias, NULL) < 0) + return -1; + + if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0) + return -1; + virCommandAddArg(cmd, "-object"); - virCommandAddArgFormat(cmd, "iothread,id=iothread%u", - def->iothreadids[i]->iothread_id); + virCommandAddArgBuffer(cmd, &buf); } return 0; -- 2.27.0