From patchwork Fri Jan 17 07:46:10 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qiao Nuohan X-Patchwork-Id: 311980 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id F00302C007A for ; Fri, 17 Jan 2014 18:53:44 +1100 (EST) Received: from localhost ([::1]:36680 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W44FK-00025t-VQ for incoming@patchwork.ozlabs.org; Fri, 17 Jan 2014 02:53:42 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59354) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W448s-0008EO-7p for qemu-devel@nongnu.org; Fri, 17 Jan 2014 02:47:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W448l-0003SX-3Z for qemu-devel@nongnu.org; Fri, 17 Jan 2014 02:47:02 -0500 Received: from fgwmail6.fujitsu.co.jp ([192.51.44.36]:38917) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W448k-0003Rw-KQ for qemu-devel@nongnu.org; Fri, 17 Jan 2014 02:46:55 -0500 Received: from m1.gw.fujitsu.co.jp (unknown [10.0.50.71]) by fgwmail6.fujitsu.co.jp (Postfix) with ESMTP id 9FF413EE0C5 for ; Fri, 17 Jan 2014 16:46:53 +0900 (JST) Received: from smail (m1 [127.0.0.1]) by outgoing.m1.gw.fujitsu.co.jp (Postfix) with ESMTP id 9061845DE63 for ; Fri, 17 Jan 2014 16:46:53 +0900 (JST) Received: from s1.gw.fujitsu.co.jp (s1.gw.nic.fujitsu.com [10.0.50.91]) by m1.gw.fujitsu.co.jp (Postfix) with ESMTP id 7722C45DE54 for ; Fri, 17 Jan 2014 16:46:53 +0900 (JST) Received: from s1.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s1.gw.fujitsu.co.jp (Postfix) with ESMTP id 657BBE08003 for ; Fri, 17 Jan 2014 16:46:53 +0900 (JST) Received: from s00.gw.fujitsu.co.jp (s00.gw.nic.fujitsu.com [133.161.11.15]) by s1.gw.fujitsu.co.jp (Postfix) with ESMTP id 150921DB803F for ; Fri, 17 Jan 2014 16:46:53 +0900 (JST) Received: from s00.gw.fujitsu.co.jp (kw-mxio2.gw.nic.fujitsu.com [10.0.237.142]) by s00.gw.fujitsu.co.jp (Postfix) with ESMTP id C414E1180C9 for ; Fri, 17 Jan 2014 16:46:51 +0900 (JST) Received: from G08FNSTD100518.localdomain (unknown [10.167.226.68]) by s00.gw.fujitsu.co.jp (Postfix) with ESMTP id 43D398A002 for ; Fri, 17 Jan 2014 16:46:51 +0900 (JST) Received: by G08FNSTD100518.localdomain (Postfix, from userid 0) id 2DA3238092C; Fri, 17 Jan 2014 15:46:21 +0800 (CST) From: qiaonuohan To: lersek@redhat.com, stefanha@gmail.com, lcapitulino@redhat.com, afaerber@suse.de, eblake@redhat.com Date: Fri, 17 Jan 2014 15:46:10 +0800 Message-Id: <1389944779-31899-5-git-send-email-qiaonuohan@cn.fujitsu.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1389944779-31899-1-git-send-email-qiaonuohan@cn.fujitsu.com> References: <1389944779-31899-1-git-send-email-qiaonuohan@cn.fujitsu.com> X-TM-AS-MML: disable X-TM-AS-Product-Ver: IMSS-7.1.0.1403-6.8.0.1017-20440.003 X-TM-AS-Result: No--4.031-7.0-31-10 X-imss-scan-details: No--4.031-7.0-31-10 X-TM-AS-User-Approved-Sender: No X-TMASE-MatchedRID: +vkANpyobYU1vivz3L6ga6ngbqTYC4GHu56wFPSkMVH3nn++sdbNoZod mfrfaL+p+GgRDuRKI3uZviSk73iIbK6UR+fsf9oDwLYk+NSxc5q1k3bRIdXVNJbrt4OFJZn9+Vi hXqn9xLFdsTExXTBFWlt+YJZjRvYf5Pli+1skQQMksSBZTGCrwt0H8LFZNFG76sBnwpOylLMZ6A TyFpP/1e/L01iVa43YBUomE/Ud9eNO7IXDO/FURM/PK5tOJkmqFudEnKAJ1mpQany9kJYx88MMt PR9U4Ua5xQ8I/Nmh6yIHqaUMp7VXtL/LK0d4I30Ze/gJB41STsbqpM7Cr+fvX7cGd19dSFd X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 192.51.44.36 Cc: kumagai-atsushi@mxc.nes.nec.co.jp, qiaonuohan , anderson@redhat.com, qemu-devel@nongnu.org Subject: [Qemu-devel] [PATCH 04/13 v7] dump: add API to write vmcore X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Function is used to write vmcore in flatten format. In flatten format, data is written block by block, and in front of each block, a struct MakedumpfileDataHeader is stored there to indicate the offset and size of the data block. struct MakedumpfileDataHeader { int64_t offset; int64_t buf_size; }; Signed-off-by: Qiao Nuohan Reviewed-by: Laszlo Ersek --- dump.c | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+), 0 deletions(-) diff --git a/dump.c b/dump.c index f233b3e..238ffa5 100644 --- a/dump.c +++ b/dump.c @@ -728,6 +728,27 @@ static int write_end_flat_header(int fd) return 0; } +static int write_buffer(int fd, off_t offset, const void *buf, size_t size) +{ + size_t written_size; + MakedumpfileDataHeader mdh; + + mdh.offset = cpu_to_be64(offset); + mdh.buf_size = cpu_to_be64(size); + + written_size = qemu_write_full(fd, &mdh, sizeof(mdh)); + if (written_size != sizeof(mdh)) { + return -1; + } + + written_size = qemu_write_full(fd, buf, size); + if (written_size != size) { + return -1; + } + + return 0; +} + static ram_addr_t get_start_block(DumpState *s) { GuestPhysBlock *block;