提交 b0fc6a69 编写于 作者: M Marc Hartmayer 提交者: John Ferlan

qemu: Use switch statement for address types in qemuBuildControllerDevStr

Use a switch statement instead of if-else-if statements. Move the
command line building of the iothread attribute into the common path
as the SCSI controller attributes are already validated.
Signed-off-by: NMarc Hartmayer <mhartmay@linux.vnet.ibm.com>
上级 5775089e
...@@ -2608,6 +2608,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, ...@@ -2608,6 +2608,7 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef,
int *nusbcontroller) int *nusbcontroller)
{ {
virBuffer buf = VIR_BUFFER_INITIALIZER; virBuffer buf = VIR_BUFFER_INITIALIZER;
int address_type = def->info.type;
const virDomainPCIControllerOpts *pciopts; const virDomainPCIControllerOpts *pciopts;
const char *modelName = NULL; const char *modelName = NULL;
...@@ -2617,23 +2618,25 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, ...@@ -2617,23 +2618,25 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef,
case VIR_DOMAIN_CONTROLLER_TYPE_SCSI: case VIR_DOMAIN_CONTROLLER_TYPE_SCSI:
switch ((virDomainControllerModelSCSI) def->model) { switch ((virDomainControllerModelSCSI) def->model) {
case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI: case VIR_DOMAIN_CONTROLLER_MODEL_SCSI_VIRTIO_SCSI:
if (def->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW) { switch ((virDomainDeviceAddressType) address_type) {
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW:
virBufferAddLit(&buf, "virtio-scsi-ccw"); virBufferAddLit(&buf, "virtio-scsi-ccw");
if (def->iothread) break;
virBufferAsprintf(&buf, ",iothread=iothread%u", case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390:
def->iothread);
} else if (def->info.type ==
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390) {
virBufferAddLit(&buf, "virtio-scsi-s390"); virBufferAddLit(&buf, "virtio-scsi-s390");
} else if (def->info.type == break;
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO:
virBufferAddLit(&buf, "virtio-scsi-device"); virBufferAddLit(&buf, "virtio-scsi-device");
} else { break;
default:
virBufferAddLit(&buf, "virtio-scsi-pci"); virBufferAddLit(&buf, "virtio-scsi-pci");
if (def->iothread) }
if (def->iothread) {
virBufferAsprintf(&buf, ",iothread=iothread%u", virBufferAsprintf(&buf, ",iothread=iothread%u",
def->iothread); def->iothread);
} }
if (qemuBuildVirtioOptionsStr(&buf, def->virtio, qemuCaps) < 0) if (qemuBuildVirtioOptionsStr(&buf, def->virtio, qemuCaps) < 0)
goto error; goto error;
break; break;
...@@ -2661,18 +2664,20 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef, ...@@ -2661,18 +2664,20 @@ qemuBuildControllerDevStr(const virDomainDef *domainDef,
break; break;
case VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL: case VIR_DOMAIN_CONTROLLER_TYPE_VIRTIO_SERIAL:
if (def->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) { switch ((virDomainDeviceAddressType) address_type) {
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI:
virBufferAddLit(&buf, "virtio-serial-pci"); virBufferAddLit(&buf, "virtio-serial-pci");
} else if (def->info.type == break;
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW:
virBufferAddLit(&buf, "virtio-serial-ccw"); virBufferAddLit(&buf, "virtio-serial-ccw");
} else if (def->info.type == break;
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390:
virBufferAddLit(&buf, "virtio-serial-s390"); virBufferAddLit(&buf, "virtio-serial-s390");
} else if (def->info.type == break;
VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO) { case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO:
virBufferAddLit(&buf, "virtio-serial-device"); virBufferAddLit(&buf, "virtio-serial-device");
} else { break;
default:
virBufferAddLit(&buf, "virtio-serial"); virBufferAddLit(&buf, "virtio-serial");
} }
virBufferAsprintf(&buf, ",id=%s", def->info.alias); virBufferAsprintf(&buf, ",id=%s", def->info.alias);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册