mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
ppc: Provide function to get CPU class of the host CPU
When running with KVM, we might be interested in some details of the host CPU class, too, so provide a function to get the corresponding CPU class. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
8cd2ce7aaa
commit
52b2519c4e
2 changed files with 21 additions and 5 deletions
|
@ -2329,6 +2329,19 @@ static PowerPCCPUClass *ppc_cpu_get_family_class(PowerPCCPUClass *pcc)
|
|||
return POWERPC_CPU_CLASS(oc);
|
||||
}
|
||||
|
||||
PowerPCCPUClass *kvm_ppc_get_host_cpu_class(void)
|
||||
{
|
||||
uint32_t host_pvr = mfpvr();
|
||||
PowerPCCPUClass *pvr_pcc;
|
||||
|
||||
pvr_pcc = ppc_cpu_class_by_pvr(host_pvr);
|
||||
if (pvr_pcc == NULL) {
|
||||
pvr_pcc = ppc_cpu_class_by_pvr_mask(host_pvr);
|
||||
}
|
||||
|
||||
return pvr_pcc;
|
||||
}
|
||||
|
||||
static int kvm_ppc_register_host_cpu_type(void)
|
||||
{
|
||||
TypeInfo type_info = {
|
||||
|
@ -2336,14 +2349,10 @@ static int kvm_ppc_register_host_cpu_type(void)
|
|||
.instance_init = kvmppc_host_cpu_initfn,
|
||||
.class_init = kvmppc_host_cpu_class_init,
|
||||
};
|
||||
uint32_t host_pvr = mfpvr();
|
||||
PowerPCCPUClass *pvr_pcc;
|
||||
DeviceClass *dc;
|
||||
|
||||
pvr_pcc = ppc_cpu_class_by_pvr(host_pvr);
|
||||
if (pvr_pcc == NULL) {
|
||||
pvr_pcc = ppc_cpu_class_by_pvr_mask(host_pvr);
|
||||
}
|
||||
pvr_pcc = kvm_ppc_get_host_cpu_class();
|
||||
if (pvr_pcc == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -56,6 +56,7 @@ void kvmppc_hash64_write_pte(CPUPPCState *env, target_ulong pte_index,
|
|||
bool kvmppc_has_cap_fixup_hcalls(void);
|
||||
int kvmppc_enable_hwrng(void);
|
||||
int kvmppc_put_books_sregs(PowerPCCPU *cpu);
|
||||
PowerPCCPUClass *kvm_ppc_get_host_cpu_class(void);
|
||||
|
||||
#else
|
||||
|
||||
|
@ -252,6 +253,12 @@ static inline int kvmppc_put_books_sregs(PowerPCCPU *cpu)
|
|||
{
|
||||
abort();
|
||||
}
|
||||
|
||||
static inline PowerPCCPUClass *kvm_ppc_get_host_cpu_class(void)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_KVM
|
||||
|
|
Loading…
Reference in a new issue