From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48712) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z51ds-0007h3-8C for qemu-devel@nongnu.org; Tue, 16 Jun 2015 20:55:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z51dp-0004LZ-2S for qemu-devel@nongnu.org; Tue, 16 Jun 2015 20:55:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46722) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z51do-0004Ie-Q7 for qemu-devel@nongnu.org; Tue, 16 Jun 2015 20:55:44 -0400 From: Juan Quintela In-Reply-To: <5559C128.7020109@parallels.com> (Denis V. Lunev's message of "Mon, 18 May 2015 13:38:32 +0300") References: <1431620920-19710-1-git-send-email-quintela@redhat.com> <1431620920-19710-4-git-send-email-quintela@redhat.com> <5559C128.7020109@parallels.com> Date: Wed, 17 Jun 2015 02:55:42 +0200 Message-ID: <87k2v3gnld.fsf@neno.neno> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Qemu-devel] [PATCH 3/9] runstate: Add runstate store Reply-To: quintela@redhat.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Denis V. Lunev" Cc: qemu-devel@nongnu.org "Denis V. Lunev" wrote: > On 14/05/15 19:28, Juan Quintela wrote: >> This allows us to store the current state to send it through migration. >> >> Signed-off-by: Juan Quintela >> --- >> 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; >> > > minor. why to call strlen() twice? > > if you have the length in hand it would be better to call > memcpy to copy data. Done, thanks.