diff options
author | Luiz Capitulino <lcapitulino@redhat.com> | 2011-07-29 15:04:45 -0300 |
---|---|---|
committer | Luiz Capitulino <lcapitulino@redhat.com> | 2011-09-15 16:39:32 -0300 |
commit | f5bbfba1ebe8c877ebfe846fc1e73e90da423884 (patch) | |
tree | cd395df17a18a35cb4e5a9a8f0d6e378027a7794 /sysemu.h | |
parent | 1dfb4dd993f7122353fb2894f09dfcba894cd7d5 (diff) | |
download | hqemu-f5bbfba1ebe8c877ebfe846fc1e73e90da423884.zip hqemu-f5bbfba1ebe8c877ebfe846fc1e73e90da423884.tar.gz |
RunState: Add additional states
Currently, only vm_start() and vm_stop() change the VM state.
That's, the state is only changed when starting or stopping the VM.
This commit adds the runstate_set() function, which makes it possible
to also do state transitions when the VM is stopped or running.
Additional states are also added and the current state is stored.
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Diffstat (limited to 'sysemu.h')
-rw-r--r-- | sysemu.h | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -13,15 +13,19 @@ typedef enum { RSTATE_NO_STATE, RSTATE_DEBUG, /* qemu is running under gdb */ + RSTATE_IN_MIGRATE, /* paused waiting for an incoming migration */ RSTATE_PANICKED, /* paused due to an internal error */ RSTATE_IO_ERROR, /* paused due to an I/O error */ RSTATE_PAUSED, /* paused by the user (ie. the 'stop' command) */ + RSTATE_POST_MIGRATE, /* paused following a successful migration */ + RSTATE_PRE_LAUNCH, /* qemu was started with -S and haven't started */ RSTATE_PRE_MIGRATE, /* paused preparing to finish migrate */ RSTATE_RESTORE, /* paused restoring the VM state */ RSTATE_RUNNING, /* qemu is running */ RSTATE_SAVEVM, /* paused saving VM state */ RSTATE_SHUTDOWN, /* guest shut down and -no-shutdown is in use */ - RSTATE_WATCHDOG /* watchdog fired and qemu is configured to pause */ + RSTATE_WATCHDOG, /* watchdog fired and qemu is configured to pause */ + RSTATE_MAX } RunState; extern const char *bios_name; @@ -32,6 +36,8 @@ extern uint8_t qemu_uuid[]; int qemu_uuid_parse(const char *str, uint8_t *uuid); #define UUID_FMT "%02hhx%02hhx%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx" +bool runstate_check(RunState state); +void runstate_set(RunState new_state); typedef struct vm_change_state_entry VMChangeStateEntry; typedef void VMChangeStateHandler(void *opaque, int running, RunState state); |