Add the @arch_bitmask field to the HMPCommand structure,
allowing to restrict a command to a set of target
architectures (represented by the QEMU_ARCH_* enum constants).
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <
20260427080738.77138-12-philmd@linaro.org>
*/
#include "qemu/osdep.h"
+#include "qemu/base-arch-defs.h"
#include "monitor-internal.h"
#include "monitor/qdev.h"
#include "net/slirp.h"
#include "qemu/cutils.h"
#include "qemu/log.h"
#include "qemu/option.h"
+#include "qemu/base-arch-defs.h"
#include "qemu/target-info.h"
#include "qemu/units.h"
#include "exec/gdbstub.h"
static bool cmd_available(const HMPCommand *cmd)
{
+ if (cmd->arch_bitmask && !qemu_arch_available(cmd->arch_bitmask)) {
+ return false;
+ }
return phase_check(PHASE_MACHINE_READY) || cmd_can_preconfig(cmd);
}
* the formatted text.
*/
HumanReadableText *(*cmd_info_hrt)(Error **errp);
- bool coroutine;
/*
* @sub_table is a list of 2nd level of commands. If it does not exist,
* cmd should be used. If it exists, sub_table[?].cmd should be
*/
struct HMPCommand *sub_table;
void (*command_completion)(ReadLineState *rs, int nb_args, const char *str);
+
+ /* Keep non-pointer data at the end to minimize holes. */
+
+ /**
+ * @arch_bitmask: bitmask of QEMU_ARCH_* constants
+ * Allow to restrict the command for a particular set of
+ * target architectures.
+ */
+ uint32_t arch_bitmask;
+ bool coroutine;
} HMPCommand;
struct Monitor {