From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59211) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8v3M-0008SK-QH for qemu-devel@nongnu.org; Wed, 07 Jan 2015 13:09:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y8v3L-0006uB-T1 for qemu-devel@nongnu.org; Wed, 07 Jan 2015 13:09:56 -0500 Received: from mx1.redhat.com ([209.132.183.28]:54680) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8v3L-0006u7-KD for qemu-devel@nongnu.org; Wed, 07 Jan 2015 13:09:55 -0500 Message-ID: <54AD766D.9080008@redhat.com> Date: Wed, 07 Jan 2015 13:09:49 -0500 From: John Snow MIME-Version: 1.0 References: <1420566495-13284-1-git-send-email-peter@lekensteyn.nl> <1420566495-13284-12-git-send-email-peter@lekensteyn.nl> In-Reply-To: <1420566495-13284-12-git-send-email-peter@lekensteyn.nl> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 11/12] block/dmg: support bzip2 block entry types List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Wu , qemu-devel@nongnu.org Cc: Kevin Wolf , Paolo Bonzini , Stefan Hajnoczi On 01/06/2015 12:48 PM, Peter Wu wrote: > This patch adds support for bzip2-compressed block entries as introduced > with OS X 10.4 (source: https://en.wikipedia.org/wiki/Apple_Disk_Image). > > It was tested against a 5.2G "OS X Yosemite" installation image which > stores the BLXX block in the XML property list (instead of resource > forks) and has over 5k chunks. > > New configure entries are added (--enable-bzip2 / --disable-bzip2) to > control inclusion of bzip2 functionality (which requires linking against > libbz2). The help message suggests that this option is needed for DMG > files, but the tests are generic enough that other parts of QEMU can use > bzip2 if needed. > > The identifiers are based on http://newosxbook.com/DMG.html. > > The decompression routines are based on the zlib case, but as there is > no way to reset the decompression state (unlike zlib), memory is > allocated and deallocated for every decompression. This should not be > problematic as the decompression takes most of the time and as blocks > are typically about/over 1 MiB in size, only one allocation is done > every 2000 sectors. > > Signed-off-by: Peter Wu > --- > v2: split block type check into a different patch ("[PATCH v2 10/12] > block/dmg: factor out block type check"). > Add BZIP2_LIBS instead of polluting libs_softmmu with -lbz2 (which > would also end up in fsdev/virtfs-proxy-helper). > Fix unused variable warning with --disable-bzip2. > --- > block/Makefile.objs | 1 + > block/dmg.c | 43 ++++++++++++++++++++++++++++++++++++++++++- > configure | 31 +++++++++++++++++++++++++++++++ > 3 files changed, 74 insertions(+), 1 deletion(-) > [snip] Reviewed-by: John Snow