[libvirt] [PATCH 8/9] qemu: command: Refactor floppy controller command formatting

Ján Tomko jtomko at redhat.com
Tue Jul 10 09:27:51 UTC 2018


On Tue, Jul 10, 2018 at 10:44:48AM +0200, Peter Krempa wrote:
>Aggregate the code for the two separate formats used according to the
>machine type and add some supporting code so that the function is
>actually readable.
>
>Signed-off-by: Peter Krempa <pkrempa at redhat.com>
>---
> src/qemu/qemu_command.c | 58 ++++++++++++++++++++++++-------------------------
> 1 file changed, 28 insertions(+), 30 deletions(-)
>
>diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>index f756cc7112..2e5920e859 100644
>--- a/src/qemu/qemu_command.c
>+++ b/src/qemu/qemu_command.c
>@@ -2148,55 +2148,53 @@ qemuBuildFloppyCommandLineOptions(virCommandPtr cmd,
>
> {
>     virBuffer fdc_opts = VIR_BUFFER_INITIALIZER;
>-    char *fdc_opts_str = NULL;
>-    char *optstr;
>+    char driveLetter;
>     char *backendAlias = NULL;
>+    char *backendStr = NULL;
>+    char *bootindexStr = NULL;
>     int ret = -1;
>
>+    if (disk->info.addr.drive.unit)
>+        driveLetter = 'B';
>+    else
>+        driveLetter = 'A';
>+
>     if (!(backendAlias = qemuAliasDiskDriveFromDisk(disk)))
>         return -1;
>
>-    if (virAsprintf(&optstr, "drive%c=%s",
>-                    disk->info.addr.drive.unit ? 'B' : 'A',
>-                    backendAlias) < 0)
>+    if (virAsprintf(&backendStr, "drive%c=%s", driveLetter, backendAlias) < 0)
>         goto cleanup;
>
>-    if (!qemuDomainNeedsFDC(def)) {
>-        virCommandAddArg(cmd, "-global");
>-        virCommandAddArgFormat(cmd, "isa-fdc.%s", optstr);
>-    } else {
>-        virBufferAsprintf(&fdc_opts, "%s,", optstr);
>-    }
>-    VIR_FREE(optstr);
>-
>-    if (bootindex) {
>-        if (virAsprintf(&optstr, "bootindex%c=%u",
>-                        disk->info.addr.drive.unit
>-                        ? 'B' : 'A',
>-                        bootindex) < 0)
>-            goto cleanup;
>+    if (bootindex &&
>+        virAsprintf(&bootindexStr, "bootindex%c=%u", driveLetter, bootindex) < 0)
>+        goto cleanup;
>
>-        if (!qemuDomainNeedsFDC(def)) {
>+    if (!qemuDomainNeedsFDC(def)) {
>+        if (backendStr) {

backendStr is filled in unconditionally, this condition is not
necessary.

>             virCommandAddArg(cmd, "-global");
>-            virCommandAddArgFormat(cmd, "isa-fdc.%s", optstr);
>-        } else {
>-            virBufferAsprintf(&fdc_opts, "%s,", optstr);
>+            virCommandAddArgFormat(cmd, "isa-fdc.%s", backendStr);

Reviewed-by: Ján Tomko <jtomko at redhat.com>

Jano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180710/437d5c65/attachment-0001.sig>


More information about the libvir-list mailing list