"Dr. David Alan Gilbert" <dgilb...@redhat.com> wrote: > * Juan Quintela (quint...@redhat.com) wrote: >> This allows us to store the current state to send it through migration. > > Why store the runstate as a string? The later code then ends up doing > string compares and things - why not just use the enum value?
How do you know that it has the same values both sides? As far as I can see, all interaction with the outside is done with strings (i.e. QMP). But it is easier for me if I can sent the numeric value. Libvirt folks? Luiz? What should I do? Later, Juan. > > Dave > >> Signed-off-by: Juan Quintela <quint...@redhat.com> >> --- >> include/sysemu/sysemu.h | 1 + >> vl.c | 10 ++++++++++ >> 2 files changed, 11 insertions(+) >> >> diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h >> index d8539fd..ae217da 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 964d634..ce8e28b 100644 >> --- a/vl.c >> +++ b/vl.c >> @@ -677,6 +677,16 @@ 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; >> -- >> 2.1.0 >> >> > -- > Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK