On Thu, Sep 7, 2023 at 9:26 PM Clément Chigot <chi...@adacore.com> wrote: > > This replaces the exit calls by shutdown requests, ensuring a proper > cleanup of Qemu. Otherwise, some connections like gdb could be broken > before its final packet ("Wxx") is being sent. This part, being done > inside qemu_cleanup function, can be reached only when the main loop > exits after a shutdown request. > > Signed-off-by: Clément Chigot <chi...@adacore.com>
Reviewed-by: Alistair Francis <alistair.fran...@wdc.com> Alistair > --- > hw/misc/sifive_test.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/hw/misc/sifive_test.c b/hw/misc/sifive_test.c > index 56df45bfe5..ad688079c4 100644 > --- a/hw/misc/sifive_test.c > +++ b/hw/misc/sifive_test.c > @@ -25,6 +25,7 @@ > #include "qemu/module.h" > #include "sysemu/runstate.h" > #include "hw/misc/sifive_test.h" > +#include "sysemu/sysemu.h" > > static uint64_t sifive_test_read(void *opaque, hwaddr addr, unsigned int > size) > { > @@ -39,9 +40,13 @@ static void sifive_test_write(void *opaque, hwaddr addr, > int code = (val64 >> 16) & 0xffff; > switch (status) { > case FINISHER_FAIL: > - exit(code); > + qemu_system_shutdown_request_with_code( > + SHUTDOWN_CAUSE_GUEST_PANIC, code); > + return; > case FINISHER_PASS: > - exit(0); > + qemu_system_shutdown_request_with_code( > + SHUTDOWN_CAUSE_GUEST_SHUTDOWN, code); > + return; > case FINISHER_RESET: > qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET); > return; > -- > 2.25.1 >