Skip to content
  • Andreas Färber's avatar
    target-ppc: Slim conversion of model definitions to QOM subclasses · 2985b86b
    Andreas Färber authored
    
    
    Since the model list is highly macrofied, keep ppc_def_t for now and
    save a pointer to it in PowerPCCPUClass. This results in a flat list of
    subclasses including aliases, to be refined later.
    
    Move cpu_ppc_init() to translate_init.c and drop helper.c.
    Long-term the idea is to turn translate_init.c into a standalone cpu.c.
    
    Inline cpu_ppc_usable() into type registration.
    
    Split cpu_ppc_register() in two by code movement into the initfn and
    by turning the remaining part into a realizefn.
    Move qemu_init_vcpu() call into the new realizefn and adapt
    create_ppc_opcodes() to return an Error.
    
    Change ppc_find_by_pvr() -> ppc_cpu_class_by_pvr().
    Change ppc_find_by_name() -> ppc_cpu_class_by_name().
    
    Turn -cpu host into its own subclass. This requires to move the
    kvm_enabled() check in ppc_cpu_class_by_name() to avoid the class being
    found via the normal name lookup in the !kvm_enabled() case.
    Turn kvmppc_host_cpu_def() into the class_init and add an initfn that
    asserts KVM is in fact enabled.
    
    Implement -cpu ? and the QMP equivalent in terms of subclasses.
    This newly exposes -cpu host to the user, ordered last for -cpu ?.
    
    Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    2985b86b