Hello, Prompted by Alexey's desire for tweakable PowerPCCPU properties but also by Peter's wish for ARMCPU properties, this series sets out to align cpu_model parsing across targets.
QemuOpts would've been nice to use, but on the one hand x86 and sparc use QemuOpts-incompatible +foo and -foo syntax (which accumulate rather than apply immediately) and on the other linux-user and bsd-user don't use QemuOpts at all. The x86 implementation is closest to the proposed API, save for some laziness. SPARC is brought in line. And as fallback for the remaining targets a new implementation, derived from x86 but supporting only key=value format, is added. To facilitate using this infrastructure, a generic CPU init function is created. Only lightly tested. Available at: git://github.com/afaerber/qemu-cpu.git qom-cpu-features.v1 https://github.com/afaerber/qemu-cpu/commits/qom-cpu-features.v1 Regards, Andreas Cc: Alexey Kardashevskiy <a...@ozlabs.ru> Cc: Peter Maydell <peter.mayd...@linaro.org> Cc: Anthony Liguori <anth...@codemonkey.ws> Andreas Färber (6): cpu: Introduce CPUClass::parse_features() hook target-sparc: Use error_report() for CPU error reporting target-sparc: Implement CPUClass::parse_features() for SPARCCPU target-sparc: Defer SPARCCPU feature inference to QOM realize cpu: Implement CPUClass::parse_features() for the rest of CPUs cpu: Factor out cpu_generic_init() include/qom/cpu.h | 14 +++++++ qom/cpu.c | 72 +++++++++++++++++++++++++++++++++- target-arm/helper.c | 14 +------ target-cris/cpu.c | 13 +----- target-i386/cpu.c | 36 ++++++++++------- target-lm32/helper.c | 13 +----- target-moxie/cpu.c | 13 +----- target-openrisc/cpu.c | 13 +----- target-ppc/translate_init.c | 21 +--------- target-sh4/cpu.c | 13 +----- target-sparc/cpu.c | 96 +++++++++++++++++++++++++++------------------ target-unicore32/helper.c | 13 ++---- 12 files changed, 174 insertions(+), 157 deletions(-) -- 1.8.4.5