vhdx: Fixed and dynamic VHDx block device implementation

Microsoft’s VHDx block device format specification is implemented
here as a crate. This commit includes the implementation for the
fixed and dynamic formats, where the other format is known as
differencing. The vhdx_header.rs, vhdx_bat.rs, vhdx_metadata.rs
implements parser and manipulators for the VHDx header, Block
Allocation Table, and metadata, respectively, for the VHDx file.
The vhdx_io.rs implements read and write routines for the VHDx file.
The vhdx.rs implements the Vhdx structure, which provides the wrapper
functions for standard I/O operations like read, write, and seek.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
Signed-off-by: Fazla Mehrab <akm.fazla.mehrab@intel.com>
This commit is contained in:
Fazla Mehrab
2021-07-26 11:50:52 -04:00
committed by Sebastien Boeuf
parent fc24f39507
commit 452af9b17c
7 changed files with 1404 additions and 0 deletions
+16
View File
@@ -0,0 +1,16 @@
[package]
name = "vhdx"
version = "0.1.0"
authors = ["The Cloud Hypervisor Authors"]
edition = "2018"
license = "Apache-2.0"
[dependencies]
byteorder = "1.4.3"
crc32c = "0.6.0"
libc = "0.2.98"
log = "0.4.14"
remain = "0.2.2"
thiserror = "1.0"
uuid = { version = "0.8.2", features = ["v4"] }
vmm-sys-util = ">=0.3.1"