qemu: Move qemuCaps->{kvm,tcg}CPUModel into a struct
We will need to store two more host CPU models and nested structs look better than separate items with long complicated names. Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
00e0cbcb56
commit
68507d77d3
@ -414,8 +414,10 @@ struct _virQEMUCaps {
|
|||||||
* re-computed from the other fields or external data sources every
|
* re-computed from the other fields or external data sources every
|
||||||
* time we probe QEMU or load the results from the cache.
|
* time we probe QEMU or load the results from the cache.
|
||||||
*/
|
*/
|
||||||
virCPUDefPtr kvmCPUModel;
|
struct {
|
||||||
virCPUDefPtr tcgCPUModel;
|
virCPUDefPtr kvm;
|
||||||
|
virCPUDefPtr tcg;
|
||||||
|
} hostCPU;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct virQEMUCapsSearchData {
|
struct virQEMUCapsSearchData {
|
||||||
@ -2086,6 +2088,31 @@ virQEMUCapsNew(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
virQEMUCapsCopyHostCPUData(virQEMUCapsPtr dst,
|
||||||
|
virQEMUCapsPtr src)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (src->kvmCPUModelInfo &&
|
||||||
|
!(dst->kvmCPUModelInfo = qemuMonitorCPUModelInfoCopy(src->kvmCPUModelInfo)))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (src->tcgCPUModelInfo &&
|
||||||
|
!(dst->tcgCPUModelInfo = qemuMonitorCPUModelInfoCopy(src->tcgCPUModelInfo)))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (src->hostCPU.kvm &&
|
||||||
|
!(dst->hostCPU.kvm = virCPUDefCopy(src->hostCPU.kvm)))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (src->hostCPU.tcg &&
|
||||||
|
!(dst->hostCPU.tcg = virCPUDefCopy(src->hostCPU.tcg)))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps)
|
virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps)
|
||||||
{
|
{
|
||||||
virQEMUCapsPtr ret = virQEMUCapsNew();
|
virQEMUCapsPtr ret = virQEMUCapsNew();
|
||||||
@ -2123,20 +2150,7 @@ virQEMUCapsPtr virQEMUCapsNewCopy(virQEMUCapsPtr qemuCaps)
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (qemuCaps->kvmCPUModel &&
|
if (virQEMUCapsCopyHostCPUData(ret, qemuCaps) < 0)
|
||||||
!(ret->kvmCPUModel = virCPUDefCopy(qemuCaps->kvmCPUModel)))
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
if (qemuCaps->tcgCPUModel &&
|
|
||||||
!(ret->tcgCPUModel = virCPUDefCopy(qemuCaps->tcgCPUModel)))
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
if (qemuCaps->kvmCPUModelInfo &&
|
|
||||||
!(ret->kvmCPUModelInfo = qemuMonitorCPUModelInfoCopy(qemuCaps->kvmCPUModelInfo)))
|
|
||||||
goto error;
|
|
||||||
|
|
||||||
if (qemuCaps->tcgCPUModelInfo &&
|
|
||||||
!(ret->tcgCPUModelInfo = qemuMonitorCPUModelInfoCopy(qemuCaps->tcgCPUModelInfo)))
|
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (VIR_ALLOC_N(ret->machineTypes, qemuCaps->nmachineTypes) < 0)
|
if (VIR_ALLOC_N(ret->machineTypes, qemuCaps->nmachineTypes) < 0)
|
||||||
@ -2187,8 +2201,8 @@ void virQEMUCapsDispose(void *obj)
|
|||||||
|
|
||||||
qemuMonitorCPUModelInfoFree(qemuCaps->kvmCPUModelInfo);
|
qemuMonitorCPUModelInfoFree(qemuCaps->kvmCPUModelInfo);
|
||||||
qemuMonitorCPUModelInfoFree(qemuCaps->tcgCPUModelInfo);
|
qemuMonitorCPUModelInfoFree(qemuCaps->tcgCPUModelInfo);
|
||||||
virCPUDefFree(qemuCaps->kvmCPUModel);
|
virCPUDefFree(qemuCaps->hostCPU.kvm);
|
||||||
virCPUDefFree(qemuCaps->tcgCPUModel);
|
virCPUDefFree(qemuCaps->hostCPU.tcg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -2417,9 +2431,9 @@ virQEMUCapsGetHostModel(virQEMUCapsPtr qemuCaps,
|
|||||||
virDomainVirtType type)
|
virDomainVirtType type)
|
||||||
{
|
{
|
||||||
if (type == VIR_DOMAIN_VIRT_KVM)
|
if (type == VIR_DOMAIN_VIRT_KVM)
|
||||||
return qemuCaps->kvmCPUModel;
|
return qemuCaps->hostCPU.kvm;
|
||||||
else
|
else
|
||||||
return qemuCaps->tcgCPUModel;
|
return qemuCaps->hostCPU.tcg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -3300,9 +3314,9 @@ virQEMUCapsInitHostCPUModel(virQEMUCapsPtr qemuCaps,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (type == VIR_DOMAIN_VIRT_KVM)
|
if (type == VIR_DOMAIN_VIRT_KVM)
|
||||||
qemuCaps->kvmCPUModel = cpu;
|
qemuCaps->hostCPU.kvm = cpu;
|
||||||
else
|
else
|
||||||
qemuCaps->tcgCPUModel = cpu;
|
qemuCaps->hostCPU.tcg = cpu;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCPUDefFree(hostCPU);
|
virCPUDefFree(hostCPU);
|
||||||
@ -4057,10 +4071,9 @@ virQEMUCapsReset(virQEMUCapsPtr qemuCaps)
|
|||||||
qemuCaps->kvmCPUModelInfo = NULL;
|
qemuCaps->kvmCPUModelInfo = NULL;
|
||||||
qemuCaps->tcgCPUModelInfo = NULL;
|
qemuCaps->tcgCPUModelInfo = NULL;
|
||||||
|
|
||||||
virCPUDefFree(qemuCaps->kvmCPUModel);
|
virCPUDefFree(qemuCaps->hostCPU.kvm);
|
||||||
virCPUDefFree(qemuCaps->tcgCPUModel);
|
virCPUDefFree(qemuCaps->hostCPU.tcg);
|
||||||
qemuCaps->kvmCPUModel = NULL;
|
memset(&qemuCaps->hostCPU, 0, sizeof(qemuCaps->hostCPU));
|
||||||
qemuCaps->tcgCPUModel = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user