
On Tue, Jul 10, 2018 at 11:27:51 +0200, Ján Tomko wrote:
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@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.
With -blockdev there is no backend for an empty drive so it. I can remove it but it will need to be put back later.
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@redhat.com>
Jano