All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dave@treblig.org>
To: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: qemu-devel@nongnu.org,
	"Philippe Mathieu-Daudé" <philmd@mailo.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Peter Xu" <peterx@redhat.com>, "Fabiano Rosas" <farosas@suse.de>,
	"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [PATCH v3 48/49] monitor: move HMP-specific to monitor-hmp-internal.h
Date: Thu, 20 Aug 2026 14:27:32 +0000	[thread overview]
Message-ID: <aocO1HDcO7hSGyLD@gallifrey> (raw)
In-Reply-To: <20260816-qemu-no-hmp-v3-48-e53fc35bc550@redhat.com>

* Marc-André Lureau (marcandre.lureau@redhat.com) wrote:
> Move HMP-specific declarations to its own CONFIG_HMP guarded header.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

(I think that supported types table moves every time I try and remember one
of the more obscure characters)

Reviewed-by: Dr. David Alan Gilbert <dave@treblig.org>

> ---
>  include/monitor/hmp.h          |   8 +++-
>  migration/migration-hmp-cmds.c |   1 +
>  monitor/hmp-cmds.c             |   1 +
>  monitor/hmp.c                  |   1 +
>  monitor/monitor-hmp-internal.h | 106 +++++++++++++++++++++++++++++++++++++++++
>  monitor/monitor-internal.h     |  99 --------------------------------------
>  monitor/monitor.c              |   1 +
>  monitor/qmp-cmds.c             |   1 +
>  stubs/monitor-core.c           |   2 +
>  stubs/monitor-internal.c       |   2 +
>  tests/unit/test-util-sockets.c |   2 -
>  tools/qemu-vnc/stubs.c         |   6 ---
>  12 files changed, 121 insertions(+), 109 deletions(-)
> 
> diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h
> index f10bf83df86d..ef53e87f7608 100644
> --- a/include/monitor/hmp.h
> +++ b/include/monitor/hmp.h
> @@ -21,6 +21,10 @@
>  #define TYPE_MONITOR_HMP "monitor-hmp"
>  OBJECT_DECLARE_TYPE(MonitorHMP, MonitorHMPClass, MONITOR_HMP);
>  
> +MonitorHMP *monitor_cur_hmp(void);
> +
> +#ifdef CONFIG_HMP
> +
>  #define HMP_STUB(cmd) \
>      void hmp_##cmd(MonitorHMP *hmp, const QDict *qdict) \
>      { \
> @@ -36,8 +40,6 @@ struct MonitorDef {
>  void monitor_new_hmp(const char *id, const char *chardev_id,
>                       bool use_readline, Error **errp);
>  
> -MonitorHMP *monitor_cur_hmp(void);
> -
>  int monitor_hmp_vprintf(MonitorHMP *mon, const char *fmt, va_list ap)
>      G_GNUC_PRINTF(2, 0);
>  int monitor_hmp_printf(MonitorHMP *mon, const char *fmt, ...) G_GNUC_PRINTF(2, 3);
> @@ -218,4 +220,6 @@ void hmp_info_skeys(MonitorHMP *hmp, const QDict *qdict);
>  void hmp_info_cmma(MonitorHMP *hmp, const QDict *qdict);
>  void hmp_migrationmode(MonitorHMP *hmp, const QDict *qdict);
>  
> +#endif /* CONFIG_HMP */
> +
>  #endif
> diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
> index 6fe189471899..27b38d0e5f85 100644
> --- a/migration/migration-hmp-cmds.c
> +++ b/migration/migration-hmp-cmds.c
> @@ -21,6 +21,7 @@
>  #include "monitor/hmp-completion.h"
>  #include "monitor/monitor.h"
>  #include "monitor/monitor-internal.h"
> +#include "monitor/monitor-hmp-internal.h"
>  #include "qapi/error.h"
>  #include "qapi/qapi-commands-migration.h"
>  #include "qapi/qapi-visit-migration.h"
> diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
> index 3ac70c3f1123..91701ddf331b 100644
> --- a/monitor/hmp-cmds.c
> +++ b/monitor/hmp-cmds.c
> @@ -25,6 +25,7 @@
>  #include "monitor/hmp.h"
>  #include "monitor/hmp-completion.h"
>  #include "monitor/monitor-internal.h"
> +#include "monitor/monitor-hmp-internal.h"
>  #include "monitor/qdev.h"
>  #include "qapi/error.h"
>  #include "qapi/qapi-commands-control.h"
> diff --git a/monitor/hmp.c b/monitor/hmp.c
> index e3fc05f521a8..488ec23937df 100644
> --- a/monitor/hmp.c
> +++ b/monitor/hmp.c
> @@ -27,6 +27,7 @@
>  #include "hw/core/qdev.h"
>  #include "hw/core/sysemu-cpu-ops.h"
>  #include "monitor-internal.h"
> +#include "monitor-hmp-internal.h"
>  #include "monitor/hmp.h"
>  #include "qobject/qdict.h"
>  #include "qobject/qnum.h"
> diff --git a/monitor/monitor-hmp-internal.h b/monitor/monitor-hmp-internal.h
> new file mode 100644
> index 000000000000..4e2430551abf
> --- /dev/null
> +++ b/monitor/monitor-hmp-internal.h
> @@ -0,0 +1,106 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +
> +#ifndef MONITOR_HMP_INTERNAL_H
> +#define MONITOR_HMP_INTERNAL_H
> +
> +#ifdef CONFIG_HMP
> +#include "monitor/hmp.h"
> +/*
> + * Supported types:
> + *
> + * 'F'          filename
> + * 'B'          block device name
> + * 's'          string (accept optional quote)
> + * 'S'          it just appends the rest of the string (accept optional quote)
> + * 'O'          option string of the form NAME=VALUE,...
> + *              parsed according to QemuOptsList given by its name
> + *              Example: 'device:O' uses qemu_device_opts.
> + *              Restriction: only lists with empty desc are supported
> + *              TODO lift the restriction
> + * 'i'          32 bit integer
> + * 'l'          target long (32 or 64 bit)
> + * 'M'          Non-negative target long (32 or 64 bit), in user mode the
> + *              value is multiplied by 2^20 (think Mebibyte)
> + * 'o'          octets (aka bytes)
> + *              user mode accepts an optional E, e, P, p, T, t, G, g, M, m,
> + *              K, k suffix, which multiplies the value by 2^60 for suffixes E
> + *              and e, 2^50 for suffixes P and p, 2^40 for suffixes T and t,
> + *              2^30 for suffixes G and g, 2^20 for M and m, 2^10 for K and k
> + * 'T'          double
> + *              user mode accepts an optional ms, us, ns suffix,
> + *              which divides the value by 1e3, 1e6, 1e9, respectively
> + * '/'          optional gdb-like print format (like "/10x")
> + *
> + * '?'          optional type (for all types, except '/')
> + * '.'          other form of optional type (for 'i' and 'l')
> + * 'b'          boolean
> + *              user mode accepts "on" or "off"
> + * '-'          optional parameter (eg. '-f'); if followed by a 's', it
> + *              specifies an optional string param (e.g. '-fs' allows '-f foo')
> + *
> + */
> +
> +typedef struct HMPCommand {
> +    const char *name;
> +    const char *args_type;
> +    const char *params;
> +    const char *help;
> +    const char *flags; /* p=preconfig */
> +    void (*cmd)(MonitorHMP *hmp, const QDict *qdict);
> +    /*
> +     * If implementing a command that takes no arguments and simply
> +     * prints formatted data, then leave @cmd NULL, and then set
> +     * @cmd_info_hrt to the corresponding QMP handler that returns
> +     * the formatted text.
> +     */
> +    HumanReadableText *(*cmd_info_hrt)(Error **errp);
> +    /*
> +     * @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
> +     * used, and cmd of 1st level plays the role of help function.
> +     */
> +    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 MonitorHMPClass {
> +    MonitorClass parent_class;
> +};
> +
> +struct MonitorHMP {
> +    Monitor parent_obj;
> +    bool use_readline;
> +    /*
> +     * State used only in the thread "owning" the monitor.
> +     * This is currently always the main thread, since
> +     * HMP does not allow use of the I/O thread at this time.
> +     * These members can be safely accessed without locks.
> +     */
> +    ReadLineState *rs;
> +    char *mon_cpu_path;
> +    int reset_seen;
> +};
> +
> +int monitor_hmp_set_cpu(MonitorHMP *hmp, int cpu_index);
> +void handle_hmp_command(MonitorHMP *hmp, const char *cmdline);
> +int hmp_compare_cmd(const char *name, const char *list);
> +
> +/*
> + * hmp_cmds_for_target: Return array of HMPCommand entries
> + *
> + * If @info_command is true, return the particular 'info foo' commands array.
> + */
> +HMPCommand *hmp_cmds_for_target(bool info_command);
> +
> +#endif /* CONFIG_HMP */
> +#endif
> diff --git a/monitor/monitor-internal.h b/monitor/monitor-internal.h
> index c198c12eaa00..822a66d06d00 100644
> --- a/monitor/monitor-internal.h
> +++ b/monitor/monitor-internal.h
> @@ -27,7 +27,6 @@
>  
>  #include "chardev/char-fe.h"
>  #include "monitor/monitor.h"
> -#include "monitor/hmp.h"
>  #include "qapi/qapi-emit-events.h"
>  #include "qapi/qapi-types-control.h"
>  #include "qapi/qapi-types-qom.h"
> @@ -36,75 +35,6 @@
>  #include "qemu/readline.h"
>  #include "system/iothread.h"
>  
> -/*
> - * Supported types:
> - *
> - * 'F'          filename
> - * 'B'          block device name
> - * 's'          string (accept optional quote)
> - * 'S'          it just appends the rest of the string (accept optional quote)
> - * 'O'          option string of the form NAME=VALUE,...
> - *              parsed according to QemuOptsList given by its name
> - *              Example: 'device:O' uses qemu_device_opts.
> - *              Restriction: only lists with empty desc are supported
> - *              TODO lift the restriction
> - * 'i'          32 bit integer
> - * 'l'          target long (32 or 64 bit)
> - * 'M'          Non-negative target long (32 or 64 bit), in user mode the
> - *              value is multiplied by 2^20 (think Mebibyte)
> - * 'o'          octets (aka bytes)
> - *              user mode accepts an optional E, e, P, p, T, t, G, g, M, m,
> - *              K, k suffix, which multiplies the value by 2^60 for suffixes E
> - *              and e, 2^50 for suffixes P and p, 2^40 for suffixes T and t,
> - *              2^30 for suffixes G and g, 2^20 for M and m, 2^10 for K and k
> - * 'T'          double
> - *              user mode accepts an optional ms, us, ns suffix,
> - *              which divides the value by 1e3, 1e6, 1e9, respectively
> - * '/'          optional gdb-like print format (like "/10x")
> - *
> - * '?'          optional type (for all types, except '/')
> - * '.'          other form of optional type (for 'i' and 'l')
> - * 'b'          boolean
> - *              user mode accepts "on" or "off"
> - * '-'          optional parameter (eg. '-f'); if followed by a 's', it
> - *              specifies an optional string param (e.g. '-fs' allows '-f foo')
> - *
> - */
> -
> -typedef struct HMPCommand {
> -    const char *name;
> -    const char *args_type;
> -    const char *params;
> -    const char *help;
> -    const char *flags; /* p=preconfig */
> -    void (*cmd)(MonitorHMP *mon, const QDict *qdict);
> -    /*
> -     * If implementing a command that takes no arguments and simply
> -     * prints formatted data, then leave @cmd NULL, and then set
> -     * @cmd_info_hrt to the corresponding QMP handler that returns
> -     * the formatted text.
> -     */
> -    HumanReadableText *(*cmd_info_hrt)(Error **errp);
> -    /*
> -     * @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
> -     * used, and cmd of 1st level plays the role of help function.
> -     */
> -    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 MonitorClass {
>      ObjectClass parent_class;
>  
> @@ -149,24 +79,6 @@ struct Monitor {
>      int mux_out;
>  };
>  
> -struct MonitorHMPClass {
> -    MonitorClass parent_class;
> -};
> -
> -struct MonitorHMP {
> -    Monitor parent_obj;
> -    bool use_readline;
> -    /*
> -     * State used only in the thread "owning" the monitor.
> -     * This is currently always the main thread, since
> -     * HMP does not allow use of the I/O thread at this time.
> -     * These members can be safely accessed without locks.
> -     */
> -    ReadLineState *rs;
> -    char *mon_cpu_path;
> -    int reset_seen;
> -};
> -
>  struct MonitorQMPClass {
>      MonitorClass parent_class;
>  };
> @@ -209,21 +121,10 @@ int monitor_can_read(void *opaque);
>  void monitor_cancel_out_watch(Monitor *mon);
>  void monitor_list_append(Monitor *mon);
>  void monitor_fdsets_cleanup(void);
> -int monitor_hmp_set_cpu(MonitorHMP *mon, int cpu_index);
>  
>  void qmp_send_response(MonitorQMP *mon, const QDict *rsp);
>  void monitor_data_destroy_qmp(MonitorQMP *mon);
>  void coroutine_fn monitor_qmp_dispatcher_co(void *data);
>  void qmp_dispatcher_co_wake(void);
>  
> -void handle_hmp_command(MonitorHMP *hmp, const char *cmdline);
> -int hmp_compare_cmd(const char *name, const char *list);
> -
> -/*
> - * hmp_cmds_for_target: Return array of HMPCommand entries
> - *
> - * If @info_command is true, return the particular 'info foo' commands array.
> - */
> -HMPCommand *hmp_cmds_for_target(bool info_command);
> -
>  #endif
> diff --git a/monitor/monitor.c b/monitor/monitor.c
> index 7979cd1cbcfd..6ba06280e023 100644
> --- a/monitor/monitor.c
> +++ b/monitor/monitor.c
> @@ -24,6 +24,7 @@
>  
>  #include "qemu/osdep.h"
>  #include "monitor-internal.h"
> +#include "monitor-hmp-internal.h"
>  #include "qapi/error.h"
>  #include "qapi/opts-visitor.h"
>  #include "qapi/qapi-emit-events.h"
> diff --git a/monitor/qmp-cmds.c b/monitor/qmp-cmds.c
> index c9f24febdc96..7525a88e0494 100644
> --- a/monitor/qmp-cmds.c
> +++ b/monitor/qmp-cmds.c
> @@ -16,6 +16,7 @@
>  #include "qemu/osdep.h"
>  #include "qemu/sockets.h"
>  #include "monitor-internal.h"
> +#include "monitor-hmp-internal.h"
>  #include "monitor/qdev.h"
>  #include "monitor/qmp-helpers.h"
>  #include "system/system.h"
> diff --git a/stubs/monitor-core.c b/stubs/monitor-core.c
> index 0e74d78d52e4..8dfd46d2a8a3 100644
> --- a/stubs/monitor-core.c
> +++ b/stubs/monitor-core.c
> @@ -1,6 +1,7 @@
>  #include "qemu/osdep.h"
>  #include "monitor/hmp.h"
>  
> +#ifdef CONFIG_HMP
>  int monitor_hmp_vprintf(MonitorHMP *mon, const char *fmt, va_list ap)
>  {
>      /*
> @@ -17,3 +18,4 @@ int monitor_hmp_vprintf(MonitorHMP *mon, const char *fmt, va_list ap)
>      }
>      return -1;
>  }
> +#endif
> diff --git a/stubs/monitor-internal.c b/stubs/monitor-internal.c
> index 6f69f1f14ae4..4483ca25557f 100644
> --- a/stubs/monitor-internal.c
> +++ b/stubs/monitor-internal.c
> @@ -8,8 +8,10 @@ int monitor_get_fd(Monitor *mon, const char *name, Error **errp)
>      return -1;
>  }
>  
> +#ifdef CONFIG_HMP
>  void monitor_new_hmp(const char *id, const char *chardev_id,
>                       bool use_readline, Error **errp)
>  {
>      g_assert_not_reached();
>  }
> +#endif
> diff --git a/tests/unit/test-util-sockets.c b/tests/unit/test-util-sockets.c
> index 530a3fee3c13..006f5e579c6b 100644
> --- a/tests/unit/test-util-sockets.c
> +++ b/tests/unit/test-util-sockets.c
> @@ -24,7 +24,6 @@
>  #include "qapi/error.h"
>  #include "socket-helpers.h"
>  #include "monitor/monitor.h"
> -#include "monitor/hmp.h"
>  
>  static void test_fd_is_socket_bad(void)
>  {
> @@ -75,7 +74,6 @@ int monitor_get_fd(Monitor *mon, const char *fdname, Error **errp)
>   */
>  Monitor *monitor_cur(void) { return cur_mon; }
>  Monitor *monitor_set_cur(Coroutine *co, Monitor *mon) { abort(); }
> -int monitor_hmp_vprintf(MonitorHMP *mon, const char *fmt, va_list ap) { abort(); }
>  
>  #ifndef _WIN32
>  static void test_socket_fd_pass_name_good(void)
> diff --git a/tools/qemu-vnc/stubs.c b/tools/qemu-vnc/stubs.c
> index 0aa50a901d37..1e4c14913b56 100644
> --- a/tools/qemu-vnc/stubs.c
> +++ b/tools/qemu-vnc/stubs.c
> @@ -9,7 +9,6 @@
>  #include "system/runstate.h"
>  #include "hw/core/qdev.h"
>  #include "monitor/monitor.h"
> -#include "monitor/hmp.h"
>  #include "migration/vmstate.h"
>  
>  bool runstate_is_running(void)
> @@ -42,11 +41,6 @@ Monitor *monitor_set_cur(Coroutine *co, Monitor *mon)
>      return NULL;
>  }
>  
> -int monitor_hmp_vprintf(MonitorHMP *mon, const char *fmt, va_list ap)
> -{
> -    return -1;
> -}
> -
>  /*
>   * Link-time stubs for VMState symbols referenced by VNC code.
>   * The standalone binary never performs migration, so these are
> 
> -- 
> 2.55.0.543.g5ebe2ebe4ea8
> 
-- 
 -----Open up your eyes, open up your mind, open up your code -------   
/ Dr. David Alan Gilbert    |       Running GNU/Linux       | Happy  \ 
\        dave @ treblig.org |                               | In Hex /
 \ _________________________|_____ http://www.treblig.org   |_______/


  reply	other threads:[~2026-08-20 14:28 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-16 19:12 [PATCH v3 00/49] Make HMP optional (and later standalone) Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 01/49] vl: fix -monitor none prefix matching Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 02/49] hmp: remove 'vcpu' argument from trace-event help Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 03/49] hmp: fix snapshot_blkdev argument type Marc-André Lureau
2026-08-17  3:51   ` Philippe Mathieu-Daudé
2026-08-16 19:12 ` [PATCH v3 04/49] target/i386: decouple cpu_x86_inject_mce() from Monitor Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 05/49] target/i386: return an error for invalid CPU in hmp_mce() Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 06/49] system: move gpa2hva() to system memory unit Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 07/49] system: decouple qmp_inject_nmi() from Monitor Marc-André Lureau
2026-08-17  3:53   ` Philippe Mathieu-Daudé
2026-08-17  8:04     ` Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 08/49] monitor: move HMP-only fields from Monitor to MonitorHMP Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 09/49] tests/functional: use query-version QMP command instead of HMP Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 10/49] net/qapi: add x-query-usernet command Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 11/49] python, tests: switch usernet queries from HMP to QMP Marc-André Lureau
2026-08-17  7:30   ` Thomas Huth
2026-08-17  8:07     ` Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 12/49] tests/qtest/pnv: drop unnecessary -serial mon:stdio Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 13/49] tests/qtest/qmp-test: don't depend on human-monitor-command Marc-André Lureau
2026-08-17  3:55   ` Philippe Mathieu-Daudé
2026-08-17  8:11     ` Marc-André Lureau
2026-08-17  9:11       ` Philippe Mathieu-Daudé
2026-08-16 19:12 ` [PATCH v3 14/49] tests/qtest/numa-test: replace HMP "info numa" with QMP query-cpus-fast Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 15/49] tests/qtest/cdrom-test: replace HMP "info block" with QMP query-block Marc-André Lureau
2026-08-16 19:53   ` Denis V. Lunev
2026-08-16 19:12 ` [PATCH v3 16/49] tests/qtest/device-introspect-test: fix test without HMP Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 17/49] tests/qemu-iotests/205: fix race in assertExportNotFound Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 18/49] net: add x-query-network QMP command Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 19/49] tests/qtest/netdev-socket: replace HMP with x-query-network QMP Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 20/49] qemu-io: propagate errors through Error API instead of printf Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 21/49] block: add x-qemu-io QMP command Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 22/49] qtest: add qemu-io command to the qtest protocol Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 23/49] qtest/ide-test: convert to use qtest qemu-io command Marc-André Lureau
2026-08-16 19:54   ` Denis V. Lunev
2026-08-16 19:12 ` [PATCH v3 24/49] tests/qemu-iotests: add qmp_qemu_io() Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 25/49] tests/qemu-iotests: convert pause/resume_drive() to QMP Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 26/49] build-sys: add 'hmp' option Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 27/49] monitor: reject readline monitor when HMP is disabled Marc-André Lureau
2026-08-16 20:23   ` Dr. David Alan Gilbert
2026-08-16 19:12 ` [PATCH v3 28/49] system: guard HMP initialization paths with CONFIG_HMP Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 29/49] tests: skip HMP-dependent tests when HMP is disabled Marc-André Lureau
2026-08-16 19:12 ` [PATCH v3 30/49] monitor: isolate HMP declarations in hmp.h Marc-André Lureau
2026-08-16 20:21   ` Dr. David Alan Gilbert
2026-08-16 19:12 ` [PATCH v3 31/49] monitor: change HMPCommand cmd to take MonitorHMP Marc-André Lureau
2026-08-16 21:51   ` Dr. David Alan Gilbert
2026-08-17 18:08     ` Jason J. Herne
2026-08-16 19:12 ` [PATCH v3 32/49] monitor: make hmp_handle_error() " Marc-André Lureau
2026-08-17  0:36   ` Dr. David Alan Gilbert
2026-08-16 19:13 ` [PATCH v3 33/49] monitor: add monitor_cur_hmp() helper Marc-André Lureau
2026-08-17  0:49   ` Dr. David Alan Gilbert
2026-08-16 19:13 ` [PATCH v3 34/49] qemu-print: switch to use monitor_cur_hmp() Marc-André Lureau
2026-08-16 19:13 ` [PATCH v3 35/49] error-report: " Marc-André Lureau
2026-08-16 19:13 ` [PATCH v3 36/49] monitor: tighten monitor_set_cpu()/get_cpu() Marc-André Lureau
2026-08-18 14:15   ` Dr. David Alan Gilbert
2026-08-16 19:13 ` [PATCH v3 37/49] monitor: tighten monitor_printf*() Marc-André Lureau
2026-08-17 18:09   ` Jason J. Herne
2026-08-19 14:29   ` Dr. David Alan Gilbert
2026-08-19 14:46     ` Marc-André Lureau
2026-08-16 19:13 ` [PATCH v3 38/49] hexagon: make dump_mmu() take MonitorHMP Marc-André Lureau
2026-08-17  3:49   ` Philippe Mathieu-Daudé
2026-08-18 20:35   ` Brian Cain
2026-08-16 19:13 ` [PATCH v3 39/49] qdev-monitor: make print_dev() callback " Marc-André Lureau
2026-08-17  3:48   ` Philippe Mathieu-Daudé
2026-08-16 19:13 ` [PATCH v3 40/49] qapi: make HMP-specific schema entries conditional on CONFIG_HMP Marc-André Lureau
2026-08-19 14:14   ` Dr. David Alan Gilbert
2026-08-16 19:13 ` [PATCH v3 41/49] Guard HMP command implementations with CONFIG_HMP Marc-André Lureau
2026-08-17 18:11   ` Jason J. Herne
2026-08-16 19:13 ` [PATCH v3 42/49] target: guard MonitorDef tables " Marc-André Lureau
2026-08-17  3:47   ` Philippe Mathieu-Daudé
2026-08-20 14:38   ` Philippe Mathieu-Daudé
2026-08-20 19:24     ` Marc-André Lureau
2026-08-16 19:13 ` [PATCH v3 43/49] hw: guard BusClass::print_dev " Marc-André Lureau
2026-08-16 19:13 ` [PATCH v3 44/49] hexagon: condition HMP-specific code Marc-André Lureau
2026-08-17  3:46   ` Philippe Mathieu-Daudé
2026-08-18 20:34   ` Brian Cain
2026-08-16 19:13 ` [PATCH v3 45/49] build-sys: make HMP source files conditional on have_hmp Marc-André Lureau
2026-08-19 14:30   ` Dr. David Alan Gilbert
2026-08-16 19:13 ` [PATCH v3 46/49] stubs: split monitor-core stubs into separate compilation units Marc-André Lureau
2026-08-16 19:13 ` [PATCH v3 47/49] monitor: move monitor_hmp_print*() functions to hmp.c Marc-André Lureau
2026-08-19 14:16   ` Dr. David Alan Gilbert
2026-08-19 14:40     ` Marc-André Lureau
2026-08-16 19:13 ` [PATCH v3 48/49] monitor: move HMP-specific to monitor-hmp-internal.h Marc-André Lureau
2026-08-20 14:27   ` Dr. David Alan Gilbert [this message]
2026-08-16 19:13 ` [PATCH v3 49/49] gitlab: --disable-hmp in build-without-defaults Marc-André Lureau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aocO1HDcO7hSGyLD@gallifrey \
    --to=dave@treblig.org \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=farosas@suse.de \
    --cc=marcandre.lureau@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=philmd@mailo.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.