This series allows to link multiple targets that define
qmp_query_cpu_definitions. It simply replaces the duplicated definitions with
target-specific ones and a single dispatcher. We didn't use yet the dispatcher
pattern, and it's the first situation where it appears to be a good fit.
A possible alternative would be to introduce this callback directly at
target-info level, which I think is a less desirable solution, since it would
ties this API to monitor.
If the approach here is accepted, I'll extend this series with
qmp_query_cpu_model_expansion which follows the same pattern.
With this, we'll be free to link together almost all the base architectures.
Pierrick Bouvier (8):
target/arm: rename qmp_query_cpu_definitions to
qmp_query_arm_cpu_definitions
target/i386: rename qmp_query_cpu_definitions to
qmp_query_i386_cpu_definitions
target/loongarch: rename to qmp_query_loongarch_cpu_definitions
target/mips: rename qmp_query_cpu_definitions to
qmp_query_mips_cpu_definitions
target/ppc: rename qmp_query_cpu_definitions to
qmp_query_ppc_cpu_definitions
target/riscv: rename to qmp_query_cpu_definitions to
qmp_query_riscv_cpu_definitions
target/s390x: rename qmp_query_cpu_definitions to
qmp_query_s390x_cpu_definitions
qmp: reimplement qmp_query_cpu_definitions as a dispatcher function
hw/core/machine-qmp-cmds.c | 32 +++++++++++++++++++++++++++
include/system/qmp-cpu.h | 20 +++++++++++++++++
stubs/meson.build | 6 +++++
stubs/qmp-cpu-arm.c | 9 ++++++++
stubs/qmp-cpu-i386.c | 9 ++++++++
stubs/qmp-cpu-loongarch.c | 9 ++++++++
stubs/qmp-cpu-mips.c | 9 ++++++++
stubs/qmp-cpu-ppc.c | 9 ++++++++
stubs/qmp-cpu-riscv.c | 9 ++++++++
stubs/qmp-cpu-s390x.c | 6 +++++
stubs/qmp-cpu.c | 7 ------
target/arm/arm-qmp-cmds.c | 3 ++-
target/i386/cpu.c | 3 ++-
target/loongarch/loongarch-qmp-cmds.c | 3 ++-
target/mips/system/mips-qmp-cmds.c | 3 ++-
target/ppc/ppc-qmp-cmds.c | 3 ++-
target/riscv/riscv-qmp-cmds.c | 3 ++-
target/s390x/cpu_models_system.c | 3 ++-
18 files changed, 132 insertions(+), 14 deletions(-)
create mode 100644 include/system/qmp-cpu.h
create mode 100644 stubs/qmp-cpu-arm.c
create mode 100644 stubs/qmp-cpu-i386.c
create mode 100644 stubs/qmp-cpu-loongarch.c
create mode 100644 stubs/qmp-cpu-mips.c
create mode 100644 stubs/qmp-cpu-ppc.c
create mode 100644 stubs/qmp-cpu-riscv.c
--
2.43.0