This allows us to store the current state to send it through migration.
Signed-off-by: Juan Quintela <address@hidden>
---
include/sysemu/sysemu.h | 1 +
vl.c | 11 +++++++++++
2 files changed, 12 insertions(+)
diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h
index 8a52934..c1a403e 100644
--- a/include/sysemu/sysemu.h
+++ b/include/sysemu/sysemu.h
@@ -28,6 +28,7 @@ bool runstate_check(RunState state);
void runstate_set(RunState new_state);
int runstate_is_running(void);
bool runstate_needs_reset(void);
+int runstate_store(char *str, int size);
typedef struct vm_change_state_entry VMChangeStateEntry;
typedef void VMChangeStateHandler(void *opaque, int running, RunState state);
diff --git a/vl.c b/vl.c
index 15bccc4..7dca13f 100644
--- a/vl.c
+++ b/vl.c
@@ -609,6 +609,17 @@ bool runstate_check(RunState state)
return current_run_state == state;
}
+int runstate_store(char *str, int size)
+{
+ const char *state = RunState_lookup[current_run_state];
+
+ if (strlen(state)+1 > size) {
+ return -1;
+ }
+ strncpy(str, state, strlen(state)+1);
+ return 0;
+}
+
static void runstate_init(void)
{
const RunStateTransition *p;