[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