monitor: Do not check TARGET_S390X to build s390x commands
These commands are filtered at build-time for s390x binary. By using the recently introduced HMPCommand::arch_bitmask flag we can filter them at runtime, making it possible to compile hmp-commands[-info].hx files once. Since the methods are used inconditionally within hw/s390x/, define them in the same stub file. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Acked-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Message-Id: <20260427080738.77138-14-philmd@linaro.org>
This commit is contained in:
@@ -122,6 +122,7 @@ F: include/hw/watchdog/wdt_diag288.h
|
||||
F: pc-bios/s390-ccw/
|
||||
F: pc-bios/s390-ccw.img
|
||||
F: stubs/qmp-cpu-s390x.c
|
||||
F: stubs/hmp-cmds-hw-s390x.c
|
||||
F: target/s390x/
|
||||
F: docs/system/target-s390x.rst
|
||||
F: docs/system/s390x/
|
||||
|
||||
@@ -710,30 +710,28 @@ SRST
|
||||
Show rocker OF-DPA groups.
|
||||
ERST
|
||||
|
||||
#if defined(TARGET_S390X)
|
||||
{
|
||||
.name = "skeys",
|
||||
.args_type = "addr:l",
|
||||
.params = "address",
|
||||
.help = "Display the value of a storage key",
|
||||
.cmd = hmp_info_skeys,
|
||||
.arch_bitmask = QEMU_ARCH_S390X,
|
||||
},
|
||||
#endif
|
||||
|
||||
SRST
|
||||
``info skeys`` *address*
|
||||
Display the value of a storage key (s390 only)
|
||||
ERST
|
||||
|
||||
#if defined(TARGET_S390X)
|
||||
{
|
||||
.name = "cmma",
|
||||
.args_type = "addr:l,count:l?",
|
||||
.params = "address [count]",
|
||||
.help = "Display the values of the CMMA storage attributes for a range of pages",
|
||||
.cmd = hmp_info_cmma,
|
||||
.arch_bitmask = QEMU_ARCH_S390X,
|
||||
},
|
||||
#endif
|
||||
|
||||
SRST
|
||||
``info cmma`` *address*
|
||||
|
||||
@@ -1139,30 +1139,28 @@ SRST
|
||||
|
||||
ERST
|
||||
|
||||
#if defined(TARGET_S390X)
|
||||
{
|
||||
.name = "dump-skeys",
|
||||
.args_type = "filename:F",
|
||||
.params = "",
|
||||
.help = "Save guest storage keys into file 'filename'.\n",
|
||||
.cmd = hmp_dump_skeys,
|
||||
.arch_bitmask = QEMU_ARCH_S390X,
|
||||
},
|
||||
#endif
|
||||
|
||||
SRST
|
||||
``dump-skeys`` *filename*
|
||||
Save guest storage keys to a file.
|
||||
ERST
|
||||
|
||||
#if defined(TARGET_S390X)
|
||||
{
|
||||
.name = "migration_mode",
|
||||
.args_type = "mode:i",
|
||||
.params = "mode",
|
||||
.help = "Enables or disables migration mode\n",
|
||||
.cmd = hmp_migrationmode,
|
||||
.arch_bitmask = QEMU_ARCH_S390X,
|
||||
},
|
||||
#endif
|
||||
|
||||
SRST
|
||||
``migration_mode`` *mode*
|
||||
|
||||
@@ -16,6 +16,13 @@
|
||||
|
||||
#include "qemu/readline.h"
|
||||
#include "qapi/qapi-types-common.h"
|
||||
#include "monitor/monitor.h"
|
||||
|
||||
#define HMP_STUB(cmd) \
|
||||
void hmp_##cmd(Monitor *mon, const QDict *qdict) \
|
||||
{ \
|
||||
g_assert_not_reached(); \
|
||||
}
|
||||
|
||||
bool hmp_handle_error(Monitor *mon, Error *err);
|
||||
void hmp_help_cmd(Monitor *mon, const char *name);
|
||||
|
||||
@@ -36,11 +36,6 @@
|
||||
#include "qapi/qapi-commands-misc.h"
|
||||
#include "qapi/qapi-commands-machine.h"
|
||||
|
||||
#if defined(TARGET_S390X)
|
||||
#include "hw/s390x/storage-keys.h"
|
||||
#include "hw/s390x/storage-attributes.h"
|
||||
#endif
|
||||
|
||||
/* Make devices configuration available for use in hmp-commands*.hx templates */
|
||||
#include CONFIG_DEVICES
|
||||
|
||||
|
||||
15
stubs/hmp-cmds-hw-s390x.c
Normal file
15
stubs/hmp-cmds-hw-s390x.c
Normal file
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Human Monitor hw/s390x stubs
|
||||
*
|
||||
* Copyright (c) Linaro
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "monitor/hmp.h"
|
||||
|
||||
HMP_STUB(dump_skeys)
|
||||
HMP_STUB(info_cmma)
|
||||
HMP_STUB(info_skeys)
|
||||
HMP_STUB(migrationmode)
|
||||
@@ -87,6 +87,7 @@ if have_system
|
||||
stub_ss.add(files('qmp-cpu.c'))
|
||||
stub_ss.add(files('qmp-cpu-s390x.c'))
|
||||
stub_ss.add(files('qmp-cpu-s390x-kvm.c'))
|
||||
stub_ss.add(files('hmp-cmds-hw-s390x.c'))
|
||||
endif
|
||||
|
||||
if have_system or have_user
|
||||
|
||||
Reference in New Issue
Block a user