Message ID | 20240523-debugexit-v1-1-d52fcaf7bf8b@t-8ch.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw: debugexit: use runstate API instead of plain exit() | expand |
On 23/5/24 09:09, Thomas Weißschuh wrote: > Directly calling exit() prevents any kind of management or handling. > Instead use the corresponding runstate API. > The default behavior of the runstate API is the same as exit(). > > Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de> > --- > hw/misc/debugexit.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
diff --git a/hw/misc/debugexit.c b/hw/misc/debugexit.c index ab6de69ce72f..c5c562fd9357 100644 --- a/hw/misc/debugexit.c +++ b/hw/misc/debugexit.c @@ -12,6 +12,7 @@ #include "hw/qdev-properties.h" #include "qemu/module.h" #include "qom/object.h" +#include "sysemu/runstate.h" #define TYPE_ISA_DEBUG_EXIT_DEVICE "isa-debug-exit" OBJECT_DECLARE_SIMPLE_TYPE(ISADebugExitState, ISA_DEBUG_EXIT_DEVICE) @@ -32,7 +33,8 @@ static uint64_t debug_exit_read(void *opaque, hwaddr addr, unsigned size) static void debug_exit_write(void *opaque, hwaddr addr, uint64_t val, unsigned width) { - exit((val << 1) | 1); + qemu_system_shutdown_request_with_code(SHUTDOWN_CAUSE_GUEST_SHUTDOWN, + (val << 1) | 1); } static const MemoryRegionOps debug_exit_ops = {
Directly calling exit() prevents any kind of management or handling. Instead use the corresponding runstate API. The default behavior of the runstate API is the same as exit(). Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de> --- hw/misc/debugexit.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- base-commit: 7e1c0047015ffbd408e1aa4a5ec1abe4751dbf7e change-id: 20240523-debugexit-22e7587adbeb Best regards,