qapi: make s390 commands depend on TARGET_S390X
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Acked-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190214152251.2073-11-armbru@redhat.com>
This commit is contained in:
parent
a6c7040fb0
commit
0e2f4530c1
@ -14,7 +14,7 @@
|
||||
#include "hw/boards.h"
|
||||
#include "hw/s390x/storage-keys.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qapi/qapi-commands-misc.h"
|
||||
#include "qapi/qapi-commands-target.h"
|
||||
#include "qapi/qmp/qdict.h"
|
||||
#include "qemu/error-report.h"
|
||||
#include "sysemu/kvm.h"
|
||||
|
@ -36,11 +36,4 @@ CpuDefinitionInfoList *arch_query_cpu_definitions(Error **errp);
|
||||
CpuModelExpansionInfo *arch_query_cpu_model_expansion(CpuModelExpansionType type,
|
||||
CpuModelInfo *mode,
|
||||
Error **errp);
|
||||
CpuModelCompareInfo *arch_query_cpu_model_comparison(CpuModelInfo *modela,
|
||||
CpuModelInfo *modelb,
|
||||
Error **errp);
|
||||
CpuModelBaselineInfo *arch_query_cpu_model_baseline(CpuModelInfo *modela,
|
||||
CpuModelInfo *modelb,
|
||||
Error **errp);
|
||||
|
||||
#endif
|
||||
|
14
monitor.c
14
monitor.c
@ -1145,19 +1145,12 @@ static void qmp_query_qmp_schema(QDict *qdict, QObject **ret_data,
|
||||
*/
|
||||
static void qmp_unregister_commands_hack(void)
|
||||
{
|
||||
#ifndef TARGET_S390X
|
||||
qmp_unregister_command(&qmp_commands, "dump-skeys");
|
||||
#endif
|
||||
#ifndef TARGET_ARM
|
||||
qmp_unregister_command(&qmp_commands, "query-gic-capabilities");
|
||||
#endif
|
||||
#if !defined(TARGET_S390X) && !defined(TARGET_I386)
|
||||
qmp_unregister_command(&qmp_commands, "query-cpu-model-expansion");
|
||||
#endif
|
||||
#if !defined(TARGET_S390X)
|
||||
qmp_unregister_command(&qmp_commands, "query-cpu-model-baseline");
|
||||
qmp_unregister_command(&qmp_commands, "query-cpu-model-comparison");
|
||||
#endif
|
||||
#if !defined(TARGET_PPC) && !defined(TARGET_ARM) && !defined(TARGET_I386) \
|
||||
&& !defined(TARGET_S390X)
|
||||
qmp_unregister_command(&qmp_commands, "query-cpu-definitions");
|
||||
@ -4664,13 +4657,6 @@ QemuOptsList qemu_mon_opts = {
|
||||
},
|
||||
};
|
||||
|
||||
#ifndef TARGET_S390X
|
||||
void qmp_dump_skeys(const char *filename, Error **errp)
|
||||
{
|
||||
error_setg(errp, QERR_FEATURE_DISABLED, "dump-skeys");
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef TARGET_ARM
|
||||
GICCapabilityList *qmp_query_gic_capabilities(Error **errp)
|
||||
{
|
||||
|
137
qapi/misc.json
137
qapi/misc.json
@ -1907,27 +1907,6 @@
|
||||
{ 'command': 'query-dump-guest-memory-capability',
|
||||
'returns': 'DumpGuestMemoryCapability' }
|
||||
|
||||
##
|
||||
# @dump-skeys:
|
||||
#
|
||||
# Dump guest's storage keys
|
||||
#
|
||||
# @filename: the path to the file to dump to
|
||||
#
|
||||
# This command is only supported on s390 architecture.
|
||||
#
|
||||
# Since: 2.5
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "dump-skeys",
|
||||
# "arguments": { "filename": "/tmp/skeys" } }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'dump-skeys',
|
||||
'data': { 'filename': 'str' } }
|
||||
|
||||
##
|
||||
# @object-add:
|
||||
#
|
||||
@ -2294,122 +2273,6 @@
|
||||
{ 'enum': 'CpuModelCompareResult',
|
||||
'data': [ 'incompatible', 'identical', 'superset', 'subset' ] }
|
||||
|
||||
##
|
||||
# @CpuModelCompareInfo:
|
||||
#
|
||||
# The result of a CPU model comparison.
|
||||
#
|
||||
# @result: The result of the compare operation.
|
||||
# @responsible-properties: List of properties that led to the comparison result
|
||||
# not being identical.
|
||||
#
|
||||
# @responsible-properties is a list of QOM property names that led to
|
||||
# both CPUs not being detected as identical. For identical models, this
|
||||
# list is empty.
|
||||
# If a QOM property is read-only, that means there's no known way to make the
|
||||
# CPU models identical. If the special property name "type" is included, the
|
||||
# models are by definition not identical and cannot be made identical.
|
||||
#
|
||||
# Since: 2.8.0
|
||||
##
|
||||
{ 'struct': 'CpuModelCompareInfo',
|
||||
'data': {'result': 'CpuModelCompareResult',
|
||||
'responsible-properties': ['str']
|
||||
}
|
||||
}
|
||||
|
||||
##
|
||||
# @query-cpu-model-comparison:
|
||||
#
|
||||
# Compares two CPU models, returning how they compare in a specific
|
||||
# configuration. The results indicates how both models compare regarding
|
||||
# runnability. This result can be used by tooling to make decisions if a
|
||||
# certain CPU model will run in a certain configuration or if a compatible
|
||||
# CPU model has to be created by baselining.
|
||||
#
|
||||
# Usually, a CPU model is compared against the maximum possible CPU model
|
||||
# of a certain configuration (e.g. the "host" model for KVM). If that CPU
|
||||
# model is identical or a subset, it will run in that configuration.
|
||||
#
|
||||
# The result returned by this command may be affected by:
|
||||
#
|
||||
# * QEMU version: CPU models may look different depending on the QEMU version.
|
||||
# (Except for CPU models reported as "static" in query-cpu-definitions.)
|
||||
# * machine-type: CPU model may look different depending on the machine-type.
|
||||
# (Except for CPU models reported as "static" in query-cpu-definitions.)
|
||||
# * machine options (including accelerator): in some architectures, CPU models
|
||||
# may look different depending on machine and accelerator options. (Except for
|
||||
# CPU models reported as "static" in query-cpu-definitions.)
|
||||
# * "-cpu" arguments and global properties: arguments to the -cpu option and
|
||||
# global properties may affect expansion of CPU models. Using
|
||||
# query-cpu-model-expansion while using these is not advised.
|
||||
#
|
||||
# Some architectures may not support comparing CPU models. s390x supports
|
||||
# comparing CPU models.
|
||||
#
|
||||
# Returns: a CpuModelBaselineInfo. Returns an error if comparing CPU models is
|
||||
# not supported, if a model cannot be used, if a model contains
|
||||
# an unknown cpu definition name, unknown properties or properties
|
||||
# with wrong types.
|
||||
#
|
||||
# Since: 2.8.0
|
||||
##
|
||||
{ 'command': 'query-cpu-model-comparison',
|
||||
'data': { 'modela': 'CpuModelInfo', 'modelb': 'CpuModelInfo' },
|
||||
'returns': 'CpuModelCompareInfo' }
|
||||
|
||||
##
|
||||
# @CpuModelBaselineInfo:
|
||||
#
|
||||
# The result of a CPU model baseline.
|
||||
#
|
||||
# @model: the baselined CpuModelInfo.
|
||||
#
|
||||
# Since: 2.8.0
|
||||
##
|
||||
{ 'struct': 'CpuModelBaselineInfo',
|
||||
'data': { 'model': 'CpuModelInfo' } }
|
||||
|
||||
##
|
||||
# @query-cpu-model-baseline:
|
||||
#
|
||||
# Baseline two CPU models, creating a compatible third model. The created
|
||||
# model will always be a static, migration-safe CPU model (see "static"
|
||||
# CPU model expansion for details).
|
||||
#
|
||||
# This interface can be used by tooling to create a compatible CPU model out
|
||||
# two CPU models. The created CPU model will be identical to or a subset of
|
||||
# both CPU models when comparing them. Therefore, the created CPU model is
|
||||
# guaranteed to run where the given CPU models run.
|
||||
#
|
||||
# The result returned by this command may be affected by:
|
||||
#
|
||||
# * QEMU version: CPU models may look different depending on the QEMU version.
|
||||
# (Except for CPU models reported as "static" in query-cpu-definitions.)
|
||||
# * machine-type: CPU model may look different depending on the machine-type.
|
||||
# (Except for CPU models reported as "static" in query-cpu-definitions.)
|
||||
# * machine options (including accelerator): in some architectures, CPU models
|
||||
# may look different depending on machine and accelerator options. (Except for
|
||||
# CPU models reported as "static" in query-cpu-definitions.)
|
||||
# * "-cpu" arguments and global properties: arguments to the -cpu option and
|
||||
# global properties may affect expansion of CPU models. Using
|
||||
# query-cpu-model-expansion while using these is not advised.
|
||||
#
|
||||
# Some architectures may not support baselining CPU models. s390x supports
|
||||
# baselining CPU models.
|
||||
#
|
||||
# Returns: a CpuModelBaselineInfo. Returns an error if baselining CPU models is
|
||||
# not supported, if a model cannot be used, if a model contains
|
||||
# an unknown cpu definition name, unknown properties or properties
|
||||
# with wrong types.
|
||||
#
|
||||
# Since: 2.8.0
|
||||
##
|
||||
{ 'command': 'query-cpu-model-baseline',
|
||||
'data': { 'modela': 'CpuModelInfo',
|
||||
'modelb': 'CpuModelInfo' },
|
||||
'returns': 'CpuModelBaselineInfo' }
|
||||
|
||||
##
|
||||
# @AddfdInfo:
|
||||
#
|
||||
|
142
qapi/target.json
142
qapi/target.json
@ -5,6 +5,8 @@
|
||||
# = Target-specific commands & events
|
||||
##
|
||||
|
||||
{ 'include': 'misc.json' }
|
||||
|
||||
##
|
||||
# @rtc-reset-reinjection:
|
||||
#
|
||||
@ -180,3 +182,143 @@
|
||||
##
|
||||
{ 'command': 'query-sev-capabilities', 'returns': 'SevCapability',
|
||||
'if': 'defined(TARGET_I386)' }
|
||||
|
||||
##
|
||||
# @dump-skeys:
|
||||
#
|
||||
# Dump guest's storage keys
|
||||
#
|
||||
# @filename: the path to the file to dump to
|
||||
#
|
||||
# This command is only supported on s390 architecture.
|
||||
#
|
||||
# Since: 2.5
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# -> { "execute": "dump-skeys",
|
||||
# "arguments": { "filename": "/tmp/skeys" } }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'dump-skeys',
|
||||
'data': { 'filename': 'str' },
|
||||
'if': 'defined(TARGET_S390X)' }
|
||||
|
||||
##
|
||||
# @CpuModelBaselineInfo:
|
||||
#
|
||||
# The result of a CPU model baseline.
|
||||
#
|
||||
# @model: the baselined CpuModelInfo.
|
||||
#
|
||||
# Since: 2.8.0
|
||||
##
|
||||
{ 'struct': 'CpuModelBaselineInfo',
|
||||
'data': { 'model': 'CpuModelInfo' },
|
||||
'if': 'defined(TARGET_S390X)' }
|
||||
|
||||
##
|
||||
# @CpuModelCompareInfo:
|
||||
#
|
||||
# The result of a CPU model comparison.
|
||||
#
|
||||
# @result: The result of the compare operation.
|
||||
# @responsible-properties: List of properties that led to the comparison result
|
||||
# not being identical.
|
||||
#
|
||||
# @responsible-properties is a list of QOM property names that led to
|
||||
# both CPUs not being detected as identical. For identical models, this
|
||||
# list is empty.
|
||||
# If a QOM property is read-only, that means there's no known way to make the
|
||||
# CPU models identical. If the special property name "type" is included, the
|
||||
# models are by definition not identical and cannot be made identical.
|
||||
#
|
||||
# Since: 2.8.0
|
||||
##
|
||||
{ 'struct': 'CpuModelCompareInfo',
|
||||
'data': { 'result': 'CpuModelCompareResult',
|
||||
'responsible-properties': ['str'] },
|
||||
'if': 'defined(TARGET_S390X)' }
|
||||
|
||||
##
|
||||
# @query-cpu-model-comparison:
|
||||
#
|
||||
# Compares two CPU models, returning how they compare in a specific
|
||||
# configuration. The results indicates how both models compare regarding
|
||||
# runnability. This result can be used by tooling to make decisions if a
|
||||
# certain CPU model will run in a certain configuration or if a compatible
|
||||
# CPU model has to be created by baselining.
|
||||
#
|
||||
# Usually, a CPU model is compared against the maximum possible CPU model
|
||||
# of a certain configuration (e.g. the "host" model for KVM). If that CPU
|
||||
# model is identical or a subset, it will run in that configuration.
|
||||
#
|
||||
# The result returned by this command may be affected by:
|
||||
#
|
||||
# * QEMU version: CPU models may look different depending on the QEMU version.
|
||||
# (Except for CPU models reported as "static" in query-cpu-definitions.)
|
||||
# * machine-type: CPU model may look different depending on the machine-type.
|
||||
# (Except for CPU models reported as "static" in query-cpu-definitions.)
|
||||
# * machine options (including accelerator): in some architectures, CPU models
|
||||
# may look different depending on machine and accelerator options. (Except for
|
||||
# CPU models reported as "static" in query-cpu-definitions.)
|
||||
# * "-cpu" arguments and global properties: arguments to the -cpu option and
|
||||
# global properties may affect expansion of CPU models. Using
|
||||
# query-cpu-model-expansion while using these is not advised.
|
||||
#
|
||||
# Some architectures may not support comparing CPU models. s390x supports
|
||||
# comparing CPU models.
|
||||
#
|
||||
# Returns: a CpuModelBaselineInfo. Returns an error if comparing CPU models is
|
||||
# not supported, if a model cannot be used, if a model contains
|
||||
# an unknown cpu definition name, unknown properties or properties
|
||||
# with wrong types.
|
||||
#
|
||||
# Since: 2.8.0
|
||||
##
|
||||
{ 'command': 'query-cpu-model-comparison',
|
||||
'data': { 'modela': 'CpuModelInfo', 'modelb': 'CpuModelInfo' },
|
||||
'returns': 'CpuModelCompareInfo',
|
||||
'if': 'defined(TARGET_S390X)' }
|
||||
|
||||
##
|
||||
# @query-cpu-model-baseline:
|
||||
#
|
||||
# Baseline two CPU models, creating a compatible third model. The created
|
||||
# model will always be a static, migration-safe CPU model (see "static"
|
||||
# CPU model expansion for details).
|
||||
#
|
||||
# This interface can be used by tooling to create a compatible CPU model out
|
||||
# two CPU models. The created CPU model will be identical to or a subset of
|
||||
# both CPU models when comparing them. Therefore, the created CPU model is
|
||||
# guaranteed to run where the given CPU models run.
|
||||
#
|
||||
# The result returned by this command may be affected by:
|
||||
#
|
||||
# * QEMU version: CPU models may look different depending on the QEMU version.
|
||||
# (Except for CPU models reported as "static" in query-cpu-definitions.)
|
||||
# * machine-type: CPU model may look different depending on the machine-type.
|
||||
# (Except for CPU models reported as "static" in query-cpu-definitions.)
|
||||
# * machine options (including accelerator): in some architectures, CPU models
|
||||
# may look different depending on machine and accelerator options. (Except for
|
||||
# CPU models reported as "static" in query-cpu-definitions.)
|
||||
# * "-cpu" arguments and global properties: arguments to the -cpu option and
|
||||
# global properties may affect expansion of CPU models. Using
|
||||
# query-cpu-model-expansion while using these is not advised.
|
||||
#
|
||||
# Some architectures may not support baselining CPU models. s390x supports
|
||||
# baselining CPU models.
|
||||
#
|
||||
# Returns: a CpuModelBaselineInfo. Returns an error if baselining CPU models is
|
||||
# not supported, if a model cannot be used, if a model contains
|
||||
# an unknown cpu definition name, unknown properties or properties
|
||||
# with wrong types.
|
||||
#
|
||||
# Since: 2.8.0
|
||||
##
|
||||
{ 'command': 'query-cpu-model-baseline',
|
||||
'data': { 'modela': 'CpuModelInfo',
|
||||
'modelb': 'CpuModelInfo' },
|
||||
'returns': 'CpuModelBaselineInfo',
|
||||
'if': 'defined(TARGET_S390X)' }
|
||||
|
14
qmp.c
14
qmp.c
@ -617,20 +617,6 @@ CpuModelExpansionInfo *qmp_query_cpu_model_expansion(CpuModelExpansionType type,
|
||||
return arch_query_cpu_model_expansion(type, model, errp);
|
||||
}
|
||||
|
||||
CpuModelCompareInfo *qmp_query_cpu_model_comparison(CpuModelInfo *modela,
|
||||
CpuModelInfo *modelb,
|
||||
Error **errp)
|
||||
{
|
||||
return arch_query_cpu_model_comparison(modela, modelb, errp);
|
||||
}
|
||||
|
||||
CpuModelBaselineInfo *qmp_query_cpu_model_baseline(CpuModelInfo *modela,
|
||||
CpuModelInfo *modelb,
|
||||
Error **errp)
|
||||
{
|
||||
return arch_query_cpu_model_baseline(modela, modelb, errp);
|
||||
}
|
||||
|
||||
void qmp_add_client(const char *protocol, const char *fdname,
|
||||
bool has_skipauth, bool skipauth, bool has_tls, bool tls,
|
||||
Error **errp)
|
||||
|
@ -1,7 +1,5 @@
|
||||
stub-obj-y += arch-query-cpu-def.o
|
||||
stub-obj-y += arch-query-cpu-model-expansion.o
|
||||
stub-obj-y += arch-query-cpu-model-comparison.o
|
||||
stub-obj-y += arch-query-cpu-model-baseline.o
|
||||
stub-obj-y += bdrv-next-monitor-owned.o
|
||||
stub-obj-y += blk-commit-all.o
|
||||
stub-obj-y += blockdev-close-all-bdrv-states.o
|
||||
|
@ -1,13 +0,0 @@
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu-common.h"
|
||||
#include "sysemu/arch_init.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qapi/qmp/qerror.h"
|
||||
|
||||
CpuModelBaselineInfo *arch_query_cpu_model_baseline(CpuModelInfo *modela,
|
||||
CpuModelInfo *modelb,
|
||||
Error **errp)
|
||||
{
|
||||
error_setg(errp, QERR_UNSUPPORTED);
|
||||
return NULL;
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu-common.h"
|
||||
#include "sysemu/arch_init.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qapi/qmp/qerror.h"
|
||||
|
||||
CpuModelCompareInfo *arch_query_cpu_model_comparison(CpuModelInfo *modela,
|
||||
CpuModelInfo *modelb,
|
||||
Error **errp)
|
||||
{
|
||||
error_setg(errp, QERR_UNSUPPORTED);
|
||||
return NULL;
|
||||
}
|
@ -25,6 +25,7 @@
|
||||
#include "sysemu/arch_init.h"
|
||||
#include "hw/pci/pci.h"
|
||||
#endif
|
||||
#include "qapi/qapi-commands-target.h"
|
||||
|
||||
#define CPUDEF_INIT(_type, _gen, _ec_ga, _mha_pow, _hmfai, _name, _desc) \
|
||||
{ \
|
||||
@ -605,7 +606,7 @@ static void list_add_feat(const char *name, void *opaque)
|
||||
*last = entry;
|
||||
}
|
||||
|
||||
CpuModelCompareInfo *arch_query_cpu_model_comparison(CpuModelInfo *infoa,
|
||||
CpuModelCompareInfo *qmp_query_cpu_model_comparison(CpuModelInfo *infoa,
|
||||
CpuModelInfo *infob,
|
||||
Error **errp)
|
||||
{
|
||||
@ -678,7 +679,7 @@ CpuModelCompareInfo *arch_query_cpu_model_comparison(CpuModelInfo *infoa,
|
||||
return compare_info;
|
||||
}
|
||||
|
||||
CpuModelBaselineInfo *arch_query_cpu_model_baseline(CpuModelInfo *infoa,
|
||||
CpuModelBaselineInfo *qmp_query_cpu_model_baseline(CpuModelInfo *infoa,
|
||||
CpuModelInfo *infob,
|
||||
Error **errp)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user