diff options
| author | Alex Bennée <alex.bennee@linaro.org> | 2023-03-02 18:57:49 -0800 |
|---|---|---|
| committer | Alex Bennée <alex.bennee@linaro.org> | 2023-03-07 20:44:08 +0000 |
| commit | a7e0f9bd2ace16df2aa557b0670c20bfe9cef280 (patch) | |
| tree | e5a4475e780edf11cafa7c340376bf91b914586f /gdbstub/internals.h | |
| parent | ccd4c7c24a722288127eff2a4dc2793e6a3c04f0 (diff) | |
| download | focaccia-qemu-a7e0f9bd2ace16df2aa557b0670c20bfe9cef280.tar.gz focaccia-qemu-a7e0f9bd2ace16df2aa557b0670c20bfe9cef280.zip | |
gdbstub: abstract target specific details from gdb_put_packet_binary
We unfortunately handle the checking of packet acknowledgement differently for user and softmmu modes. Abstract the user mode stuff behind gdb_got_immediate_ack with a stub for softmmu. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20230302190846.2593720-14-alex.bennee@linaro.org> Message-Id: <20230303025805.625589-14-richard.henderson@linaro.org>
Diffstat (limited to 'gdbstub/internals.h')
| -rw-r--r-- | gdbstub/internals.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gdbstub/internals.h b/gdbstub/internals.h index 6bd6a05657..6534e373cb 100644 --- a/gdbstub/internals.h +++ b/gdbstub/internals.h @@ -110,6 +110,21 @@ void gdb_memtohex(GString *buf, const uint8_t *mem, int len); void gdb_memtox(GString *buf, const char *mem, int len); void gdb_read_byte(uint8_t ch); +/* + * Packet acknowledgement - we handle this slightly differently + * between user and softmmu mode, mainly to deal with the differences + * between the flexible chardev and the direct fd approaches. + * + * We currently don't support a negotiated QStartNoAckMode + */ + +/** + * gdb_got_immediate_ack() - check ok to continue + * + * Returns true to continue, false to re-transmit for user only, the + * softmmu stub always returns true. + */ +bool gdb_got_immediate_ack(void); /* utility helpers */ CPUState *gdb_first_attached_cpu(void); void gdb_append_thread_id(CPUState *cpu, GString *buf); |