From 044eed3f9463d0205b4b9d5a2235f47ff9972c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Wed, 18 Nov 2020 16:11:05 +0000 Subject: [PATCH] qemu: add helper method for checking if ESP SCSI is builtin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The NCR53C90 ESP SCSI controller is only usable when built-in to the machine type. This method will facilitate checking that restriction across many places. Signed-off-by: Daniel P. Berrangé --- src/qemu/qemu_domain.c | 17 +++++++++++++++++ src/qemu/qemu_domain.h | 1 + 2 files changed, 18 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e85ca80929..1a80aa4c69 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -8289,6 +8289,23 @@ qemuDomainMachineHasBuiltinIDE(const char *machine, } +bool qemuDomainHasBuiltinESP(const virDomainDef *def) +{ + /* These machines use ncr53c90 (ESP) SCSI controller built-in */ + if (def->os.arch == VIR_ARCH_SPARC) { + return true; + } else if (ARCH_IS_MIPS64(def->os.arch) && + (STREQ(def->os.machine, "magnum") || + STREQ(def->os.machine, "pica61"))) { + return true; + } else if (def->os.arch == VIR_ARCH_M68K && + STREQ(def->os.machine, "q800")) { + return true; + } + return false; +} + + static bool qemuDomainMachineNeedsFDC(const char *machine, const virArch arch) diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 8dbec6e33f..6b75b828c0 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -780,6 +780,7 @@ bool qemuDomainIsPSeries(const virDomainDef *def); bool qemuDomainHasPCIRoot(const virDomainDef *def); bool qemuDomainHasPCIeRoot(const virDomainDef *def); bool qemuDomainHasBuiltinIDE(const virDomainDef *def); +bool qemuDomainHasBuiltinESP(const virDomainDef *def); bool qemuDomainNeedsFDC(const virDomainDef *def); bool qemuDomainSupportsPCI(virDomainDefPtr def, virQEMUCapsPtr qemuCaps);