]> git.proxmox.com Git - mirror_qemu.git/commit - migration/savevm.c
shutdown: Prepare for use of an enum in reset/shutdown_request
authorEric Blake <eblake@redhat.com>
Mon, 15 May 2017 21:41:11 +0000 (16:41 -0500)
committerMarkus Armbruster <armbru@redhat.com>
Tue, 23 May 2017 11:28:17 +0000 (13:28 +0200)
commitaedbe19297907143f17b733a7ff0e0534377bed1
tree17fca30e27436c3f9dee212d1fa1b37434db588f
parent7af88279e4972dd6bf735b620876d54b7a355c4d
shutdown: Prepare for use of an enum in reset/shutdown_request

We want to track why a guest was shutdown; in particular, being able
to tell the difference between a guest request (such as ACPI request)
and host request (such as SIGINT) will prove useful to libvirt.
Since all requests eventually end up changing shutdown_requested in
vl.c, the logical change is to make that value track the reason,
rather than its current 0/1 contents.

Since command-line options control whether a reset request is turned
into a shutdown request instead, the same treatment is given to
reset_requested.

This patch adds an internal enum ShutdownCause that describes reasons
that a shutdown can be requested, and changes qemu_system_reset() to
pass the reason through, although for now nothing is actually changed
with regards to what gets reported.  The enum could be exported via
QAPI at a later date, if deemed necessary, but for now, there has not
been a request to expose that much detail to end clients.

For the most part, we turn 0 into SHUTDOWN_CAUSE_NONE, and 1 into
SHUTDOWN_CAUSE_HOST_ERROR; the only specific case where we have enough
information right now to use a different value is when we are reacting
to a host signal.  It will take a further patch to edit all call-sites
that can trigger a reset or shutdown request to properly pass in any
other reasons; this patch includes TODOs to point such places out.

qemu_system_reset() trades its 'bool report' parameter for a
'ShutdownCause reason', with all non-zero values having the same
effect; this lets us get rid of the weird #defines for VMRESET_*
as synonyms for bools.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20170515214114.15442-3-eblake@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
hw/i386/xen/xen-hvm.c
include/sysemu/sysemu.h
migration/colo.c
migration/savevm.c
vl.c