From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46090) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XgAZv-00014s-K5 for qemu-devel@nongnu.org; Mon, 20 Oct 2014 06:52:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XgAZp-0001fS-CR for qemu-devel@nongnu.org; Mon, 20 Oct 2014 06:52:43 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34676) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XgAZp-0001fB-4i for qemu-devel@nongnu.org; Mon, 20 Oct 2014 06:52:37 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s9KAqa8Q006758 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Mon, 20 Oct 2014 06:52:36 -0400 From: Juan Quintela In-Reply-To: <20141020102408.GF2517@work-vm> (David Alan Gilbert's message of "Mon, 20 Oct 2014 11:24:09 +0100") References: <1413359710-2799-1-git-send-email-quintela@redhat.com> <1413359710-2799-3-git-send-email-quintela@redhat.com> <20141020102408.GF2517@work-vm> Date: Mon, 20 Oct 2014 12:52:34 +0200 Message-ID: <87egu357yl.fsf@elfo.elfo> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH 2/7] runstate: Add runstate store Reply-To: quintela@redhat.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Dr. David Alan Gilbert" Cc: kwolf@redhat.com, qemu-devel@nongnu.org, laine@redhat.com, lcapitulino@redhat.com "Dr. David Alan Gilbert" wrote: > * Juan Quintela (quintela@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 >> --- >> 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 / dgilbert@redhat.com / Manchester, UK