"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

Reply via email to