Message ID | 20240315130910.15750-10-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | qapi: Make @query-cpu-definitions command target-agnostic | expand |
Philippe Mathieu-Daudé <philmd@linaro.org> writes: > machine-common.json declares a single type, which isn't > restricted to a particular target. Move this type in > machine.json. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Previous discussion at https://lore.kernel.org/qemu-devel/875y45kt8i.fsf@pond.sub.org/ CpuS390Entitlement is specific to s390x. We need it for set-cpu-topology and the s390x-specific part of query-cpus-fast. The former is conditional on TARGET_S390X, and therefore must be in machine-target.json. The latter is not conditional, and in machine.json. If I remember correctly, I briefly explored making it conditional, but it was too messy to be worth the bother. Anyway. We have a target-specific type we want to use both in machine.json and machine-target.json. Neither of the two includes the other. Target-independent machine.json cannot include target-specific machine-target.json. Two solutions: 1. Define the type in machine.json, have machine-target.json include machine.json. Ugly: even more target-stuff in machine.json. Potentially slow: including qapi/qapi-*-machine-target.h now includes more. 2. Define the type in a submodule both include. Since nothing they include is a fitting home for the type, create one: machine-common.json. Ugly & potentially slow: yet another submodule. Nina chose to do 2. I figure I'd leave it as is until we get to the point where we can get rid of the *-target.json entirely.
diff --git a/MAINTAINERS b/MAINTAINERS index a3130f64fd..ed98814398 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1889,7 +1889,6 @@ F: hw/core/null-machine.c F: hw/core/numa.c F: hw/cpu/cluster.c F: qapi/machine.json -F: qapi/machine-common.json F: qapi/machine-target.json F: include/hw/boards.h F: include/hw/core/cpu.h diff --git a/qapi/machine-common.json b/qapi/machine-common.json deleted file mode 100644 index fa6bd71d12..0000000000 --- a/qapi/machine-common.json +++ /dev/null @@ -1,21 +0,0 @@ -# -*- Mode: Python -*- -# vim: filetype=python -# -# This work is licensed under the terms of the GNU GPL, version 2 or later. -# See the COPYING file in the top-level directory. - -## -# = Machines S390 data types -## - -## -# @CpuS390Entitlement: -# -# An enumeration of CPU entitlements that can be assumed by a virtual -# S390 CPU -# -# Since: 8.2 -## -{ 'enum': 'CpuS390Entitlement', - 'prefix': 'S390_CPU_ENTITLEMENT', - 'data': [ 'auto', 'low', 'medium', 'high' ] } diff --git a/qapi/machine-target.json b/qapi/machine-target.json index 519adf3220..5f17b25d50 100644 --- a/qapi/machine-target.json +++ b/qapi/machine-target.json @@ -4,7 +4,7 @@ # This work is licensed under the terms of the GNU GPL, version 2 or later. # See the COPYING file in the top-level directory. -{ 'include': 'machine-common.json' } +{ 'include': 'machine.json' } ## # @CpuModelInfo: diff --git a/qapi/machine.json b/qapi/machine.json index bb5a178909..4bc38e86fd 100644 --- a/qapi/machine.json +++ b/qapi/machine.json @@ -9,7 +9,6 @@ ## { 'include': 'common.json' } -{ 'include': 'machine-common.json' } ## # @SysEmuTarget: @@ -50,6 +49,18 @@ 'prefix': 'S390_CPU_STATE', 'data': [ 'uninitialized', 'stopped', 'check-stop', 'operating', 'load' ] } +## +# @CpuS390Entitlement: +# +# An enumeration of CPU entitlements that can be assumed by a virtual +# S390 CPU +# +# Since: 8.2 +## +{ 'enum': 'CpuS390Entitlement', + 'prefix': 'S390_CPU_ENTITLEMENT', + 'data': [ 'auto', 'low', 'medium', 'high' ] } + ## # @CpuInfoS390: # diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json index 8304d45625..2c82a49bae 100644 --- a/qapi/qapi-schema.json +++ b/qapi/qapi-schema.json @@ -67,7 +67,6 @@ { 'include': 'introspect.json' } { 'include': 'qom.json' } { 'include': 'qdev.json' } -{ 'include': 'machine-common.json' } { 'include': 'machine.json' } { 'include': 'machine-target.json' } { 'include': 'replay.json' } diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h index 43a46a5a06..b46339bd7c 100644 --- a/target/s390x/cpu.h +++ b/target/s390x/cpu.h @@ -29,7 +29,7 @@ #include "cpu_models.h" #include "exec/cpu-defs.h" #include "qemu/cpu-float.h" -#include "qapi/qapi-types-machine-common.h" +#include "qapi/qapi-types-machine.h" #define ELF_MACHINE_UNAME "S390X" diff --git a/qapi/meson.build b/qapi/meson.build index 375d564277..90047dae1c 100644 --- a/qapi/meson.build +++ b/qapi/meson.build @@ -37,7 +37,6 @@ qapi_all_modules = [ 'error', 'introspect', 'job', - 'machine-common', 'machine', 'machine-target', 'migration',
machine-common.json declares a single type, which isn't restricted to a particular target. Move this type in machine.json. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- MAINTAINERS | 1 - qapi/machine-common.json | 21 --------------------- qapi/machine-target.json | 2 +- qapi/machine.json | 13 ++++++++++++- qapi/qapi-schema.json | 1 - target/s390x/cpu.h | 2 +- qapi/meson.build | 1 - 7 files changed, 14 insertions(+), 27 deletions(-) delete mode 100644 qapi/machine-common.json