summaryrefslogtreecommitdiffstats
path: root/sysemu.h
diff options
context:
space:
mode:
authorLuiz Capitulino <lcapitulino@redhat.com>2011-07-29 15:04:45 -0300
committerLuiz Capitulino <lcapitulino@redhat.com>2011-09-15 16:39:32 -0300
commitf5bbfba1ebe8c877ebfe846fc1e73e90da423884 (patch)
treecd395df17a18a35cb4e5a9a8f0d6e378027a7794 /sysemu.h
parent1dfb4dd993f7122353fb2894f09dfcba894cd7d5 (diff)
downloadhqemu-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.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/sysemu.h b/sysemu.h
index be3448b..19088aa 100644
--- a/sysemu.h
+++ b/sysemu.h
@@ -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);
OpenPOWER on IntegriCloud