The patchset implements additional compatibility bits for Parallels format: - initial support of parsing of Parallels DiskDeskriptor.xml Typically Parallels disk bundle consists of several images which are glued by XML disk descriptor. Also XML hides inside several important parameters which are not available in the image header. - support for padded Parallels images. For the time being Parallels was created an optimization for such OSes in its desktop product. Desktop users are not qualified enough to create properly aligned installations. Thus Parallels makes a blind guess on a customer behalf and creates so-called "padded" images if guest OS type is specified as WinXP, Win2k and Win2k3. - support for snaphosts in parallels format (read-only) - some other improvements
The code uses approach from VMDK support, either image or XML descriptor could be used. Though there is temporary hack in the opening code: BlockDriverState->file is being reopened inside parallels_open. I prefer to keep this code in this state till proper Parallels snapshots support in order to minimize current changes. Changes from v3: - (patch 2) method of detection of Parallels XML is changed. xmlReadMemory fails if not entire file is specified - (patches 8-11) get block status, backing store, reading performance improvements - (patches 13-16) parallels snapshots support added Changes from v2: - (patch 1) changed libxml2 addition as suggested by Michael Tokarev - (patch 2) changed API of xml_find/xml_get_text to avoid memcpy to variable on stack - (patch 2) dropped predefined value for PARALLELS_XML/PARALLELS_IMAGE - (patch 2) other minor changes (spelling, placement) - (patch 3) quoted TEST_IMG as suggested by Jeff Cody - (patches 4, 6) quoted TEST_IMG as suggested by Jeff Cody Changes from v1: - dropped already merged part (original patches 1-3) CC: Jeff Cody <jc...@redhat.com> CC: Kevin Wolf <kw...@redhat.com> CC: Stefan Hajnoczi <stefa...@redhat.com> CC: Roman Kagan <rka...@parallels.com> CC: Denis V. Lunev <d...@openvz.org>