From nobody Mon Feb 9 16:54:00 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1531211854515845.8085336647072; Tue, 10 Jul 2018 01:37:34 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 2F37413A82; Tue, 10 Jul 2018 08:37:33 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E234E5C2F9; Tue, 10 Jul 2018 08:37:32 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 90E5B24F63; Tue, 10 Jul 2018 08:37:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6A8b5ts007858 for ; Tue, 10 Jul 2018 04:37:06 -0400 Received: by smtp.corp.redhat.com (Postfix) id DE1BB7C55; Tue, 10 Jul 2018 08:37:05 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 82A997C51 for ; Tue, 10 Jul 2018 08:37:05 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Tue, 10 Jul 2018 10:44:48 +0200 Message-Id: <23b4b536b1965fabde7092dd8911d9e9ebf9632a.1531212176.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 8/9] qemu: command: Refactor floppy controller command formatting X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Tue, 10 Jul 2018 08:37:33 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" 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 Reviewed-by: J=EF=BF=BDn Tomko --- 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 =3D VIR_BUFFER_INITIALIZER; - char *fdc_opts_str =3D NULL; - char *optstr; + char driveLetter; char *backendAlias =3D NULL; + char *backendStr =3D NULL; + char *bootindexStr =3D NULL; int ret =3D -1; + if (disk->info.addr.drive.unit) + driveLetter =3D 'B'; + else + driveLetter =3D 'A'; + if (!(backendAlias =3D qemuAliasDiskDriveFromDisk(disk))) return -1; - if (virAsprintf(&optstr, "drive%c=3D%s", - disk->info.addr.drive.unit ? 'B' : 'A', - backendAlias) < 0) + if (virAsprintf(&backendStr, "drive%c=3D%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=3D%u", - disk->info.addr.drive.unit - ? 'B' : 'A', - bootindex) < 0) - goto cleanup; + if (bootindex && + virAsprintf(&bootindexStr, "bootindex%c=3D%u", driveLetter, bootin= dex) < 0) + goto cleanup; - if (!qemuDomainNeedsFDC(def)) { + if (!qemuDomainNeedsFDC(def)) { + if (backendStr) { virCommandAddArg(cmd, "-global"); - virCommandAddArgFormat(cmd, "isa-fdc.%s", optstr); - } else { - virBufferAsprintf(&fdc_opts, "%s,", optstr); + virCommandAddArgFormat(cmd, "isa-fdc.%s", backendStr); } - VIR_FREE(optstr); - } - /* Newer Q35 machine types require an explicit FDC controller */ - virBufferTrim(&fdc_opts, ",", -1); - if ((fdc_opts_str =3D virBufferContentAndReset(&fdc_opts))) { + if (bootindexStr) { + virCommandAddArg(cmd, "-global"); + virCommandAddArgFormat(cmd, "isa-fdc.%s", bootindexStr); + } + } else { + /* Newer Q35 machine types require an explicit FDC controller */ + virBufferAddLit(&fdc_opts, "isa-fdc,"); + virBufferStrcat(&fdc_opts, backendStr, ",", NULL); + virBufferStrcat(&fdc_opts, bootindexStr, NULL); + virBufferTrim(&fdc_opts, ",", -1); virCommandAddArg(cmd, "-device"); - virCommandAddArgFormat(cmd, "isa-fdc,%s", fdc_opts_str); - VIR_FREE(fdc_opts_str); + virCommandAddArgBuffer(cmd, &fdc_opts); } ret =3D 0; cleanup: VIR_FREE(backendAlias); + VIR_FREE(backendStr); + VIR_FREE(bootindexStr); return ret; } --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list