From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39228) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V5LL6-0004tT-Qg for qemu-devel@nongnu.org; Fri, 02 Aug 2013 15:48:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V5LKx-0006pd-Ra for qemu-devel@nongnu.org; Fri, 02 Aug 2013 15:48:40 -0400 Received: from e36.co.us.ibm.com ([32.97.110.154]:52550) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V5LKx-0006oz-LF for qemu-devel@nongnu.org; Fri, 02 Aug 2013 15:48:31 -0400 Received: from /spool/local by e36.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 2 Aug 2013 13:48:30 -0600 Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com [9.17.195.226]) by d03dlp03.boulder.ibm.com (Postfix) with ESMTP id 223C519D8043 for ; Fri, 2 Aug 2013 13:48:14 -0600 (MDT) Received: from d03av06.boulder.ibm.com (d03av06.boulder.ibm.com [9.17.195.245]) by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r72JmGsC163834 for ; Fri, 2 Aug 2013 13:48:17 -0600 Received: from d03av06.boulder.ibm.com (loopback [127.0.0.1]) by d03av06.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r72JonlC027445 for ; Fri, 2 Aug 2013 13:50:49 -0600 Message-ID: <51FC0CF5.8000803@linux.vnet.ibm.com> Date: Fri, 02 Aug 2013 15:48:05 -0400 From: "Michael R. Hines" MIME-Version: 1.0 References: <1374783499-2550-1-git-send-email-lilei@linux.vnet.ibm.com> <1374783499-2550-8-git-send-email-lilei@linux.vnet.ibm.com> In-Reply-To: <1374783499-2550-8-git-send-email-lilei@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 07/12] savevm: introduce qemu_savevm_local() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Lei Li Cc: aarcange@redhat.com, aliguori@us.ibm.com, quintela@redhat.com, qemu-devel@nongnu.org, lagarcia@br.ibm.com, pbonzini@redhat.com, rcj@linux.vnet.ibm.com On 07/25/2013 04:18 PM, Lei Li wrote: > Signed-off-by: Lei Li > --- > include/sysemu/sysemu.h | 1 + > savevm.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 56 insertions(+), 0 deletions(-) > > diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h > index 5b90027..9abe4c9 100644 > --- a/include/sysemu/sysemu.h > +++ b/include/sysemu/sysemu.h > @@ -80,6 +80,7 @@ int qemu_savevm_state_iterate(QEMUFile *f); > void qemu_savevm_state_complete(QEMUFile *f); > void qemu_savevm_state_cancel(void); > uint64_t qemu_savevm_state_pending(QEMUFile *f, uint64_t max_size); > +int qemu_savevm_local(QEMUFile *f); > int qemu_save_device_state(QEMUFile *f); > int qemu_loadvm_state(QEMUFile *f); > > diff --git a/savevm.c b/savevm.c > index e18ca22..c183369 100644 > --- a/savevm.c > +++ b/savevm.c > @@ -2007,6 +2007,61 @@ static int qemu_savevm_state(QEMUFile *f) > } > > /** > + * Save all of the ram pages to stream QEMUFile > + * > + * Return: negtive for an error > + */ > +int qemu_savevm_local(QEMUFile *f) > +{ > + SaveStateEntry *se; > + int ret; > + > + QTAILQ_FOREACH(se, &savevm_handlers, entry) { > + if (!se->ops) { > + continue; > + } > + } > + > + qemu_put_be32(f, QEMU_VM_FILE_MAGIC); > + qemu_put_be32(f, QEMU_VM_FILE_VERSION); > + > + QTAILQ_FOREACH(se, &savevm_handlers, entry) { > + int len; > + > + if (!se->ops || !se->ops->save_local_setup) { > + continue; > + } > + if (se->ops && se->ops->is_block_active) { > + continue; > + } > + > + /* Section type */ > + qemu_put_byte(f, QEMU_VM_SECTION_START); > + qemu_put_be32(f, se->section_id); > + > + /* ID string */ > + len = strlen(se->idstr); > + qemu_put_byte(f, len); > + qemu_put_buffer(f, (uint8_t *)se->idstr, len); > + > + qemu_put_be32(f, se->instance_id); > + > + qemu_put_be32(f, se->version_id); > + > + ret = se->ops->save_local_setup(f, se->opaque); > + if (ret < 0) { > + qemu_file_set_error(f, ret); > + break; > + } > + } > + > + qemu_put_byte(f, QEMU_VM_EOF); > + qemu_fflush(f); > + > + return qemu_file_get_error(f); > +} > + > +/** > * Save all of the device states to stream QEMUFile > * > * Return negtive if there has been an error You don't have enough comments in your commit messages - please add more. Why do you need a new savevm function? - Michael