target-ppc: Slim conversion of model definitions to QOM subclasses
commit2985b86b5c9c068af203bd912309af033112039a
authorAndreas Färber <afaerber@suse.de>
Sun, 6 Jan 2013 08:31:30 +0000 (6 08:31 +0000)
committerAlexander Graf <agraf@suse.de>
Mon, 7 Jan 2013 16:37:11 +0000 (7 17:37 +0100)
treec7abac24c933daacd260ae55847502564a7ece50
parent68c2dd70068fe82a1989d0d5b70a1ab400bde19a
target-ppc: Slim conversion of model definitions to QOM subclasses

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: Andreas Färber <afaerber@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
target-ppc/Makefile.objs
target-ppc/cpu-qom.h
target-ppc/cpu.h
target-ppc/helper.c [deleted file]
target-ppc/kvm.c
target-ppc/kvm_ppc.h
target-ppc/translate_init.c