提交 2337309e 编写于 作者: M Michal Privoznik

qemu_firmware: Separate machine and arch matching into a function

This part of the code will be reused later.
Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
Acked-by: NLaszlo Ersek <lersek@redhat.com>
上级 15e0b764
......@@ -1056,6 +1056,29 @@ qemuFirmwareFetchConfigs(char ***firmwares,
}
static bool
qemuFirmwareMatchesMachineArch(const qemuFirmware *fw,
const char *machine,
virArch arch)
{
size_t i;
for (i = 0; i < fw->ntargets; i++) {
size_t j;
if (arch != fw->targets[i]->architecture)
continue;
for (j = 0; j < fw->targets[i]->nmachines; j++) {
if (fnmatch(fw->targets[i]->machines[j], machine, 0) == 0)
return true;
}
}
return false;
}
static bool
qemuFirmwareMatchDomain(const virDomainDef *def,
const qemuFirmware *fw,
......@@ -1080,24 +1103,7 @@ qemuFirmwareMatchDomain(const virDomainDef *def,
return false;
}
for (i = 0; i < fw->ntargets; i++) {
size_t j;
if (def->os.arch != fw->targets[i]->architecture)
continue;
for (j = 0; j < fw->targets[i]->nmachines; j++) {
if (fnmatch(fw->targets[i]->machines[j], def->os.machine, 0) == 0)
break;
}
if (j == fw->targets[i]->nmachines)
continue;
break;
}
if (i == fw->ntargets) {
if (!qemuFirmwareMatchesMachineArch(fw, def->os.machine, def->os.arch)) {
VIR_DEBUG("No matching machine type in '%s'", path);
return false;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册